Labori materjal
- Slaidid: Tingimuslaused 2
Esitamisele kuuluvad ülesanded
Ülesanne 1: poekassa
Selle ülesande raames simuleerime läbi lihtsa kassasüsteemi rakenduse, eesmärgiga harjutada tingimuslausete koostamist. Juhindu etteantud aluskoodis olevatest kommentaaridest ning kirjuta vajalikud koodiread pärast kommentaari!
Nõuded
- Programm peab loogiliselt olema üks-ühene etteantud algoritmiga
- Programm peab olema ehitatud etteantud aluskoodi põhjale. Sinu ülesanne on lisada vajalikud printf , scanf laused, arvutustehted ja tingimuslaused sinna kuhu vaja. Juhindu kommentaaridest ja etteantud UMList.
- Ära muuda muutujate nimetusi ega programmi struktuuri.
- Soovitus: Kontrollimaks, et programm käitub korrektselt ja muutujad omavad neid väärtusi, mida ootad, tasub lisada vahele mõni täiendav printf lause.
Lae alla ülesande 1 aluskood: [et]
Algoritm
Testimine
Järgnevalt pakun välja mõned olulised testid loodavale programmile. NB! Vähemalt ühe olulise testjuhu olen jätnud katmata. Kas tead millise?
Ülesanne 2: poekaal
Ülesande raames tuleb luua programm, mis simuleerib toidupoes asetsevat toidukaalu.
Tunnis luuakse ülesande struktuur UML tegevusdiagrammina. Sinu programm peab omama vähemalt samaväärset funktsionaalsust.
Nõuded
- Kaalul peab olema kokku vähemalt 4 erinevat tootevalikut.
- Tootevalikud on esindatud numbri (tootekood) ja nime kombinatsioonidega (nt 1 – banaan).
- Kasutaja sisestab klaviatuurilt täisarvulise tootekoodi ja murdarvulise koguse (kilogrammides).
- Valitud tootekoodi ja toote kilohinna vaste leidmine tuleb realiseerida kasutades switch lauset.
- Korrektse kaalu ja koodi korral väljastatakse kasutajale hind, mis tuleb kauba eest maksta.
- Väljastatav hind peab olema esitatud kahe komakohaga.
- Vigase tootekoodi või kaalu korral tuleb väljastada veateade. Kumma veaga tegu oli tuvastama ei pea. Vea tekkimisel hinda kuvada ei tohi.
Lae alla ülesande 2 aluskood: 2_2_scale_base.c
Testimine
Test 1: Korrektse sisestuse korral antakse tulemuseks hind
1 2 3 4 5 6 7 8 9 10 11 |
Available products 1 - Banana 2 - Orange 3 - Lemon 4 - Tomato 5 - Cucumber 6 - Potato 7 - Apple 8 - Pear 9 - Plum Enter the product number: 4 Enter weight: 2.5 Product 4 - Tomato Price per kilo 1.49 EUR Total price: 3.73 EUR |
1 2 3 4 5 6 7 8 |
Available products 1 - Banana 2 - Orange 3 - Lemon 4 - Tomato 5 - Cucumber 6 - Potato 7 - Apple 8 - Pear 9 - Plum Enter the product number: 53 Enter weight: 2.1 Error! |
1 2 3 4 5 6 7 8 |
Available products 1 - Banana 2 - Orange 3 - Lemon 4 - Tomato 5 - Cucumber 6 - Potato 7 - Apple 8 - Pear 9 - Plum Enter the product number: 6 Enter weight: -4 Error! |
Pärast tundi peaksid
- Mõistma mis asi on tõeväärtustabel ja kuidas neid lugeda
- Oskama koostada liittingimusi
- Oskama inversiooni ja tingimuse lühivormi kasutada
- Oskama algväärtustada muutujat deklareerimise hetkel
- Teadma mida De Morgani seadus tähendab
- Oskama koodiplokke üksteise sisse panna tingimuslausete näitel
- Oskama kasutada sama muutujat mõlemal pool võrdlusmärki tehetes
- Oskama kasutada ja väljastada murdarvu (väga lihtsad juhud)
- Oskama kasutada switch lauset koodis
- Oskama modelleerida switch lauset UMLis
- Oskama kasutada ujumisradu (eraldisi, swim lane)
- Oskama luua mitme erineva lõpuga programme
Täiendav materjal
- De Morgan’s Laws
https://brilliant.org/wiki/de-morgans-laws/ - C/C++ if else if ladder with Examples
https://www.geeksforgeeks.org/c-c-if-else-if-ladder-with-examples/ - Decision Making in C / C++ (if , if..else, Nested if, if-else-if )
https://www.geeksforgeeks.org/decision-making-c-c-else-nested-else/ - Exit codes in C/C++ with Examples
https://www.geeksforgeeks.org/exit-codes-in-c-c-with-examples/ - Switch Statement in C/C++
https://www.geeksforgeeks.org/switch-statement-cc/