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.

Viimati uuendatud 10.01.2025.

Ü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:¶

  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. (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:¶

  1. (6 p) Silu lähtekood. Kommenteeri parandusi.
  2. (3 p) Tuvasta järgmiseid veatüüpe: süntaksiviga, täitmisaegne viga ja semantikaviga.
  3. (1 p) Salvesta silutud ja kommenteeritud lähtekood moodulisse ul2_ja_ul3 ehk faili ul2_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:

  1. (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:

  1. (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.
  2. (8 p) punktis 1 leitud ordinaalide väärtuste graafik. Graafiku stiiliks vali pidevjoon.
  3. (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.
  4. (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:

  1. (2 p) salvesta Pythoni listi kümme viimast punktis 4 leitud väärtust.
  2. (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¶

No description has been provided for this image
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:

  1. Ülesande 3 sisendsõne ehk Sinu matriklinumber ja nimi (kirja neljas rida).
  2. Ülesandes 3 punktis 6 leitud numbrite jada (kirja seitsmes rida).

NB! Kirja manuses peab olema kolm faili:

  1. Ülesande 1 lahendiga paberilehe fotofail ul1.jpg. Näidisfoto on kujutatud Joonisel 2
  2. Ülesannete 2 ja 3 lahendite lähtekoodid. Fail ul2_ja_ul3.py.
  3. Ülesandes 3 loodud joonise fail joonis.pdf.
No description has been provided for this image
Joonis 2. Ülesande 1 lahendi näidiskood ja -foto.















☻   ☻   ☻