Народна Освіта » Інформатика » § 26. Налагодження програмного коду

НАРОДНА ОСВІТА

§ 26. Налагодження програмного коду

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

• синтаксичні помилки (англ. compile error);

• помилки часу виконання (англ. run-time error);

• логічні (алгоритмічні) помилки.

синтаксичні помилки в програмному коді

Компілятор створює виконуваний файл лише в тому випадку, коли текст не містить помилок. Більшість помилок, які виявляються під час компіляції програми, є синтаксичними. Це помилки в написанні або розміщенні ключових слів та інших елементів коду. При виявленні помилок курсор встановлюється біля першого оператора з помилкою. Рядок, що містить помилку, виділяється жовтогарячою смугою. У нижній частині екрана з’являється текстове вікно, що містить відомості про цю помилку: ім’я файла, в якому знайдено

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

Типова помилка Syntax error, expected (Синтаксична помилка, очікувалось) — після інструкції не поставлено крапку з комою (рис. 26.1).

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

Помилки виконання

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

Розглянемо фрагмент програми:

Якщо таку програму запустити із середовища програмування Lazarus, то вона скомпілюється і працюватиме правильно при будь-яких значеннях змінних а і b, крім b = 0. Але в момент опрацювання зупинить свою роботу, вивівши на екран відповідне повідомлення (рис. 26.2).

 

Виконання програми буде зупинено на рядку, що містить помилку (рис. 26.3). Якщо навести на змінну вказівник миші, то з’явиться підказка з поточним значенням змінної.

 

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

Метою налагодження є виявлення помилки, яка виникає на етапі виконання програми і приводить до неправильних результатів її роботи.

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

 

Для керування налагодженням програми призначені кнопки для по-крокового виконання програми Вступити і Переступити (рис. 26.4). Клацаючи кнопки покрокового виконання, можна по рядках виконувати програму, контролюючи зміну значень змінних і правильність обчислень. Якщо

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

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

Щоб перервати режим покрокового виконання програми, потрібно натиснути сполучення клавіш Ctrl + F2.

Логічні помилки

Найскладніше виявити та виправити помилки, викликані неправильною логікою програми, тобто помилки, яких припустилися під час розробки алгоритму. Такі помилки називають логічними (алгоритмічними). У деяких випадках логічна помилка може привести до помилки виконання (див. приклад на с. 129-130).

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

Якщо ви, бажаючи збільшити число a на 1, замість a := a + 1 випадково напишете a := a + 2, то компілятор не виявить помилки, але результат роботи програми буде неправильним.

Одним зі способів виявлення логічної помилки є виконання програми в покроковому режимі з аналізом значень змінних на кожному кроці.

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

Коментар — це текст, який ігнорується компілятором і включається до тексту програми з метою полегшення розуміння програмного коду.

Щоб компілятор відрізнив команди від коментарів, у мові Object Pascal коментарі потрібно брати у фігурні дужки:

S := Edit3.Text; { введення дати народження }

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

S := Edit3.Text; // введення дати народження

Вдало сформульовані коментарі значно спрощують розуміння алгоритму програми.

Питання для самоперевірки

1. Які помилки називають синтаксичними?

2. Які помилки належать до помилок періоду виконання?

3. Які помилки називають логічними?

4. Визначте помилку в наведеному фрагменті програмного коду: x := 5; y := і; z := x / (y - I);

5. У результаті роботи програми одержано відповідь: «1,5 землекопи». Визначте, до якого виду належить помилка.

6. Поясніть, як виконується програма в покроковому режимі.

Вправа 26

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

1) Створіть новий проект. Розмістіть на формі компонент Button. Створіть процедуру обробки події onclick для командної кнопки (ButtonI).

2) До коду процедури додайте такі команди:

Label1.Caption := 'Бажаю успіху!';

Label1.Color := clYellow;

Labell.Font.Color := clBlue;

3) Запустіть проект на виконання. Рядок Labell.Caption := 'Бажаю успіху!'; виділено жовтогарячою смугою, у вікні помилок міститься повідомлення про помилку:

[Error] Uniti.pas(28): Undeclared identifier: 'Labell'

Помилка виникла тому, що об’єкта Labell на формі не існує.

4) Додайте на форму компонент Label.

5) Запустіть проект на виконання в покроковому режимі, натиснувши клавішу F8. Починає виконуватися код проекту: begin

Application.Initialize;

Application.CreateForm(TForm1, Formi);

Application.Run; end.

Продовжуйте натискати клавішу F8, поки не з’явиться вікно форми. Клацніть командну кнопку і продовжте покрокове виконання.

6) Перервіть режим покрокового виконання сполученням клавіш Ctrl + F2. Збережіть проект у папці Вправа 26.

Комп'ютерне тестування

Виконайте тестове завдання 26 з автоматичною перевіркою на сайті interactive.ranok.com.ua.

Практична робота її

Створення об'єктно-орієнтованої програми, що відображає вікно повідомлення

Завдання: створити програму, в ході виконання якої виводиться вікно повідомлення.

Обладнання: ПК із встановленим середовищем програмування Lazarus. Хід роботи

Під час роботи з комп'ютером дотримуйтеся правил безпеки.

I. Розміщення елементів керування на формі

1. Відкрийте новий проект.

*2. Додайте на форму компонент Label, у вікні Інспектор об'єктів змініть значення його властивостей:

• Caption — «Слідкуйте за ходом виконання програми»;

• Color — clSkyBlue;

• AutoSize — False (заборона автоматично змінювати розмір напису по горизонталі);

• WordWrap — True (дозвіл виводити текст у декілька рядків);

• Font — шрифт: Comic Sans MS, розмір: 14; колір: білий.

3. Додайте на форму компонент Button. Змініть значення властивості Caption створеної кнопки (Button1) на «Виконати програму».

II. Написання процедур обробки подій

4. Створіть процедуру обробки події onclick для командної кнопки. Запишіть оператори, що змінюють колір фону форми на червоний і виводять на екран вікно повідомлення про виконану дію:

procedure TFormI.ButtonlClick(Sender: TObject); begin

Forml .Color := clRed;

ShowMessage(/Змiнивcя колір форми');

end;

 

5. Змініть вигляд вікна повідомлення (рис. 1).

Надайте значення властивості Title для об’єкта Application:

Application.Title := 'My program';

ShowMessage('3Mi^Bca колір форми');

6. Додайте до програмного коду оператори:

Labell.Color := clGreen;

ShowMessage('3Mi^Bca колір напису на зелений');

7. Розділіть текст повідомлення на два рядки: вставте службові символи повернення каретки (#13), тобто встановлення курсора на початку рядка, і перенесення рядка (#10).

ShowMessage('3M^Bca колір '+#13#10+' напису на зелений');

Запустіть проект на виконання. Проаналізуйте зміни у вигляді вікна повідомлення (рис. 2).

8. Встановіть значення ширини форми 500 пікселів:

Forml .Width := 500;

9. Змініть заголовок форми на «Практична робота 11».

10. Додайте оператор, який змінює колір фону форми на жовтий.

11. Запрограмуйте виведення вікна повідомлення після кожної виконаної дії.

ііі. Тестування проекту

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

Зробіть висновок: як за допомогою програмного коду змінювати властивості об’єктів під час виконання програми.

Практична робота 12

Створення програми з кнопками і написами

Завдання: створити проект із різними кнопками і написами. Обладнання: ПК із встановленим середовищем програмування Lazarus.

Хід роботи

Під час роботи з комп'ютером дотримуйтеся правил безпеки.

i. Розміщення елементів керування на формі

1. Відкрийте новий проект. Змініть заголовок форми на «Практична робота 12».

2. Додайте на форму компонент StaticText (вкладка Additional на Палітрі компонентів), призначений для виведення повідомлення. У вікні Інспектор об'єктів змініть значення властивостей компонента:

• Caption — «Вітаю з першими успіхами у програмуванні!»;

• BorderStyle — sbsSunken (стиль межі — втоплене вікно);

• AutoSize — False;

• Visible — False.

 

3. Додайте на форму компонент BitBtn (вкладка Additional на Палітрі компонентів). Змініть вигляд кнопки, задавши у вікні Інспектор об'єктів властивості Kind значення bkAll. Змініть параметри шрифту, надайте властивості Caption значення «Привітання».

4. Додайте на форму п’ять компонентів Button. Змініть значення властивості Caption доданих командних кнопок згідно з рисунком.

ii. написання процедур обробки подій

5. Створіть процедуру обробки події onclick для компонента BitBtn і в створеній процедурі BitBtnIClick запишіть оператор, який зробить видимим об’єкт StaticTextI:

StaticTextI .Visible := True;

6. Створіть процедуру обробки події onclick для кнопки Червоний колір. Запрограмуйте зміну кольору фону форми на червоний. Forml .Color := clRed;

7. Створіть аналогічну процедуру обробки події для кнопки Синій колір.

8. Створіть процедуру обробки події onclick для кнопки Збільшити форму. Запрограмуйте збільшення висоти і ширини форми на 10 пікселів:

Forml .Width := Forml.Width + 10;

Forml.Height := Form1.Height + 10;

9. Створіть аналогічну процедуру обробки події для кнопки Зменшити форму.

10. Створіть для кнопки Закрити форму процедуру обробки події OnMouseMove. У створеній процедурі Button5MouseMove запишіть оператори:

Button5.Left := 100 + Random(250);

Button5.Top := 30 + Random(250);

Значенням функції Random(250) є випадкове число в діапазоні від 0 до 250.

11. Запустіть проект на виконання. Спробуйте клацнути кнопку Закрити форму (кнопка повинна «втікати» від вказівника миші).

ііі. Тестування проекту

12. Після запуску проекту перевірте роботу всіх командних кнопок. Збережіть проект у папці Практична робота 12. Завершіть роботу за комп’ютером.

Зробіть висновок: як створювати кнопки і написи.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко

 

Категорія: Інформатика

Автор: admin от 7-10-2016, 22:27, Переглядів: 6217