// console_cpp_basics.cpp : Defines the entry point for the console application. // // C++ je case sensitive jazyk!!! #include "stdafx.h" /* hlavičkový soubor zde piseme standardni a knihovni hlavicky, ktere kompilatorpredkompiluje a neni je nutne kompilovat pri kazdem #include “stdafx.h”, cimz se kompilace urychli */ #include // deklaruje objekty, ktere ridi zapis a cteni z a do standardnich streamu using namespace std; // budeme pouzivat funkce obsazene v namespace (jmenny prostor, mnozina) std #define PI 3.141592653589793 // definice konstanty double x_na_y(float a_zaklad, int a_mocnitel) { //parametry, neboli atributy funkce - a_ zajistí jednoznačné pojmenování atributů, nedojde k záměně s globální proměnnou int cykl; // lokální proměnná - může se jmenovat stejně, jako globální, nicméně v těle funkce platí lokální double l_vysledek = a_zaklad; // pojmenování lokální proměnné - l_ zajistí jednoznačné pojmenování lokální proměnné if (a_mocnitel == 0) { return 1; } else { for (cykl=1; cykl>=, <<=, &=, ^=, |= i++; // inkrement i--; //dekrement //Aritmetické cout << 2 + 6 << endl; // sčítání cout << 5 - 3 << endl; // odčítání cout << 5 * 5 << endl; // násobení cout << 7 / 3 << endl; // dělení cout << 7 % 3 << endl; // modulo (zbytek po dělení) /*Relační > větší než < menší než >= větší nebo rovno <= menší nebo rovno == je rovno != není rovno Logické && spojka a (and) || spojka nebo (or) ! negace */ i > j ? nejvetsi = i : nejvetsi = j; //ternarni operator: podminka ? příkaz true : příkaz false; // podmínky // podmínka if (podmínka) příkaz else příkaz (if) if (a > b) { cout << "a je vetsi nez b" << endl; } else if (b > a) { cout << "b je vetsi nez a" << endl; } else { cout << "a je rovno a" << endl; } // switch case - volba z více možností cout << "Zadej cislo :"; cin >> a; // příkaz načtení vstupu cin.get(); // předešlý cin nechá ve vstupní frontě odřádkování po odeslání hodnoty enterem cin.get() tento znak přečte cout << endl; switch (a) { default: cout << "jine cislo\n"; break; case 1: cout << "jednicka\n"; break; case 2: cout << "dvojka\n"; break; case 3: cout << "trojka\n"; break; } // cykly // nepodmíněné cykly - for cyklus - má přesně stanovený počet iterací for (int i = 1; i<=10; i++) { // deklarujeme a inicializujeme proměnnou i; podmínka cyklu - czklus se provádí, pokud je podmínka splněna; krok cyklu cout << i << endl; if (i == 5) break; // i nepodmíněný cyklus lze předčasně ukončit - násilně pomocí break }; // podmíněné cykly // cyklus while - while (podmínka) příkaz - příkaz se vykonává, doku je podmínka pravdivá, cyklus lze opět násilně opustit pomocí break i=0; while (i<5) { cout << i << endl; i++; } /* cyklus do - while do blok příkazů; while (podmínka); cyklus se provádí, dokud je podmínka pravdivá od cyklu while se liší tím, že blok příkazů se provede alespoň jednou, protože podmínka je testována až na konci cyklu */ int n; cout << "Zdej cislo od 1 do 10 pro nalezeni "; cout << "meho oblibeneho cisla\n"; do { cin >> n; cin.get(); } while (n != 7); cout << "Ano, 7 je me oblibene cislo.\n" ; char jmeno[21]; //Poslednim znakem každého řetězce je \0 - tzv. prázdný znak. //Tento znak je ASCII kódem 0 a slouží pro označení konce řetězce (0 = nula). //nami definovane retezce maji 20 - pozor na preteceni! cout << "Zadejte sve jmeno: "; cin.getline(jmeno, 21); // getline ma dva parametry 1. pole, 2. délka vstupu. Načte celý řádek ukončený "Enter". Pro délku platí totéž, co pro pole char. // umožňuje číst více slov - celý řádek, což samotné cin << neumožňuje // obdobně jako pascalovské read a readln cin.clear(); // pokud bylo zadáno více znaků, ty zůstanou opět ve vstupní frontě a přenesly by se do nésledně čtené proměnné // cin.clear() vymaže znaky ve vstupní frontě cout << endl << jmeno <> x; cin.get(); cout << "Zadej mocnitele: "; cin >> y; cin.get(); cout << x << " na " << y << " je " << x_na_y(x,y) << endl; // volání funkce hodnotou return 0; }