Znaiemo informatyku
Дякуємо за Ваш відгук.

Оптимізація та пошук помилок в коді

Ми рідко маємо можливість написати код без помилок з першого разу. Ризик помилок зменшується завдяки прагненню написати якісний код, але повністю уникнути помилок неможливо, тому необхідно їх активно шукати. Помилки в коді іноді називають англійським терміном bug. Процес перевірки правильності коду називається тестуванням, процес пошуку причини помилки та її усунення називається налагодженням (іноді також «debugging»).

Типи помилок

Ми розрізняємо синтаксичні помилки (неправильне написання програми – програму неможливо запустити) і семантичні помилки (програма виконується, але не відповідає необхідній поведінці). Окремим випадком семантичної помилки є цикл (програма ніколи не зупиняється, наприклад, тому що умова циклу ніколи не перестає виконуватися).

Приклади помилок

Деякі приклади типових семантичних помилок:

  • зміна порядку команд (як-от, порядок повороту та руху вперед)
  • неправильна кількість повторень циклу
  • неправильне визначення тіла циклу (як-от, відсутність зміщення команди, яку потрібно повторити)
  • заміна циклу та умовного оператора (until замість if)
  • заміна чіткої та нечіткої нерівності (x < y замість x ≤ y)
  • заміна логічної кон’юнкції (P і Q замість P або Q)
  • заміна порівнюваних змінних (x < y замість y < y)
  • заміна призначеної змінної та значення (x ← y замість y ← x)
  • заміна змінних (використання неправильної змінної, особливо небезпечним є надання їй невідповідного імені)
  • використання неправильного типу змінної (рядок “3” замість числа 3)
  • неправильне значення параметра (наприклад, неправильний кут повороту)
  • заміна аргументів під час виклику функції (f(a, b) замість f(b, a))
  • заміна списку та повернення з функції (list замість return)

Знання типових помилок дозволяє зосередити вашу увагу під час налагодження на місцях, де помилка може ховатися.

Процедура налагодження програми

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

Поради щодо налагодження програм

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

Черепашача графіка

Малювання за допомогою графіки черепахи з використанням блокового програмування.


Налаштування зображення



ПрогМалювання

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


Налаштування зображення



ЗВ’ЯЖІТЬСЯ З НАМИ

Дякуємо за ваше повідомлення, його було успішно відправлено.

Напишіть нам

Вам потрібна допомога?

Будь ласка, спочатку ознайомтеся з поширеними запитаннями:

Про що йдеться у повідомленні?

Повідомлення Зміст Управління Вхід до системи Ліцензія