[Cvičení 1] [Obsah] [Cvičení 3]

Cvičení 2


Úloha 2.1

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.
Dev C++:nsn.dev, nsn.c
CodeBlocks:nsn.cbp, nsn.c
Návod: definujte symbolickou konstantu #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í:

Varianta 1:Dev C++:nsn1.dev, nsn1.c
 CodeBlocks:nsn1.cbp, nsn1.c
Varianta 2:Dev C++:nsn2.dev, nsn2.c
 CodeBlocks:nsn2.cbp, nsn2.c


Úloha 2.2

Upravte program pro výpočet obsahu obdelníka z minulého cvičení tak, 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í:

Dev C++:obsah2.dev, obsah2.c
CodeBlocks:obsah2.cbp, obsah2.c

Úloha 2.3

Napište program, který čte posloupnost celých čísel ukončených nulou. Pak vypíše, 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 0

Příklad výstupu:
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í:

Dev C++:posloupnost.dev, posloupnost.c
CodeBlocks:posloupnost.cbp, posloupnost.c

Úloha 2.4

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:

Dev C++:suda.dev, suda.c
CodeBlocks:suda.cbp, suda.c
Řešení:
CodeBlocks:suda.cbp, suda.c

Úloha 2.5

Napište program, který počítá obsah a obvod obdélníka. Na obrazovku vypíše jednoduché menu o čtyřech položkách
1 ... Zadání stran
2 ... Obsah
3 ... Obvod
4 ... Konec
Velikosti stran uchovávejte po zadání ve dvou proměnných. Číslo varianty načtěte do proměnné typu int pomocí funkce scanf, výpočet větvete pomocí příkazu switch.

Polotovar:

Dev C++:obdelnik.dev, obdelnik.c
CodeBlocks:obdelnik.cbp, obdelnik.c
Řešení:
Dev C++:obdelnik.dev, obdelnik.c
CodeBlocks:obdelnik.cbp, obdelnik.c


[Cvičení 1] [Obsah] [Cvičení 3]