Структура програми на Турбо Паскаль

Програма мовою Паскаль складається із заголовка, розділів описів та розділу операторів. Заголовок програми містить ім'я програми, наприклад:

Описи можуть включати:

  • розділ бібліотек (модулів), що підключаються;
  • розділ опису міток;
  • розділ опису констант;
  • розділ опису типів;
  • розділ опису змінних;
  • розділ опису процедур та функцій.

Розділ опису модулів визначається службовим словом USES і містить імена модулів, що підключаються (бібліотек) як входять до складу системи Turbo Pascal, так і написаних користувачем. Розділ опису модулів має бути першим серед розділів описів. Імена модулів відокремлюються один від одного комами:

Будь-який оператор у програмі може бути позначений міткою. Ім'я мітки визначається за правилами освіти ідентифікаторів Турбо Паскаль. В якості мітки можуть використовуватися довільні цілі числа без знака, що містять не більше чотирьох цифр. Мітка ставиться перед оператором і відокремлюється від нього двокрапкою. Всі мітки, що використовуються в програмі, повинні бути перераховані в розділіопису міток, наприклад:

label 3, 471, 29, Quit;

Опис констант дозволяє використовувати імена як синоніми констант, їх необхідно визначити в розділі опису констант :

const K = 1024; MAX = 16384;

У розділіопису змінних необхідно вказати всі змінні, що використовуються в програмі, і визначити їх тип:

var P, Q, R: Integer; A, B: Char; F1, F2: Boolean;

Опис типів, процедур та функцій буде розглянуто нижче. Окремі розділи описів можуть бути відсутніми, але слід пам'ятати, що в Паскаль - програмі повинні бути обов'язково описані всі компоненти програми.

Розділ операторів є складовим оператором, який містить між службовими словами

послідовність операторів. Оператори відокремлюються один від одного символом;. Текст програми закінчується символом крапка.

program Primer; var x,y,s: integer;begin WriteLn('Введіть через пропуск два числа'); ReadLn(x,y); s: = x + y; WriteLn('Сума чисел дорівнює ',s);end.

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

program Primer; uses Crt; var x, y, s: integer; begin ClrScr; WriteLn('Введіть через пропуск два числа'); ReadLn(x,y); s: = x + y; WriteLn('Сума чисел дорівнює',s); ReadKey; end.

- емулювати математичний співпроцесор;

- формувати далекий тип виклику процедур та функцій;

- Використовувати математичний співпроцесор;

- перевіряти вихід за межі діапазонів.

Деякі ключі компіляції можуть містити параметр, наприклад:

- включити в текст програми, що компілюється, названий файл.

Організація розгалужень у програмі.

У мові Паскаль використовується два оператори реалізації умовних переходів - IF і CASE, і навіть оператор безумовного переходу GOTO. Вони дають змогу порушити послідовний порядок виконання інструкцій програми.

Оператор умовного переходу

Оператор умовного переходу в Турбо Паскаль має вигляд:

ifумоваthenоператор 1elseоператор 2;

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

Необхідно пам'ятати, що перед ключовим словом else крапка з комою ніколи не ставиться!

else - частина в операторі if може бути відсутнім:

ifумоваthenоператор 1;

Тоді у разі невиконання логічної умови керування відразу передається оператору, що стоїть у програмі після конструкції if.

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

if x > 0 then modul := x else modul := -x; if k > 0 then WriteLn('k - число позитивне'); if min > max then begin t := min; min: = max; max := t; end;

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

Часто виникають ситуації, коли доводиться здійснювати вибір однієї з кількох альтернативних шляхів виконання програми. Незважаючи на те, що такий вибір можна організувати за допомогою оператора if..then, зручніше скористатися спеціальним оператором вибору. Його формат:

caseвиразofваріант:оператор; .варіант:оператор;end;

caseвиразofваріант:оператор; .варіант:оператор; elseоператорend;

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

case ch of 'A'..'Z', 'a'..'z' : WriteLn('Літера'); '0'..'9': WriteLn('Цифра'); '+', '-', '*', '/': WriteLn('Оператор'); else WriteLn('Спеціальний символ')end;

Оператор безумовного переходу

Крім операторів умовного переходу, існує також оператор безумовного переходу goto. Формат:

Оператор goto переходить під час виконання програми до певного оператора програми, перед яким знаходитьсямітка.Міткаповинна бути описана в розділі опису тегів тієї програми (процедури або функції), в якій вона використовується. Не можна перейти з однієї процедури чи функції до іншої.

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

label 1; begin. goto 1; . 1: WriteLn('Перехід до позначки 1');end.

Цикли

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

Якщо наперед відома кількість необхідних повторень, то цикл називаєтьсяарифметичним. Якщо ж кількість повторень наперед невідома, то говорять проітераційний цикл.

В ітераційних циклах проводиться перевірка деякої умови, і в залежності від результату цієї перевірки відбувається вихід з циклу, або повторення виконання тіла циклу. Якщо перевірка умови проводиться перед виконанням блоку операторів, такий ітераційний цикл називається цикломз передумовою (цикл "поки"), а якщо перевірка проводиться після виконання тіла циклу, то це цикл>з умовою (цикл "до").

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

Арифметичні цикли

forзмінна:=значення 1toзначення 2doоператор

forзмінна:=значення 1downtoзначення 2doоператор

Оператор for викликаєоператор, що знаходиться після слова do, по одному разу для кожного значення в діапазоні відзначення 1дозначення 2.

Змінна циклу, початкове та кінцеве значення повинні мати порядковий тип. Зі словами to, значення змінної циклузбільшується на 1 при кожній ітерації циклу. Зі словом downto, значення змінної циклузменшується на 1 при кожній ітерації циклу. Не слід самостійно змінювати значення керуючої змінної всередині циклу.

Як і у випадку використання оператора умовного переходу, слід пам'ятати, що синтаксис мови допускає запис лише одного оператора після ключового слова do, тому якщо ви хочете в циклі виконати групуоператорів, обов'язково треба об'єднати їх у складовий оператор (обгортати операторними дужками begin . end). В іншому випадку буде зроблена логічна помилка програми.

Приклад 1. Квадрати чисел від 2-х до 10-ти.

for x:=2 to 10 do WriteLn(x*x);

Приклад 2. Латинський алфавіт.

for ch:='A' 'Z' do Writeln(ch);

Приклад 3. Використання циклу з downto.

for i:=10 downto 1 do WriteLn(i);

Приклад 4. Використання складового оператора.