Autorské riešenie
[stiahni imp : py]

  • Počet riešiteľov: 32 / 37 = 86 %

  • Úspešnosť riešenia:  4,2 / 6 = 70 %

Pri riešení bolo dôležité uvedomiť si, že vstupnými parametrami tejto úlohy sú:

  • počiatočný vklad,
  • rozdiel, o ktorý sa bude meniť každoročný vklad (kladný, nulový alebo záporný),
  • úroková sadzba,
  • počet rokov sporenia.

Je zrejmé, že ak je počet rokov sporenia rovný nule, na konci sporenia je na účte iba hodnota počiatočného vkladu. Môžeme si to predstaviť tak, že hneď po vložení počiatočného vkladu sporenie ukončíme. Ak je už počet rokov sporenia väčší ako nula, na konci každého roka sa aktuálna suma na účte zúročí. Na začiatku ďalšieho roka sa suma vkladu zväčší (zmenší, ostane rovnaká) na základe stanovenej hodnoty rozdielu. Ak je táto suma vkladu po určitom roku menšia ako nula, na sporiaci účet sa už ďalej vkladať nebude. Na konci každého sporiaceho roka sa však naďalej bude pripisovať úrok.

Nasledujú moľné riešenia v jazyku Imagine Logo a Python.

;Imagine logo
viem úspory :vklad :rozdiel :pa :roky
   ak (:roky <= 0) [
     pis :vklad
     ukonci
   ]
   urobTu "naUcte 0
   opakuj :roky [
     urobTu "naUcte :naUcte + :vklad
     urobTu "naUcte :naUcte * (1+:pa/100)
     urobTu "vklad :vklad + :rozdiel
     ak (:vklad < 0) [urobTu "vklad 0]
   ]
   pis :naUcte
koniec

 

#python

import math
# vypocita uspory na zaklade pociatocneho vkladu, zmeny vkladu v ďalších rokoch, úrokovej mieru a počtu rokov sporenia
def uspory(vklad,rozdiel,pa,roky):
   '''
   :param vklad: počiatočný vklad na účet
   :type float
   :param rozdiel: rozdiel, o ktorý sa mení každoročný vklad
   :type float
   :param pa: ročný úrok v %
   :type float
   :param roky: počet rokov sporenia
   :type int
   :return: vráti sumu na účte na konci sporenia
   :rtype float
   '''


   if roky<=0:
       return vklad
   naUcte = 0
   for i in range(roky):
       naUcte += vklad
       naUcte *= 1 + pa/100
       vklad += rozdiel
       if vklad<0:
           vklad = 0
   return naUcte

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

Úlohu riešilo 32 tímov, objavili sa riešenia aj v Imagine aj v Pythone. Plný počet bodov získali iba dva tímy. Väčšina z tímov odhalila správnu myšlienku riešenia. Neuvedomili ste si však, že každoročný vklad nie je rovnaký, ale mení sa na základe zvolenej hodnoty rozdielu. Táto hodnota môže byť aj záporná, a teda po určitom počte rokov sa môže stať, že na účet už nebudeme pridávať žiaden vklad. Objavili sa aj riešenia, v ktorých nebolo správne počítanie s úrokom.