Autorské rie¹enie
[stiahni imp : py]

  • Poèet rie¹iteµov: 5 / 11 = 45 %

  • Úspe¹nos» rie¹enia: 3,3 / 5 = 66 %

Táto úloha je pomerne jednoduchá. Hrúbku µadu a predpoveï priemerných teplôt na 10 dní zadávame na zaèiatku, ako parametre. Keï¾e priemerné teploty sa naèítavajú do poµa, v podstate je jedno, na koµko dní zadáme predpoveï, vyhodnotenie sa robí postupne pre ka¾dý zadaný prvok podµa podmienok:

  • Ak je teplota vonku ni¾¹ia ako -5 stupòov, tak µad zhrubne o 2 cm za deò.

  • Ak je teplota vonku vy¹¹ia ako +5 stupòov, tak z µadu ubudnú 3 cm.

  • Ak je teplota v rozpätí -5 a +5 hrúbka µadu sa nezmení.

V prvej èasti procedúry vyhodnotíme zmenu hrúbky µadu v daný deò, podµa zadanej teploty pomocou vnorených podmienok:

Ak je teplota vonku ni¾¹ia ako -5 stupòov, tak hrúbka µadu sa zvý¹i o 2 cm, ináè testujeme, èi je teplota vonku vy¹¹ia ako +5 stupòov, vtedy sa hrúbka µadu zmen¹í o 3 cm. Ak ani jedna podmienka nie je pravdivá, potom teplota je zrejme v rozpätí -5 a +5, hrúbka µadu ostáva pôvodná, nemusíme sa stara» o jej zmenu.

Imagine Logo

viem vhodneDni :hrubkaLadu :teploty  
  prePrvky "teplota :teploty [
    ak2 :teplota < -5 [
      urobTu "hrubkaLadu :hrubkaLadu+2
    ][
      ak :teplota > 5 [
        urobTu "hrubkaLadu :hrubkaLadu-3
      ]
    ]
  ]
koniec

Python

def vhodneDni(hrubkaLadu, teploty):
   den =
0
  
for teplota in teploty:
      den +=
1
     
if teplota < -5:
         hrubkaLadu +=
2
     
elif teplota > 5:
         hrubkaLadu -=
3

Podµa zákonov fyziky platí, ¾e ak sa µad roztopí, u¾ je z neho voda. Teda ak hrúbka µadu dosiahne nulovú hodnotu, u¾ pri ïal¹om oteplení nemô¾e dosiahnu» zápornú hodnotu, jeho hrúbka bude ma» naïalej nulovú hodnotu. Dá sa to rie¹i» jednoduchou podmienkou tak, ¾e ak hrubkaLadu < 0, tak priradíme premennej hrubkaLadu 0.

Ostáva u¾ len zisti», èi daná hrúbka µadu je postaèujúca pre usporiadanie majstrovstiev, èi teda má aspoò 30 cm? Zistíme to jednoduchou podmienkou. Ak platí, ¾e aktuálna hrúbka µadu sa mení podµa dennej teploty v priebehu dòa, a veèer je minimálne 30 cm, daný deò vyhovuje podmienke. Podµa zadania staèí vypísa» len to, ¾e ktorý deò je vhodný pre akciu. Poradie dòa sa urèí poèítadlom v cykle, teda uchováva informáciu o aktuálnom poradí daného dòa.

Celkové rie¹enie mô¾e vyzera» takto:

Imagine Logo

viem vhodneDni :hrubkaLadu :teploty
  prePrvky "teplota :teploty [
    ak2 :teplota < -5 [
      urobTu "hrubkaLadu :hrubkaLadu + 2
    ][
      ak :teplota > 5 [
        urobTu "hrubkaLadu :hrubkaLadu - 3
        ak :hrubkaLadu < 0 [
          urobTu "hrubkaLadu 0
        ]
      ]
    ]
    ak :hrubkaLadu >= 30 [
      pis (slovo "|Vhodny den: | pocitadlo )
    ]
  ]
koniec

Python

def vhodneDni(hrubkaLadu, teploty):
   den =
0
  
for teplota in teploty:
      den +=
1
     
if teplota < -5:
         hrubkaLadu +=
2
     
elif teplota > 5:
         hrubkaLadu -=
3
        
if hrubkaLadu < 0:
            hrubkaLadu =
0
     
if hrubkaLadu >= 30:
        
print("Vhodny den:", den )

vhodneDni(
25, [-6, -6, -6, 8, -6, 8, 8, -6, 7, 8])

Va¹e zaujímavé rie¹enia a najèastej¹ie chyby

Najèastej¹ou chybou bolo to, ¾e ste si neuvedomili, ¾e hrúbka µadu nemô¾e ma» zápornú hodnotu. Viacerí mali problém s naèítaním vstupných dát pomocou zoznamu. Denné teploty je najvhodnej¹ie naèíta» do zoznamu, a potom postupne prechádza» prvkami zoznamu pri vyhodnotení podmienok. Naèítanie dát z textového poµa bez pou¾itia paramertrov nie je veµmi efektívne.

Prekvapili ste nás s peknými pou¾ívateµskými rozhraniami, hlavne tím Kubista_Macek J.