Školská záhrada

7th Sep 2026

Cieľ cvičenia

V súbore kindergarten_garden.py implementujte triedu Garden. Trieda má reprezentovať záhon v materskej škole a metóda plants() má vrátiť rastliny, ktoré patria konkrétnemu žiakovi.

Použitie triedy vyzerá napríklad takto:

garden = Garden("RC\nGG")
garden.plants("Alena")
# ["Reďkovky", "Ďatelina", "Tráva", "Tráva"]

Konštruktor prijíma diagram záhona a voliteľne aj zoznam žiakov:

Garden(diagram, students=["Alena", "Boris"])

Ak zoznam žiakov nie je zadaný, použite štandardné mená Alena, Boris, Cyril, Daniel, Eva, František, Gitka, Helena, Ivana, Jozef, Karol a Ladislav.

Ako záhon funguje

Diagram má dva riadky. Každý žiak dostane štyri susediace políčka: dve políčka v hornom riadku a dve políčka v dolnom riadku.

Napríklad diagram:

VVCG
VVRC

je rozdelený takto:

VV CG
VV RC

Prvý žiak dostane prvé dva stĺpce (VV a VV) a druhý žiak ďalšie dva stĺpce (CG a RC). Rastliny treba čítať zľava doprava: najprv dve horné a potom dve dolné políčka.

Druhy rastlín

Každé písmeno v diagrame označuje jednu rastlinu:

Písmeno Rastlina
G Tráva
C Ďatelina
R Reďkovky
V Fialky

Metóda plants(student) má vracať slovenské názvy rastlín, pretože práve tie kontrolujú testy.

Príklad

Pre záhon:

garden = Garden("RC\nGG")

Alena prvé dve políčka v oboch riadkoch:

R C
G G

Preto:

garden.plants("Alena")
# ["Reďkovky", "Ďatelina", "Tráva", "Tráva"]

Pri väčšom diagrame sa žiaci priraďujú podľa abecedného poradia. Ak je zadaný vlastný zoznam students, musí sa najprv zoradiť abecedne; poradie vstupného zoznamu teda nemusí byť zoradené.

Odporúčaný postup

  1. Rozdeľte diagram na dva riadky.
  2. Zoraďte zoznam žiakov podľa mena.
  3. Nájdite poradie požadovaného žiaka v zoradenom zozname.
  4. Pre jeho poradie vypočítajte začiatok dvojice stĺpcov: poradie * 2.
  5. Z oboch riadkov vyberte dva znaky patriace žiakovi.
  6. Preložte písmená G, C, R a V na názvy rastlín a vráťte ich v poradí horný riadok, horný riadok, dolný riadok, dolný riadok.

Na rozdelenie diagramu môžete použiť napríklad:

rows = diagram.splitlines()

Ak je start začiatok žiakovej dvojice stĺpcov, výrez jedného riadku získate ako row[start:start + 2].

Časté chyby

  • Použitie poradia žiaka zo vstupného zoznamu bez jeho abecedného zoradenia.
  • Výber dvoch susedných políčok iba z jedného riadku.
  • Zmiešanie poradia políčok; výsledok má byť horný riadok a potom dolný.
  • Vrátenie skratiek (G, C, R, V) namiesto názvov rastlín.
  • Zabudnutie, že plants() vracia nový zoznam štyroch rastlín.
  • Nesprávne spracovanie vlastného zoznamu žiakov.

Kontrola pred odovzdaním

  • Funguje jednoduchý diagram s jedným žiakom.
  • Správne sa vyberá prvý, prostredný aj posledný žiak.
  • Mená sa spracujú abecedne aj vtedy, keď sú vstupné údaje neusporiadané.
  • Každý výsledok obsahuje štyri správne pomenované rastliny.
  • Písmená sa prekladajú podľa tabuľky a zachová sa ich poradie.

Previous Post Next Post

Školská záhrada