Przeczytaliśmy tysiące kodów uczniów. Popełnianie błędów podczas implementacji dotyczy wielu osób (nawet doświadczonych programistów!), możemy jednak nad tym pracować i popełniać ich coraz mniej. Wybraliśmy 10 najpopularniejszych błędów. Jeśli Twój program nie działa poprawnie - sprawdź, czy poniższe punkty z listy dotyczą Twojego kodu.
1. Za mała tablica/lista
Przed wysłaniem programu do oceny warto sprawdzić, czy rozmiar stworzonej tablicy/listy spełnia warunki zadania. Zdarza się, że zamiast 1,000,000 elementów stworzymy 100,000.
2. Nieodpowiedni typ danych (C++)
Pisząc rozwiązania w C++ pamiętajmy, aby dobrać odpowiedni typ danych do rozmiaru przechowywanej wartości. Popularnym błędem jest, kiedy wartości w działaniu mieszczą się w danej typu int, zaś ich wynik już nie. Wówczas pomocne może być skorzystanie z typu danych long long.
3. Pominięcie pierwszego lub ostatniego elementu
Przechodząc po tablicy/liście zdarza się, że rozpoczynamy od indeksu 1 zamiast 0, pomijając pierwszy element. Innym popularnym błędem jest użycie operatora < zamiast <=, przez co pomijamy ostatni element.
4. = vs ==
Operatory = oraz == pomimo podobnego zapisu mają różne funkcje. Pierwszy z nich jest operatorem przypisania, drugi operatorem porównania. Pamiętaj, aby podczas zapisywania warunków korzystać z ==.
5. Odwołanie do nieistniejącego elementu tablicy/listy
Popularnym błędem jest odwołanie do N-tego elementu tablicy/listy, której rozmiar został ustawiony na N. Indeksowanie odbywa się od 0, zatem elementy są ponumerowane od 0 do N-1.
6. Mało znaczące nazwy zmiennych
Tworzenie jednoliterowych lub mało mówiących nazw zmiennych często prowadzi do błędów. Przykładowo korzystając ze zmiennych o nazwach a, b, c, d bardzo łatwo zapomnieć co przechowujemy w odpowiednich zmiennych. Możemy łatwo pomylić zmienną i odwołać się do innej. Zachęcamy do używania krótkich, ale znaczących nazw zmiennych, np. wiek osoby możemy zapisać w zmiennej o nazwie wiek.
7. Tworzenie listy list (Python)
Dwuwymiarowe obiekty możemy przechowywać w Pythonie za pomocą listy list. Tabelę o rozmiarze 4 x 5 wypełnioną zerami możemy stworzyć w następujący sposób:
[[0] * 5 for i in range(4)]
Popularnym błędem jest zapis [[0] * 5] * 4, który tworzy czteroelementową listę adresów odwołujących się do tej samej pięcioelementowej listy zer.
8. Niezainicjowane zmienne
Pisząc rozwiązania w C++ warto pamiętać, aby wyzerować zmienne lokalne. W przeciwnym razie nie mamy gwarancji, że taka zmienna ma początkowo wartość 0. Pisząc w Pythonie pamiętajmy, aby odwoływać się tylko do zmiennych, które zostały wcześniej stworzone.
9. Niedostosowanie wydajności do wymagań
Jeśli program długo nie udziela odpowiedzi, warto jeszcze raz przeanalizować algorytm pod względem czasu działania. Możemy sprawdzić czy złożoność czasowa jest akceptowalna dla zadanych w zadaniu limitów. Pisząc w Pythonie pamiętajmy, że operator in, funkcje min, max, sum działają w czasie liniowo proporcjonalnym do rozmiaru listy.
10. Nieskończone pętle
Inny powodem długo działającego programu może być zapętlenie spowodowane warunkiem, który jest zawsze prawdziwy. Upewnij się, że pętla się zatrzyma. Na początkowym etapie nauki, często zapominamy o zwiększaniu lub zmniejszaniu zmiennej sterującej pętlą while.
Wierzymy, że wymienione punkty pomogą Tobie znawigować większość błędów. Jeśli chcesz dowiedzieć się więcej o testowaniu, debugowaniu i pisaniu czytelnego kodu, zapraszamy na kursy programowania. Życzymy bezbłędnych kodów! :)