1. labor: Tere maailm

Labori materjal

Esitamisele kuuluvad ülesanded

Selles laboris kuulub enamik tööd koos läbi tegemisele. Laboris kuulub esitamisele üks baasülesanne ja üks lisaülesanne.

Ülesanne 1: Paarsuse kontroll (baasülesanne)

Nõuded
  • Kasutajalt küsitakse ja seejärel loetakse sisse täisarv.
  • Programm väljastab kas sisestatud arv oli paaris või paaritu.
Pseudokood

Pseudokood on üks võimalus kirjeldada algoritme. Pseudokood on sarnaselt programmile struktuurne, kuid ei hõlma endas programmeerimiskeeltele omaseid reegleid ning jääb seega inimloetavaks.

Ülesande taust

Mooduljagamine on laialdaselt kasutusel kõiksugu kontrollkoodide arvutamisel. Näiteks kontrollimaks kas isikukood või pangakaardi number on korrektne.

Meie ülesande jaoks rakendame mooduljagamist kahega ehk teostame paarsuse kontrolli – kas arv on paaris või paaritu. Paarsuse kontroll on üks lihtsamatest veakontrollidest näiteks andmesides – kas väärtusega ‘1’ bittide arv andmepaketis on paaris või paaritu? Sedasi on võimalik näiteks kontrollida kas andmete ülekandmisel ühest arvutist teise tekkis viga (ja nagu öeldud, vaid väga lihtsad juhud).

Testimine

Sellel programmil on 2 võimalikku tulemust – arv on paaris või paaritu. Programmi põhjalikuks testimiseks tuleb testida eraldi mõlemat juhtu.

Test 1: paarisarv

Test 2: Paaritu arv

Ära unusta oma tunnitööd ette näitamast!

Lisaülesanne: Kolme ja viiega jagamine

Enne edasijõudnute ülesande tegemist lahenda ära tavaülesanne!

Loe loogikaavaldiste kasutamise kohta (eng): https://blue.pri.ee/ttu/coding-guides/conditional-statements/#Logical_operators

Nõuded
  • Kasutajalt küsitakse ja seejärel loetakse sisse täisarv
  • Programm väljastab kas arv jagus kolmega, viiega, mõlemaga neist või mitte kummagagi ning väljastab leitu.
  • Programm leiab jagatise täisosad ja jäägid sellest arvust jagades seda nii kolme kui viiega. Kõik neli tulemust väljastatakse olenemata sisendist.
  • Arvutustehteid (nt jagamisi) tohid teha vaid ühekordselt. Kui tulemust läheb vaja kasutada mitmes kohas, tuleb need eelnevalt salvestada muutujatesse.
Ülesande taust

Ülesanne põhineb klassikalisel intervjuuküsimusel mida kasutakse tarkvaraarendajate värbamisel. Tegu on nn  FizzBuzz ülesande muudetud versiooniga.

Testimine

Lähtuvalt koostatud tingimustest peab ülesandel olema 4 erinevat võimalikku tulemust.

Test 1: Arv, mis jagub nii kolme kui viiega

Test 2: Arv mis jagub ainult kolmega

Viimased 2 testi mõtle ise välja. Veendu, et lahendus töötab korrektselt kõigil juhtudel.

Pärast seda tundi peaksid

  • Mõistma ainega seotud nõudeid, sh kuidas saada aines hinne.
  • Oskama sisse logida Linuxisse ülikooli arvutis
  • Teadma mis on peamised rakendused mida kasutame
  • Teadma kust vajalikku materjali leiab
  • Teadma mis on C keel ja kus seda peamiselt kasutatakse
  • Teadma milline on programmi struktuur ning olema võimeline ka selles lihtsa programmi kirjutama ning käivitama. Peaksid mõistma järgmiseid programmeerimisega seotud mõisteid ja kontseptsioone
    • #include preprotsessori käsklus
    • Mis on main() funktsioon, miks ta eriline on
    • Kuidas deklareerida muutujat, mis on andmetüüp
    • Kuidas trükkida teksti kasutades printf funktsiooni, vahetada rida, printida välja ühe või mitme muutuja sisu.
    • Klaviatuurilt väärtuste lugemine ja salvestamine (printf funktsioon)
    • Elementaarsed matemaatika operatsioonid
    • Kergemad tingimuslaused (if/else)
    • Täisarvu jagatis, moodularvutus
  • Mõistma mis asi on algoritm
  • Mõistma, mis asi on UML ja miks seda kasutatakse. Saama aru selle algsetest elementidest (algus, lõpp, tegevus, hargnemine, koondumine). Pead olema võimeline lihtsama UML diagrammi kokku panna.

Täiendav materjal