[Cvičení 1] | [Obsah] | [Cvičení 3] |
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
Dev C++: nsn.dev, nsn.c 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í:
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
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
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 0Pří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
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í:
Dev C++: suda.dev, suda.c 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í:
Dev C++: obdelnik.dev, obdelnik.c CodeBlocks: obdelnik.cbp, obdelnik.c
Dev C++: obdelnik.dev, obdelnik.c CodeBlocks: obdelnik.cbp, obdelnik.c
[Cvičení 1] | [Obsah] | [Cvičení 3] |