Ciele cvičenia
- Karlovi je koniec nech žije C-čko
- Precvičiť si prácu s knižnicou štandardného vstupu a výstupu
- Oboznámiť sa problematikou údajových typov premenných v jazyku C
Odporúčaná literatúra a dôležité odkazy
Karlovi je koniec nech žije C-čko
Doposiaľ sme programovali robota Karola. Hlavným cieľom takého programovania bolo naučiť študentov myslieť "algoritmicky". Programovanie Karola nezahŕňalo implementáciu štandardného vstupu či výstupu, ktorým by používateľ interagoval s programom. Tiež neboli použité premenné a podobne. Programy fungovali len pre definovaný svet, v ktorom sa Karol pohyboval.
Je zrejmé, že také programovanie okrem svojho didaktického účelu nemá veľký význam. Od tohto cvičenia budeme programovať programy takým spôsobom, ktorý možno považovať za "klasické C-čko"
Úloha 1.
Spomínate si ešte na Slovenské koruny? Dnes už málokto z mladej generácie rozmýšľa v korunách. Starší ľudia si ale na eurá ešte nezvykli a aby mali predstavu o hodnote kupovanej veci, preto si potrebujú urobiť prepočet konverzným kurzom:
1€ = 30,126SKK
Napíšte funkciu, ktorá zo štandardného vstupu od používateľa načíta sumu v Eurách (EUR) a následne ju prevedie na hodnotu Slovenských korún (SKK).
Ďalšia špecifikácia:
- Názov c-súboru: eur2skk.c
- Názov výsledného programu: EUR2SKK
Spôsob kompilácie:
gcc -Werror -Wall eur2skk.c -o EUR2SKK
Riešenie:
Algoritmus
Vývojový diagram
Príklad možného dizajnu používateľského rozhrania programu
K riešeniu pristupujeme tak ako sme sa už učili → Najprv algoritmus, potom kód!
Základný algoritmus môže pozostávať z týchto krokov:
- Výzva k zadaniu hodnoty v SKK
- Načítanie zadanej hodnoty v SKK - Aký údajový typ má byť použitý?
- VOLITEĽNÉ - je zadaná vstupná hodnota zmysluplná (napr. či to nie sú znaky namiesto čísla a podobne)?
- Prepočet konverzným kurzom - Je rozumné všetko robiť vo funkcii main()? Nie je lepšie vytvoriť si vlastnú?
- Zobrazenie výsledku v EUR
- Okrem výsledku v EUR je vhodné zobraziť aj pôvodnú zadanú hodnotu, konverzný kurz a podobne
- Zobrazenie výsledku by malo byť prehľadné a aj estetické
ab123xy@zapfei$ ./EUR2SKK -------------------------------------------------------- -------------------- SKK to EUR ---------------------- -------------------------------------------------------- Zadaj hodnotu v EUR >> 15.22 Hodnota 15.22 EUR je 458.52 SKK Pouzity konverzny kurz: 1 EUR = 30,126 SKK --------------------------------------------------------