5. kodutöö
1. Plokkskeem
Järgmisel plokkskeemil on kujutatud ühe veebilehe registreerimisvormi algoritm. Kirjuta programm, mis realiseerib plokkskeemil kirjeldatu.
Automaatkontroll. Veendu, et programm vastab täpselt plokkskeemile: programm peab küsima kasutajalt alguses kõiki kolme sõnet, nagu plokkskeemil kirjas, isegi kui parooli mittesobivuse saaks mõnel juhul tuvastada juba parooli esmakordse sisestamise järel. Pärast mittesobivuse tuvastamist tuleb küsida ainult parooli (kaks korda).
Tulemusfaili nimi peab olema kindlasti users.txt.
2. Suured väikeseks ja väikesed suureks
Kirjuta funktsioon suurväike, mis võtab argumendiks mingi sõne ning tagastab sõne järgmisel kujul:
- suured tähed on muudetud väikeseks;
- väikesed tähed on muudetud suureks;
- kõik kirjavahemärkide sümbolid on asendatud mingi ühe ja sama juhusliku kirjavahemärgisümboliga.
Näide:
>>> suurväike("MinA oleN Tubli!!") 'mINa OLEn tUBLI##' >>> suurväike("Aias sadas saia, Leiba ja Peedi-Porgandi pehmikut.") 'aIAS SADAS SAIA& lEIBA JA pEEDI&pORGANDI PEHMIKUT&'
Vihje:
>>> string.punctuation '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
Automaatkontroll. Funktsiooni nimi peab olema suurväike ja sellel funktsioonil peab olema täpselt üks argument, mis on sõne. Funktsioon peab tagastama sõne, kus kõik antud sõne suured tähed on asendatud väikestega, väikesed tähed suurtega ja kõik kirjavahemärkide sümbolid asendatud teatud juhuslikult valitud kirjavahemärgisümboliga.
3. Moosi keetmine
Emma hakkas keetma vaarikamoosi. Tüdrukul olid kasutada 5- ja 1-kilogrammised vaarikakarbid. Emmal on moosi tegemisel kombeks kõigepealt kasutada ära kõige suuremad karbid ja seejärel väiksemad. Näiteks kui on vaja keeta 8 kg vaarikamoosi, siis võtaks ta kõigepealt ühe suure karbi ning siis kolm väikest karpi. Kui plaanitav moosikogus ei mahu karpidesse täpselt ära, siis Emma moosi ei keeda.
Kirjuta funktsioon moos, mis võtab argumendiks kolm täisarvulist väärtust:
- suurte karpide arvu;
- väikeste karpide arvu;
- keedetava moosi koguse kilogrammides.
Funktsioon tagastab karpide arvu, mida Emma moosi keetmiseks kasutab. Kui moosikogus antud karpidesse ei mahu, tagastab funktsioon arvu -1.
Näide:
>>> moos(2, 6, 14) 6 >>> moos(3, 3, 8) 4 >>> moos(1, 2, 10) -1 >>> moos(5, 1, 9) -1
Automaatkontroll. Funktsiooni nimi peab olema moos ja sellel funktsioonil peab olema täpselt kolm argumenti: suurte karpide arv, väikeste karpide arv ja moosi kogus. Kõik argumendid on täisarvud. Funktsioon peab tagastama karpide arvu, mida tuleb kasutada antud koguse moosi pakendamiseks. Kui ei leidu karpide komplekti, mis moosi täpselt ära mahutaks, peab funktsioon tagastama väärtuse -1.
Kui oled juba hulk aega proovinud seda ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid kohti ja anda vihjeid.
Lisaks lahenduse korrektsusele on nüüd (ja edaspidi) väga tähtis ka koodi selgus. Kui saad programmi korralikult tööle, siis võib pool tööd veel ees olla – vaata programm põhjalikult üle ja ürita seda üht- või teistpidi ümber kirjutada, nii, et tulemus oleks võimalikult selge ja arusaadav. Enamasti saab programmi selgust parandada sobivate alamprogrammide sissetoomisega, eriti kui alamprogrammide nimed on hoolikalt valitud.