2. labor: tingimuslaused

Labori materjal

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?

Kliki minul, et näha testjuhte!

Test 1: Klient kellele soodustust ei rakendata ja sooritab eduka makse. Testime ka murdaru kasutamist.

Test 2: Klient kelle on kliendikaart ja lisasoodustus.

Test 3: Klient, kellel on täpselt vajaminev rahasumma kontol.

Test 4: Klient, kes saab ostu sooritada vaid pärast soodustuse rakendamist.

Test 5: Klient, kelle kontol pole piisavalt raha.

Test 6: Klient, kes ei tea oma PIN koodi.

Ü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

Test 2: Vigase tootekoodi puhul antakse veateade
Test 3: Vigase kaalu puhul antakse veateade

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