Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_1.doc
Скачиваний:
10
Добавлен:
23.02.2016
Размер:
268.8 Кб
Скачать

1.3. Оператори мови Turbo Pascal

Оператор присвоєнняскладається з лівої і правої частин, розділених знаком присвоєння ”:=.У лівій частині знаходиться ім'я змінної або функції, а в правій –вираз, ім'я іншої змінної або ім'я функції. Дія оператора присвоєння полягає в обчисленні виразу або функції та заміни поточного значення змінної у лівій частині на обчислене значення виразу в правій частині. Тип змінної, що стоїть зліва, і тип правої частини повинні бути однаковими. Існує єдиний виняток: змінній дійсного типу можна присвоювати цілочислове значення. Присвоювати можна дані будь-яких типів, крім файлових.

Вираз складається з операцій і операндів. Операндом може бути константа, змінна або ім'я функції. Обчислення виконуються зліва направо з урахуванням пріоритету операцій. У мові Паскаль є чотири рівні пріоритету (подані в порядку зменшення:

1) операція заперечення NOT;

2) мультиплікативні операції *, /, DIV, MOD, AND, SHL, SHR;

3) адитивні операції +, -, OR, XOR;

4) операції відношення =, <>, <, >, <=, >=, IN.

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

1) областю дії мітки є той блок, в якому вона описана і перехід можливий лише всередині цього блоку;

2) забороняється перехід всередину структурного оператора.

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

Оператори введення-виведення Read, Readln, Write, Writeln дають змогу працювати з різними фізичними пристроями: клавіатурою, дисплеєм, принтером, дисководами та ін. Розглянемо організацію введення з клавіатури і виведення на дисплей.

Оператор введення Read призначений для надання необхідних значень даним програми. Формат оператора: Read(а1,а2,...,an), де а1,а2,...,an – змінні допустимих типів. Значення а1, ..., аn під час введення відокремлюються пропуском, введення завершуються натискуванням клавіші Enter (повернення каретки або клавіша введення). Кількість значень, що вводяться, та їх типи повинні відповідати кількості і типам змінних в операторі Read. В іншому випадку виникає помилка введення-виведення. Наприклад, під час виконання програми

Var i:integer;

c:Char;

begin

Read(c,i) end.

Правильним є введення: А 1234.

Оператор введення Readln аналогічний оператору Read, проте наступний оператор введення-виведення буде вводити або виводити дані з нового рядка.

Оператор виведення Write слугує для виведення значень змінних, виразів і рядків символів. Формат оператора: Write(а1, а2, ..., аn), де а1, ..., an – змінні допустимих типів, вирази або рядки. Рядок, коли виводиться, береться в одинарні лапки.

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

Var i:Integer;

S:String[10];

begin

t:=1234;s:=’Формат’;

Write(i:6,i+i:6,s:10) end.

результат матиме вигляд: _ _1234_ _2468_ _ _ _Формат.

Якщо виводиться змінна або вираз, що мають тип Real, то можна вказати загальну кількість знакомісць і кількість знакомісць для виведення десяткової частини значення змінної або виразу. Наприклад, Write(-Pi:10:5,29/3:7:4); видає .результат: _ _-3.14159_9.6667.

Оператор виведення Writeln аналогічний оператору Write, проте наступний оператор введення-виведення буде вводити або виводити дані з нового рядка.

Складений оператор (операторні дужки) використовується тоді, коли правила мови передбачають лише один оператор, а програмісту треба виконати послідовність операторів. Виконання складеного оператора полягає в послідовному виконанні всіх включених в нього операторів. До складеного оператора входять ключове слово begin, послідовність операторів і ключове слово end. Пара слів begin і end називається операторними дужками. Після begin і перед end крапку з комою можна не ставити.

Умовний оператор слугує для виконання або невиконання деякого оператора залежно від істинності тих чи інших умов. Умовний оператор складається з ключового слова If, за яким іде вираз логічного типу , ключового слова then і оператора. За оператором може йти ключове слово else і новий оператор.

Виконання умовного оператора полягає в обчисленні логічного виразу. Якщо його значення True, то виконується оператор, що стоїть за словом then. Якщо значення виразу-умови False і умовний оператор не містить слова else, то його виконання завершується. Якщо є слово else , то виконується оператор, що стоїть після нього.

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

If <умова> then <оператор1> або If <умова> then <оператор1>;

If <умова> else <оператор1> else <оператор2>;

Перша форма називається скороченою (неповною), друга – повною формою умовного оператора. Крапка з комою перед else не ставиться.

Якщо в якійсь гілці умовного оператора треба виконати кілька операторів, то їх слід взяти в операторні дужки. Один умовний оператор може входити в інший умовний оператор. В цьому випадку кожне слово else відповідає останньому перед ним then для якого ще не було else.

Таким чином, конструкція такого вигляду:

If <умова1> then If <умова2> then <оператор1> else <оператор2>;

трактується як

If<умова1>then

begin If <умова2> then <оператор1> else <оператор2> end.

Приклади скороченої та повної форм умовного оператора:

If x>y then z:=x;

If x>y then Write(‘X більше Y’)

else begin z:=y; Write(‘X не перевищує Y’) end;

Блок-схема оператора If наведена на рисунку 1.1.

Рисунок 1.1 Блок - схема оператора If.

Оператор вибору призначений для виконання одного з кількох можливих операторів. Він складається: з ключового слова Case, за яким йде селекторний вираз; ключового слова of; послідовності операторів, кожному з яких передує мітка (або список міток, або деякий діапазон значень міток), яка відокремлена від оператора двокрапкою (:); ключового слова end. Як і умовний оператор, оператор вибору може містити ключове слово else, яке повинно стояти останнім перед end.

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

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

Case <вираз-селектор>of

<список міток 1> : <оператор1>;

…………………………………

<список міток N> : <оператор N>;

else <оператор>;

end;

Мітки та значення виразу-селектора повинні бути одного і того самого ординального типу. В списку міток вони відокремлюються одна від одної комою. Кожна мітка повинна бути унікальною у списках міток, тобто зустрічатись лише один раз. Мітки оператора вибору не описуються в розділі Label і на них не можна переходити оператором Goto.

Наприклад,

Var letter:Char;

begin

readln(letter);

Case UpCase(letter) of

A’,’E’,’I’,’J’,’O’,’U’,’Y’ :Write(‘Латинська голосна’);

B’..’D’,’F’..’H’,’K’..’N’,‘P’..’T’,’V’..’X’,’Z’:Write(‘Латинська приголосна’)

else Write(‘Символ не є латинською літерою’)

end end.

Блок-схема оператораCase наведена на рисунку 1.2.

Рисунок 1.2 Блок - схема оператора Case.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]