Autorsk rieenie
[stiahni imp : py]

  • Poet rieiteov: 5 / 11 = 45 %

  • spenos rieenia: 3,3 / 5 = 66 %

Tto loha je pomerne jednoduch. Hrbku adu a predpove priemernch teplt na 10 dn zadvame na zaiatku, ako parametre. Kee priemern teploty sa natavaj do poa, v podstate je jedno, na koko dn zadme predpove, vyhodnotenie sa rob postupne pre kad zadan prvok poda podmienok:

  • Ak je teplota vonku niia ako -5 stupov, tak ad zhrubne o 2 cm za de.

  • Ak je teplota vonku vyia ako +5 stupov, tak z adu ubudn 3 cm.

  • Ak je teplota v rozpt -5 a +5 hrbka adu sa nezmen.

V prvej asti procedry vyhodnotme zmenu hrbky adu v dan de, poda zadanej teploty pomocou vnorench podmienok:

Ak je teplota vonku niia ako -5 stupov, tak hrbka adu sa zvi o 2 cm, in testujeme, i je teplota vonku vyia ako +5 stupov, vtedy sa hrbka adu zmen o 3 cm. Ak ani jedna podmienka nie je pravdiv, potom teplota je zrejme v rozpt -5 a +5, hrbka adu ostva pvodn, nemusme 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

Poda zkonov fyziky plat, e ak sa ad roztop, u je z neho voda. Teda ak hrbka adu dosiahne nulov hodnotu, u pri alom oteplen neme dosiahnu zporn hodnotu, jeho hrbka bude ma naalej nulov hodnotu. D sa to riei jednoduchou podmienkou tak, e ak hrubkaLadu < 0, tak priradme premennej hrubkaLadu 0.

Ostva u len zisti, i dan hrbka adu je postaujca pre usporiadanie majstrovstiev, i teda m aspo 30 cm? Zistme to jednoduchou podmienkou. Ak plat, e aktulna hrbka adu sa men poda dennej teploty v priebehu da, a veer je minimlne 30 cm, dan de vyhovuje podmienke. Poda zadania sta vypsa len to, e ktor de je vhodn pre akciu. Poradie da sa ur potadlom v cykle, teda uchovva informciu o aktulnom porad danho da.

Celkov rieenie me 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])

Vae zaujmav rieenia a najastejie chyby

Najastejou chybou bolo to, e ste si neuvedomili, e hrbka adu neme ma zporn hodnotu. Viacer mali problm s natanm vstupnch dt pomocou zoznamu. Denn teploty je najvhodnejie nata do zoznamu, a potom postupne prechdza prvkami zoznamu pri vyhodnoten podmienok. Natanie dt z textovho poa bez pouitia paramertrov nie je vemi efektvne.

Prekvapili ste ns s peknmi pouvateskmi rozhraniami, hlavne tm Kubista_Macek J.