- •Лекція №4-5
- •План лекції
- •Структура програми
- •Заголовок програми
- •Розділ вказівки використовуваних модулів (Речення uses)
- •Розділ описів
- •Описи міток (позначок)
- •Опис констант
- •Прості константи
- •Типізовані константи
- •Типізовані константи структурованих типів
- •Опис типів
- •Опис змінних
- •Опис експорту
- •Розділ операторів (операторний блок)
- •Стандартні процедури введення (Read, ReadLn) і виведення (Write, WriteLn)
- •Формати виведення.
- •Зверніть увагу на наявність пропусків перед символами b і d: ‘ b‘ і ‘ d’. Ці пропуски не допускають злиття зображень даних на екрані. Оператори мови Pascal
- •Оператор присвоєння
- •Оператор процедури
- •Оператор переходу
- •Порожній оператор
- •Структурні оператори
- •Складений оператор
- •Умовні оператори
- •Умовний оператор if
- •Оператор вибору (варіанта)
Порожній оператор
Порожній оператор це точка – (.) Використовується там, де за синтаксисом оператор необхідний, однак ніяких дій виконувати не потрібно.
Структурні оператори
Структурні оператори містять у собі інші оператори й управляють послідовністю їхнього виконання.
В Turbo Pascal структурними операторами є:
-
складений оператор;
-
умовні оператори;
-
оператор альтернативи if;
-
оператор вибору case;
-
оператори циклу:
-
оператор циклу з передумовою while;
-
оператор циклу з післяумовою repeat;
-
оператор циклу з лічильником for;
-
оператор для записів with.
Складений оператор
Складений оператор поєднує групу операторів у єдине ціле, після чого вони можуть вважатися одним оператором. Складений оператор складається з послідовності поєднуваних операторів, які розташовуються між ключовими словами begin і end.
Складений оператор використовується в тих випадках, коли синтаксис мови допускає в певній точці програми вказівку тільки одного оператора, а по алгоритму в цьому місці необхідно виконати групу операторів. як правило, складений оператор використовується спільно зі структурними операторами.
Умовні оператори
В Turbo Pascal включені два умовних оператори - if і case, кожний з яких може бути записаний у двох формах: повній й неповній, що відповідає чотирьом узагальненим керуючим конструкціям алгоритмів. Синтаксична діаграма умовного оператора має такий вигляд.
Хоча обоє операторів if і case по своїй суті є умовними, однак, історично склалося так, що оператором умови (умовним оператором) називається оператор if, а оператор case називається оператором вибору або оператором варіанта. Надалі будемо дотримуватися цієї історичної термінології.
Умовний оператор if
if Вираз then Оператор1 else 0ператор2; |
if Вираз then Оператор; |
Синтаксична діаграма оператора if показана нижче.
При виконанні умовного оператора спочатку обчислюється Вираз, результат якого може приймати тільки логічний тип, а потім, залежно від значення результату (True, False), виконується або Оператор1, що стоїть після ключового слова then (якщо результат дорівнює True), або 0ператор2, що стоїть після ключового слова else (якщо результат дорівнює False).
У випадку, коли оператор if записаний у неповній формі, при значенні результату False керування передається операторові, що слідує безпосередньо після оператора if, а Оператор, що стоїть за ключовим словом then, пропускається.
if А > В then В : = А ; помилка! else С := В; |
Приклад з помилкою:
У показаному вище прикладі крапка з комою, що стоїть перед ключовим словом else закінчує текст оператора if А це приводить до синтаксичної помилки, оскільки оператора, що починається із ключового слова else в Turbo Pascal немає. Щоб не допускати таких помилок доцільно запам'ятати таке правило: Перед ключовим словом else символ ";" ніколи не ставиться.
По синтаксису після ключових слів then і else може стояти всього лише один оператор.
Якщо ж у якій-небудь із гілок альтернативи (then або else) або відразу в обох потрібно виконати декілька операторів, то варто скористатися складеним оператором begin … end , який дозволяє інтерпретувати групу операторів як один оператор. Відмітимо, що оператори, розташовані між ключовими словами begin ... end, також як і скрізь, повинні розділятися крапкою з комою.
Узагальнені форми найпростішого випадку оператора if наведені в таблиці 3-1.
if вираз then begin оператор; if вираз then оператор else оператор; оператор end else begin оператор; if вираз then оператор end |
Наприклад:
Таблиця 3-1
Кількість операторів у гілці |
Узагальнена форма оператора if |
|
then |
else |
|
один |
один |
if вираз then оператор else оператор |
декілька |
один |
if вираз then begin оператор; оператор; оператор end else оператор |
один |
декілька |
if вираз then оператор else begin оператор; оператор; оператор end |
декілька |
декілька |
if вираз then begin оператор; оператор; оператор end else begin оператор; оператор; оператор end |
if вираз then if вираз then оператор else оператор ???? |
Наприклад:
if вираз then if вираз then оператор else оператор |
Якщо в попередньому прикладі більш чітко позначити структуру вкладеності, :записавши else на одному рівні з then, якому воно відповідає, то одержимо такий фрагмент:
Завдання 1 З'ясувати, чи належить точка з координатами X і Y колу одиничного радіуса з центром на початку координат.
program Z1;
var X,Y;Real;
begin
Write('уведіть 2 дійсні числа');
Readln(X,Y);
Write(Точка (' , X:6:3, ',', Y:6:3, ')' );
if sqr(X)+sqr(Y)<1
then Write('попадає')
else Write('не попадає');
Writeln('у коло одиничного радіуса');
end.
Завдання 2 Написати програму, що аналізує, до якого алфавіту належать уведена буква, а також велика вона або мала.
program Z2;
var B : Char; Pr,Interval1, Interval2 : Boolean;
begin
Write(' натисніть на символьну клавішу');
Read(B);
Write(' - це ');
Interval1 := (B<'A') or ( (B>'Z') and (B<'a') ) or ( (B>'z') and (B<'А') );
Interval2 := ( (B>'п') and (B<'p') ) or (B>'я');
If (Interval1=True) or (Interval2=True)
then Write('не')
else
begin
if B<'z'
then
begin
Write('англійська');
Pr:=B<='Z'; {більша}
end
else
begin
Write('російська');
Pri:=B<='Ю';
end;
if Pr then Write('більша') else Write('маленька');
end;
Write('буква');
end.