Тема: Величини символьного типу
Перевірка
домашнього завдання
Завдання 1. За введеними значеннями змінних a, b: Boolean
обчислити значення логічних виразів a and b, a or b, а хоr b.
a := StrToBool(Edit1 .Text);
b := StrToBool(Edit2.Text);
v1 := a and b;
v2 := a or b;
v3 := a xor b;
Edit3.Text := BoolToStr(v1,True);
Edit4.Text ;= BoolToStr(v2,True);
Edit5.Text := BoolToStr(v3,True);
end;
Завдання 2.
1. Укажіть порядок виконання логічних операцій у логічних виразах:
1 4 2 3
а) not a or
not b and a
2
1 4 3 6 5
б) not not a
and not b or c and d
2. Складіть таблиці істинності
логічних виразів зі змінними логічного
типу а і b:
а) а or b or
not b
б) not a or not b
в) a and not b or not a and b
Повторення
1. Яких
значень може набувати змінна логічного типу?
2. Які
операції можна виконувати над змінними логічного типу?
3. Обчисліть
значення логічних виразів:
а) (А <=
В) and (А = В - 1), якщо А = 2, В = 4;
б) (А <=
В) or (А = В - 1), якщо А = 2, В = 4.
Вивчення нового матеріалу
Для величини, значенням якої є одиночний символ, використовують тип Char.
Як вам вже відомо, всі символи, доступні комп’ютеру, утворюють таблицю
символів. Кожен символ має в ній свій номер, який називають його кодом. Великі
і малі літери англійського алфавіту та цифри в таблиці кодів упорядковані,
тобто сусідні коди відрізняються на 1.
Значенням змінної символьного типу може бути будь-який символ: літери
латиниці та кирилиці; цифра; розділовий знак. Це можуть бути також службові
символи, які не відображаються на екрані.
Величина типу Char займає 1 байт пам’яті комп’ютера.
Для позначення константи типу Char у програмі символ беруть в одинарні
лапки, наприклад 'А', 'З', ' ' (пробіл — теж символ). Символьне значення можна
задати за допомогою його ASCII-коду із додаванням префікса #. Зокрема, так
зручно позначати службові символи. Наприклад, символ повернення каретки — #13,
символ нового рядка — #10.
Змінну типу Char можна порівняти з іншою змінною типу Char або із
символьною константою за допомогою операцій порівняння (=, <>, <,
>, <=, =>). Порівняння ґрунтується на тому, що кожному символу відповідає
число — його код у таблиці. Таким чином, насправді порівнюються числові коди
символів.
Порівняти значення типу Char:
var b: Boolean;
begin
b := 'A' < 'B'; {True}
Вправа 1. Вивести на форму
символи за їх кодами.
var S:Integer; C:char;
begin
S:=StrToInt(Edit1.Text);
C:=chr(S);
Label2.Caption:=C;
end;
Ми використали нову функцію chr(S), яка перетворює
код символу на сам символ.
Функція
|
Призначення
|
Тип результату
|
Приклад
|
Chr(X)
|
Повертає символ
за його ASCII-кодом
|
Char
|
S := Chr (65);
S = 'A'
|
Ord(S)
|
Повертає числовий код
символу S
|
Byte
|
К := Ord (‘Z’);
К = 90
|
Pred(C)
|
Повертає символ,
попередній до С
|
Char
|
S := Pred ('b');
S = 'a'
|
Succ(C)
|
Повертає символ,
наступний за С
|
Char
|
S := Suce ('b');
S = 'c’
|
AnsiUpperCase (C)
|
Перетворює малу
літеру на велику
|
Char
|
S := AnsiUpperCase ('b');
S = 'B'
|
I.
Закріплення набутих знань
·
Яких значень можуть
набувати змінні символьного типу?
·
Які операції можна
виконувати із символьними даними?
·
Яка функція повертає
символ за його ASCII-кодом?
·
Яка функція повертає
числовий код символу С?
·
Як порівняти значення
символьного типу?
Виконати
вправу 32
Для символу, що
вводиться в поле Edit1, визначити код, наступний символ, попередній символ і
відповідну велику літеру.
Створіть новий проект.
Помістіть на форму кнопку Виконати.
Помістіть на
форму п’ять компонентів Label, змініть їх заголовки згідно з рисунком.
Помістіть на
форму п’ять компонентів Edit.
Створіть для
кнопки обробник події OnClick.
var с: Char; n:
Byte; st: String;
begin
с := st[1];
Edit2.Text :=
IntToStr (Ord (c));
Edit3.Text :=
Pred (c);
Edit4.Text :=
Succ (c);
Edit5.Text :=
AnsiUpperCase (c);
end;
Перевірте
результат роботи програми при с = 'n'.
Перевірте роботу
програми для різних значень с.
Домашнє завдання
1. Опрацювати
п. 32
2. Розробити
проект, який повертає код введеного
символа.
Реалізація:
procedure TForm1.Button1Click(Sender: TObject);
var S:String; C:char; n:Integer;
begin
S:=Edit1.Text;
C:=S[1];
n:=ord(C);
Edit2.Text:=IntToStr(n);
end;