Skip to main content
 
To je arhiv spletne učilnice za leto 2021/22. Aktualna spletna učilnica je na naslovu https://ucilnica.fmf.uni-lj.si
Učilnica 21/22
  • English ‎(en)‎
    English ‎(en)‎ Slovenščina ‎(sl)‎
You are currently using guest access (Log in)

Programiranje 1

  1. Home
  2. Courses
  3. Praktična matematika
  4. 1. letnik
  5. PROG1 (PRA)
  6. Vaje 2021/22
  7. V_18 (kovanci in datoteke) (J)

V_18 (kovanci in datoteke) (J)

Completion requirements
Due: Thursday, 17 March 2022, 8:00 PM
Glavnino vaj bomo tokrat posvetili reševanju problema pobiranja kovancev, ki ste ga spoznali na predavanjih, ter njegovim izpeljankam. Drugi del vaj bo namenjen spoznavanju z datotekami preko nalog na Tomu.


1. Pobiranje kovancev

Osnovna rešitev problema kovancev

Na predavanjih ste spoznali problem pobiranja kovancev in ga rešili na tri načine:

  • z uporabo grobe sile (preverimo vse možne kombinacije)
  • z rekurzijo
  • z rekurzijo in slovarjem za hranjenje vmesnih rezultatov
Za vsak način napišite ustrezno funkcijo ter preverite, da vse delujejo pravilno (pripravite si nekaj primerov, za katere rešitev izračunate na roko, nato pa preverite, če vaše funkcije vračajo pravilno rešitev).
Izmerite čas izvajanja vsake izmed funkcij in jih primerjajte med seboj (spomnite se, kako smo čas z uporabo modula time merili pri nekaterih nalogah na začetku leta - recimo podnaloga Metak mrzkog neprijatelja naloge Mirko in Slavko na https://www.projekt-tomo.si/problem_set/2260/). Kaj se dogaja s časom, ko povečujete število kovancev? Za kako velike tabele še lahko izračunate rešitev v eni minuti z vsako izmed napisanih funkcij? Ugotovitve v nekaj stavkih predstavite v poročilu.

Nadgradnja problema kovancev

Rešitev problema kovancev nadgradite tako, da

  • vrne optimalno kombinacijo
  • vrne najkrajšo (z najmanj števili) optimalno kombinacijo
  • vrne najdaljšo (z največ števili) optimalno kombinacijo
  • vrne vse optimalne kombinacije
  • vrne optimalno kombinacijo z največjo vsoto vseh števk števil, ki jih izberemo
  • funkcija sprejme dodaten parameter k, ki pove, koliko kovancev moramo preskočiti (pri k=1 torej rešujemo klasičen problem kovancev, ker mora biti med dvema izbranima kovancema vsaj en kovanec)
Izberite si vsaj eno izmed nadgradenj in jo implementirajte. V poročilu na kratko komentirajte, kaj ste v kodi spremenili. Navedite tudi vsaj tri primere, na katerih ste svojo rešitev testirali (vsaj en mora biti netrivialen). Oddajte tudi kodo, ki naj sledi smernicam za lepo programiranje (jasna imena spremenljivk, ustrezni komentarji, kjer so potrebni).

2. Datoteke

Na Tomu si v sklopu Uvod v datoteke oglejte video z razlago, nato pa rešite vsaj tri podnaloge v tem sklopu.

=============

Poročilo naj vključuje:
  • komentarje in odgovore, zahtevane pri nalogi s kovanci
  • posnetek semaforjev za nalogo Datoteke

Rok za oddajo poročil je 17. 3. ob 20:00.

Za te vaje lahko pridobite Jollija, če poleg ostalih zahtev:
  • prikažete graf(e) meritev časa - pri tem lahko uporabite poljubno orodje
  • naredite vsaj tri nadgradnje problema s kovanci, oddate njihovo kodo in jih ustrezno predstavite v poročilu

◄ V_17 (rekurzija II)
V_19 (datoteke) ►
Skip Navigation
Navigation
  • Home

    • Site pages

      • My courses

      • Tags

    • My courses

    • Courses

      • Praktična matematika

        • 1. letnik

          • MANG

          • MAT1

          • MVP

          • PROG1 (PRA)

            • Programiranje 1

            • Seminarska naloga 2021/22

            • Vaje 2021/22

              • AssignmentV_00 (ogled uvodnih predavanj)

              • QuizOgled posnetkov uvodnih predavanj (namesto lab. va...

              • AssignmentV_01 koliko že znamo + Pišek

              • AssignmentV_02 osnovne naloge

              • FileVaje 2 na tablo

              • AssignmentV_03 (še malo osnov)

              • AssignmentV_04 (funkcije) (J)

              • AssignmentV_05 (pogojni stavek)

              • AssignmentV_06 (zanke) (J)

              • AssignmentV_07 (zanke II)

              • AssignmentV_08 (osnove tabel)

              • AssignmentV_09 (tabele)

              • AssignmentV_10 (nizi)

              • AssignmentVaje 11 (ponavljanje)

              • URLKviz s predavanj (odprt do 8. 1.)

              • AssignmentVaje 12 (soba pobega) (J)

              • AssignmentV_13 (množice in slovarji)

              • AssignmentV_14 (ponavljanje)

              • FilePonavljamo ob koncu semestra

              • FilePonavljamo ob koncu semestra

              • AssignmentV_15 (množice in slovarji II) (J)

              • AssignmentV_16 (rekurzija I)

              • AssignmentV_17 (rekurzija II)

              • AssignmentV_18 (kovanci in datoteke) (J)

              • AssignmentV_19 (datoteke)

              • AssignmentV_20 (datoteke, slovarji, rekurzija)

              • AssignmentV_21 (soba pobega II) (J)

              • AssignmentVaje 22 (želvja grafika I)

              • PageNaloge - želvja grafika risanje

              • PageNaloge - Želva in rekurzija 1

              • AssignmentVaje 23 (želvja grafika in rekurzija) (J)

              • PageNaloge - Želva in rekurzija II

              • Lightbox GalleryTekmovanje želvjih umetnin

              • FeedbackTekmovanje želvjih umetnin - glasovanje

              • AssignmentVaje 24 (modul OS)

              • AssignmentVaje 25 (izpeljani izrazi, lambde, ...)

              • AssignmentVaje 26 (Uvod v OOP)

              • AssignmentVaje 27 (OOP - lastnosti)

              • AssignmentVaje 28 (OOP - magične metode)

              • AssignmentVaje 29 (OOP - dedovanje)

            • Trening za izpit ...

            • O programiranju, prvi programi ...

            • Branje, spreminjanje, funkcije

            • Pogojni stavek, zanke, ...

            • Tabele

            • Nizi, tabele ...

            • Nekaj prijemov

            • Množice in slovarji

            • Rekurzija

            • Rekurzija II

            • Rekurzija III + bin + zip

            • Datoteke

            • Napake: lovljenje in proženje, import

            • Želvja grafika

            • Izpeljane strukture, funkcijsko programiranje

            • Delo z OS + rekurzija, razhroščevanje

            • Uvod v OOP

            • OOP I

            • OOP II

            • OOP III

            • OOP IV

            • Izpiti, kolokviji ....

            • Izpiti 2021/22

          • UVF

        • 2. letnik

        • 3. letnik

        • ŠTUD (PRA)

      • Matematika

      • Finančna matematika

      • Pedagoška matematika

      • IŠRM

      • Fizika

      • Aplikativna fizika

      • Fizikalna merilna tehnika

      • Zunanji predmeti

      • Razno

You are currently using guest access (Log in)
PROG1 (PRA)
  • English ‎(en)‎
    • English ‎(en)‎
    • Slovenščina ‎(sl)‎
Data retention summary
Get the mobile app