Týden 3
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);
Funkce matematické knihovny math
Standardní knihovna jazyka C obsahuje základní matematické funkce pro výpočet goniometrických funkcí, mocniny a odmocniny čísla, logaritmů a také zaokrouhlovací funkce. Podrobnou dokumentaci naleznete na http://www.cplusplus.com/reference/clibrary/cmath/, ve cvičeních užijeme funkce:
- cos - cosinus
- sin - sinus
- pow - mocnina
- sqrt - druhá odmocnina
- ceil - horní celá část
- floor - dolní celá část
- fabs - absolutní hodnota desetinného čísla