Autorské riešenie
[stiahni]

Súťaž PALMA junior pozostáva každý rok z troch priebežných kôl so štyrmi úlohami (zo šiestich zverejnených) a jedného finálového kola, kde sa riešia tri úlohy (zo štyroch, v prvom ročníku len z troch). Ak však berieme do úvahy aj cvičné úlohy pred priebežným kolom, tak výsledný počet úloh za jeden rok dostaneme vynásobením 3*(4+5). Toto číslo je ešte potrebné vynásobiť počtom rokov, v ktorých súťažiaci súťažil. Ak sa ale súťažiaci prebojoval aj do finálového kola, tak navyše každý rok ešte riešil ďalšie 3 súťažné a 5 cvičných úloh (3+5). Túto hodnotu násobíme počtom finálových rokov načítaných cez vstupný parameter procedúry. Výsledné dve hodnoty už stačilo len spočítať.

Výsledná procedúra pre ľubovoľného súťažiaceho môže vyzerať nasledovne:

viem pocetUloh :pocetRokov :pocetFinale
  urobTu "pocetNefinalovychKol 3
  urobTu "pocetCvicnychUloh 5
  urobTu "pocetNefinalovychUloh 4
  urobTu "pocetFinalovychUloh 3
  urobTu "ulohyBeznyRok :pocetNefinalovychKol*(:pocetNefinalovychUloh+:pocetCvicnychUloh)
  urobTu "ulohyFinalovyRok :pocetFinalovychUloh+:pocetCvicnychUloh
  urobTu "vsetkyUlohy :pocetRokov*:ulohyBeznyRok + :pocetFinale*:ulohyFinalovyRok

  (píš "Súťažiaci "vyriešil :vsetkyUlohy "úloh)
koniec

Úloha však ponúkala aj iné riešenia. Napríklad je možné rozdeliť výpočet na roky, v ktorých bol súťažiaci finalistom a v ktorých nefinalistom. Potom pri určovaní výsledku vypočítame počet rokov, v ktorých súťažiaci nebol finalistom výrazom :pocetRokov - :pocetFinale.

Výsledná procedúra potom môže vyzerať nasledovne:

viem pocetUloh :pocetRokov :pocetFinale
  urobTu "pocetCvicnychUloh 5
  urobTu "pocetSutaznychUlohFinale 3
  urobTu "pocetSutaznychUlohNefinale 3
  urobTu "finalista 4*(:pocetCvicnychUloh+:pocetSutaznychUlohFinale)
  urobTu "nefinalista 3*(:pocetCvicnychUloh+:pocetSutaznychUlohNefinale)
  urobTu "spolu :pocetFinale*:finalista + (:pocetRokov - :pocetFinale)*:nefinalista

  (píš "Súťažiaci "vyriešil :spolu "úloh)
koniec

Vaše zaujímavé riešenia:

Úlohu riešilo 29 tímov, väčšinou úspešne, aj keď riešenia boli rôznorodé. Možno si niekto mohol všimnúť, že kým v posledných ročníkoch sa vo finále riešia tri zo štyroch úloh, tak v prvom ročníku boli zadané len tri úlohy. Ale riešili sa všetky tri. V diskusii pred súťažou ani vo Vašich riešeniach sa neobjavil takýto postreh alebo otázka na túto odlišnosť. Vaše riešenia pozostávali z jednej procedúry. Komentáre ste zakomponovali buď priamo do tela procedúry alebo na pracovnú plochu cez textové pole. Objavilo sa aj jedno riešenie, ktoré využívalo textové polia a tlačidlo na výpočet, čo vyzeralo esteticky pekne, ale bohužiaľ výpočet nebol správny, keďže riešiteľ si neuvedomil, že niektoré hodnoty o súťaži PALMA junior bolo potrebné vyhľadať na internete.

Úlohu ste riešili nielen rozdelením na počet finálových a nefinálových rokov, ale objavili sa aj ďalšie zaujímavé riešenia, ktoré využívali rozdelenie na počet cvičných a počet súťažných úloh za rok:

viem pocetUloh :roky :finale
  urobTu "KolaNaRok 3
  urobTu "cvicneUlohyNaKolo 5
  urobTu "pocetSutaznychUlohNefinale 3
  urobTu "sutazneUlohyNaKolo 4
  urobTu "sutazneUlohyFinale 3
  urobTu "sutazneUlohy :roky*:kolaNaRok*:sutazneUlohyNaKolo + :finale*:sutazneUlohyFinale
  urobTu "cvicneUlohy :roky*:kolaNaRok*:cvicneUlohyNaKolo + :finale*:cvicneUlohyNaKolo

  (píš [Pocet uloh, ktore vypocital v ramci sutaze je ] :sutazneUlohy
  [ a pocet uloh, ktore vypocital pri cviceni je ] :cvicneUlohy
  [. Spolu teda vypocital] :sutazneUlohy + :cvicneUlohy[ uloh.])
koniec

Najčastejšie chyby:

  • chýbajúce zdôvodnenie získaných hodnôt a výpočtu,
  • príliš veľa vstupných parametrov procedúry, napr. aj pre cvičné úlohy, ktorých počet bol v zadaní,
  • parametre procedúry boli nevhodne a neprehľadne pomenované,
  • v procedúre ste použili hodnoty 36 alebo 27 bez vysvetlenia, ako ste sa k nim dopracovali.