, 4 min czytaniateoriaanaliza algorytmu
Jak czytać pseudokod z arkusza maturalnego
Pseudokod CKE to nie Python. Trzy różnice, przez które uczniowie gubią punkty w zadaniach na analizę algorytmu.
W pierwszym arkuszu dostajesz cudzy algorytm i masz powiedzieć, co robi, jaki da wynik dla konkretnych danych albo gdzie ma błąd. Algorytm jest zapisany w pseudokodzie. To pierwsza pułapka, bo pseudokod wygląda jak kod, ale rządzi się innymi zasadami niż Python.
1. Indeksy zaczynają się od jedynki
W pseudokodzie z arkusza pierwszy element tablicy to zwykle T[1], a nie T[0]. Jeśli przepiszesz taki algorytm jeden do jednego do Pythona, przesuniesz całą tablicę o jedno miejsce i dostaniesz wynik przesunięty albo błąd wyjścia poza zakres.
2. Przypisanie to strzałka, a porównanie to znak równości
W arkuszu zobaczysz zapis w rodzaju "suma ← suma + T[i]". Strzałka oznacza przypisanie, czyli to, co w Pythonie robi pojedynczy znak =. Samo "=" w pseudokodzie oznacza za to porównanie, czyli Pythonowe ==. Pomylenie tych dwóch rzeczy w odpowiedzi to najczęstszy sposób na stratę punktu w zadaniu „zapisz fragment kodu”.
3. Pętla „dla i = 1, 2, …, n” obejmuje oba końce
To dokładne przeciwieństwo Pythonowego range. Pętla z arkusza wykona się także dla i równego n, podczas gdy range(1, n) zatrzyma się na n − 1. Przy przepisywaniu do Pythona potrzebujesz range(1, n + 1).
1# pseudokod: dla i = 1, 2, ..., n2for i in range(1, n + 1):3 suma = suma + T[i - 1] # bo w Pythonie liczymy od zera
Jak ćwiczyć
Najskuteczniejsze jest ręczne śledzenie na małych danych: bierzesz cztery liczby, rysujesz tabelkę ze zmiennymi i wypełniasz ją wiersz po wierszu. Dokładnie to robi nasz odtwarzacz kroku, z tą różnicą, że możesz się cofnąć i sprawdzić, w którym obrocie zmienna przyjęła inną wartość, niż myślałeś.
- Sprawdź, od czego zaczyna się indeksowanie.
- Podkreśl w algorytmie wszystkie miejsca, w których zmienia się wartość zmiennej.
- Wypełnij tabelkę śledzenia dla trzech lub czterech danych, nie dla całego zbioru.
- Dopiero potem odpowiadaj na pytanie „co robi ten algorytm”.