Algoritmy I

13
Algoritmy I Cvičení č. 2

description

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 - PowerPoint PPT Presentation

Transcript of Algoritmy I

Page 1: Algoritmy I

Algoritmy I

Cvičení č. 2

Page 2: Algoritmy I

Cíl hodiny• Datové typy a přetypování (int, float, double, bool, char, long, short;

signed/unsigned)• 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ů

Page 3: Algoritmy I

Ú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í)

Page 4: Algoritmy I

Úloha č.2

• Výpočet obvodu a obsahu kruhu – Vstup: průměr (ne poloměr!)– Výstup: obvod a obsah kruhu

Page 5: Algoritmy I

Ú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.

Page 6: Algoritmy I

Úloha č.4

• Vypište do konzole přesně následující text:James Bond \ "Agent 007" \ # 150% zaruka # /Spol. S rucenim omezenym

Page 7: Algoritmy I

Úloha č.5• Napište program, který přečte 3 celá čísla a

A.) Vypíše jejich aritmetický průměrB.) 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 obrazovkuE.) 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: “Cisla jsou serazena vzestupne”F.) Pokud je alespoň jedno ze zadaných čísel záporné, program vypíše text: “Jedno nebo 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.).

Page 8: Algoritmy I

Ú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.

Page 9: Algoritmy I

Ú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, longB.) 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.)

Page 10: Algoritmy I

Úloha č.8 (pro ty rychlejší)• Upravte a zkompilujte následující kód a zjistěte co program dělá.#include <iomanip> const float tenth = 0.1; const float one = 1.0; const float big = 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;

Page 11: Algoritmy I

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

Page 12: Algoritmy I

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

Page 13: Algoritmy I

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 Ahojint cele_cislo = 10;printf("%d", cele_cislo); // vypíše 10float cislo = 3.1415;printf("%.2f", cislo); // vypíše 3.14printf("Prvni: %d, druhe %f\n", cele_cislo, cislo);

// vypíše Prvni: 10, druhe 3.141500