Autorské riešenie
[stiahni imp : py]

  • Počet riešiteľov: 12 / 20 = 60 %

  • Úspešnosť riešenia: 2,33 / 4 = 58 %

Najprv je potrebné si uvedomiť, aký vstup dostaneme. V našom prípade pôjde o zoznam tovarov, pričom každý tovar bude reprezentovaný zoznamom. Tovar bude obsahovať v poradí tieto informácie:

  • počet zakúpených kusov daného tovaru,
  • názov tovaru,
  • jednotková cena tovaru.

Takže náš vstup pre 3 rôzne tovary bude vyzerať nasledovne:

[[početTovaru1, názovTovaru1, cenaTovaru1], [početTovaru2, názovTovaru2, cenaTovaru2], [početTovaru3, názovTovaru3, cenaTovaru3]]

Ako prvé si vytvoríme pomocnú premennú cena s počiatočnou hodnotou 0. Do nej si budeme zaznamenávať priebežnú cenu nákupu. Ďalej budeme postupovať tak, že budeme prechádzať zoznamom tovarov. Pre každý tovar vynásobíme početTovaru a cenaTovaru (prvú a poslednú položku zoznamu pre daný tovar) a túto hodnotu pripočítame k aktuálnej hodnote premennej cena. Nakoniec vrátime hodnotu premennej cena, ktorá bude reprezentovať hodnotu celkového nákupu.

;Imagine logo
viem cenaNakupu :zoznam
  urobTu "cena 0
  prePrvky "polozka :zoznam [
    urobTu "cena :cena+prvy :polozka * posledny :polozka
  ]
  vy :cena
koniec

A teraz riešenie v Pythone:

Python
def cenaNakupu(zoznamTovarov): ''' Funkcia na vstupe dostane zoznam tovarov a vrati cenu za nakup pozostavajuci z tychto tovarov . :param zoznamTovarov: zoznam tovarov, pricom tovar pozostava zo zoznamu troch prvkov, a to poctu zakupenych kusov daneho tovaru, nazvu tovaru a jednotkovej ceny tovaru :type zoznamTovarov: list of lists :return: cenu nakupu :rtype: float or int ''' cena=0 for i in zoznamTovarov: cena=cena+i[0]*i[2] return cena print(cenaNakupu([[2,"chlieb",1],[1,"saty",8],[10,"horalky",1.5]]))

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

Je pravdá, že túto úlohu takmer nikto neriešil týmto spôsobom (iba jeden tím mal podobné riešenie formou zoznamu). Viacerí riešitelia zvolili grafické riešenie. Vyskytol sa nám teda na obrazovke bloček, iní riešitelia zasa napodobňovali formu pokladne a ďalší použili na reprezentáciu tovarov databázu. Veľmi zaujímavé bolo riešenie jedného tímu. Ten okrem základnej sumy za tovar ešte pripočítaval aj DPH.
Najčastejšou chybou bolo to, že viacerí danú úlohu riešili iba pre jeden tovar (teda nepotreboali žiadnu pomocnú premennú), iní zasa boli schopní spočítať cenu iba pre obmedzený počet tovarov, napr. 10.