Autorské riešenie
[stiahni py]                                       

  • Počet riešiteľov: 4 / 5 = 80 %

  • Úspešnosť riešenia: 4,125 / 6 = 68,75 %                   

Zo zadania vieme, že výstup má byť číslo zaokrúhlené na dve desatinné miesta, kde desatinná a celá časť sú oddelené bodkou. Taktiež medzi tisíckami nie sú žiadne oddeľovače a výstup neobsahuje menu EUR ani €.

Na správne vyriešenie úlohy je potrebné vykonať nasledovné kroky:

  • výhodné je na začiatku vstup pretypovať na String, aby sa nám s ním lepšie pracovalo,

  • odstránime si medzery, EUR a €, nakoľko sa ani vo výsledku nemajú nachádzať,

  • odstránime oddeľovače tisícok, ak sú na oddelenie použité bodky alebo čiarky,

  • ak sa v zadanej sume nachádza aj bodka, aj čiarka, zistíme, ktorý znak slúži na oddelenie celej a desatinnej časti,

  •   výsledok zaokrúhlime na dve desatinné miesta.

Výsledné riešenie môže vyzerať napr. takto:

#Python
def uprav_format(suma):
    suma = str(suma)
    suma = suma.replace(' ', '')
    suma = suma.replace('EUR', '')
    suma = suma.replace('', '')

    if suma.count('.') > 1:
        suma = suma.replace('.', '')
    if suma.count(',') > 1:
        suma = suma.replace(',', '')

    if ',' in suma:
        if '.' in suma:
            if suma.index('.') < suma.index(','):
                suma = suma.replace('.', '')
                suma = suma.replace(',', '.')
            else:
                suma = suma.replace(',', '')
        else:
            suma = suma.replace(',', '.')

    vysledok = round(float(suma), 2)
    return vysledok

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

  • Formáty, v ktorých zákazníci zadávajú sumy sú rôzne, teda sa často stalo, že riešitelia niektoré nesprávne formáty neodstránili. Často sa stalo, že zabudli odstrániť podreťazec "EUR" alebo znak €.

  • Ďalším problémom bolo, ak sa v sume nachádzala aj bodka aj čiarka, pričom mali rôznu funkcionalitu. Potrebné bolo zistiť, ktorý znak slúžil na oddelenie celej a desatinnej časti.

  • Z riešení bolo pekne vidieť postup žiakov. Začali najjednoduchšími podmienkami a postupne sa dopracovali k náročnejším. Riešim základnú úlohu a ďalej jej nadstavby.

  • Riešitelia sa s odhodlaním pustili do tejto neľahkej úlohy. K ich výkonom im srdečne blahoželáme a nešetríme pochvalou.