Оператори Turbo-Pascal. Оператор присвоєння. Складений оператор

Складений оператор опрацьовується, як один оператор, що має вирішальне значення там, де синтаксис Паскалю допускає використання тільки одного оператора.

begin
оператор1;
........
операторN
end

Оператори записують в операторні дужки початок і кінець, відокремлюють один від одного крапкою з комою. Виконуються оператори в порядку запису.
Зверніть увагу, що в Паскалі символ крапка з комою служить для відокремлення операторів один від одного, а не для завершення оператора. Тому після останнього оператора (перед ключовим словом end) крапку з комою ставити не потрібно. Однак, якщо вона є, то у випадку складеного оператора цей символ сприймається як порожній оператор (оператор, який не виконує ніяких дій). В операторі if, де синтаксис вимагає запису одного оператора, наявність крапки з комою приводить до повідомлення про помилку.
Можна сформулювати таке правило:

крапку з комою після оператора пишуть завжди, крім випадків, коли наступним словом є end, until або слово else оператора if.

Оператор присвоєння має вигляд : < зміна >:=< вираз > ;

При його виконанні обчислюється значення виразу, що стоїть справа і присвоюється змінній, яка стоїть зліва. При цьому тип виразу повинен співпадати із типом змінної. Однак допускається присвоєння дійсним змінним цілочисельних значень.

Вирази, присутні в операторі присвоєння, можуть бути арифметичними, логічними і рядковими. Розглянемо арифметичні вирази. До їх складу входять числа, числові змінні та константи, стандартні функції, з'єднанні арифметичними операціями та круглими дужками.

Для арифметичних операцій над числовими операндами встановлена така черговість (пріоритет) виконання:

1)обчислення функцій; 2) множення (*), ділення (/), ділення націло div), остача від ділення (mod); 3) додавання (+), віднімання (-).

Для зміни порядку виконання арифметичних операцій використовують круглі дужки. Операції одного і того ж самого пріоритету виконуються зліва направо у порядку їх появи у виразі.

 

 

Умовні оператори

Умовні оператори дозволяють вибирати для виконання ті чи інші частини програми в залежності від деяких умов. Якщо, наприклад, у програмі використовуються речові змінні x і z, і на якомусь етапі рішення задачі потрібно обчислити z = max (x, y), то бажаний результат виходить в результаті виконання або оператора присвоювання z: = x, або оператора присвоювання z: = y. Оскільки значення змінних x і y заздалегідь невідомі, а визначаються в процесі обчислень, то в програмі необхідно передбачити обидва ці оператора присвоювання. Однак насправді повинен виконатися один з них. Тому в програмі має бути вказівка ​​про те, в якому випадку треба вибирати для виконання той чи інший оператор присвоювання.

Ця вказівка ​​природно сформулювати з використанням відносини x> y. Якщо це відношення при поточних значеннях x і y справедливо (приймає значення true), то для виконання повинен вибиратися оператор z: = x; в іншому випадку для виконання повинен вибиратися оператор z: = y (при x = y байдуже, який оператор виконувати,так що виконання оператора z: = y в цьому випадку дасть правильний результат).

Для завдання подібного роду розгалужуються обчислювальних процесів у мовах програмування існують умовні оператори. Розглянемо повний умовний оператор Паскаля:

if B then S1 else S2
Тут if (якщо), then (то) і else (інакше) є службовими словами, В - логічне вираження, аS1 та S2 - оператори.

Виконання такого умовного оператора в Паскалі зводиться до виконання одного з вхідних в нього операторів S1 або S2: якщо задане в операторі умова виконується (логічний вираз У приймає значення true), то виконується оператор S1, в іншомувипадку виконується оператор S2.

Алгоритм рішення згаданої вище завдання обчислення z = max (x, y) можна задати у вигляді умовного оператора Паскаля.

 

 

Оператор вибору.

При написані програми на Паскалі не рекомендується багаторазово використовуючи вкладені один в одного умовні оператори - програма стає громіздкішою і важкою для розуміння. Вважається, що число рівнів вкладень не повинно перевищувати двох - трьох. Якщо ж необхідно перевіряти багато умов і в залежності від них виконувати ті чи інші діє, то для цього використовують оператор вибору варіанту.

Загальний вигляд оператора вибору варіанту:

case<вираз-селектор> of
<список констант 1>:<оператор 1>;
................................
<список констант N> : <оператор N>;
else<оператор>
end;

Оператор case виконується наступним чином. Спочатку обчислюється значення < виразу - селектора >, потім реалізується той оператор, константа вибору якого співпадає із значенням селектора. Якщо ні одна з констант не рівна значенню селектора , то виконується оператор, що стоїть за службовим словом else. Якщо else відсутнє, то активізується оператор, що знаходиться за словом end, тобто наступний оператор після case. Селектор повинен відноситися до одного з цілочисельних типів (що знаходяться в діапазоні –32768 .. 32767), булевого, символьного чи типу користувача. Забороняється використання селектора дійсного чи рядкового типу. Список констант вибору складається з довільної кількості значень чи діапазонів, відділених один від одного комами. Границі діапазону записується двома константами через розподільник "..". Тип констант в будь-якому випадку повинен співпадати із типом селектора.

Приклад.

caseIof
1: Z:=I+10;
2: Z:=I+100;
3: Z:=I+1000
end;