130 likes | 230 Views
Algoritmy I. Cvičení č. 2. Cíl hodiny. Datové typy a přetypování ( int , float , double, bool , char , long , short ) Konstanty Celočíselné Desítkové – 15, 0, 1, 150L Oktalové – 065, 015, 0, 01 Šestnáctkové – 0X3A, 0xcd, 0x1, 0XCD Reálné 0.124, .775, 3.14, 10.14f
E N D
Algoritmy I Cvičení č. 2
Cíl hodiny • Datové typy a přetypování (int, float, double, bool, char, long, short) • Konstanty • Celočíselné • Desítkové – 15, 0, 1, 150L • Oktalové – 065, 015, 0, 01 • Šestnáctkové – 0X3A, 0xcd, 0x1, 0XCD • Reálné 0.124, .775, 3.14, 10.14f • Řetězcové "Retezec" • Znakové např. \n, \\, \", \0, 'a' • Řídící struktura if • Operátory (==, !=, <, >, <=, >=, !) • Operátor sizeof • Formátování výstupů
Úloha č.1 • Dělení dvou čísel • Vstup: dva celé čísla • A.) Výstup: Podíl těchto dvou čísel (celočíselné dělení a zbytek po celočíselném dělení • B.) Výstup: Podíl těchto dvou čísel (reálné dělení)
Úloha č.2 • Výpočet obvodu a obsahu kruhu • Vstup: průměr (ne poloměr!) • Výstup: obvod a obsah kruhu
Úloha č.3 • Program načte číslo v rozsahu od 0 do 255 (nemusíte kontrolovat správnost vstupu). Toto číslo program vypíše v dekadické, osmičkové a hexadecimální soustavě. Dále toto číslo převede na znak (char), bool, float a double a vypíše jeho hodnotu na obrazovku.
Úloha č.4 • Vypište do konzole přesně následující text: James Bond \ "Agent 007" \ # 150% zaruka # / Spol. S rucenimomezenym
Úloha č.5 • Napište program, který přečte 3 celá čísla a A.) Vypíše jejich aritmetický průměr B.) Seřadí je od nejmenšího po největší C.) Vypíše pouze ta, která jsou sudá D.) Pokud budou první dvě čísla stejná, přičte k poslednímu číslu 25% jeho hodnoty a vypíše jí na obrazovku E.) Pokud je druhé číslo větší (nebo rovno) než první a zároveň třetí větší (nebo rovno) než druhé, program vypíše text: “Cislajsouserazenavzestupne” F.) Pokud je alespoň jedno ze zadaných čísel záporné, program vypíše text: “Jednonebo vice cisel je zaporne.” G.) Místo výpisu textu v bodu F.) vypište proměnnou typu bool, do které uložíte true, pokud je splněna podmínka v bodě F.).
Úloha č.6 • Napište program, který zjistí, zda-li je proměnná1 menší než proměnná2, pokud ano, vypíše o kolik by se musela proměnná1 zvýšit, aby se rovnaly. Je-li naopak proměnná1 větší než proměnná2, vypíše o kolik by se musela proměnná1 snížit, aby se rovnaly.
Úloha č.7 • Vypište na obrazovku velikost alokované paměti pomocí operátoru sizeof v bytech, bitech a kilobytech. A.) pro proměnné typu char, int, bool, float, double, long B.) pro řetězcové konstanty "Ahoj", "A\nh\no\nj", "\\" C.) Porovnejte čísla, které vrátí sizeof(int), sizeof(char), atd… s výsledky v bodu A.)
Úloha č.8 • Upravte a zkompilujte následující kód a zjistěte co program dělá. #include <iomanip> constfloattenth = 0.1; constfloatone = 1.0; constfloatbig = 1234567890.0; cout << "A. " << tenth << ", " << one << ", " << big << endl; cout << "B. " << fixed << tenth << ", " << one << ", " << big << endl; cout << "C. " << scientific << tenth << ", " << one << ", " << big << endl; cout << "D. " << fixed << setprecision(3) << tenth << ", " << one << ", " << big << endl; cout << "E. " << setprecision(20) << tenth << endl; cout << "F. " << setw(8) << setfill('*') << 34 << 45 << endl; cout << "G. " << setw(8) << 34 << setw(8) << 45 << endl;
Formátování pomocí manipulátorů • endl odřádkování • setw(n), width(n) minimální šířka zápisu • left zarovnání výpisu doleva • right zarovnání výpisu doprava, použijte jen s setw(n) • setfill(ch) výplňový znak • setprecision(n) nastaví počet desetinných míst • fixed výpis s pevnou desetinnou čárkou • scientific „vědecký“ formát výpisu (1.000000e-001) • boolalpha, noboolalpha způsob výpisu logických hodnot
Co si zapamatovat? • Umět vhodně používat typy int, float, bool, char • Operátor sizeof vrací počet alokovaných bytů • Přetypování (int->float, float->int, char->int, int->char, int->bool, bool->int) • Použití řídící struktury if • Operátory ==, !=, <, >, <=, >=, !, &&, || • Rozdíl mezi celočíselným a reálným dělením • Zbytek po celočíselném dělení (operátor %) • Tvorba konstant
Domácí úkol • Najděte dokumentaci k funkci printf a použijte jí v úloze č.8 a č.3 pro formátování výstupů. Příklad použití printf: #include <stdio.h> printf("Ahoj"); // vypíše Ahoj intcele_cislo = 10; printf("%d", cele_cislo); // vypíše 10 floatcislo = 3.1415; printf("%.2f", cislo); // vypíše 3.14 printf("Prvni: %d, druhe %f\n", cele_cislo, cislo); // vypíše Prvni: 10, druhe 3.141500