Ciele
- Oboznámiť sa so základnými údajovými typmi jazyka C.
- Naučiť sa pracovať s premennými.
- Jednoduché aritmetické výrazy
- Zoznámiť sa s vývojovým prostredím NetBeans IDE a naučiť sa v ňom ladiť program.
- Osvojiť si funkcie pre prácu so štandardným vstupom a výstupom.
Úvod
Štandardný vstup a výstup, premenné, aritmetické výrazy, NetBeans IDE, ladenie programov, prvá herná pecka Uhádni číslo, ktoré si myslím.
Postup
Krok č. 1: Body Mass Index
Úloha 1.1:
Úloha 1.2:
Funkcia bude mať nasledujúce vstupné parametre:
- height - výška v m, napr. 1.95,
- weight - hmotnosť v kg, napr. 95.2.
Výstupom funkcie bude hodnota vypočítaná podľa vzorca BMI = (hmotnosť v kg) / (výška v m)^2.
Úloha 1.3:
Zadaj výšku: 1.95
Zadaj hmotnosť: 95.2
Hodnota BMI je 25.0
$
Úloha 1.4:
Zadaj výšku: 1.95
Zadaj hmotnosť: 95.2
Hodnota BMI je 25.0, čo znamená: nadváha.
$
Krok č. 2: Uhádni číslo, ktoré si myslím!
Úloha 2.1:
Úloha 2.2:
srand(time(NULL)); int randomNumber = (rand() % 100) + 1;Príklad výstupu z programu je nasledovný, pričom vstup od používateľa je zvýraznený tučne a riadky začínajúce znakom '$' predstavujú príkazový riadok:
Myslím si číslo od 1 do 100.
Tvoj tip: 50
Hmm... Moje číslo je väčšie.
$
Úloha 2.3:
Myslím si číslo od 1 do 100.
Tvoj tip: 50
Hmm... Moje číslo je väčšie.
Tvoj tip: 75
Hmm... Moje číslo je väčšie.
Tvoj tip: 87
Hmm... Moje číslo je menšie.
Tvoj tip: 81
Gratulujem! Uhádol si moje číslo.
$
Úloha 2.4:
Myslím si číslo od 1 do 100.
Tvoj tip: 50
Hmm... Moje číslo je väčšie.
Tvoj tip: 75
Hmm... Moje číslo je väčšie.
Tvoj tip: 87
Hmm... Moje číslo je menšie.
Tvoj tip: 81
Hmm... Moje číslo je väčšie.
Tvoj tip: 84
Hmm... Moje číslo je menšie.
Koniec hry. Moje myslené číslo je 82.
$
Svoje riešenie môžete rozšíriť aj o zobrazenie informácie o aktuálnom čísle pokusu.
Úloha 2.5:
Myslím si číslo od 1 do 100.
Tvoj tip: 50
Hmm... Moje číslo je väčšie.
Tvoj tip: 75
Gratulujem! Uhádol si moje číslo.
Chceš sa hrať ešte raz? (a/n): n
Tak ahoj nabudúce.
$
Doplňujúce úlohy
-
Modifikujte program GuessTheNumber tak, aby počítač hádal číslo, ktoré si myslíte vy ako hráč a vy mu pomocou odpovedí (moje je väčšie/menšie/rovné) budete pomáhať. Pre realizovanie programu využite metódu Bisekcie (Bisection search, metóda delenia intervalov).
Príklad výstupu komunikácie z programu je nasledovný, pričom vstup od používateľa je zvýraznený tučne:Please think of a number between 0 and 100!
Is your secret number 50?
Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. l
Is your secret number 75?
Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. l
Is your secret number 87?
Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. h
Is your secret number 81?
Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. l
Is your secret number 84?
Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. h
Is your secret number 82?
Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. l
Is your secret number 83?
Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. c
Game over. Your secret number was: 83
- Modifikujte program GuessTheNumber nasledovne: Nech A si myslí číslo a B háda myslené číslo. Používateľ nech zadá interval, na ktorom je číslo hádané. Výstupom nech je konverzácia medzi A a B. Počítač teda bude komunikovať sám so sebou.
- Vytvorte program, pomocou ktorého načítate zo vstupu postupnosť čísiel, pričom načítavanie ukončíte zadaním hodnoty 0. Na obrazovku vypíšte najväčšie zadané číslo, najmenšie zadané číslo, súčet všetkých zadaných čísiel a ich aritmetický priemer.
-
Vytvorte funkciu power(base,exp), ktorá vypočíta hodnotu na základe vzorca base^exp. Úlohu môžete riešiť využitím rekurzie, ako aj iteratívnym postupom.
-
Vytvorte funkciu gcd(a,b), ktorá nájde najväčšieho spoločného deliteťa čísiel a a b. Napríklad:
- gcd(2, 12) = 2
- gcd(6, 12) = 6
- gcd(9, 12) = 3
- gcd(17, 12) = 1
-
Vytvorte funkciu fibonacci(n), ktorá na obrazovku vypíše prvých n členov fibonacciho postupnosti. Úlohu môžete riešiť využitím rekurzie, ako aj iteratívnym postupom.
Ďalšie zdroje
- www.netbeans.com - Domovská stránka prostredia NetBeans
- Cygwin - Domovská stránka programu Cygwin
- PDCurses - verzia knižnice curses pre operačný systém Windows (pdcurses.lib, pdcurses.dll)
- Knižnica Karel the Robot (Hlavičkový súbor, Windows, Linux 32b, Linux 64b)
- Rudolf Pecinovský: Základy algoritmizace
- Pavel Herout: Učebnice jazyka C (1. díl) - kapitoly 3.1 a 4.3
Poznámka: