Harjutusülesanded
1. Ruutjuure algoritm
Levinud algoritmi järgi arvutatakse ruutjuurt positiivsest arvust n
järgmiselt:
- Esialgseks lähendiks võib olla
alg = n/2
- Arvuta
r = n / alg
- Arvuta
alg = (alg + r) / 2
- Korda alates 2. sammust, et teha nii palju iteratsioone kui vaja. Mida rohkem on sammude 2 ja 3 kordamist, seda lähemale muutub
alg
väärtus võrreldes ruutjuure täpse väärtusega.
Koosta programm, mis küsib kasutajalt positiivse täisarvu. Seejärel kasuta algoritmi ruutjuure leidmiseks, kuni leitud lähend ei erine eelmisest lähendist üle 1%. Väljasta tulemus täpsusega kaks kohta peale koma.
NB! Täisarvude jagamise tulemuseks on täisarv, nt 5/2 tulemuseks on 2. Et saada tulemuseks ujukomaarvu, peab vähemalt üks operandisest olema ujukomaarv, nt 5/2.0 tulemuseks on 2.5.
Ümardamiseks võib kasutada funktsiooni round
.
Näide programmi tööst.
Sisesta positiivne täisarv:46 Ruutjuur 46-st: 6.78
2. Koguhinne protsentides
Koosta programm, mis arvutab n
ülesannete koguhinde protsentides. Kasutaja käest küsitakse ainete arvu n
. Iga aine kohta küsitakse kasutajalt
- mitu punkti ta ülesande eest sai
- mis oli maksimaalne võimalik punktide selle ülesande eest
Arvuta protsent (teenitud punktide summa jagatud võimalike punktide summaga) ja väljasta see protsentides.
Näide programmi tööst.
Mitme ülesande tulemus sisestada? 3 1. ülesande eest saadud punktisumma: 10 Maksimaalne võimalik punktide arv 1. ülesande eest: 10 2. ülesande eest saadud punktisumma: 7 Maksimaalne võimalik punktide arv 2. ülesande eest: 12 3. ülesande eest saadud punktisumma: 5 Maksimaalne võimalik punktide arv 3. ülesande eest: 8 Kogusumma on 22 30-st ehk 73,33%.
3. Lennupiletite broneerimine
Koostage programm reisijatele kohtade määramiseks lennukis. Oletame, et meil on väike lennuk, kus istmeid nummerdatakse järgmiselt:
1 A B C D 2 A B C D 3 A B C D 4 A B C D 5 A B C D 6 A B C D
Kui iste on hõivatud, siis märgitakse seda tähisega X. Näiteks pärast istmete 1A, 3B ja 4D hõivamist peaks istmete kuva välja nägema nii:
1 X B C D 2 A B C D 3 A X C D 4 A B C X 5 A B C D 6 A B C D
Enne töö alustamist broneerib programm juhuslikult 5 istekohta (kasutades juhuarvu generaatorit). Pärast saadaolevate istmete kuvamist küsib programm soovitud istekohta. Kasutaja sisestab istekoha (nt 6 ja A) ja seejärel värskendatakse saadaolevate kohtade kuva. See jätkub kuni kõik kohad on täidetud või kuni kasutaja ei sisesta istekohta, vaid lõpetab töö. Kui kasutaja sisestab broneeritud istekoha, peab programm seda ütlema ja küsima uut valikut. Näide programmi tööst:
1 A B C D 2 A B C X 3 A B C X 4 A B C X 5 X B C D 6 A B X D Sisesta rida, lõpetuseks 100:2 Sisesta koht:B 1 A B C D 2 A X C X 3 A B C X 4 A B C X 5 X B C D 6 A B X D Sisesta rida, lõpetuseks 100:2 Sisesta koht:D See koht on juba broneeritud! 1 A B C D 2 A X C X 3 A B C X 4 A B C X 5 X B C D 6 A B X D Sisesta rida, lõpetuseks 100:6 Sisesta koht:D 1 A B C D 2 A X C X 3 A B C X 4 A B C X 5 X B C D 6 A B X X Sisesta rida, lõpetuseks 100:100
NB! Ülesannet lahendades kasuta ka char
tüüpi muutujat.
4. Kujund
Kirjuta programm, mis küsib kasutajalt arvu n
, mis on 1 ja 15 vahel. Kui kasutaja sisestab mittesobiva arvu, siis küsida uuesti.
Programm joonistab pildi n x n
ruudust, mis on moodustatud O
-tähtedest ja jätab tühja topeltdiagonaali (lisaks tühjale peadiagonaalile üks tühi kõrvalolev diagonaal veel).
Näide programmi tööst:
Sisesta arv 1 jan 15 vahel: 21 Ebasobiv arv. Sisesta uuesti: 8 OOOOOOO OOOOOO O OOOOO OO OOOO OOO OOO OOOO OO OOOOO O OOOOOO