Institute of Computer Science
  1. Main page
  2. Python koolis
ET
Log in

Python koolis

  • Sissejuhatus
  • Teemad
  • PyGame
  • ÜLESANDED

1 Käsurida, muutujad
2 Sisend, väljund, tingimus
3 Tsükkel
4 Järjend
5 Sõnastik
6 Funktsioon
7 Failioperatsioonid
8 Moodulid
9 Pygame: aken
10 PyGame: pildid, tekst
11 PyGame: animeerimine
12 PyGame: juhtimine klaviatuuriga
13 PyGame: juhtimine hiirega
14 PyGame: heli kasutamine
15-16 PyGame: mängu loomine

5. Ülesanded: sõnastik

Eelmisel korral kasutasid sõnaraamatu loomiseks järjendeid. Seekord kasuta selleks sõnastikku.

Teooriapeatükid:

  • 12. Sõnastik

Ülesanne 1

Loo kaks sõnastikku (inglise, itaalia) ja anna neile väärtused (nagu järjendite ülesandes). Miks on seekord ainult kaks sõnastikku?

Lisa sõnastikku järgmised sõnad:

  • eesti - auto, itaalia - auto, inglise - car
  • eesti - koer, itaalia - cane, inglise - dog
  • eesti - kass, itaalia - gatto, inglise - cat
  • eesti - tere, itaalia - ciao, inglise - hello

Ülesanne 2

Tõlgi (väljasta ekraanile) järgmised sõnad:

  • tere -> inglise k, itaalia k
  • auto -> itaalia k
  • kass - > inglise k
  • üks -> itaalia k
  • kolm -> inglise k

Ülesanne 3

Loo juurde kaks uut sõnastiku (e_inglise, e_itaalia), mille võti ei ole mitte eesti keeles, vaid vastavalt kas inglise või itaalia keeles. Lisa sõnastikku ka kõik eelmises sõnastikus olevad sõnad.

Ülesanne 4

Lisa kõikidesse sõnastikesse järgmised sõnad:

  • headaega - goodbye - arrivederci
  • pott - pot - pentola
  • sõnastik - dictionary - dizionario

Tõlgi (väljastage ekraanile) järgmised sõnad:

  • üks -> itaalia
  • ciao - > eesti
  • dog -> itaalia
  • pentola - inglise

Ülesanne 5. Morse

Morsetähestik on koodikomplekt, kus igale tekstisümbolile vastab pikkadest ja lühikestest signaalidest koosnev kood (vt. https://et.wikipedia.org/wiki/Morse). Ilmselt on kõigile teada appikutse "SOS" kood: "... --- ..." ehk kolm lühikest signaali ("S"), kolm pikka ("O") ja taas kolm lühikest. Lühikesi signaale tähistatakse punktide, pikki aga kriipsudega.

Vajalik on sõnastik, kus on kirjas morse koodid (iga elemendi võtmeks tähistatav sümbol, väärtuseks koodi järjend punktidest ja kriipsudest). Aja kokkuhoiu mõttes võid kasutada sellist rida:

tahestik = {"a":".-", "b":"-...", "c":"-.-.", "d":"-..", "e":".", "f":"..-.", "g":"--.", "h":"....", "i":"..", "j":".---", "k":"-.-", "l":".-..", "m":"--", "n":"-.", "o":"---", "p":".--.", "q":"--.-", "r":".-.", "s":"...", "t":"-", "u":"..-", "v":"...-", "w":".--", "x":"-..-", "y":"-.--", "z":"--.."}

Koosta programm, mis programmi käivitamisel tervitab kasutajat nii tavakeeles kui morse koodina, lubab seejärel kasutajal sisestada sõnu ning teisendab need sümbolhaaval morsetähestikku (lisades iga sümboli järele tühiku). Sõnastik ei pruugi sisaldada kõikvõimalikke märke, seega tuleb iga sümboli puhul kontrollida, kas see üldse esineb sõnastikus. Tähe registrit ehk suur- ja väiketähti ei eristata. Samuti tuleb otsustada, mida ette võtta nende tähtedega, mida inglise tähestikus pole (näiteks "õ", "ä" jne): ignoreerida või mõned neist teisendada (näiteks "õ" -> "o" vms).

Programm võiks küsida kasutajalt sõnu kas mingi arv kordi või töötada lõpmatult, kuni kasutaja sõna ei sisesta, vaid vajutab lihtsalt sisestusklahvile.

Ülesanne 6. Salakiri

Vahel on vaja saata sõnumeid nii, et kõrvalised inimesed, kes teksti näevad, ei mõistaks selle sisu. Teksti krüpteerimiseks on kasutatud erinevaid võtteid. Üks lihtsaimatest viisidest on asendada iga sümbol suvalise teise sümboliga (näiteks kõik tähed "A" asendame tähega "K", tähed "B" tähega "R" jne).

Koosta programm, mis sisaldab sõnastikku koodidega ning mis suudab kasutaja poolt sisestatud teksti selle alusel kodeerida ja dekodeerida salakirja. Leia mingi sobiv moodus, kuidas kasutaja saaks valida teksti krüpteerimise ja dekrüpteerimise vahel.

Täiendusi:

  • Selliste tekstide "lahtimuukimiseks" on erinevaid võimalusi. Näiteks on igal keele oma tähtede esinemissagedus, seega võime pikema teksti puhul loendada, mitu korda mingit asendussümbolit tekstis esineb, leida esinemissagedus kõigi tähtede hulgas ning pakkuda sobivaid "õigeid" sümboleid selle asemel, näiteks kõige sagedamini esineb eesti keeles a-täht (ca 12% kõigist tähtedest), sellele järgnevad tähed "e", "i", "s" jne, otsi internetist eesti keele tähtede esinemissagedusi. Mõtle, kuidas saaks algoritmi täiendada, et teksti dekrüpteerimine oleks raskem.

Ülesanne 7

Koosta programm "Telefoniraamat", mis lubab kasutajal nime järgi otsida vajalikku telefoninumbrit või (kui sellist kasutajanime andmete hulgas pole) uut numbrit lisada (muudatused säilivad küll vaid programmi töötamise ajal). Programm töötab, kuni kasutaja enam nime ei küsi, vaid vajutab sisestusklahvi. Kasulik oleks hoida kasutajale vajalikke telefoninumbreid sõnastikus. Kasutusmugavuse mõttes on mugavam, kui kasutaja võib nime sisestada ka väiketähtedes e. programmis ei arvestataks tähe registriga: suuri ja väikseid tähti ei eristataks.


Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment