Preskoči na glavno vsebino
Učilnica FRI 24/25
  • Domov
  • Več
Zapri
Preklopi iskalni vnos
Slovenščina ‎(sl)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
Trenutno uporabljate gostujoči dostop
Prijavite se
Učilnica FRI 24/25
Domov
Razširi vse Skrči vse
  1. pn
  2. Oblikovanje nizov in pisanje datotek
  3. Banane

Banane

Zahteve zaključka
Rok za oddajo: sreda, 27. november 2024, 16.15

Banane predstavljajo eno od osnovnih dobrin sodobne družbe. Brez banan si praktično ne moremo več prestavljati moderne ekonomije, umetnosti in izobraževalnega procesa, pomembne pa so tudi v prehrani.

Zato se ne gre čuditi, da so banane tudi eden izmed najpomembnejših izvoznih, predvsem pa uvoznih artiklov. V priloženi datoteki zip so zato podatki Svetovne banke in UNCTADa o uvozu banan, spremenjeni v obliko .csv. Z datoteko ravnajte spoštljivo. Delite jo s prijatelji in znanci, ki bi jih utegnila zanimati ta pomembna tematika.

Odzipajte datoteko. V njej se nahaja datoteka testi.py, podatki pa so v poddirektoriju podatki. Podatke pustite tam, kjer so, program pa pišite v datoteko testi.py, ki je prav tako ne premikajte nikamor. Datotek ne preimenujte! Ko oddajate nalogo, oddajte samo testi.py.

V nekaterih nalogah je potrebno vrniti najcenejše, najdražje ali kaj podobnega, ali pa prvih n držav glede na nek kriterij. Ne ukvarjajte se s tem, da si morda več držav deli isto mesto, saj so številke dovolj raznolike, da se to najbrž ne zgodi.

Za določeno oceno je potrebno pravilno rešiti tudi vse naloge za nižje ocene.

Ocena 6

  1. Napišite funkcijo preberi_tezo(leto), ki prebere podatke za podano leto in vrne slovar, katerega ključi so imena držav (Reporter), vrednosti pa so teže uvoženih banan, kot jih preberete iz stolpca Quantity.

    Med državami je tudi "European Union". To "državo" preskočite. Prav tako preskočite vrstice, v katerih podatek manjka ("Quantity" je prazen).

    Poleg tega napišite funkcijo preberi_vrednost(leto), ki vrne podoben slovar, le da so vrednosti vrendnost uvoženih banan v dolarjih (**številko iz tabele pomnožite s 1000). Tudi tu odstrani evropsko unijo.

  2. Napišite funkcijo najcenejse_banane(leto), ki poišče državo, ki je v podanem letu leto uvažala banane za najnižjo ceno (na kilogram) in vrne par (terko) z imenom te države in ceno, ki jo je plačala (v dolarjih na kilogram).

  3. Napišite funkcijo najblizje_sloveniji(leto), ki vrne ime države, ki je bila glede na skupno težo uvoženih banan v podanem letu najbližje Sloveniji. Če za Slovenijo v tistem letu ni podatkov, funkcija vrne None.

    Ne spreglejte, da gre lahko za državo, ki je uvozila malo manj ali malo več banan kot Slovenija.

  4. Napišite funkcijo razpon_cen(leto), ki vrne par (terko) z najnižjo in najvišjo ceno banan v podanem letu (v dolarjih na kilogram).

Ocena 7

  1. Napišite funkcijo naj_uvoznice(leto, n), ki vrne prvih n držav po teži uvoza banan v podanem letu. Seznam naj bo urejen padajoče po teži.

  2. Napišite funkcijo izpis(drzave, leto), ki prejme seznam držav in leto. Funkcija mora vrniti niz (ne izpisati!) takšne oblike:

    Slovenia           98   0.79
    China            1768   0.61
    Germany          1367   0.85
    Netherlands      1072   0.85
    Japan            1033   0.93
    

    Prvi stolpec je ime države, drugi teža uvoženih banan v gigagramih (kilotonah, 1000 tonah), tretji je cena v dolarjih na kilogram.

    Pazi na poravnave in presledke: ti so postavljeni pravilno, če funkcija prestane teste.

  3. Napišite funkcijo prvih_n(leto, n), ki izpiše tabelo, kot je gornja, za n držav, ki so v podanem letu uvozile največ banan. Seznam naj bo urejen padajoče po teži.

Ocena 8

  1. Napišite funkcijo trend(drzava, od, do), ki vrne seznam s količino banan, ki jih je država uvozila v letih med od in do (vključno z do). Če za kako leto ni podatka, naj bo za tisto leto v seznamu None.

  2. Napišite funkcijo skupni_uvoz(leto), ki za podano leto vrne skupno težo vseh uvoženih banan v vseh državah.

  3. Napišite funkcijo rast_porabe(od, do), ki vrne seznam s skupnim uvozom banan po vsem svetu med podanima letoma.

  4. Napišite funkcijo inflacija(od, do)), ki vrne seznam s povprečno ceno banan v dolarjih na kilogram med podanima letoma. Povprečna cena je enaka skupni vrednosti uvoza (vsota prek vseh držav) deljena s skupno težo uvoženih banan.

Ocena 9

Napišite funkcijo tabela(od, do, drzave, ime_dat), ki v datoteko z imenom ime_dat izpiše podatke o uvozu banan v tonah za podane države v podanem intervalu let. Oblika tabela mora biti do presledka kot v spodnjem primeru in v podanih datotekah test1.txt, test2.txt in test3.txt. (Te datoteke se uporabljajo v testih, zato jih ne spreminjaj!!!)

Teža v tonah naj bo zaokrožena navzdol, torej teza_v_kg // 1000. Če teža ni znana ali pa je enaka 0, na tistem mestu ne izpišite ničesar (razen ustreznega števila presledkov).

Klic

tabela(1992, 2000,
       ["Slovenia", "Germany", "Japan", "United States"],
        "tabela.txt")

v tabela.txt shrani tole:

Leto      Slovenia     Germany       Japan  United Sta
------------------------------------------------------
1992                   1378870      777477     3693120
1993                   1222890      913612     3676980
1994         25227     1175620      929799     3862050
1995         31298     1306440      874108     3836570
1996         29645     1244570      819086     3966400
1997         30287     1133170      885454     3957720
1998         25391     1033120      865310     4113060
1999         28693     1034380      983504     4512440
2000         26674     1113840     1079060     2268700
------------------------------------------------------

Ime države je skrajšano na prvih deset znakov.

Funkcija mora delovati za poljubno veliko število držav!

Ocena 10

Napišite funkcijo tabela_drzav(od, do, drzave, ime_dat), ki prav tako zapiše podatke v datoteko, vendar drugačni obliki:

Država               1992      1993      1994      1995      1996      1997      1998      1999      2000
---------------------------------------------------------------------------------------------------------
Slovenia                                25227     31298     29645     30287     25391     28693     26674
Germany           1378870   1222890   1175620   1306440   1244570   1133170   1033120   1034380   1113840
Japan              777477    913612    929799    874108    819086    885454    865310    983504   1079060
United States     3693120   3676980   3862050   3836570   3966400   3957720   4113060   4512440   2268700
---------------------------------------------------------------------------------------------------------

Podatki, testne datoteke in testi

  • banane.zip banane.zip
    20. november 2024, 17:16
Trenutno uporabljate gostujoči dostop (Prijavite se)
Pridobi mobilno aplikacijo
Stran poganja Moodle
Obvestilo o avtorskih pravicah