Praktikum 16: Eksami praktilise osa näidis¶
Allolevad ülesanded on kusrsuse "Sissejuhatus programmeerimisse Pythoni baasil" YFX0500 praktikumis koos kursusega ja kodus iseseisvalt lahendamiseks. Kuidas lahendada allolevaid ülesandeid? Uuri ja kasuta Loengutes 1 kuni 15 esitatud ja kommenteeritud süntaksi näiteid, abiinfot ja muud dokumentatsiooni (Pythoni sisseehitatud funktsioon help
, jne.), Internetti ja enda aju. Küsimuste korral, mis tekivad praktikumi ajal, pöördu õppejõu või õppejõudude poole. Iganädalaselt peale praktikumi toimumist avaldatakse ülesannete lahendused kursuse kodulehel.
Eksam on kaheosaline see koosned teoreetilisest ja praktilisest osast. Selle eksamiosa võtmise eelduseks on esitatud kursusetöö (KT). Kui sa pole veel KT'd esitanud, tee seda kindlasti enne sessi lõppu. Esitamata KT tähendab, et eksamil teenitud punktid ei lähe Teie kursusehinde koostamisel arvesse. Üldine info eksami ja hindamise kohta on leitav Loeng 16 lisades.
Ülesanded¶
Allolevad kolm ülesannet moodustab 50% eksamihindest, maksimaalselt saad teenida kuni 50 p. Punktide jaotus:
- Ülesanne 1: kuni 5 p (abimaterjalide kasutamine KEELATUD)
- Ülesanne 2: kuni 10 p (abimaterjalide kasutamine LUBATUD)
- Ülesanne 3: kuni 35 p (abimaterjalide kasutamine LUBATUD)
Ülesanne 1:¶
- (4 p) Kirjuta programmi kood Pythoni programmeerimiskeeles etteantud paberile. Funktsiooni
print
nimi ei tohi koodis esineda rohkem kui kolm korda. Programm peab konsooli väljastama kümme rida teksti kujul:
Naera 1 kord ja nuta 10 korda
Naera 2 korda ja nuta 9 korda
Naera 3 korda ja nuta 8 korda
Naera 4 korda ja nuta 7 korda
Naera 5 korda ja nuta 6 korda
Naera 6 korda ja nuta 5 korda
Naera 7 korda ja nuta 4 korda
Naera 8 korda ja nuta 3 korda
Naera 9 korda ja nuta 2 korda
Naera 10 korda ja nuta 1 kord
- (1 p) Märgi vastusega paberilehele enda nimi ja matriklinumber. Tee enda lahendist foto (
ul1.jpg
). Esita paberil olev lahend õppejõule enne Ülesannete 2 ja 3 lahendamise alustamist.
Joonis 2 kujutab selle ülesande ühte võimalikku näidislahendit ehk fotot ul1.jpg
.
Ülesanne 2:¶
- (6 p) Silu lähtekood. Kommenteeri parandusi.
- (3 p) Tuvasta järgmiseid veatüüpe: süntaksiviga, täitmisaegne viga ja semantikaviga.
- (1 p) Salvesta silutud ja kommenteeritud lähtekood moodulisse
ul2_ja_ul3
ehk failiul2_ja_ul3.py
.
Kood:
x = 2.2
y = -6.6
negative = -1
if x>0 and y>0
print(not negative)
elif x<0 and y<0:
print("both negative")
elif x==0 or y==0:
print("one is zero")
elif x==0 and y==0:
print("both are zero")
else:
print("one is positive, one is negative")
Ülesanne 3:¶
Kirjuta järgmine Pythoni programm eelmises ülesandes loodud modulisse ul2_ja_ul3
:
- (2 p) Leia enda matriklinumbri ja nimega sõne (sisendsõne) sümbolite ordinaalid. Kasuta Pythoni sisseehitatud funktsiooni
ord
. Sõne formaat peab olema järgmine:123456YAFB Juulius Tipikas
.
(1 p) Loo .pdf formaadis pildifail joonis.pdf
. Joonisele lisa üks teljepaar ja:
- (10 p) sirge graafik mis on antud funktsiooniga $f(x) = \alpha x + \beta$, kus argumendi $x$ väärtusteks on sisendsõne indeksid, $\alpha = 1.5$ on sirge tõus ja vabaliikme $\beta$ väärtus on sisendsõne esimese sümboli ordinaal.
- (8 p) punktis 1 leitud ordinaalide väärtuste graafik. Graafiku stiiliks vali pidevjoon.
- (10 p) punktis 1 leitud ordinaalide väärtuste graafik, kus paarisarvulised väärtused on asendatud punktis 2 loodud sirge vastavate väärtustega mis tähendab, et paarisarvulised väärtused peavad asetsema eelmainitud sirgel, vt. näidist Joonisel 1. Graafiku stiiliks vali markeeritud pidevjoon.
- (1 p) graafiku horisontaalse telje nimi "Indeks", vertikaalse telje nimi "Ordinaal" ja joonise pealkirjaks vali enda matriklinumber ja nimi, st. sisendsõne. Vt. Joonis 1.
Lisaks:
- (2 p) salvesta Pythoni listi kümme viimast punktis 4 leitud väärtust.
- (0 p) veendu, et kirjutatud programm töötab mõne muu sisendiga. Võrdle tulemusi allpool esitatud näidislahendiga.
(1 p) Saada Ülesannete 2 ja 3 lähtekoodid (moodul ul2_ja_ul3
ehk fail ul2_ja_ul3.py
), Ülesande 3 punktis 6 loodud ja Pythoni listi salvestatud arvude jada ja Ülesandes 3 loodud joonise fail joonis.pdf
e-kirja aadressile: dmitri.kartofelev@taltech.ee
(-15 p) Ülesannete 2 ja 3 lähtekood ei tohi olla vigane ega tõstatada erisusi mis pole sinu poolt korrektselt hallatud. Vigase koodi, mis sisaldab kas süntaksivigu või täitmisaegseid vigu, esitamine vähendab teenitud punktisummat automaatselt 15 p võrra.
Lisad: Abiks¶
Ülesande 3 osaline näidislahend¶
Joonis 1. Ülesande 3 lahendi näidisjoonis, sisend: 123456YAFB Juulius Tipikas . Ignoreeri stiililisi erinevusi (graafikute värvid, markerite stiil, jne.). |
Ülesande 3 punktis 6 küsitud Pythoni listi salvestatud numbrite jada (sisend: 123456YAFB Juulius Tipikas
): [117, 115, 76.0, 77.5, 105, 80.5, 105, 107, 97, 115]
Eksami lõpus õppejõule saadetav e-kiri¶
Kirja pealkiri:
YFX0500 Eksam
Kirja sisu mis vastab näidissisendile: 123456YAFB Juulius Tipikas
Lp. Eksamit vastuvõttev Õppejõud ja muidu tore inimene! Sisendina kasutatud enda matriklinumber ja nimi: 123456YAFB Juulius Tipikas Programmi leitud numbrite jada (mis salvestati Pythoni listi): [117, 115, 76.0, 77.5, 105, 80.5, 105, 107, 97, 115] Ilusat päeva ja tugevat tervist! Juulius Tipikas 123456YAFB
NB! Kirja sisu peab sisaldama järgmist infot:
- Ülesande 3 sisendsõne ehk Sinu matriklinumber ja nimi (kirja neljas rida).
- Ülesandes 3 punktis 6 leitud numbrite jada (kirja seitsmes rida).
NB! Kirja manuses peab olema kolm faili:
- Ülesande 1 lahendiga paberilehe fotofail
ul1.jpg
. Näidisfoto on kujutatud Joonisel 2 - Ülesannete 2 ja 3 lahendite lähtekoodid. Fail
ul2_ja_ul3.py
. - Ülesandes 3 loodud joonise fail
joonis.pdf
.
Joonis 2. Ülesande 1 lahendi näidiskood ja -foto. |