Published using Google Docs
Інформатика 10 (АП) Урок 13
Updated automatically every 5 minutes

Урок  13                                               Інформатика 10 (АП)

Етапи розробки проекту; кодування; налагодження; тестування.


Мета.  

Навчальна. ознайомити учнів з етапами розробки проекту, кодуванням, налагодженням тестування, основними помилками компіляції; набуття навичок запускати програму на виконання, одержу­вати й аналізувати результати.

Розвиваюча. Розвивати логічне мислення, операторську культуру.

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

Тип уроку. Урок засвоєння нових знань.

Учень повинні знати:

  1. Означення мови програмування.
  2. Основні конструкції мови про­грамуванню.
  3. Структуру Pascal-програми.
  4. Поняття редактора, налагоджувача, транслятора мови,його  запускний файл.
  5. Правила: уведення, налагодження програми, запуску її на виконання, створення exe-файла, завершення роботи з транслятором

Матеріали для роботи з учнями:

План

  1. Актуалізація опорних знань.
  2. Вивчення нового матеріалу.
  3. Практичні завдання.
  4. Запитання до уроку.
  5. Домашнє завдання.

Хід уроку


1. Актуалізація опорних знань.

  1. Середовище програмування
  2. Означення мови програмування.
  3. Програма
  4. Транслятор, інтерпретатор, компілятор
  5. Поняття редактора, налагоджувача, транслятора мови,його  запускний файл.
  6. Правила: уведення, налагодження програми, запуску її на виконання, створення exe-файла, завершення роботи з транслятором


2. Вивчення нового матеріалу.

Етапи розв'язування задач на комп'ютері

Розв'язування прикладної задачі на комп'ютері з використанням програмуван­ня включає такі етапи:

І етап. Постановка задачі.

 Розв'я­зування практичної задачі починається з опису вихідних даних і цілей задачі.

Постановка задачі вимагає уважного аналізу її формулювання з метою чіткого виділення вихідних даних і необхідних ре­зультатів. При цьому встановлюються обмеження на припустимі значення вели­чин, які застосовані у задачі. Математична постановка задачі - це точне форму­лювання умов і цілей розв'язування.

На цьому етапі потрібно чітко визна­чити умови задачі:

ІІ етап. Побудова математичної моделі.

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

ІІІ етап. Складання алгоритму.

На даному етапі потрібно обґрунтовано вибрати метод розв'язування задачі. Метод - це кон­кретний спосіб розв'язування задачі в рамках побудованої моделі, наприклад, широко застосовані методи наближених обчислень фу­нкцій, коренів рівнянь тощо.

Алгоритм - це організована послідовність вказівок ви­конання дій, спрямована на розв'язування задачі.

Алгоритм розв'язування задачі складається у відповідності до обраного методу. При складанні алгоритму необхідно враховувати всі його властивості. Розробка і складання алгоритму - найважливіший етап розв'язування задачі. Від якості алгоритму за­лежать правильність результатів, ефективність використання часу та оперативної пам'яті комп'ютера.

IV етап. Складання програми за розробленим алгоритмом.

Програмування - запис складеного алгоритму однією з мов про­грамування.

V        етап. Тестування і налагодження програми.

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

VI етап. Аналіз результатів.

На завершальному етапі програма виконується з даними, що становлять основну задачу. Після остаточного виконання програми робиться аналіз результатів. У випадку невірогідності результатів можлива зміна самого методу до розв'язування задачі і повернення до етапу побудови математичної моделі для її коригування та уточнення.

Етапи роботи користувача. 

1.   Спочатку активізують головне меню (для цього натис­кають на F10) і пункт File. Отримують додаткове спадне меню. У ньому вибирають команду New. Середовище переходить у режим створення нового файлу з назвою NONAME00.PAS. Набирають текст деякої програми.

2.   Для виправлення очевидних помилок уведення корис­туються традиційними прийомами редагування тексту, зокрема, такими клавішами чи їхніми комбінаціями для роботи з блока­ми тексту:

Enter                         — перейти на новий рядок, вставити порожній

рядок чи розбити рядок на два рядки;

Delete                       — вилучити символ над курсором;

Insert                        перемкнути режими вставки чи заміни;

Shift+стрілкивиокремити чи зняти виокремлення тексту;

Ctrl+Insert   — копіювати блок у буфер;

Shift+Del          перемістити блок з тексту в буфер;

Shift-flnsert — вставити текст з буфера у позначене курсором місце основного тексту;

Ctrl+Del           вилучити виокремлений блок з тексту;

Ctrl+Y                      — вилучити вибраний рядок з тексту.

3.   Якщо очевидних помилок немає, програму можна виконати за допомогою пункту головного меню Run або комбінації клавіш Ctrl+F9. Відбудеться компіляція і виконання програми. Щоб виконати компіляцію програми без її виконання, натискають на ALT+F9.

4.   Якщо система виявить синтаксичні помилки, то про це буде негайно повідомлено. Курсор буде в рядку, де допущено помилку, або безпосередньо показуватиме на позицію з помилкою. У верхньому рядку екрана буде повідомлення черво­ного кольору про зміст помилки, що суттєво полегшує її виправ­лення. Середовище перебуватиме в режимі редагування, і помил­ку легко можна виправити. Програма найчастіше фіксує такі помилки початківців (у дужках наведено текст повідомлення):

а)  пропущено крапку з комою (Error 85: ";" expected);

б) немає дужок (Error 89: ")" expected або Error 5: Syntax);

в)  не описана змінна (Error 3: Unknown identifier);

г)  повторне використання імен (Error 4: Dublicate identifier);

д)  неузгодження типів (Error 26: Type mismatch);

е) потрібна кома (Error 87:     expected) тощо.

 Помилку виправляють. Удруге виконують програму (натис­канням на Ctrl+F9). Виправляють наступну помилку та ін.

5.        Якщо синтаксичних помилок немає, програма буде вико­нана. Результати (якщо ви про них подбали) можна побачити у вікні результатів, для чого натискають на Alt+F5 або викорис­товують команди меню Debug, Screen Server. Натиснувши після перегляду результатів на будь-яку клавішу, переходять у режим редагування програми.

6.        Щоб для заданого pas-файлу створити exe-файл, активі­зують пункт Compile. Вибирають Destination. Натисканням на клавішу вводу вибирають режим Disk. Натискають на Alt+F9, і в поточний каталог на диску буде записано exe-файл, який можна виконувати поза середовищем.

7.        Щоб зберегти текст програми у файлі з розширенням .pas, знову активізують пункт File і підпункт Save As..., якщо файлу дають нове ім'я, або підпункт Save для зберігання файлу зі старим іменем. Щоб цю операцію виконати швидко, достатньо натиснути на клавішу F2.

8.        Для закінчення сеансу роботи і виходу із середовища потрібно ввійти в головне меню (F10), у підпункт File (Alt+F) і вибрати команду Exit (натискають на літеру х). Швидкий вихід забезпечує комбінація клавіш Alt+x.

9.        Для відкривання файлу з текстом програми, що є на дис­ку, входять у головне меню (F10), вибирають пункт File і команду Open. Щоб цю дію зробити швидко, достатньо натис­нути на клавішу F3. У вікні, що з'явиться на екрані, набирають назву файлу і натискають на клавішу вводу. Однак ліпше зроби­ти так: за допомогою клавіші Tab перейти в нижнє вікно, ви­брати з меню імен файлів потрібний файл і натиснути на кла­вішу вводу. Текст програми буде занесено у вікно редагування.

10.   Вікон з програмами може бути декілька. Переходити від одної програми до іншої можна за допомогою клавіші F6 або Alt+О (нуль). Щоб розкрити на весь екран чи згорнути вікно, користуються клавішею F5. Зручно розташувати вікна на екрані можна засобами пункту Window. Щоб закрити вікно, натискають на Alt+F3 або клацають мишею на значку прямо­кутника у верхньому лівому куті рамки вікна.

11.   Якщо унаслідок неправильних дій користувача вікно ста­ло неактивним (зникла подвійна рамка навколо вікна), то натис­ніть на клавішу Esc. Якщо це не допоможе, повідомте вчителя.

12. Якщо потрібна додаткова інформація, натискають на клавішу F1 і читають довідку про середовище і синтаксичні конструкції мови.

Основні помилки компіляції середовища Turbo Pascal 7.0

Середовище Турбо Паскаль подає вичерпну інформацію про характер і місце виявленої компілятором помилки. При виявленні помилки середовище автоматично завантажує у вікно редактора вихідний файл і поміщає курсор біля того місця, де у вихідному те­ксті виявлена помилка. При цьому у ввнизу вікна редактора з'являється діагностичне повідомлення. Після натискання на будь-яку клавішу (крім F1) верхній рядок відновлює свій первісний ви­гляд, і середовище переходить до режиму редагування. Якщо після появи повідомлення про помилку натиснути F1, на екрані з'явиться вікно довідкової служби з детальною інформацією про помилку і рекомендаціями з її усунення. Деякі помилки у вихідному тексті виявляються не відразу, а в ході контекстного розбору. Наприклад, невідповідність типів в операторі присвоювання не може бути ви­явлена доти, поки не буде повністю обчислений вираз в правій частині цього оператора. У таких випадках шукайте помилку ліво­руч від курсору або в попередньому рядку тексту.

Нижче наведено повідомлення про деякі помилки, з якими найчастіше зустрічається програміст-початківець, а також мож­ливі пояснення причин, що призвели до виникнення помилкової ситуації.

1   Out of memory (Вихід за границі пам'яті).

Компілятору не вистачає пам'яті. Якщо Ви використовуєте ін­тегроване середовище TURBO.EXE, те спробуйте застосувати компілятор ТРС.ЕХЕ - він займає менше пам'яті.

2   Identifier expected (Очікується ідентифікатор).

У цьому місці повинний знаходитися ідентифікатор.

3   Unknown identifier (Невідомий ідентифікатор).

Цей ідентифікатор не був описаний.

4   Duplicate identifier (Подвійний ідентифікатор).

Спроба двічі описати той самий ідентифікатор.

5   Syntax error (Синтаксична помилка).

У вихідному тексті знайдений неприпустимий символ.

6   Error in real constant (Помилка в дійсній константі).

7   Error in integer constant (Помилка в цілій константі).

8 String constant exceeds line (Рядкова константа не помістилась в рядку).

Ймовірно, Ви забули поставити апостроф наприкінці рядкової константи.

10   Unexpected End of file (Несподіваний кінець файлу).

Ймовірно, у програмі пропущене одне з службових слів End.

11   Line too long (Занадто довгий рядок).

Максимальна довжина рядка, оброблюваної компілятором, дорівнює 127 символів.

12   Type identifier expected (Тут потрібний ідентифікатор типу).

Не зазначений ідентифікатор типу.

13   Too many open files (Забагато відкритих файлів).

Поява цієї помилки означає, що конфігураційний файл CONFIG.SYS операційної системи не включає параметр FILES-xx чи цей параметр указує занадто мало файлів.

14   Invalid file name (Неправильне ім'я файлу).

Ім'я файлу невірно або зазначений неіснуючий шлях.

15   File not found (Файл не знайдений).

20   Variable identifier expected (Відсутній ідентифікатор змінної).

21   Error in type (Помилка в оголошенні типу).

Оголошення типу не може починатися з цього символу.

23   Set base type out of range (Базовий тип множини порушує границі).

24   File components may not be files (Компонентами файлу не мо­жуть бути файли).

25   Invalid string length (Невірна довжина рядка).

Довжина рядка повинна знаходитися в діапазоні під 1 до 255.

26   Type mismatch (Невідповідність типів).

Це повідомлення може бути викликане такими причинами:

-  несумісні типи змінної та виразу в операторі присвоювання;

-  несумісні типи фактичного і формального параметрів у звертанні до підпрограми;

-  тип виразу не сполучимий з типом індексу прп індексуванні масиву;

-  несумісні типи операндів у ви рач і.

27   Invalid subrange basetype (Неправильний базовий тип для типу-діапазону).

Припустимими базовими типами є всі порядкові типи.

28   Lower bound greater than upper bound {Нижня границя більша від верхньої).

29   Ordinal type expected (Потрібний порядковий тип).

30   Integer constant expected (Потрібна ціла константа).

31   Constant expected (Потрібна константа).

32   Integer or real constant expected (Потрібна ціла чи дійсна кон­станта).

33   Type identifier expected (Потрібний ідентифікатор типу).

34   Invalid function result type (Неправильний тип результату функції).

Правильними типами результату функції є прості і рядкові типи.

35   Label identifier expected (Потрібний ідентифікатор мітки).

Мітка не позначена за допомогою ідентифікатора, описаного в програмі.

36   BEGIN expected (Потрібний Begin).

37   END expected (Потрібний End).

38   Integer exression expected (Потрібний вираз типу Integer).

39   Ordinal exression expected (Потрібний вираз порядкового типу).

40   Boolean exression expected (Потрібний вираз типу Boolean).

41   Operand types Do not match operator (Типи операндів не відповідають операціям).

Дана операція не може бути застосована до зазначених операндів, наприклад, 'А1 diV 1В1.

42   Error in exression (Помилка у виразі).

Можливо, ви забули вказати операцію між двома операндами.

43   Illegal assigment (Невірне присвоювання).

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

44   Field identifier expected (Потрібний ідентифікатор поля).

Спроба використати запис цілком у тому місці, де потрібно посилання на поле запису.

50 DO expected (Потрібний оператор Do).

54 OF expected (Потрібно Of).

61   Invalid type cast (Невірне перетворення типу).

Можливі причини повідомлення:

-   спроба розмістити в пам'яті, зайнятій деякою змінною, значення виразу іншого типу у випадку, коли розмір розташовуваного зна­чення не дорівнює розміру змінної;

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

62   Division by zero (Ділення на нуль).

Попередня операція намагається виконати ділення на нуль.

63   Invalid file type (Неправильний файловий тип).

Даний файловий тип не обслуговується процедурою обробки файлів. Наприклад, процедура Readl П використовується для типізованого файлу або процедура Seek - для текстового файлу.

64   Cannot Read or Write variables of this type (Немає можливості читати чи виводити змінні даного типу).

Процедури Read (Readlп) і Write (Write!п) працюють тільки з даними простих типів.

66   String variables expected (Потрібна рядкова змінна).

67   String expression expected (Потрібний вираз рядкового типу).

Попередній вираз повинний мати рядковий тип.

74   Constant and case types Do not match (Типи констант і тип вира­зу оператора Case не відповідають один одному).

75   Record variable expected (Потрібна змінна типу запис).

76   Constant out of range (Константа порушує границі).

Можливі причини повідомлення:

-   індекс масиву виходить за його границі;

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

79 Integer or real expression expected (Потрібний вираз цілого чи дійсного типу).

Попередній вираз повинний мати тип Real чи Integer.

85  “;” expected (Потрібно вказати ";")

86   ":" expected (Потрібно вказати ":").

87   “,”          expected (Потрібно вказати ",").

88   "(" expected (Потрібно вказати "(").

89   ")" expected (Потрібно вказані ")").

90  "=" expected (Потрібновказати “=”).

91  “:=”          expected (Потрібно вказати ":=").

92   "{" or "(." expected (Потрібно вказати “[" чи "(").

93   "]” or ".)" expected (Потрібно вказати "]”        чи ".)")..

 

94     “.”    expected (Потрібно вказати ".").

95    “..”     expected (Потрібно вказати "..")

97   Invalid FOR control variable (Неправильний параметр циклу оператора For).

Параметр циклу оператора For повинний бути змінною поряд­кового типу.

98   Integer variable expected (Потрібна змінна цілого типу).

Попередня змінна повинна мати цілий тип.

100   String length mismatch (Невідповідність довжини рядка).

Довжина рядкової константи не відповідає кількості елементів символьного масиву.

101   Invalid ordering of fields (Невірний порядок полів).

Поля в константі типу запис повинні записуватися в порядку їхнього опису.

102   String constant expected (Потрібна константа рядкового типу).

103   Integer or real variable expected (Потрібна змінна типу Integer чи Real).

104   Ordinal variable expected (Потрібна змінна порядкового типу). 106 Character expression expected (Попередній вираз повинний ма­ти символьний тип).

108   Overflow in arihmetic operator (Переповнення при виконанні арифметичного оператора).

Результат попередньої арифметичної операції не лежить у діапазоні -2146483648..+2147483647. Використовуйте дійсні типи замість цілочисельних.

109   No enclosing FOR, WHILE or REPEAT statement (Немає операторів, що закінчують оператори For, Whi 1 е чи Repeat).

112   CASE constant out of range (Константа Case порушує припустимі границі).

Цілочисельні константи оператора Case повинні знаходитися в діапазоні від -32768 до 32767.

113   Error in statement (Помилка в операторі).

Даний символ не може бути першим символом в операторі. 121 Invalid qualifiler (Невірний квалификатор). Можливі причини повідомлення:

-  спроба індексувати змінну, котра не є масивом;

-  спроба вказати поле в змінній, котра не є записом.

124 Statement part too large (Занадто великий розділ операторів).

Турбо Паскаль обмежує розмір розділу операторів до величи­ни приблизно 24 Кбайта. Помістіть частину операторів в одну чи кілька процедур.

133   Cannot evaluate this expression (He можна обчислити даний вираз).

У виразі використовуються засоби, що не підтримуються.

134   Expression incorrectly terminated (Некоректне завершення виразу).

Контекстуально в даному місці програми повинний бути кінець виразу або оператора.

137 Structure variable are not allowed here (Тут неможна викори­стовувати змінну структурованого типу).

Робиться спроба виконати над змінною структурованого типу недопустиму операцію (наприклад, перемножити два записи). 140 Invalid floating-point operation (Неприпустима операція з з плаваючою комою).

При виконанні операції з плаваючою комою відбулося пере­повнення або ділення нй нуль.

Структура Паскаль-програми

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

Синтаксично Паскаль-програма складається з окремих «ре­чень». Такими «реченнями» можуть бути деякі описи для самої програми або команди, з яких складається даний алгоритм.

Кожне «речення» Паскаль-програми повинно закінчуватися символом «;».

Послідовність представлення алгоритму у вигляді Паскаль-програми має певну закономірність.

Визначимо її так:

program <ім'я програми>;

uses <розділ опису бібліотек (модулів), що підключаються>;

label <розділ опису міток>;

const <розділ опису констант>;

type <розділ опису типів>;

var <розділ опису змінних>;

procedure або function <розділ опису процедур і функцій>; <розділ операторів>

Службові слова Паскаль-програми (в даному випадку) виділені жирним шрифтом. Надалі службовими словами вважатимемо ключові слова, з яких складаються оператори Паскаля, і назви його стандартних процедур та функцій. Окрім того, вся програма розбивається на певні розділи. Бажано зберігати таку послідовність використання розділів, хоча, набуваючи досвіду, ви побачите, що деякі з них можна міняти місцями.

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

Розділ типів обов'язково повинен передувати розділу змінних, а розділ міток та розділ констант бажано розміщувати перед розділом типів.

Першим рядком програми зі службовим словом program можна знехтувати.

Умовно цю структуру можна поділити на дві частини - описову частину та виконувану.

Описова частина (program, uses, label, const, type, var) містить інформацію про можливості, які можна використовувати у програмі, які будуть константи, мітки, якими змінними користуватися.

Саме за змістом цієї описової частини всім вказаним змінним відводиться місце у пам'яті комп'ютера залежно від їх типів і

послідовності, в якій вони зазначені в програмі.

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

Завершується Паскаль-програма завжди символом « . «.

Приклад Програму, за допомогою якої можна обчислити площу круга, вказавши будь-який радіус.

program circle;

   var r, s : real;

       begin

write ('Задайте радіус круга: ');

readln (r);

s:=pi*r*r ;

writeln ('Площа круга з радіусом ‘,r,' дорівнює ‘,s)

     end.

Зверніть увагу на принцип вкладеності, за допомогою якого досяг­ається максимальна «читабельність» вашої програми.

Вміст розділу опе­раторів зміщений трохи вправо відносно службових слів begin та end.. Аналогічно записана і описова частина Паскаль-програми. Кожне «речення» програми записується з нового рядка. Оператори, які є вмістом інших, зміщуються відносно них так само вправо. Це дозволяє краще розібратися у складних програмах, знайти в них помилки не тільки самому автору, але й сторонньому користувачу.


3. Практичне завдання.

   За наведеним сценарієм виконайте завдання по створенню та налагодженню програми в середовищі Free Pascal.

  1. Запустити середовище Free Pascal  ПускFree Pascal.
  2. Выдкрийте нове выкно за допомогою елемента меню File-New.
  3. Набрати такий текст програми (зберігаючи відступи).

  1. Зберегти текст набраної програми за допомогою елемента меню File-Save аs....
  2. Запустити на виконання програму з активного вікна за допомогою «гарячих клавіш» Сtrl+F9.
  3. Виправити помилки, якщо вони будуть знайдені, і за­пустити програму на виконання ще раз.
  4. Зберегти налагоджену програму за допомогою, «гарячої клавіші» F2. Переглянути результати роботи програми за допомогою «гарячих клавіш» Аlt+F5 і повернутися назад в середовище за допомогою клавіші ЕSC.
  5. Завершити сеанс роботи в інтегрованому середовищі програмування  за допомогою «гарячих клавіш» Аіі+Х .


4. Питання до уроку.

  1. Які особливості та призначення мови програмування Паскаль ?
  2. Що таке алфавіт мови програмування?
  3. Що таке синтаксис мови програмування?
  4. Що таке семантика мови програмування ?
  5. Назвіть основні поняття мови програмування.
  6. Що називається оператором?
  7. Що таке ідентифікатор ?
  8. Назвіть основні розділи Паскаль-програми.
  9. На які частини можна поділити Паскаль -програму ? Яке їх призначення?

5. Домашнє завдання.

Вивчити теоретичний матеріал