Autorské riešenie
Úloha o balónovej fieste je zameraná na prácu so zoznamami (iterovanie cez zoznam, súčet hodnôt v zozname), vetvenie programu pomocou podmienok a výpočet percentovej časti. Zo zadania vieme, že vstupom funkcie majú byť 2 parametre: zoznam denných teplôt počas fiesty a zoznam objemov všetkých fliaš, ktoré sa budú denne plniť. Úlohou je na základe týchto parametrov vypočítať, aký objem dusíka je potrebné na podujatie objednať. Množstvo dusíka, ktoré potrebujeme vpustiť v jeden deň do jednej fľaše, závisí od vonkajšej teploty a objemu tejto fľaše. Intervalový zápis teplôt, kde je každému intervalu priradené percento objemu fľaše potrebné na nadusíkovanie, vyzerá nasledovne:
Pozn.: Okrúhle zátvorky znamenajú, že krajné hodnoty nie sú zahrnuté v intervale a ostré zátvorky znamenajú, že krajné hodnoty sú zahrnuté v intervale. Na základe týchto teplotných intervalov vieme v programe vytvoriť podmienky, ktoré rozhodnú, koľko percent dusíka sa má použiť pri danej teplote. Pomocou zvoleného percenta a objemu fľaše vieme vypočítať percentovú časť nasledovne: percento x objem / 100 alebo: (percento / 100) x objem. Aplikujme teraz toto riešenie na celý zoznam teplôt (1 teplota = 1 deň) a celý zoznam objemov fliaš. Iteráciou cez zoznam teplôt zabezpečíme výber správneho percenta pre každý deň. V rámci jednej iterácie tiež pre každú fľašu vypočítame, koľko litrov dusíka do nej potrebujeme vpustiť. Čiastočné výsledky sčítavame do pomocnej premennej, ktorá bude výstupom funkcie. Program vieme zefektívniť tým, že si na začiatku spočítame celkový objem všetkých fliaš. Potom nám pre každý deň stačí vypočítať percentovú časť iba raz. Výsledný program môže vyzerať nasledovne:
Vaše zaujímavé riešenia a najčastejšie chyby Plný počet bodov získali 2 tímy. Medzi najčastejšie chyby patrilo nesprávne určenie teplotných rozsahov (najmä zaradenie krajných hodnôt -10, 0 a 10). Ďalšou častou chybou bolo načítavanie hodnôt z reťazca, nie zoznamu. Niektoré riešenia boli neúplné a počítali dusík len pre jeden deň a jednu fľašu. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |