[Cvičení 4] | [Obsah] | [Cvičení 6] |
Napište program, který vypočítá obsah a obvod obdélníka. Vyzve uživatele k zadání dvou stran obdélníka a vypíše výsledky. Zaměřte se na ladění programu - krokování, výpis proměnných (watches) a nastavování breakpointů.Řešení:
CodeBlocks: obsah.cbp, obsah.c
Doplňte pomocí podmíněného překladu program pro výpočet nejmenšího společného násobku nsn tak, aby bylo možné vytvořit dvě jazykové verze - anglickou a českou.Návod: definujte symbolickou konstantu
CodeBlocks: nsn.cbp, nsn.c #define ENGLISH
a pomocí podmíněného překladu vložte dvě verze tisku hlášení na obrazovku pomocí printf.Vyzkoušejte pouze fázi preprocesingu pomocí přepínače -E, tj. spusťte z příkazové řádky překladač s parametrem -E:
gcc nsn.c -E
. Na obrazovce se vypíše zdrojový text po preprocesingu. Pro přesměrování výpisu do souboru spusťte překladač takto:gcc nsn.c -E > prelozeny.c
. V souboru prelozeny.c bude uložen výstup.Řešení:
CodeBlocks: nsn1.cbp, nsn1.c CodeBlocks: nsn2.cbp, nsn2.c
Upravte program pro výpočet obsahu obdélníka z úlohy 5.1 , aby se při chybném zadání stran program cyklicky dožadoval opětovného zadání.Poznámka: Při chybném zadání zůstanou ve vyrovnávací paměti (bufferu) standardního vstupu (klávesnice) nepřečtené znaky. Funkce scanf při dalším průchodu tyto znaky opět interpretuje jako chybné zadání a cyklus čtení probíhá nekonečně dlouho. Proto je po chybném zadání nutné přečíst zbylé znaky ve vyrovnávací paměti. Protože je poslední znak Enter ('\n'
), vyprázdníme vyrovnávací paměť tímto cyklem:while(getchar()!='\n');
. Středník má zde význam prázdného příkazu.Řešení:
CodeBlocks: obsah2.cbp, obsah2.c
Napište program, který čte posloupnost celých čísel ukončených nulou. Pak vypíše, kolil bylo čísel na vstupu, kolik bylo čísel v intervalu 3 .. 10 (včetně hranic) a dále vypíše nejmenší číslo. Ukončující nula se mezi hodnoty posloupnosti již nepočítá.Příklad vstupu:
2 -1 3 5 20 0Příklad výstupu:
Pocet cisel celkem je: 5
Pocet hodnot mezi 3 az 10: 2
Nejmensi cislo: -1
Návod: použijte cyklus while, k načítání hodnot využijte funkci scanf.Řešení:
CodeBlocks: posloupnost.cbp, posloupnost.c
Napište program, který načte z klávesnice dvě přirozená čísla a a b. Zkontroluje, zda je a menší než b, pokud ne, hodnoty proměnných prohodí. Program vypíše všechna sudá čísla mezi a a b včetně těchto čísel, jsou-li samozřejmě sudá.
(Návod: Cyklus začněte provádět od hodnoty a, je-li sudá, nebo od hodnoty a+1, je-li lichá. Řídicí proměnnou cyklu zvyšujte o 2. Pro inicializaci řídicí proměnné cyklu použijte podmíněný výraz.)Polotovar:
Řešení:
CodeBlocks: suda.cbp, suda.c
CodeBlocks: suda.cbp, suda.c
Napište program, který počítá obsah a obvod obdélníka. Na obrazovku vypíše jednoduché menu o čtyřech položkách1 ... Zadání stran 2 ... Obsah 3 ... Obvod 4 ... KonecVelikosti stran uchovávejte po zadání ve dvou proměnných. Číslo varianty načtěte do proměnné typuint
pomocí funkcescanf
, výpočet větvete pomocí příkazuswitch
.Polotovar:
Řešení:
CodeBlocks: obdelnik.cbp, obdelnik.c
CodeBlocks: obdelnik.cbp, obdelnik.c
Přepište program pro výpočet nejmenšího společného násobku s využitím proudůcin, cout
.
Konzolový vstup/výstup: CodeBlocks: nasobek.cbp, nasobek.cpp Poznámka: Správnost zadání vstupních hodnot otestujte pomocí metody
fail
volanou nad streamemcin
.cin >> a; if (cin.fail()) { cerr << "Chybová hláška"; return -1; }
Řešení: vstup/výstup pomocí proudů: CodeBlocks: nsn3.cbp, nsn3.cpp
[Cvičení 4] | [Obsah] | [Cvičení 6] |