Autorské riešenie
[stiahni py]

  • Počet riešiteľov:8 / 17 = 47%

  • Úspešnosť riešenia: 4 / 5 = 80%  

Zo zadania vieme, že našou úlohou je pomôcť korytnačke Majke nájsť správnu veľkosť oblečenia pre jej zákazníkov na základe dĺžky a šírky, prípadne jej oznámiť, že pre zadané miery, nemá dostupnú veľkosť.

  1. V úlohe pracujeme s dvoma parametrami a to je šírka panciera a dĺžka.
  2. V tabuľke si hneď môžeme všimnúť, že nepracujeme so šírkou ako takou, ale s pomerom dĺžky a šírky (dĺžka/šírka). V reálnom svete si pod tým vieme predstaviť typ postavy.
  3. Následne si môžeme všimnúť, že jedna hodnota (pomer) ovplyvňuje strih (priliehavý, rovný, voľný) a druhá (dĺžka) nám ovplyvňuje veľkosť (S,M,L).
  4. Na základe toho zadefinujeme podmienku najskôr pre pomer a strih v tvare:
    • ak (if) je pomer menší ako 0,5, tak strih je priliehavý,
    • inak ak (elif) je väčší ako 0,5, ale menší ako 0,7, tak je strih rovný,
    • inak ak (elif) je väčší ako 0,7, ale menší ako 1, tak je strih voľný,
    • inak (else) ak dostaneme hodnotu, ktorá je väčšia ako 1 alebo nám príde niečo, čo nie je vôbec zadefinované, vrátime odpoveď nedostupné. V tomto prípadenie nie je potrebné ďalej pokračovať.
  5. Rovnako postupujeme pri určovaní veľkosti na základe premennej dĺžka.
  6. Nakoniec, ak obe hodnoty boli z tabuľky (nedostali sme sa k odpovedi nedostupné, vrátime príslušnú veľkosť a strih.

Tabuľka typov tričiek

#Python
def velkost(sirka, dlzka):
    pomer = sirka / dlzka
    if pomer <= 0.5:
        strih = 'priliehavý'
    elif pomer <= 0.7:
        strih = 'rovný'
    elif pomer <= 1:
        strih = 'voľný'
    else:
        return 'nedostupné'

    if dlzka <= 120:
        velkost = 'S'
    elif dlzka <= 150:
        velkost = 'M'
    elif dlzka <= 180:
        velkost = 'L'
    else:
        return 'nedostupne'

    return f'{velkost} {strih}'

Vaše zaujímavé riešenia a najčastejšie chyby

V princípe sa jednalo o maličkosti, ktoré málokedy ovplyvnili samotnú myšlienku algoritmu. Stalo sa, že v programe nebola zadefinovaná funkcia, ktorá bola požadovaná v zadaní alebo keď bola zadefinovaná, nevstupovali do nej žiadne parametre a vstupy do programu sa nachádzali v samotnej definícii funkcie. Ďalšou pomerne častou chybou bolo, že mnoho riešiteľov nezahrnulo pomer dĺžky a šírky, ale pracovali s parametrom šírka, ktorý bol očakávaný v rozsahu od 0 do 1. Tieto chyby neboli až také vážne, keďže samotný algoritmus neovplyvňovali. Ďalší bod sa nedá úplne nazvať chybou, ale mnoho riešiteľov namiesto príkazu if - elif - else využívalo niekoľko vnorených if podmienok. V princípe to nemusí byť chybou, ale v niektorých prípadoch to spôsobilo zacyklenie programu, ktorý tak nevrátil žiaden výsledok aj keď vstupovali platné hodnoty. A posledným dôležitým bodom je neošetrenie prípadu pri vstupe neplatných hodnôt, teda ak vstúpi hodnota, ktorá nie je z tabuľky, program nevráti odpoveď nedostupné. Pri mnohých programoch bol postačujúce len doplniť else vetvu v if podmienke.