Týden 2
Příkaz
Příkaz je základní část programu, která říká, co se má v dalším kroku vykonat. Zápis příkazu se ukončuje středníkem
Příkaz může vypadat takto:
a = 2 + 3; printf("Hello, World!");
Proměnné a základní datové typy
Pro uložení hodnoty při výpočtu užíváme v jazyce C proměnné. Proměnnou vytvoříme příkazem, který ji přiřadí identifikátor (název) a datový typ. Datový typ určuje obor hodnot, které proměnná může nabývat.
Základní datové typy jsou např. tyto:
- char - znak
- int - celé číslo (dle architektury procesoru)
- float - desetinné číslo (poloviční přesnost)
- double - desetinné číslo (plná přesnost)
Vytvoření proměnné zapíšeme v jazyce C např. takto:
int sum; int age = 20; float average = 1.435;
Při vytvoření je možné proměnné ihned přiřadit hodnotu.
Aritmetické výrazy
Podobně jako v matematice je možné s obsahem proměnných provádět aritmetické operace +, -, /, * a další. Operace se mohou chovat různě v závislosti na typu proměnných.
int x = 2; int y = 3; int sum = x + y;
Přiřazovací příkaz s operací
V programovacím jazyce C je možné zkracovat zápis aritmetických a logických operací, jejichž výsledek se ukládá do proměnné.
Standardní zápis operace přičtení proměnné x do sum vypadá takto:
int sum = 0; sum = sum + x;
Zápis operace sečtení a přiřazení je možné zkrátit na přičtení:
sum += x;
Formátování výstupu pomocí funkce printf
Chování funkce printf se určuje ve formátovacím řetězci, který předáváme jako první parametr. Hodnotu, kterou chceme naformátovat a vypsat, v řetězci nahradíme znakem % a vhodnou formátovací značkou.
Časté formátovací značky jsou:
- d nebo i - celé číslo
- e nebo E - desetinné číslo ve vědeckém formátu
- f - desetinné číslo, lze nastavit počet desetinných míst
- g - desetinné číslo buď podle e nebo f, vypíše se kratší z obou
- o - nezáporné celé číslo v osmičkové soustavě
- x nebo X - nezáporné celé číslo v šestnáctkové soustavě
- % - procento:)
Formátovací značku je možné doplnit o další parametry (viz http://www.cplusplus.com/reference/clibrary/cstdio/printf/), např. o zápis přesnosti desetinného čísla nebo počet pozic, který bude text zabírat.
Výše zmíněné parametry se doplní takto:
%[sirka_v_textu_doplni_se_mezerami][.presnost]znacka
Navíc je možné pomocí funkce printf vypsat tabulátor nebo přejít na nový řádek - to se zapíše do formátovacího řetězce pomocí speciálních znaků \t jako tab a \n jako new line.
Příklad, který vypíše na obrazovku desetinné číslo s přesností na 3 desetinná místa a přejde na nový řádek:
float volume = 30.25314; printf("Obsah valce je: %.3f\n", volume);
Načítání vstupu pomocí funkce scanf
Stejně jako u printf je i u scanf prvním parametrem formátovací řetězec. Do řetězce je možné zapsat, jaký vstup se od uživatele očekává. Typ vstupu se specifikuje stejnou formátovací značkou jako u printf - viz výše. Jako další parametry se funkci předávají adresy proměnných, do kterých má přečtený vstup uložit. Počet adres, které funkce očekává závisí na počtu uvedených formátovacích značek ve formátovacím řetězci.
Jak přečíst z příkazové řádky celé číslo?
int num; printf("Zadejte cele cislo: "); scanf("%d", &num);
Všimněte si především znaku & před proměnnou num, symbol & se v jazyce C používá k vrácení adresy proměnné, jejíž jméno předchází.
Složitější příklad použití by mohl vypadat například takto:
int sum, x, y; printf("Zadejte dve cele cisla (oddelte mezerou): "); scanf("%d %d", &x, &y); printf("Soucet cisel: %d + %d = %d", x, y, x + y);