5. nädala õpijuhis
Eesmärk
editNädala eesmärgiks on:
- Tutvuda positsiooniliste arvusüsteemidega, täpsemalt kahend-, kaheksand- ja kuueteistkümnendsüsteemiga ja mõista nende seotust.
- Proovida teisendada arve erinevate arvusüsteemide vahel ja luua endale ettekujutus erinevate arvusüsteemide ülesehitusest ning omavahelistest suhetest.
- Tutvuda erinevat tüüpi andmete esitamispõhimõtetega arvutis ning mõista sellest tulenevaid piiranguid, ohte ja probleeme.
- Tutvuda kindla kordustearvuga tsükli üldiste tööpõhimõtetega ning
for
-tsükli eripäradega Pythonis. - Praktiseerida
for
ningwhile
-tsüklite kasutamist, lahendades selleks ülesandeid.
Lugemiseks ja proovimiseks
edit- Loe materjali arvusüsteemidest ning andmete esitamisest. Positsioonilised arvusüsteemid ja andmed arvuti mälus
- Loe läbi materjal
for
-tsükli ningrange()
-funktsiooni kohta siit.
Ülesanded
editÜlesanne 1 Arvusüsteemidest ja arvutamisest
editTeisendada käsitsi kümnendsüsteemist kahend-, kaheksand- ja kuueteistkümnendsüsteemi järgmised arvud:
58 128 19
Kontrollimiseks teisenda arv tagasi kümnendsüsteemi.
Esita tehe ja arvuta kahendsüsteemis:
12 + 9 =
Teise täiendväärtuse kasutamine:
Olgu järgnevad arvud 4-bitised (1. bitt märgile ja 3 bitti arvu jaoks). Kasutades teist täiendväärtust negatiivsete arvude esitamiseks, tee kahendsüsteemis järgmised tehted ja kontrolli pärast tulemust.
7 - 3 = 2 - 5 =
4-bitiste arvudega proovi liita näiteks arvud 5 ja 4. Vaata, kuidas tekib ületäitumine overflow (9 on liiga suur, et 4-bitisesse märgiga arvu ära mahtuda) ja sellest tulenev "kummaline" tulemus.
Ülesanne 2 Pauli koht spordipäeval
editKoolis oli spordipäev ja lapsed viskasid palli. Iga õpilase kohta on teada tema parim vise. Eraldi aga teame Pauli tulemust. Leida, mitmenda koha Paul saavutas.
(Nt: Paul sai palliviskes 4 koha.)
Ülesande täiendusena too eraldi välja võimalik kohtade jagamine.
(Nt: Paul jagas 2 kuni 4 kohta.)
Mõtle kõigepealt algoritmi üle: kuidas saada teada Pauli koht? Kas mul on selleks vaja kõigi õpilaste tulemused sorteerida (järjestada)? Tegelikult ei ole ... saab lihtsamalt kasutades juba olemasolevaid teadmisi.
Ülesanne 3 Ruutude, kuupide ja ruutjuurte tabel
editProgramm peab leidma ja väljastama ruudud, kuubid ja ruutjuured arvudele 1..20 (vt näidet allpool).
Lahendamiseks sobib kindla korduste arvuga tsükkel, seal juures loendurit saab kasutada arvuna, millega arvutatakse. Proovi teha võimalikult lühike programm. Ja arvud peavad olema kenasti üksteise all tulpades. NB! Jälgi joondamist!!
Arv Ruut Kuup Juur 1 1 1 1.000 2 4 8 1.??? 3 9 27 1.??? 4 16 ?? 2.000 jne.
Joondamise saavutamiseks tuleb ideid otsida materjalist Pythoni Sisend ja väljund. See on seotud väljundi vormindamise ja väljalaiuste ning komakohtade arvu määramisega (täpsemalt vt näidet 6)
Ülesanne 4 Fibonacci arvud
editFibonacci oli munk, kes istus oma kongis ja leiutas arvud - Fibonacci arvud.
Genereerida esimesed 20 Fibonacci arvu. Fibonacci arvude kohta võite otsida infot internetist. Igatahes on nad lisaks jäneste paljunemise iseloomustamisele kasutusel ka informaatikas.
Fibonacci arvud on defineeritud järgmiselt: kaks esimest arvu jadas on 0 ja 1, järgmised arvud leitakse selliselt, et kaks eelmist arvu liidetakse kokku. Üldisemalt:
F(N)=F(N-1)+F(N-2)
Ülesanne 5 Hea pank
editAvad pangas kogumishoiuse ja paned hoiusele N krooni. Igal palgapäeval (üks kord kuu alguses) lisad hoiusele K krooni. Pank arvutab ja lisab intressiga teenitud kroonid kuu lõpus. Teada on intressi protsent aastas. Sellest saame protsendi 1 kuu kohta, jagades ta 12-ga (intress/12, tegelikult see päris nii ei käi).
- Simuleeri konto seisu muutumist. Trüki välja konto seis iga hoiustamisaasta lõpus 10 aasta jooksul.
- Eelnevatele andmetele lisaks sisestad summa, mille tahad hoiusele koguda. Programm peab taas simuleerima hoiuse muutumist ja teatama, mitu aastat ja mitu kuud kulub oma eesmärgi saavutamiseks.
Kummagi variandi jaoks koosta eraldi programm. Mõtle, millist tsüklit (while, for) on optimaalne kasutada.
Hoiuse kasvatmisel töötab edukalt summeerimise põhimõte. Lihtsalt see arv, mis summasse lisatakse, koosneb igas kuus mitmest osast.