Arvutiteaduse instituut
  1. Esileht
  2. Python koolis
EN
Logi sisse

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/

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused