Отримання знань

дистанційна підтримка освіти школярів


 Матеріал підготувала Підлужняк Наталія Григорівна, вчитель інформатики ФМГ №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.

4. Наработки по информатике Бройченко А.Г.

5. Первоначальные сведения о программировании на языке Pascal. Работа с величинами. Ввод-вывод. Выражения. Линейные алгоритмы


В системі: гості - (1); користувачі - (0)