Lista wyjaśnień

Tworzenie programów

« Kontynuuj rozwiązywanie

Podtematy

Rzadko udaje się napisać za pierwszym razem kod całkowicie pozbawiony błędów. Ryzyko wystąpienia błędów zmniejsza dbałość o wysoką jakość kodu, jednak nie da się ich całkowicie uniknąć, dlatego należy aktywnie ich szukać. Błędy w kodzie są czasem określane angielskim terminem bug. Proces sprawdzania poprawności kodu nazywamy testowaniem, natomiast proces ustalania przyczyny błędu i jego usuwania debugowaniem.

Typy błędów

Rozróżniamy błędy składniowe (niepoprawny zapis programu – programu nie można uruchomić) oraz semantyczne (program wykonuje się, ale nie działa zgodnie z oczekiwaniami). Szczególnym przypadkiem błędu semantycznego jest zapętlenie (program nigdy nie kończy działania, np. dlatego, że warunek pętli nigdy nie przestaje być spełniony).

Przykłady błędów

Kilka przykładów częstych błędów semantycznych:

  • zamiana kolejności poleceń (np. kolejności skręcania i poruszania się do przodu)
  • błędna liczba powtórzeń pętli
  • błędne określenie ciała pętli (np. brak wcięcia polecenia, które ma być powtarzane)
  • zamiana pętli i instrukcji warunkowej (dopóki zamiast jeśli)
  • zamiana nierówności ostrej i nieostrej (x < y zamiast x ≤ y)
  • zamiana operatora logicznego (P i Q zamiast P lub Q)
  • zamiana kolejności porównywanych zmiennych (x < y zamiast y < x)
  • zamiana zmiennej przypisywanej i wyrażenia (x ← y zamiast y ← x)
  • zamiana zmiennych (użycie niewłaściwej zmiennej; ryzyko szczególnie duże przy nieczytelnym nazewnictwie)
  • użycie niewłaściwego typu zmiennej (łańcuch znaków “3” zamiast liczby 3)
  • błędna wartość parametru (np. nieprawidłowa liczba stopni, o jakie należy skręcić),
  • zamiana argumentów podczas wywołania funkcji (f(a, b) zamiast f(b, a))
  • zamiana wypisywania i zwracania wartości z funkcji (wypisz zamiast zwróć)

Znajomość typowych błędów pozwala podczas debugowania skupić uwagę na miejscach, w których może ukrywać się błąd.

Proces debugowania programu

Jeżeli program nie daje poprawnych wyników, uruchamiamy go krok po kroku i obserwujemy, w którym momencie odbiega od naszych oczekiwań. Jeżeli program nie tworzy wyjścia graficznego, możemy na bieżąco wypisywać wartości zmiennych albo użyć narzędzia, które umożliwia wykonywanie programu krok po kroku i obserwowanie wartości zmiennych (tzw. debugger). Fragment programu, w którym jego działanie odbiega od naszych oczekiwań, próbujemy poprawić.

Wskazówki dotyczące debugowania programów

  • Po każdej poprawce warto ponownie uruchomić program, aby sprawdzić efekt wprowadzonej zmiany.
  • Jeśli nie jest jasne, jak dokładnie poprawić kod (np. o ile stopni skręcić), pomocne może być narysowanie sobie obrazka.
  • Jeśli nie wiadomo, dlaczego w pewnym miejscu program zachowuje się w określony sposób, lepiej najpierw to zrozumieć, zanim zaczniemy wprowadzać zmiany.
  • Jeśli nie mamy pewności, co robi jakaś użyta konstrukcja języka (polecenie, operator), należy sprawdzić jej działanie w internecie i zweryfikować swoje rozumienie, wykonując prosty kod z użyciem danej konstrukcji.
  • Jeśli kod jest niepotrzebnie skomplikowany lub używa nieczytelnych nazw zmiennych, po usunięciu tych problemów (np. po zmianie nazw zmiennych) błąd może stać się oczywisty.
  • Podział programu na funkcje ułatwia szukanie błędów, ponieważ możemy testować poszczególne funkcje oddzielnie.
Do góry
NAPISZ DO NAS

Twoja wiadomość została wysłana. Dziękujemy.

Napisz do nas

Jesteś w kropce?

Zanim zadasz pytanie, zapoznaj się z instrukcjami:

Prosimy o nieprzesyłanie próśb o gotowe rozwiązania. Jeśli zgłaszasz błąd, dokładnie opisz, czego dotyczy, i dołącz zrzut ekranu.

Wybierz temat

Wiadomość Zgłoszenie błędu Treści Sterowanie Logowanie Licencja