Autorské riešenie
Našou úlohou je vypočítať, koľko cibuliek žltých a koľko cibuliek červených tulipánov je potrebné kúpiť, aby sa dali v štvorcovom záhone vysadiť do zadaného tvaru. Po uvedomení si jednej kľúčovej vlastnosti, je riešenie jednoduché. Keď sa pozrieme len na žlté kvety, môžeme si všimnúť, že sú vysadené akoby v štvorcovej sieti na mrežových bodoch.
V jednom riadku je ich počet rovný dĺžke záhona podelenej vzdialenosťou medzi 2 susednými kvetmi v rovnakej vrstve a to celé zvýšené o 1. Spomínaný podiel dĺžky záhona a vzdialenosti medzi 2 susednými kvetmi v rovnakej vrstve nazvime parameter. Keďže počet riadkov, v ktorých sú vysadené tulipány je taký istý ako počet kvetov v jednom riadku, celkový počet tulipánov je teda (parameter + 1) * (parameter + 1), čo je (parameter + 1)^2. Keď sa pozrieme len na červené kvety, vidíme, že je to s nimi podobne, ako so žltými. Tiež sú vo štvorcovej sieti na mrežových bodoch, akurát je ich v každom riadku aj stĺpci o 1 menej. Je ich teda parameter*parameter, čo je parameter^2. ;Imagine
logo
viem zisti_pocet_cibuliek :dlzka_zahona :vzdialenost ak (alebo :dlzka_zahona <=0 :vzdialenost <=0)[ pis "|chybne zadanie parametrov| vy [] ] urobTu "parameter (div :dlzka_zahona :vzdialenost) urobTu "pocet_zltych (:parameter+1)*(:parameter+1) urobTu "pocet_cervenych :parameter*:parameter vy zoznam :pocet_zltych :pocet_cervenych koniec
Python
def zistiPocetCibuliek(dlzka_zahona, vzdialenost): if (dlzka_zahona <= 0 or vzdialenost <= 0): print("aspoň 1 parameter nie je vhodný.") return [] parameter = dlzka_zahona // vzdialenost pocet_zltych = (parameter + 1) * (parameter + 1) pocet_cervenych = parameter * parameter return [pocet_zltych, pocet_cervenych] Vaše zaujímavé riešenia a najčastejšie chyby Najčastejšie si žiaci úlohu neuchopili ako reálny problém, a neuvedomili si, aké parametre by mala procedúra/funkcia očakávať. Väčšina si úlohu zjednodušila, keďže na vstupe očakávala parameter vyjadrujúci počtu kvetov. Niektoré tímy si neuvedomili, že na jednej strane jednej vrstvy je počet cibuliek o 1 väčší ako počet medzier. Taktiež málokto ošetril nekladné vstupné hodnoty. Až 8 tímov dostalo za riešenie 0 bodov, z toho 2 tímy sa snažili graficky znázorniť rajskú záhradu, avšak aj tak neúspešne. Správne, resp. vhodné parametre požadovali len 2 tímy, z toho iba tím Bojovnik_Macek vyriešil úlohu úplne správne. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |