Лекция: Символьний тип даних
Символьний тип даних, як і цілий та логічний, відноситься до порядкових типів. Дані символьного типу описуються за допомогою ідентифікатора Char.
Значенням змінної символьного типу може бути будь-який символ – букви, цифри, розділові знаки та спеціальні символи. Кожному символу відповідає унікальний числовий код від 0 до 255.
Найпоширенішою міжнародною системою кодування символів є система ASCII – Американський стандартний код для обміну інформацією. Символи з кодами від 0 до 127 утворюють основну таблицю кодівASCII, серед яких коди від 0 до 31 – службові. Основна таблиця кодів однакова на всіх IBM-сумісних комп’ютерах. Символи з кодами від 128 до 255 утворюють, так звану, національну кодову таблицю. Саме в ній розташовуються, наприклад, українські букви.
Таблиця кодів ASCII:
| ! | " | # | $ | ||
| % | & | ' | ( | ) | |
| * | + | , | – | . | |
| / | |||||
| : | ; | < | = | ||
| > | ? | @ | A | B | |
| C | D | E | F | G | |
| H | I | J | K | L | |
| M | N | O | P | Q | |
| R | S | T | U | V | |
| W | X | Y | Z | [ | |
| \ | ] | ^ | _ | ` | |
| a | b | c | d | e | |
| f | g | H | i | j | |
| k | l | M | n | o | |
| p | q | R | s | t | |
| u | v | W | x | y | |
| z | { | | | } | ~ | |
| | Ђ | Ѓ | ‚ | ѓ | |
| „ | … | † | ‡ | € | |
| ‰ | Љ | ‹ | Њ | Ќ | |
| Ћ | Џ | Ђ | ‘ | ’ | |
| “ | ” | • | – | — | |
| ? | ™ | Љ | › | њ | |
| ќ | ћ | Џ | Ў | ||
| ў | Ј | ¤ | Ґ | ¦ | |
| § | Ё | © | Є | « | |
| | ® | Ї | ° | ||
| ± | І | І | ґ | µ | |
| ¶ | · | Ё | № | є | |
| » | ј | Ѕ | ѕ | ї | |
| А | Б | В | Г | Д | |
| Е | Ж | З | И | Й | |
| К | Л | М | Н | О | |
| П | Р | С | Т | У | |
| Ф | Х | Ц | Ч | Ш | |
| Щ | Ъ | Ы | Ь | Э | |
| Ю | Я | А | б | в | |
| г | д | Е | ж | з | |
| и | й | К | л | м | |
| н | о | П | р | с | |
| т | у | Ф | х | ц | |
| ч | ш | Щ | ъ | ы | |
| ь | э | Ю | я |
До символьних даних застосовують операції порівняння. Операція порівняння здійснюється таким способом: з двох символів «менший» той, який зустрічається у таблиці ASCII раніше.
Значення для змінних типу Char задаються в апострофах: ch:='*'; a:='3'; letter:='G'. Функція Chr(x) повертає символ за його кодом (номером в таблиці кодів). Зворотну операцію знаходження номера символу сh виконують за допомогою функції Ord(ch).
Приклад №1
Написати програму для виведення «трикутника» символів:
А
АВ
АВС
…
АВ… YZ.
Розв’язування
«Трикутник» будується за таким правилом: послідовно виводяться частини латинського алфавіту, що складаються з одного символу, з 2-х символів, з 3-х символів і так доти, доки не буде виведений весь алфавіт. Кількість таких послідовностей дорівнює кількості букв алфавіту. Оскільки символьний тип даних є порядковим типом, то змінну цього типу можна використовувати як параметр циклу:
Program Example;
Var i,j:Char;
Begin
For i:='A' to 'Z' do
Begin
For j:='A' to i do Write (j);
Writeln
End
End.
Приклад №2
Написати програму для підрахунку кількість цифр, які входять у заданий текст, що закінчується крапкою. Текст в даному випадку – це послідовність символів, введення кожного з яких завершується натисканням клавіші Enter.
Розв’язування
Будемо вводити символи доти, доки значення чергового символу не співпаде зі значенням ‘.’. Аналізуючи кожне значення, будемо збільшувати лічильник, якщо символ є цифрою:
Program Example;
Var ch:Char;
k:Integer;
Begin
Read (ch);
k:=0;
While ch<>'.' do
Begin
If (ch>='0') and (ch<='9') then k:=k+1;
Read(ch);
End;
Writeln ('Кількість цифр: ',k);
End.
Питання для самоконтролю
1. Що таке символьний тип даних та для чого він використовується?
2. Як задаються значення змінних символьного типу?
3. Що таке таблиця кодів ASCII?
4. Які стандартні функції використовуються для роботи з символьними величинами?
Задачі
1) Модифікувати програму прикладу №2 так, щоб за її допомогою можна було визначити, чи є текст правильним записом цілого числа.
2) Напишіть програму, при виконанні якої після введення символу виводиться на екран його код.
3) Напишіть програму для виведення на екран символів таблиці ASCII з кодами від 32 до 255.
4) Скласти програму для визначення того, яка буква частіше зустрічається у введеному тексті: ‘а’ чи ‘б’?
5) *Дано послідовність символів, що містить n доданків і має такий вигляд: d1±d2±…±dn (d1, d2 і т.д. – цифри, ± – знак «+» або «–», n>1). Обчислити значення виразу.