Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структура Pascal.docx
Скачиваний:
3
Добавлен:
12.11.2019
Размер:
135.72 Кб
Скачать

Символьний тип даних 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

k Exit

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(уnn-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;