Отримання знань
дистанційна підтримка освіти школярів
Матеріал підготувала Підлужняк Наталія Григорівна, вчитель інформатики ФМГ №17
І. Теоретичний матеріал
Структура Pascal-програми
Будь-яку мову програмування можна уявити собі як деякий засіб спілкування з комп’ютером. Тому, як і в будь-якій іншій мові спілкування, тут є певні домовленості у поданні своїх висловів.
Синтаксично Pascal-програма складається з окремих “речень”. Такими “реченнями” можуть бути описи самої програми або команди, з яких складається алгоритм. Кожне речення Pascal-програми повинно закінчуватись символом “;”.
Послідовність представлення алгоритму у вигляді Pascal-програми має певну закономірність:
Program <ім’я програми>;
Uses <розділ опису бібліотек (модулів), що підключаються>;
Label <розділ опису міток>;
Const <розділ опису констант>;·
Type <розділ опису типів>;·
Var <розділ опису змінних>;
procedure або function <розділ опису процедур або функцій>;
Begin
<розділ операторів>;
End.
Службові слова Pascal-програми для зручності виділені жирним шрифтом.
Службові слова – це ключові слова, з яких складаються оператори Pascal та назви його стандартних процедур та функцій, тобто слова, зарезервовані в самі мові Pascal.
Крім того, вся програма розбита на певні розділи. Бажано зберігати таку послідовність розташування розділів, хоча з досвідом ви побачите, що деякі з них можна міняти місцями. Першим рядком зі службовим словом program можна знехтувати.
Умовно цю структуру можна поділити на 2 частини - описову й виконувану.
Описова частина (program, uses, label, const, type, var) містить інформацію про те, які константи, мітки, змінні використовуватимуться в програмі. Саме за змістом цієї частини всім вказаним змінним відводиться місце в пам’яті комп’ютера за типами і послідовністю, в якій вони вказані в програмі.
Виконувана частина містить опис процедур, функцій та основний блок програми, який ще називається тілом програми і розташований між службовими словами begin і end.
Завершується Pascal-програма завжди символом “.”.
IІ. Написання алгоритму задачі та програми мовою Turbo Pascal
Задача № 1
Написати алгоритм додавання 2-ох цілих чисел та програму мовою Pascal.
Розв’язання
Міркування. Нам дано 2 числа. Позначимо їх d1, d2. Результатом буде сума цих чисел – деяке ціле число sym. Знайти значення суми можна за формулою: sym:=d1+d2.
алг Сума (ціл d1, d2, sym)
арг d1, d2 заголовок алгоритму
рез sym
поч
sym:=d1+d2 тіло алгоритму
кін
Контрольні приклади:
d1 | d2 | sym |
1 | 3 | 4 |
-3 | 2 | -1 |
1,5 | 3 | - |
Останній контр приклад неправильний, бо змінні описані як цілі, а не дійсні.
Програма мовою Turbo Pascal
PROGRAM Syma; Var d1, d2, sym : integer; BEGIN sym : =d1+d2; END. | · Назву писати кирилицею не можна· Описуємо змінні без поділу на аргументи і результати· Оформляємо з відступами (для зручності)· У кінці кожної лексеми (рядка) ставимо “;”· Описуємо формулу· Turbo Pascal не розрізняє великі й малі букви |
Примітка. BEGIN і END пишемо великими, щоб чітко бачити початок і кінець програми. У серйозних програмах будуть вкладені begin і end, до того ж не одні. Потрібно слідкувати, щоб кількість begin співпадала з кількістю end (за невеличкими винятками).
Якщо ми запустимо таку програму, то нічого не побачимо. Чому? Бо ми не вводимо початкові дані і не виводимо результат. В алгоритмічній мові вважається, що початкові змінні задані і результат виводиться. А звідки данні візьме Turbo Pascal? Потрібні блоки введення та виведення даних.
PROGRAM Syma;
Var
d1, d2, sym : integer;
BEGIN
Write (‘введіть 2 числа через пропуск’);
Read (d1, d2);
sym : = d1+d2;
Write (d1, ‘+’, d2, ‘=’, sym);
END.
Примітка. Оператори Write і Read використовуються для виведення та зчитування інформації відповідно. Дані у лапках ‘’ не розпізнаються компілятором і виводяться символ у символ. Замість d1, d2, sym виводяться їх значення. Зустрівши оператор Read комп’ютер чекає, поки не будуть введені 2 числа, причому d1 набуває значення 1-ого числа, а d2 - 2-ого. Якщо d1=2, d2=4, то оператором Write (d1, ‘+’, d2, ‘=’, sym) буде надруковано на екрані: 2+4=6.
Якщо ми хочемо, щоб після виведення на екран або зчитування даних, відбувався перехід курсору на наступний рядок, то слід використовувати оператори writeln і readln відповідно.
Задача № 2
Розширити попередню програму таким чином, щоб крім суми, обчислювались добуток та частка вказаних чисел.
Розв’язання
Введемо ще дві змінні dob і ch, які зберігатимуть результат множення та ділення відповідно. Опишемо їх після Var, пам’ятаючи, що добуток двох цілих чисел – число ціле. А от результат ділення в мові Pascal завжди є дійсним числом (навіть якщо числа діляться націло).
Var d1, d2, sym, dob : integer;
ch : real;
Опишемо формули, за якими обчислюватимемо добуток та частку. Операції множення та ділення мовою Pascal позначаються відповідно “*” і “/”.
dob:= d1*d2;
ch:=d1/d2;
Виведемо результати на екран, при цьому здійснюючи перехід на новий рядок після кожної фрази.
Writeln(d1,’*’d2,’=’,dob);
Writeln(d1,’:’,d2,’=’,ch);
Остаточний варіант програми матиме вигляд:
PROGRAM Syma;
Var
d1, d2, sym, dob : integer;
ch : real;
BEGIN
Write (‘введіть 2 числа через пропуск’);
Read (d1, d2);
sym : = d1+d2;
Writeln (d1, ‘+’, d2, ‘=’, sym);
dob : = d1*d2;
Writeln (d1, ‘*’, d2, ‘=’, dob);
ch:=d1/d2;
Writeln (d1, ‘:’, d2, ‘=’, ch);
END.
III. План роботи з програмою в середовищі Turbo Pascal
1) Перейти до робочого середовища, запустивши файл turbo.exe.
2) У новому вікні набрати текст програми.
3) Зберегти програму, натиснувши “гарячу клавішу” F2 або File/Save as… і ввівши певну назву латиницею. Pascal автоматично додасть розширення .pas. Введена назва з’явиться замість NONAME00.PAS, заданою по замовчуванню.
4) Прокомпілювати і запустити на виконання (Ctrl+F9).
5) Повиправляти помилки, якщо такі є. Програма не виконається до тих пір, поки буде хоча б одна помилка.
Повідомлення про найбільш поширені помилки
Error 3: Unknown identifier означає, що вказане ім’я змінної не описане в розділі змінних.
Error 4: Duplicate identifier може означати, що ім’я програми та деякої змінної однакові.
Error 8: String constant exceeds line – рядкова константа перевищує розміри рядка. Трапляється у разі непарної кількості апострофів у процедурі writе.
Error 11: Line too long – введено дуже довгий рядок.
Error 26: Type mismatch означає, що значення і тип значення, яке ви намагаєтесь їй присвоїти, не збігаються. Наприклад, присвоюєте значення 1.23 змінній, яку описали як цілу.
Error 89: Unexpected “(” або Error 89: Unexpected “)” – в арифметичному виразі не вистачає дужок.
Runtime error 106 виникає на етапі виконання програми й означає, що введені дані не збігаються з описаним типом. Наприклад, треба було ввести числове значення, а випадково був введений символ.
6) Про виконання програми свідчитиме чорне вікно з вказівкою ввести дані. Слід через пробіл ввести 2 цілих числа і натиснути клавішу Enter. Ми знову повернемось до тексту програми. Для перегляду результату слід натиснути ALT+F5.

Література
1. Караванова Т.П. основи алгоритмізації та програмування: 750 задач з рек. та прикл.: Посіб. – К.: Форум, 2002. – с.26-32.
2. Гаевский А.Ю. Информатика: 7-11 кл. Учеб. пособие. – К.: А.С.К., 2002. – с.273-280.
3. Окулов С.М. Основы программирования. – М.: БИНОМ. Лаборатория знаний, 2005. – с.9-18.