Символьний тип даних Char
Значеннями цього типу є множина символів із кодової таблиці ANSI (American National Standard Institute). Цей тип відноситься до впорядкованих - кожному символу відповідає свій код в діапазоні 0...255. Наприклад:
Символ |
Код |
Символ |
Код |
' '(Space) |
32 |
CR(Enter) |
13 |
TAB |
8 |
ESC |
27 |
'A'...'Z' |
65...90 |
'a'...'z' |
97...122 |
Над даними символьного типу можна виконувати операції порівняння (<, >, <=, >=, =, <>).
Стандартні функції роботи із символами
Chr(k) - повертає символ, який відповідає коду k
Ord(c) - повертає код символа c
Ці функції обернені одна відносно іншої: Ord(Chr(k)) = k; Chr(Ord(c)) = c;
UpCase(ch) - якщо символ ch є буквою нижнього регістру, то повертає символ, який відповідає цій же букві, але у верхньому регістрі, інакше - повертається даний символ ch
Логічний тип даних
Логічним типом даних називають тип даних, представлений лише двома значеннями True, False. Причому про порядкові значення можна стверджувати лише Ord(False) = 0; та Ord(True) <> 0.
Імя типу |
Об'єм памяті, байт |
Boolean, ByteBool |
1 |
Bool, WordBool |
2 |
LongBool |
4 |
Над значеннями логічних типів можна здійснювати операції: not, and, or, xor(альтернативне або). Таблиця істинності:
x |
y |
not x |
x and y |
x or y |
x xor y |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
Перераховний тип даних
Перераховний тип (enumerated) – тип даних, заданий списком його значень. Індексація його починається з 0. Змінна такого типу в памяті займає 2 байти.
Type <тип> = ( знач0, знач1, ... значN); Var <ідентифікатор> : <тип>;
Приклад:
Boolean = (False, True);
DayW = (mo, tu, we, th, fr, sa, su);
Оскільки цей тип даних є впорядкованим, то і використовуються відповідні функції: Succ, Pred, Ord, Odd
Інтервальний тип даних
Інтервальний тип даних описується як певні діапазони значень базового впорядкованого типу, що знаходяться між заданими двома константами (впорядкованого типу). Змінна такого типу в памяті займає 2 байти.
Type <тип> = <константаMin> .. <константаMax>; {Min <= Max}
Приклад:
Const
MaxDay = 31;
Type
Days = 1 .. MaxDay;
Оскільки цей тип даних є впорядкованим, то і використовуються відповідні функції: Succ, Pred, Ord, Odd. Крім того ще є дві додаткові функції, котрі повертають нижню та верхню межу відповідно:
Low(x) = <константаMin>
High(x) = <константаMax>
Вирази та операції в мові програмування Паскаль
Вирази – це формальні конструкції, які задають процес перетворень значень певних типів даних у інші.
Частковим випадком виразу може служити одна константа, змінна. В загальному випадку Вираз складається із операндів (величин та виразів, над якими виконується операція), круглих дужок та знаків операцій, а тип його результату визначається типом операндів та видом операцій, що використовуються.
Основні оператори мови Pascal.
Як і в більшості мов програмування, в мові Pascal розрізняють такі основні конструкції:
1) лінійні (оператор присвоєння, безумовного переходу, пустий оператор, оператори виклику процедур введення, виведення);
2) розгалуження (умовний, вибору);
3) цикли.
А) оператор присвоєння має вигляд (:=);
<змінна>: = <вираз>.
Рахується значення виразу справа і це значення присвоюється змінній зліва.
Г) goto <мітка>–безумовна передача керування на інший оператор з міткою; його не можна використовувати в розгалуженнях case і в середині будь-якого оператора.
Д) write (<список виведення>) – виводить значення елементів виведення;
writeln–після закінчення виведення курсор переміщується на інший рядок.
Е) read (<список змінних>)–дозволяє ввести з клавіатури значення для змінних списку;
Readln– після закінчення введення курсор переміщується на інший рядок.
Б) умовний оператор
If <вираз логічного типу> then <оператор> [else <оператор>];
Вираз в квадратних дужках [else <оператор>] може бути відсутнім, тоді говорять про скорочену форму умовного оператора. Читається розгалуження так:
Якщо логічний вираз істинний, то виконується оператор1, інакше виконується оператор2.
Після then, else маємо право писати лише один оператор, якщо є потреба в більшій кількості, то в Pascal вводиться поняття складеного оператора. Це послідовність операторів, розділених (;), яка закріплена в операторну дужку [begin, end].
При написанні програм на деякому етапі може виникнути необхідність вибрати один із шляхів не серед 2-х альтернатив, а з більшої кількості. Для такого випадку в Pascal передбачений оператор вибору, який є розширенням оператора if.
Альтернатива:
оператор
мітка
оператор
мітка
Формат опису оператора вибору:
Case <змінна>of
<мітка 1>:<оператор 1>;
<мітка 2>:<оператор 2>:
…
<мітка n>:<оператор n>
[Else <оператор>]
End;
Задача. Студенти 21 групи в лісі збирали гриби, в кінці всі гриби зсипали до купи і порахували. В залежності від кількості грибів на екран КС вивести повідомлення:
А) зібрано к гриб; або
Б) зібрано к гриби; або
В) зібрано к грибів.
Var k,p:integer;
Begin
Writeln(‘vvestu kilkist zibranuh grubiv’);
Readln(k);
If (k=11) or (k=12) or (k=13) or (k=14) then
Begin
Writeln(‘zibrano’,k,’grubiv’);
57
End
Else
Begin
P:=k mod 10;
Case p of
1: Writeln(‘zibrano’,k,’grub’);
2,3,4: Writeln(‘zibrano’,k,’grubu’)
Else
Writeln(‘zibrano’,k,’grubiv’)
End
End
End.
Є) в Pascal-програмі розрізняють три оператори циклу:
1) з передумовою;
2) з післяумовою;
3) з параметром.
Структурний оператор з передумовою задає повторюючу сукупність операторів, яка міститься в ньому. Перед кожним черговим виконанням внутрішніх операторів проводиться перевірка значень логічного виразу, який служить критерієм повторення. Якщо цей вираз має значення істинне, то виконується чергова ітерація; інакше (коли значення виразу хибне) виконання оператора циклу завершується. Якщо із самого початку значення хибне, то цикл не виконається ні разу
Приклад: Дано натуральне число n. Чому рівна сума його цифр.
Program№ 2;
Var p,S,l,n: integer; n=362
Begin s=0
Readln (n); S:=0;
While n>0 do 1) p=2, s=0+2=2, l=36, n=36
Begin 2) p=6, s=2+6=8, l=3, n=3
P:=n mod 10; 3) p=3, s=8+3=11, l=0, n=0
S:= S + p; ---------------------
L:=n div 10;
n:=l
end;
Writeln (s)
End.
Формат опису оператора циклу з передумовою:
While <логічний вираз> do <оператор>;
після do маємо право писати лише один оператор. При потребі більшої кількості організовуємо один складений оператор з допомогою операторних дужок begin
End.
Оператор циклу з післяумовою відрізняється від попередньою тим, що:
1)умова перевіряється після виконання чергової ітерації (таким чином гарантується хоча б одне виконання тіла циклу);
2) критерій припинення циклу полягає в тому, що значення логічного виразу приймає значення істинне; а якщо значення хибне, то даний цикл повторюється. Синтаксична діаграма:
Тіло циклу повторюється до тих пір, поки умова не стане істинна.
Формат опису
Repeat
<серія операторів>
Until <логічний вираз>;
Логічний вираз-це умова, яка може приймати значення хибності або істинності.
Приклад: Нехай у0=0, к=1,2..., . Дано дійсне е. Знайти перший член уn, для якого виконується abs(уn-уn-1)<е (де е-дуже маленьке число, е=0.000001).
Program N_3;
var е, у0,у:Real; n: word;
begin
readln (e);
y0:=0; n:=1;
y:=(y0+1)/(y0+2); y1=1/2
if abs(y-y0)<e then умова хибна-нічого не виконується
begin
writeln (y);
exit
end;