Logo

Poprawność algorytmów

Opis: W temacie omówione zostaną zagadnienia związane z poprawnością algorytmów oraz metodami jej weryfikacji. Przedstawione zostaną sposoby testowania algorytmów na przykładach, tworzenie przypadków testowych, wykrywanie błędów logicznych oraz analiza działania algorytmu krok po kroku.

Testowanie algorytmu na przykładach

Samo zapisanie algorytmu nie oznacza jeszcze, że działa on poprawnie. Nawet bardzo prosty algorytm może zawierać błędy, które ujawnią się dopiero podczas jego wykonania. Dlatego jednym z najważniejszych etapów pracy z algorytmami jest testowanie na przykładach.

Testowanie polega na sprawdzaniu, czy dla określonych danych wejściowych algorytm zwraca oczekiwany wynik. Dzięki temu można wykryć błędy jeszcze przed zapisaniem algorytmu w języku programowania lub przed jego wykorzystaniem w praktyce.

W początkowej nauce algorytmiki testowanie wykonuje się najczęściej ręcznie - analizując kolejne kroki działania algorytmu i sprawdzając, czy rezultat jest zgodny z oczekiwaniami.

Dlaczego testowanie jest ważne?

Wyobraźmy sobie, że tworzymy algorytm obliczający pole prostokąta. Na pierwszy rzut oka zadanie wydaje się bardzo proste, jednak nawet tutaj można popełnić błąd, na przykład zamiast mnożenia użyć dodawania.

Bez wykonania testów taki błąd może pozostać niezauważony.

Testowanie pozwala:

  • sprawdzić poprawność działania algorytmu,

  • wykryć błędy logiczne,

  • upewnić się, że algorytm działa dla różnych danych,

  • zwiększyć pewność, że rozwiązanie jest poprawne.

Źródło: Jakub Piskorowski

Jak przeprowadzać testowanie?

Podczas testowania należy wykonać trzy kroki:

  1. Wybrać dane wejściowe.

  2. Samodzielnie obliczyć oczekiwany wynik.

  3. Sprawdzić, czy algorytm zwraca taki sam rezultat.

Jeżeli wynik algorytmu różni się od oczekiwanego, oznacza to, że w algorytmie znajduje się błąd.

Przykład 1 - obliczanie pola prostokąta

Rozważmy algorytm:

  1. Wczytaj długość boku a.

  2. Wczytaj długość boku b.

  3. Oblicz pole = a * b.

  4. Wyświetl wynik.

Przetestujmy go dla konkretnych danych.

Dane wejściowe

Oczekiwany wynik

a = 4, b = 5

20

Analiza

  • Wczytujemy a = 4.

  • Wczytujemy b = 5.

  • Obliczamy 4 × 5 = 20.

  • Wyświetlamy wynik 20.

Wynik jest zgodny z oczekiwaniami, więc dla tego przykładu algorytm działa poprawnie.

Przykład 2 - wyszukiwanie błędu

Załóżmy, że ktoś omyłkowo zapisał algorytm w następującej postaci:

  1. Wczytaj a.

  2. Wczytaj b.

  3. Oblicz pole = a + b.

  4. Wyświetl wynik.

Przeprowadźmy test.

Dane wejściowe

Oczekiwany wynik

a = 4, b = 5

20

Analiza

  • Wczytujemy a = 4.

  • Wczytujemy b = 5.

  • Obliczamy 4 + 5 = 9.

  • Wyświetlamy wynik 9.

  • Otrzymany wynik nie jest równy 20.

Dzięki testowi szybko zauważamy, że zamiast mnożenia zastosowano dodawanie. Testowanie pozwoliło wykryć błąd logiczny w algorytmie.

Analiza krok po kroku

Podczas nauki algorytmiki bardzo przydatne jest zapisywanie kolejnych wartości zmiennych w formie tabeli.

Przeanalizujmy algorytm obliczający sumę dwóch liczb.

Algorytm

  1. Wczytaj liczbę a.

  2. Wczytaj liczbę b.

  3. Oblicz suma = a + b.

  4. Wyświetl suma.

Dane testowe:

a = 7, b = 3

Krok

Wartość a

Wartość b

Wartość suma

Start

-

-

-

Wczytaj a

7

-

-

Wczytaj b

7

3

-

Oblicz sumę

7

3

10

Wyświetl wynik

7

3

10

Taka analiza pozwala dokładnie prześledzić działanie algorytmu i łatwo znaleźć miejsce, w którym pojawia się błąd.

Czy jeden test wystarczy?

Bardzo często początkujący popełniają błąd polegający na wykonaniu tylko jednego testu. Jeśli wynik jest poprawny, uznają algorytm za prawidłowy. W rzeczywistości jeden poprawny wynik nie gwarantuje poprawności algorytmu.

Przykładowo algorytm sprawdzający, czy liczba jest dodatnia, może działać poprawnie dla liczby 5, ale błędnie dla liczby 0 lub liczby ujemnej. Dlatego algorytm należy sprawdzać dla różnych danych wejściowych.

Jak dokumentować testowanie?

W praktyce warto zapisywać wyniki przeprowadzonych testów. Najprostszą metodą jest przygotowanie tabeli zawierającej:

  • dane wejściowe,

  • oczekiwany wynik,

  • wynik otrzymany z algorytmu,

  • informację, czy test został zaliczony.

Przykład:

Test

Dane wejściowe

Oczekiwany wynik

Wynik algorytmu

Poprawny

1

a = 4, b = 5

20

20

Tak

2

a = 2, b = 3

6

6

Tak

3

a = 7, b = 8

56

56

Tak

Taka dokumentacja pozwala łatwo udowodnić, że algorytm został sprawdzony oraz ułatwia późniejsze odnajdywanie błędów.

Najczęstsze błędy podczas testowania

Początkujący często popełniają kilka charakterystycznych błędów:

  • testują algorytm tylko raz,

  • wybierają wyłącznie bardzo proste dane,

  • nie zapisują wyników testów,

  • sprawdzają jedynie wynik końcowy, pomijając analizę kolejnych kroków,

  • zakładają, że algorytm jest poprawny tylko dlatego, że działa dla jednego przykładu.

Źródło: Jakub Piskorowski

Testowanie algorytmu na przykładach jest podstawową metodą sprawdzania jego poprawności. Polega ono na uruchamianiu algorytmu dla wybranych danych wejściowych i porównywaniu otrzymanych wyników z wynikami oczekiwanymi. Regularne testowanie pozwala wykrywać błędy logiczne, lepiej zrozumieć działanie algorytmu oraz zwiększyć pewność, że rozwiązanie działa prawidłowo. Szczególnie na początku nauki warto analizować algorytmy krok po kroku i dokumentować wyniki przeprowadzonych testów.

Tworzenie przypadków testowych

Samo uruchomienie algorytmu na kilku przykładach nie zawsze wystarcza, aby upewnić się, że działa on poprawnie. Kluczowe znaczenie ma również odpowiedni dobór danych testowych. Zestawy danych, które służą do sprawdzania działania algorytmu, nazywamy przypadkami testowymi.

Przypadek testowy to konkretny zestaw danych wejściowych wraz z przewidywanym wynikiem. Jego zadaniem jest sprawdzenie, czy algorytm zachowuje się zgodnie z oczekiwaniami w różnych sytuacjach.

Tworzenie przypadków testowych jest ważnym elementem pracy programisty i projektanta algorytmów. Dobrze przygotowane testy pomagają wykryć błędy, które mogłyby pozostać niezauważone podczas zwykłego sprawdzania działania programu.

Dlaczego różnorodność testów jest ważna?

Algorytm może działać poprawnie dla jednych danych, a błędnie dla innych.

Rozważmy algorytm obliczający średnią dwóch liczb:

  1. Wczytaj liczby a i b.

  2. Oblicz (a + b) / 2.

  3. Wyświetl wynik.

Jeżeli przetestujemy go wyłącznie dla liczb dodatnich, możemy nie zauważyć problemów pojawiających się przy liczbach ujemnych lub zerze.

Dlatego podczas tworzenia przypadków testowych należy uwzględniać różne sytuacje, które mogą wystąpić podczas działania algorytmu.

Rodzaje przypadków testowych

W praktyce najczęściej tworzy się kilka grup testów.

Przypadki typowe

Są to najbardziej oczywiste dane wejściowe, które użytkownik będzie podawał najczęściej.

Przykład dla algorytmu obliczającego pole prostokąta:

a

b

Wynik

4

5

20

7

3

21

Takie testy pozwalają sprawdzić podstawowe działanie algorytmu.

Przypadki graniczne

Są to dane znajdujące się na granicy dopuszczalnych wartości.

Przykład:

a

b

Wynik

0

5

0

1

1

1

Przypadki graniczne często ujawniają błędy, które nie występują podczas zwykłych testów.

Przypadki nietypowe

Są to dane rzadziej spotykane, ale nadal możliwe do wystąpienia.

Przykład dla algorytmu obliczającego średnią:

a

b

Wynik

-5

5

0

-4

-6

-5

Takie testy pozwalają sprawdzić, czy algorytm działa poprawnie w mniej oczywistych sytuacjach.

Praktyczny przykład tworzenia testów

Przeanalizujmy algorytm sprawdzający, czy liczba jest parzysta.

Algorytm

  1. Wczytaj liczbę n.

  2. Jeżeli reszta z dzielenia n przez 2 jest równa 0, wyświetl "Parzysta".

  3. W przeciwnym razie wyświetl "Nieparzysta".

Dla tego algorytmu można przygotować następujące przypadki testowe:

Numer testu

Dane wejściowe

Oczekiwany wynik

1

4

Parzysta

2

7

Nieparzysta

3

0

Parzysta

4

-8

Parzysta

5

-3

Nieparzysta

Zauważmy, że nie ograniczamy się wyłącznie do dodatnich liczb. Dzięki temu mamy większą pewność, że algorytm działa poprawnie w różnych sytuacjach.

Dokumentowanie przypadków testowych

W praktyce każdy przypadek testowy warto zapisać w tabeli.

Przykład dokumentacji dla algorytmu obliczającego sumę dwóch liczb:

Test

Dane wejściowe

Oczekiwany wynik

1

2, 3

5

2

0, 0

0

3

-4, 5

1

4

-7, -3

-10

Taka dokumentacja ułatwia późniejsze testowanie oraz pozwala szybko sprawdzić, które przypadki zostały już zweryfikowane.

Przypadki testowe to starannie przygotowane zestawy danych służące do sprawdzania poprawności działania algorytmu. Dobrze zaprojektowane testy powinny obejmować zarówno typowe sytuacje, jak i przypadki graniczne oraz nietypowe. Im bardziej różnorodne są przygotowane testy, tym większa szansa na wykrycie błędów i potwierdzenie, że algorytm działa zgodnie z założeniami. Tworzenie przypadków testowych jest więc nieodłącznym elementem projektowania i analizowania algorytmów.

Wykrywanie błędów logicznych

Podczas tworzenia algorytmów bardzo często zdarza się, że zapisane kroki są poprawne pod względem składni i można je bez problemu wykonać, a mimo to algorytm zwraca nieprawidłowe wyniki. Tego typu problemy nazywamy błędami logicznymi.

Błąd logiczny nie powoduje zatrzymania działania algorytmu. Algorytm wykonuje wszystkie kroki do końca, jednak rezultat jest inny niż oczekiwany. Właśnie dlatego błędy logiczne bywają trudniejsze do wykrycia niż zwykłe pomyłki w zapisie.

W praktyce wykrywanie błędów logicznych polega na analizowaniu działania algorytmu oraz porównywaniu otrzymanych wyników z wynikami, które powinny zostać uzyskane.

Czym jest błąd logiczny?

Rozważmy algorytm obliczający pole prostokąta.

Poprawna wersja

  1. Wczytaj długość boku a.

  2. Wczytaj długość boku b.

  3. Oblicz pole = a * b.

  4. Wyświetl wynik.

Dla danych: a = 4, b = 5

otrzymujemy wynik: 20

Jest to poprawny rezultat.

Załóżmy jednak, że ktoś przez pomyłkę zapisał trzeci krok w następującej postaci:

Oblicz pole = a + b.

Algorytm nadal działa, ale dla tych samych danych zwraca wynik: 9

Program się nie zatrzymuje i nie zgłasza błędu, jednak wynik jest niepoprawny. Jest to właśnie przykład błędu logicznego.

Skąd biorą się błędy logiczne?

Błędy logiczne najczęściej pojawiają się wtedy, gdy projektant algorytmu:

  • źle rozumie problem,

  • pomija ważny krok,

  • wykonuje działania w niewłaściwej kolejności,

  • używa niewłaściwego wzoru,

  • błędnie zapisuje warunek.

Takie błędy są naturalnym elementem procesu tworzenia algorytmów i zdarzają się nawet doświadczonym programistom.

Przykład 1 - błędny warunek

Rozważmy algorytm sprawdzający, czy liczba jest dodatnia.

Zamierzony efekt:

Jeżeli liczba jest większa od zera, należy wyświetlić komunikat: "Liczba dodatnia".

Błędny zapis

  1. Wczytaj liczbę n.

  2. Jeżeli n >= 0, wyświetl "Liczba dodatnia".

Na pierwszy rzut oka wszystko wygląda poprawnie. Przetestujmy jednak algorytm.

Dane wejściowe

Oczekiwany wynik

Wynik algorytmu

5

Liczba dodatnia

Liczba dodatnia

0

Nie jest dodatnia

Liczba dodatnia

Dzięki testowi odkrywamy, że liczba 0 została potraktowana jako dodatnia. Błąd wynika z użycia operatora >= zamiast >.

Przykład 2 - niewłaściwa kolejność działań

Przyjrzyjmy się algorytmowi obliczającemu sumę liczb od 1 do 3.

Poprawna wersja:

  1. Ustaw suma = 0.

  2. Dodaj 1.

  3. Dodaj 2.

  4. Dodaj 3.

  5. Wyświetl wynik.

Rezultat: 6

Wersja błędna

  1. Wyświetl wartość zmiennej suma.

  2. Ustaw suma = 0.

  3. Dodaj 1.

  4. Dodaj 2.

  5. Dodaj 3.

W tym przypadku wynik zostanie wyświetlony zanim zostaną wykonane obliczenia.

Przyczyną błędu jest nieprawidłowa kolejność kroków.

Jak wykrywać błędy logiczne?

Najskuteczniejszą metodą jest dokładna analiza działania algorytmu na konkretnych danych.

Podczas analizy warto zadawać sobie pytania:

  • Czy każdy krok wykonuje to, co powinien?

  • Czy wszystkie działania są wykonywane we właściwej kolejności?

  • Czy warunki zostały poprawnie zapisane?

  • Czy wynik końcowy zgadza się z oczekiwaniami?

  • W którym miejscu pojawia się pierwsza nieprawidłowa wartość?

Odpowiedzi na te pytania pomagają szybko odnaleźć źródło problemu.

Źródło: Jakub Piskorowski

Analiza krok po kroku

Przy wykrywaniu błędów bardzo pomocne jest śledzenie wartości zmiennych.

Rozważmy algorytm:

  1. Wczytaj a = 5.

  2. Wczytaj b = 3.

  3. Oblicz wynik = a - b.

  4. Wyświetl wynik.

Załóżmy, że zadaniem było obliczenie sumy liczb. Możemy przeanalizować działanie algorytmu za pomocą tabeli.

Krok

a

b

wynik

Start

-

-

-

Wczytaj a

5

-

-

Wczytaj b

5

3

-

Oblicz wynik

5

3

2

Wyświetl wynik

5

3

2

Oczekiwany rezultat wynosił 8, a otrzymaliśmy 2. Analiza pokazuje, że zamiast dodawania użyto odejmowania.

Dokumentowanie znalezionych błędów

Podczas testowania warto zapisywać wszystkie wykryte problemy.

Przykładowa dokumentacja może wyglądać następująco:

Numer

Opis błędu

Przyczyna

Poprawka

1

Niepoprawne pole prostokąta

Dodawanie zamiast mnożenia

Zmienić operator na ×

2

Zero traktowane jako liczba dodatnia

Błędny warunek >=

Zastosować >

3

Niepoprawna suma

Odejmowanie zamiast dodawania

Użyć operatora +

Taka tabela pozwala uporządkować proces poprawiania algorytmu i uniknąć ponownego popełnienia tych samych błędów.

Najczęstsze błędy logiczne początkujących

Osoby rozpoczynające naukę algorytmiki najczęściej popełniają następujące błędy:

  • użycie niewłaściwego działania matematycznego,

  • błędne zapisanie warunku,

  • pominięcie jednego z kroków algorytmu,

  • wykonanie kroków w złej kolejności,

  • niepoprawne przypisanie wartości do zmiennej,

  • założenie, że algorytm działa poprawnie po jednym udanym teście.

Wiele z tych problemów można wykryć dzięki dokładnemu testowaniu i analizie działania krok po kroku.

Źródło: Jakub Piskorowski

Błędy logiczne to błędy, które nie zatrzymują działania algorytmu, ale powodują uzyskanie nieprawidłowych wyników. Ich wykrywanie polega na testowaniu algorytmu, analizowaniu kolejnych kroków oraz porównywaniu rezultatów z oczekiwanymi wartościami. Szczególnie skuteczną metodą jest śledzenie zmian wartości zmiennych i dokumentowanie wykrytych problemów. Umiejętność odnajdywania błędów logicznych jest jednym z najważniejszych elementów pracy z algorytmami, ponieważ pozwala tworzyć rozwiązania, które nie tylko działają, ale również dają poprawne wyniki.

Analiza działania algorytmu krok po kroku

Po utworzeniu algorytmu oraz przygotowaniu przypadków testowych warto przeprowadzić analizę jego działania krok po kroku. Jest to metoda polegająca na dokładnym śledzeniu wykonywania kolejnych instrukcji i obserwowaniu, jak zmieniają się wartości danych podczas działania algorytmu.

W praktyce analiza krok po kroku przypomina wykonywanie algorytmu "ręcznie". Dzięki temu można sprawdzić nie tylko wynik końcowy, ale również zrozumieć, w jaki sposób algorytm do niego dochodzi. Jest to szczególnie przydatne podczas nauki algorytmiki, ponieważ pozwala lepiej zrozumieć działanie instrukcji, zmiennych, warunków i pętli.

1. Rozpoczynaj od danych wejściowych

Pierwszym krokiem analizy powinno być zapisanie wszystkich danych wejściowych. Dzięki temu od początku wiadomo, na jakich wartościach pracuje algorytm.

Warto zwrócić uwagę, czy:

  • wszystkie wymagane dane zostały podane,

  • dane mają odpowiedni typ i format,

  • algorytm nie korzysta z wartości, które nie zostały wcześniej wprowadzone.

Już na tym etapie można zauważyć wiele potencjalnych problemów.

2. Śledź zmiany wartości zmiennych

Podczas wykonywania kolejnych instrukcji należy obserwować, jak zmieniają się wartości zmiennych.

Najczęściej pomocna okazuje się tabela zawierająca:

  • numer kroku,

  • wykonywaną instrukcję,

  • aktualne wartości zmiennych.

  • Takie podejście pozwala szybko zauważyć moment, w którym zmienna przyjmuje nieoczekiwaną wartość.

Szczególną uwagę należy zwracać na sytuacje, w których:

  • zmienna jest nadpisywana nową wartością,

  • kilka obliczeń korzysta z tej samej zmiennej,

  • wynik jednego kroku staje się danymi dla kolejnego kroku.

3. Sprawdzaj kolejność wykonywania instrukcji

Algorytm jest wykonywany w określonej kolejności. Nawet poprawnie zapisane instrukcje mogą prowadzić do błędów, jeśli zostaną wykonane we niewłaściwym momencie.

Podczas analizy warto sprawdzić:

  • czy wszystkie dane są dostępne przed wykonaniem obliczeń,

  • czy wyniki pośrednie są obliczane przed ich wykorzystaniem,

  • czy instrukcje wyświetlania wyników pojawiają się we właściwym miejscu.

W praktyce wiele błędów wynika właśnie z nieprawidłowej kolejności działań.

4. Zwracaj uwagę na warunki

Instrukcje warunkowe często są źródłem trudnych do wykrycia błędów. Podczas analizy należy sprawdzać, czy warunek rzeczywiście przyjmuje wartość prawda lub fałsz zgodnie z oczekiwaniami.

Dobrą praktyką jest zadawanie sobie pytań:

  • Czy warunek został poprawnie zapisany?

  • Która część algorytmu zostanie wykonana po spełnieniu warunku?

  • Co stanie się, gdy warunek nie zostanie spełniony?

  • Czy wszystkie możliwe sytuacje zostały uwzględnione?

Takie podejście pozwala lepiej zrozumieć przebieg działania algorytmu.

5. Analizuj każdą iterację pętli

Jeżeli algorytm zawiera pętlę, warto prześledzić każde jej wykonanie.

Podczas analizy należy zwracać uwagę na:

  • wartość zmiennej sterującej pętlą,

  • liczbę wykonanych powtórzeń,

  • zmiany zachodzące podczas kolejnych iteracji,

  • warunek zakończenia pętli.

Pętle często wykonują się wielokrotnie, dlatego nawet niewielki błąd może powodować niepoprawne wyniki lub nieskończone działanie algorytmu.

6. Kontroluj wyniki pośrednie

Nie należy skupiać się wyłącznie na wyniku końcowym. W wielu algorytmach pojawiają się wartości pośrednie, które są wykorzystywane w kolejnych obliczeniach.

Jeżeli jedna z takich wartości jest błędna, wszystkie następne wyniki również będą niepoprawne.

Dlatego podczas analizy warto regularnie sprawdzać:

  • czy obliczenia zostały wykonane poprawnie,

  • czy wyniki pośrednie mają sens,

  • czy ich wartości odpowiadają oczekiwaniom.

7. Porównuj obserwacje z założeniami algorytmu

Przed rozpoczęciem analizy zwykle wiadomo, jaki problem algorytm ma rozwiązać. Warto więc na bieżąco porównywać obserwowane działanie z pierwotnym założeniem.

Pomocne mogą być pytania:

  • Czy algorytm wykonuje dokładnie to, co miał wykonywać?

  • Czy każdy krok przybliża do uzyskania oczekiwanego wyniku?

  • Czy pojawiły się działania, które nie są potrzebne?

Takie porównanie pomaga szybko zauważyć niezgodności między projektem a rzeczywistym działaniem algorytmu.

8. Dokumentuj przebieg analizy

Podczas bardziej rozbudowanych algorytmów warto zapisywać wyniki obserwacji. Dzięki temu można wrócić do wcześniejszych kroków i sprawdzić, gdzie pojawił się problem.

Dokumentacja może zawierać:

  • dane wejściowe,

  • kolejne wartości zmiennych,

  • wyniki pośrednie,

  • zauważone nieprawidłowości,

  • wnioski z przeprowadzonej analizy.

Jest to szczególnie przydatne podczas pracy nad większymi projektami, gdzie ręczne odtworzenie całego procesu byłoby czasochłonne.

Źródło: Jakub Piskorowski

Analiza działania algorytmu krok po kroku polega na świadomym śledzeniu wykonywania kolejnych instrukcji oraz obserwowaniu zmian zachodzących w danych. Jej celem nie jest jedynie sprawdzenie wyniku końcowego, ale przede wszystkim zrozumienie całego procesu prowadzącego do jego uzyskania. Umiejętność takiej analizy pozwala szybciej wykrywać błędy, lepiej rozumieć działanie algorytmów i skuteczniej projektować własne rozwiązania.

Zadania - Poprawność algorytmów

1. Testowanie wybranego algorytmu

Wybierz jeden z algorytmów wykonanych podczas wcześniejszych ćwiczeń. Algorytm powinien zawierać co najmniej jedną zmienną oraz instrukcję sterującą (warunek lub pętlę). Następnie przygotuj zestaw przypadków testowych i sprawdź, czy algorytm działa poprawnie dla różnych danych wejściowych. Szczególną uwagę zwróć na przypadki nietypowe oraz graniczne.

Wymagania:

  • wybierz algorytm zawierający zmienne oraz instrukcję warunkową lub pętlę,

  • przygotuj co najmniej 5 przypadków testowych,

  • uwzględnij przypadki typowe, graniczne, nietypowe

  • określ oczekiwane wyniki dla każdego testu,

  • wykonaj testowanie algorytmu,

  • przedstaw wyniki w formie tabeli,

  • zaznacz, które testy zakończyły się powodzeniem,

  • opisz, jakie rodzaje danych zostały wykorzystane podczas testowania,

  • sformułuj wnioski dotyczące poprawności działania algorytmu.

2. Analiza działania algorytmu krok po kroku

Wybierz jeden z wcześniej wykonanych algorytmów zawierających zmienne oraz instrukcję warunkową lub pętlę. Przeprowadź szczegółową analizę jego działania dla wybranego przypadku testowego, śledząc zmiany wartości zmiennych podczas wykonywania kolejnych instrukcji.

Wymagania:

  • wybierz algorytm zawierający zmienne oraz instrukcję sterującą,

  • przygotuj jeden rozbudowany przypadek testowy,

  • wykonaj analizę działania algorytmu krok po kroku,

  • przedstaw kolejne wartości zmiennych w formie tabeli,

  • zaznacz momenty wykonania warunków lub kolejnych iteracji pętli,

  • opisz przebieg działania algorytmu własnymi słowami,

  • określ wynik końcowy,

  • oceń poprawność działania algorytmu.

3. Wyszukiwanie błędów logicznych

Wybierz jeden z wcześniej wykonanych algorytmów zawierających instrukcję warunkową lub pętlę. Przeanalizuj jego działanie i sprawdź, czy można wskazać sytuacje prowadzące do błędnych wyników. Jeśli nie znajdziesz błędów, spróbuj celowo zmodyfikować jeden z warunków lub instrukcji i sprawdź, jak wpłynie to na działanie algorytmu.

Wymagania:

  • wybierz algorytm zawierający zmienne oraz instrukcję sterującą,

  • przygotuj co najmniej 8 przypadków testowych dla różnych danych wejściowych,

  • sprawdź, czy algorytm działa zgodnie z założeniami,

  • opisz ewentualne błędy logiczne,

  • wskaż przypadki testowe, które pozwoliły je wykryć,

  • wyjaśnij przyczynę występowania błędu,

  • zaproponuj poprawkę,

  • sprawdź działanie algorytmu po wprowadzeniu zmian,

  • udokumentuj cały proces.