Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 2. nädala sisukord | järgmine > |
2.8 Teise nädala kontrollülesanded
Teise nädala kontrollülesanded
Teisel nädalal tuleb esitada viie kohustusliku ülesande lahendused. Viienda ülesande puhul on võimalik valida lahendamiseks kas 5a või 5b (või mõlemad). Lahendused tuleb esitada Moodle'is, kus need kontrollitakse automaatselt. Moodle'is on ka nädalalõputest 10 küsimusega, millest tuleb vähemalt 9 õigesti vastata.
Eks seda tuleb ette ka edaspidi, et programm teeb põhimõtteliselt nõutud asja, aga väljastab midagi rohkem või vähem või kuidagi teisiti ei vasta täpselt ülesandele. (Näiteks on lahendus hoopis vingem kui ülesandes nõutud.) Sellisel juhul võib automaatkontroll teie lahenduse valeks lugeda. Kui teile tundub, et automaatkontroll töötab ebakorrektselt, siis palun kirjutage aadressil prog@ut.ee.
Kontrollülesanne 2.1. Jäätumine
Mitmed autod hoiatavad võimaliku jää eest, kui temperatuur õues on 4,0 või alla selle.
Koostada programm, mis
- küsib kasutajalt õhutemperatuuri,
- väljastab ekraanile “Ei ole jäätumise ohtu“, kui sisestatu on üle 4,0,
- väljastab “On jäätumise oht“, kui temperatuur on 4,0 või alla selle.
Temperatuuri võib sisestada nii täisarvuna kui ka ujukomaarvuna, nt -1.3.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid. Tegemist väga värske võimalusega, mille kohta ootame tagasisidet vastavas foorumis Moodle'is või aadressil prog@ut.ee.
Vabaõhuetendusel saavad vaatajad istuda põhja- või lõunatribüünil. Pileti ostmisel küsitakse kõigepealt, kas inimene tahab ise valida kummal tribüünil ta istub või see loositakse. Kui inimene tahab ise valida, siis järgmisena küsitakse, kas põhja- või lõunatribüünil. Kui ta ei taha valida, siis loositakse tribüün nii, et 2/3 tõenäosusega on see põhjatribüün ja 1/3 tõenäosusega lõunatribüün.
Koostada programm, mis järgib ülaltoodud tingimusi ja väljastab ekraanile, millisele tribüünile istuda ja kas valik oli tahtlik või loosiga. Kui kasutaja valis tribüüni ise, siis tuleb väljastada “Valisite ise”, vastasel juhul “Pilet loositi”. Kui kasutaja soovib ise tribüüni valida, siis kirjutab ta esimesele küsimusele vastuseks "ise", kui soovib loosida, siis kirjutab midagi muud. Kui kasutaja soovib valida põhjatribüüni, siis kirjutab ta vastuseks "p" ja kui soovib lõunatribüüni, siis kirjutab ta midagi muud.
Lahendus peab (korrektselt) kasutama funktsiooni randint() moodulist random.
Näide suhtlusest programmiga (kasutaja sisend on kursiivis)
Kui soovite ise valida kummal tribüünil istuda, siis sisestage “ise”, teiste vastuste korral loositakse teile tribüün suvaliselt.
ise
Kui soovite põhjatribüünile, siis sisestage “p”, teiste vastuste korral saate pileti lõunatribüünile.
p
Valisite ise. Pilet on põhjatribüünile.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid. Tegemist väga värske võimalusega, mille kohta ootame tagasisidet vastavas foorumis Moodle'is või aadressil prog@ut.ee.
Kontrollülesanne 2.3. Allveelaev
Teemapargis on allveelaeva atraktsioon, kuhu pääsevad ainult inimesed, kes on lühemad kui 120 cm. Lisaks peab atraktsioonile pääsemiseks omama piletit või kaelakaarti.
Koostada programm, milles
- küsitakse tema pikkust sentimeetrites,
- küsitakse, kas kasutaja omab kaelakaarti (kasutaja sisestab 'jah' või 'ei'),
- küsitakse, kas kasutaja omab piletit (kasutaja sisestab 'jah' või 'ei'),
- väljastatakse ekraanile “Pääseb allveelaevale”, kui kasutaja pääseb atraktsioonile, vastasel juhul väljastatakse “Ei pääse allveelaevale”.
Programm peab sisaldama täpselt ühte tingimuslauset.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid. Tegemist väga värske võimalusega, mille kohta ootame tagasisidet vastavas foorumis Moodle'is või aadressil prog@ut.ee.
Kontrollülesanne 2.4. Leedu perenimed
Inimese nimede osas on erinevatel maadel erinevaid kombeid ja vähemalt naabrite puhul oleks hea neid teada (areneva Balti koostöö mõttes).
Traditsiooniliselt näitab leedu naiste perekonnanimedes nime lõpp perekonnaseisu. Näiteks on Adamkienė abielus ja Adamkutė mitte. Alates 2003. aastast on lubatud ka lühem vorm, mis perekonnaseisu ei näita, nt Adamkė. Huvi korral uuri lähemalt siit.
Koostada programm, mis küsib kasutajalt Leedu perekonnanime ja väljatab ekraanile
- “Abielus”, kui nimi lõpeb tähtedega “ne”,
- “Vallaline”, kui nimi lõpeb tähtedega “te”,
- “Määramata”, kui nimi lõpeb tähega “e” (aga mitte “ne” ja “te”),
- “Pole ilmselt leedulanna perekonnanimi”, kui nimi ei lõpe tähega “e”.
Lihtsuse mõttes kasutame tavalist tähte ”e”, jätame punkti peale panemata.
Sõne nimi
kahe viimase tähe kontrollimiseks saab kasutada näiteks võrdlemist nimi[-2:] == "ne"
.
Viimase tähe kontrollimiseks sobib nimi[-1] == "e"
.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid. Tegemist väga värske võimalusega, mille kohta ootame tagasisidet vastavas foorumis Moodle'is või aadressil prog@ut.ee.
Järgmisest kahest ülesandest (2.5a ja 2.5b) tuleb lahendada vähemalt üks.
Tervisesport on tervisele kasulik, kui sellega jäädakse mõõdukuse piiridesse. On erinevaid variante sobiva koormuse valimiseks. Näiteks saab kasutada sellist arvestust, et maksimaalne pulsisagedus on meestel 220 miinus vanus ja naistel 206 miinus 88% vanusest. Seejuures erinevate treeningutüüpide puhul peaks pulsisagedus jääma järgmistesse vahemikesse:
- tervisetreening 50-70% maksimaalsest pulsisagedusest,
- põhivastupidavuse treening 70-80% maksimaalsest pulsisagedusest,
- intensiivne aeroobne treening 80-87% maksimaalsest pulsisagedusest.
Koostada programm, mis küsib kasutajalt
- vanuse (täisarvuna aastates),
- soo (kasutaja sisestab 'M', 'm', 'N' või 'n'),
- treeningu tüübi (1 - tervisetreening, 2 - põhivastupidavuse treening, 3 - intensiivne aeroobne treening)
ja lõpuks väljastab pulsisageduse vahemiku vastavatel tingimustel formaadis '<vähim pulss> kuni <suurim pulss>', kus vastuses leiduvad arvud on ümardatud täisarvudeks.
Näiteks, kui kasutaja sisestab andmed 20, 'n', 1, siis väljastatakse näiteks “Pulsisagedus peaks olema vahemikus 94 kuni 132”.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid. Tegemist väga värske võimalusega, mille kohta ootame tagasisidet vastavas foorumis Moodle'is või aadressil prog@ut.ee.
Kontrollülesanne 2.5b Busside logistika
Meil on vaja transportida teatud arv inimesi mingi arvu identsete bussidega. Eeldame, et reisijaid on vähemalt üks.
Koostada programm, mis küsib transporditavate inimeste arvu ja ühe bussi kohtade arvu (just sellises järjekorras) ning väljastab ekraanile, mitu bussi on vaja ja mitu inimest on viimases bussis (eeldusel, et kõik eelnevad bussid on täis).
Võib-olla on abi nendest tehetest
- // täisarvuline jagamine, 36 // 10 → 3
- % jäägi leidmine 36 % 10 → 6
Testige oma programmi muuhulgas järgmiste algandmetega:
- inimeste arv: 60, kohtade arv: 40;
- inimeste arv: 80, kohtade arv: 40;
- inimeste arv: 20, kohtade arv: 40;
- inimeste arv: 40, kohtade arv: 40.
Püüdke ka mõista, miks just sellised testandmed valiti.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid. Tegemist väga värske võimalusega, mille kohta ootame tagasisidet vastavas foorumis Moodle'is või aadressil prog@ut.ee.
< eelmine | 2. nädala sisukord | järgmine > |