Налагодження програмного коду
Урок 46
8
Синтаксичні помилки�в програмному коді
Компілятор створює виконувану програму лише в тому випадку, коли початковий текст не містить синтаксичних помилок. У більшості випадків щойно набрана програма містить помилки. Програміст повинен їх усунути.
Розділ 6 § 26
Процес усунення помилок називають налагодженням програмного коду.
8
© Вивчаємо інформатику teach-inf.at.ua
Синтаксичні помилки�в програмному коді
Помилки в написанні або розміщенні ключових слів та інших елементів коду називають синтаксичними, або помилками періоду компіляції (англ. compile error). При виявленні помилки компілятор Lazarus зупиняється навпроти першого оператора, в якому виявлено помилку.
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Синтаксичні помилки�в програмному коді
Рядок, що містить помилку, виділяється червоною смугою. У нижній частині екрана з'являється вікно Повідомлення з відомостями про всі помилки, знайдені у проекті. Кожен рядок цього вікна містить назву файла, в якому знайдено помилку, номер рядка з помилкою і характер помилки.
Розділ 6 § 26
Вікно Повідомлення
Рядок, перед яким помилка (пропущена ;)
8
© Вивчаємо інформатику teach-inf.at.ua
Синтаксичні помилки�в програмному коді
Синтаксичні помилки найчастіше виникають, якщо програміст порушує структуру запису складних операторів або не повністю записує програмні блоки операторів.
Розділ 6 § 26
У фрагменті запису оператора if перед ключовим словом Else помилково поставлено символ «;».
8
© Вивчаємо інформатику teach-inf.at.ua
Синтаксичні помилки�в програмному коді
Для одержання детальнішої інформації про характер помилки необхідно звернутися до довідкової системи, натиснувши клавішу F1.
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Синтаксичні помилки�в програмному коді
Зауважимо, що одна помилка може викликати інші, які зникнуть після виправлення першої. Тому після виправлення кожної помилки доцільно запускати програму знову.
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Помилки виконання
Деякі помилки Lazarus виявляє під час виконання програми, коли програма намагається обробити неприпустимі дані. Такі помилки називають помилками періоду виконання (англ. run-time error).
У даному фрагменті наявна спроба ділення на нуль, про що і йдеться в повідомленні про помилку:
Розділ 6 § 26
а := 6;
b := 0;
X := a/b;
Edit1.Text := FloatToStr(X);
8
© Вивчаємо інформатику teach-inf.at.ua
Помилки виконання
Для локалізації місця помилки рекомендується у вікні редагування тексту встановити вказівник миші у рядку перед місцем, що перевіряється, виділити цей оператор, клацнувши на смузі ліворуч від тексту програми, і натиснути клавішу F4 (виконання до курсору). Після цього виконання програми буде зупинено на рядку, що містить курсор.
Розділ 6 § 26
Тепер можна навести на змінну вказівник і в спливаючій підказці побачити, яке значення вона має на даний момент.
8
© Вивчаємо інформатику teach-inf.at.ua
Логічні помилки
Більшість помилок викликана неправильною логікою програми, тобто помилками, яких припустилися під час розробки алгоритму. Такі помилки називають логічними. Ці помилки найскладніше виправити. Програма може бути успішно скомпільована, але результати її виконання виявляться хибними.
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Логічні помилки
Так, якщо ви, бажаючи збільшити число а на 1, замість
Розділ 6 § 26
а := а + 1
пишете
а := а + 2,
То компілятор цього не помітить. Найпростіший спосіб виявити логічну помилку — це виконати програму в покроковому режимі, аналізуючи значення змінних на кожному кроці.
8
© Вивчаємо інформатику teach-inf.at.ua
Логічні помилки
Допомагають у пошуку логічних помилок коментарі, які можна включати до тексту програми.
Розділ 6 § 26
Коментар — це текст, який ігнорується компілятором і включається до тексту програми з метою полегшення розуміння програмного коду.
Щоб компілятор відрізнив команди від коментарів, у мові Lazarus коментарі потрібно брати у фігурні дужки:
S := Edit3.Text; { введення дати народження }
8
© Вивчаємо інформатику teach-inf.at.ua
Логічні помилки
Якщо текст коментаря короткий і не займає більше одного рядка, то можна перед коментарем замість дужок поставити дві похилі риски:
Розділ 6 § 26
S := Edit3.Text; // введення дати народження
Вдало сформульовані коментарі значно спрощують подальшу розробку програми.
8
© Вивчаємо інформатику teach-inf.at.ua
Логічні помилки
Програмування неможливе без помилок. Тому під час налагодження програми слід уважно аналізувати інформацію про помилку, яку видає налагоджувач, щоб швидко визначити, яка допущена помилка та як її виправити.
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
Процедура
«Ребуси українською» © rebus1.com
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
а := 6; b := 0; X := a/b;
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 26, ст. 128-133
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Сторінка
132-133
Розділ 6 § 26
8
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
8