5. nädala YL

Informaatika õppelehekülg

Viiendal nädalal tuleb esitada nelja kohustusliku ülesande lahendused. Neljanda ülesande puhul on võimalik valida lahendamiseks vähemalt üks järgmistest ülesannetest, kas 5.4a, 5.4b või 5.4c (võib ka kaks või kolm lahendada). Lahendused tuleb saata aadressile astridrosenberg20@gmail.com.

Kontrollülesanne 5.1. Mopeedid

2016. aastal registreeriti Eestis 637 uut mopeedi (http://www.stat.ee/389966). Registreeritud mopeedide andmed on kuude kaupa failis mopeedid.txt, kus esimesel real on jaanuaris registreeritud mopeedide arv, teisel real veebruaris registreeritud mopeedide arv jne. Faili võite salvestada siit või koostada ise mõne tekstiredaktoriga.

Koostada programm, mis

  • loeb failist registreeritud mopeedite andmed kuude järgi järjendisse;
    • Failist järjendisse saab lugeda järgmise programmijupi abil:

Viide: https://courses.cs.ut.ee/2018/eprogalused/Main/Andmedfailist

  • küsib kasutajalt täisarvu, mis tähistab ühe kuu järjekorranumbrit (jaanuar 1, veebruar 2 jne);
  • väljastab, mitu uut mopeedi sel kuul registreeriti.

Näited programmi tööst:

Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.

Kontrollülesanne 5.2. Lillede arv (for-tsükliga)

On traditsioon, et rõõmsatel puhkudel kingitakse paaritu arv lilli. Lillepoel on sünnipäev ja pood otsustas klientidele kinkida lilli nii, et päeva esimene ostja saab ühe lille, teine ei saa ühtegi, kolmas ostja saab kolm lille, neljas ei saa midagi, viies ostja saab viis lille jne.

Koostada programm, mis

  • küsib kasutajalt klientide arvu (mittenegatiivne täisarv);
  • arvutab for-tsükli ja funktsiooni range() abil lillede koguarvu, mida pood kingib;
  • väljastab saadud lillede arvu ekraanile.

Vihje: lillede koguarvust võib mõelda kui summast, milles liidetavad on paaritud arvud alates 1 kuni esimese paaritu arvuni, mis pole suurem kui klientide arv.

Näiteks, kui kasutaja sisestas 7, siis paaritute arvude summa on 16, sest 1 + 3 + 5 + 7 = 16. Kui kasutaja sisestas 8, siis on summaks samuti 16, sest 1 + 3 + 5 + 7 = 16.

Tegemist on ülesande 3.2 variandiga for-tsükli jaoks.

Näited programmi tööst:

Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.

Kontrollülesanne 5.3. Sissetulekud

Failis konto.txt on kirjas ujukomaarvudena pangakonto tehingud (kus positiivsed arvud on sissetulekud ja negatiivsed arvud on väljaminekud). Iga arv on eraldi real. Näitefaili võite salvestada siit või koostada ise mõne tekstiredaktoriga (kasvõi Thonnyga). Tekstifaili kasutamiseks programmi sees peab fail asuma programmifailiga samas kaustas.

Koostada programm, mis

  • loeb failist nimega konto.txt andmed;
  • väljastab ekraanile kõik sissetulekud ehk failist leitud positiivsed arvud. Iga arv peab olema eraldi real ja positiivsete arvude omavaheline järjekord peab jääma samaks nagu failis.

Näide programmi tööst:

Näiteks antud näitefaili konto.txt puhul peab ekraanile ilmuma

Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.

Järgmisest kolmest ülesandest (5.4a, 5.4b, 5.4c) tuleb lahendada vähemalt üks.

Kontrollülesanne 5.4a Reisidiilid

Ada tahab minna reisile ja uurib viimase hetke pakkumisi. Võimalikud sihtkohad on kirjas failis (iga sihtkoht on eraldi real). Faili võite salvestada siit või koostada ise mõne tekstiredaktoriga.

Koostada programm, mis

  • küsib kasutajalt failinime (kasutaja sisestab failinime koos laiendiga, nt sihtkohad.txt);
  • loeb sisestatud nimega failist andmed;
  • näitab kõik sihtkohad koos järjekorranumbritega (alates 1);
  • küsib kasutajalt, mitmes sihtkoht broneerida (kasutaja sisestab alati täisarvu);
  • väljastab ekraanile vastavalt valitud arvule sihtkoha.

Näide programmi tööst:

Näiteks antud näitefaili sihtkohad.txt puhul peab ekraanile ilmuma

Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.

Kontrollülesanne 5.4b Loomulik iive

Loomulik iive on elussündide arvu ja surmajuhtude arvu vahe. Failis synnid.txt on esitatud Eesti eelmise aasta sündide registreerimisandmed kuude lõikes (http://www.stat.ee/34270 ). Failis surmad.txt on kirjas Eesti eelmise aasta surmajuhtude registreerimise andmed (http://www.stat.ee/34271 ).

Programmi testimiseks kasutatakse lisaks ka järgmisi faile, mida võite salvestada või koostada ise mõne tekstiredaktoriga (nt Notepad):

Kirjutada programm, mis

  1. loeb failist synnid.txt sündide arvud kuude kaupa järjendisse nii, et esimene element on jaanuari kuu sündide arv, teine element on veebruari sündide arv jne;
  2. loeb failist surmad.txt surmade arvud kuude kaupa järjendisse nii, et esimene element on jaanuari kuu surmade arv, teine element on veebruari surmade arv jne;
  3. koostab loodud järjendite põhjal järjendi, kus elementideks on vastava kuu loomulik iive;
  4. väljastab ekraanile loomuliku iibe järjendi;
  5. väljastab kuu numbrid (jaanuar 1, veebruar 2 jne), mille korral oli iive positiivne.

Näide programmi tööst:

Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.

Kontrollülesanne 5.4c Tahvli juurde

Mõned õpetajad on tavatsenud õpilasi tahvli juurde vastama kutsuda kuupäeva järgi vastavalt õpilaste nimekirjale. Näiteks 4. kuupäeval tuleb esimesena vastama nimekirjas 4. olev õpilane. Failis nimekiri.txt on õpilaste nimed, igaüks eraldi real. Üks selline, mis on genereeritud leheküljel http://random-name-generator.info/, on siin. Võite ise koostada ka teistsuguse nimekirja.

Koostada programm, mis

  • küsib failinime (eeldame, et kasutaja sisestatud nimega fail leidub ja seal on vähemalt 31 nime);
  • loeb sisestatud nimega failist andmed;
  • väljastab vastavalt tänasele kuupäevale õpilase nime, kes peab vastama tulema.

Programm peab tänase kuupäeva leidma automaatselt, aluseks saab võtta järgmise näite:

Näide programmi tööst:

Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.