Pseudokód má rovnaké základné štruktúry ako skutočné programovacie jazyky. Ak ich poznáš, môžeš opísať ľubovoľný algoritmus a ľahko ho preložiť do Pythonu, Javy alebo iného jazyka.
Tri základné štruktúry
Každý algoritmus je možné zapísať kombináciou troch štruktúr:
- Sekvencia — príkazy sa vykonávajú jeden po druhom
- Selekcia (podmienka) — výber vetvy podľa podmienky
- Iterácia (cyklus) — opakovanie príkazov
1. Sekvencia
Najjednoduchšia štruktúra — príkazy nasledujú za sebou v poradí:
PREČÍTAJ meno
PREČÍTAJ vek
VYPÍŠ "Volám sa " + meno
VYPÍŠ "Mám " + vek + " rokov"
V Pythone:
meno = input("Meno: ")
vek = input("Vek: ")
print("Volám sa " + meno)
print("Mám " + vek + " rokov")
2. Selekcia (AK-PAK-INAK)
Podmienka rozdeľuje tok programu na vetvy:
AK podmienka PAK
príkazy (vetva pravda)
INAK
príkazy (vetva nepravda)
KONIEC AK
Príklad — klasifikácia teploty:
PREČÍTAJ teplota
AK teplota > 30 PAK
VYPÍŠ "Horúco"
INAK AK teplota > 15 PAK
VYPÍŠ "Príjemne"
INAK
VYPÍŠ "Chladno"
KONIEC AK
Rôzne zdroje používajú rôzne kľúčové slová: AK/PAK/INAK, IF/THEN/ELSE, POKIAL/POTOM/INAK. Dôležitá je konzistentnosť v rámci jedného dokumentu.
3. Iterácia — cyklus KEDY (while)
Opakuje sa, kým platí podmienka:
KEDY podmienka:
príkazy
KONIEC KEDY
Príklad — hádanie čísla:
NASTAV tajne_cislo NA 7
NASTAV had NA 0
KEDY had ≠ tajne_cislo:
PREČÍTAJ had
AK had < tajne_cislo PAK
VYPÍŠ "Väčšie"
INAK AK had > tajne_cislo PAK
VYPÍŠ "Menšie"
KONIEC AK
KONIEC KEDY
VYPÍŠ "Správne!"
4. Iterácia — cyklus PRE (for)
Opakuje sa pre každý prvok alebo N-krát:
PRE každý prvok V zozname:
príkazy
KONIEC PRE
PRE i OD 1 DO 10:
príkazy
KONIEC PRE
Príklad — výpis tabuľky:
PRE i OD 1 DO 10:
VYPÍŠ i + " * 5 = " + (i * 5)
KONIEC PRE
5. Funkcie a procedúry
FUNKCIA nazov(parametre)
príkazy
VRÁŤ hodnota
KONIEC FUNKCIE
PROCEDÚRA nazov(parametre)
príkazy
KONIEC PROCEDÚRY
Príklad — funkcia faktoriál:
FUNKCIA faktorial(n)
NASTAV vysledok NA 1
PRE i OD 1 DO n:
NASTAV vysledok NA vysledok * i
KONIEC PRE
VRÁŤ vysledok
KONIEC FUNKCIE
Procedúra je funkcia, ktorá nič nevracia (len vykonáva akcie). Funkcia vracia hodnotu pomocou VRÁŤ/RETURN.
Komplexný príklad — triedenie
Pseudokód pre bublinkové triedenie:
PROCEDÚRA bublinkoveTriedenie(zoznam)
NASTAV n NA dĺžku(zoznam)
PRE i OD 0 DO n-1:
PRE j OD 0 DO n-i-2:
AK zoznam[j] > zoznam[j+1] PAK
VYMEŇ zoznam[j] A zoznam[j+1]
KONIEC AK
KONIEC PRE
KONIEC PRE
KONIEC PROCEDÚRY
Preklad do Pythonu
def bublinkove_triedenie(zoznam):
n = len(zoznam)
for i in range(n):
for j in range(n - i - 1):
if zoznam[j] > zoznam[j + 1]:
zoznam[j], zoznam[j + 1] = zoznam[j + 1], zoznam[j]
Pseudokód nie je štandardizovaný — každá škola alebo skúška môže mať mierne odlišnú konvenciu. Vždy sa prispôsob konvencii, ktorú vyžaduje tvoj učiteľ alebo predpis skúšky.
Cvičné príklady
Prepiš nasledujúci Python kód do pseudokódu: for i in range(1, 6): if i % 2 == 0: print(i)
Zobraziť odpoveď
Napíš pseudokód pre algoritmus, ktorý nájde súčet všetkých párnych čísel od 1 do 100.