Začínáme programovat v jazyce C (3. díl)

Vážení čtenáři, v třetím díle našeho miniseriálu o jazyce C si povíme o operátorech a blíže se podíváme na vstup a výstup programu.
Operátory

Operátory určují nějakou operaci, např.: a + b; a, b jsou operátory a celek a + b je operátor.

Druhy operátorů

  • aritmetické          – sčítání, odčítání, násobení, dělení, modulo (+, -, *, /, %)
  • relační                – menší, větší, menší nebo rovno, větší nebo rovno, rovnost, nerovnost (<, <=, >, >=, ==, !=)
  • logické               – AND (&&), OR (||), NOT (!)
  • bitové                – bitový posun vpravo a vlevo (<<, >>), AND (&), OR (|), NOT (!), XOR (^)
  • přiřazovací
  • inkrementace, dekrementace
  • další operátory   – operátor čárky (,), operátor přetypování (datovy typ), operátor velikost datového typu či objektu (sizeof), operátor adresy (&), operátor volání funkce (()), operátor prvku pole ([]), výběr prvku ze struktury (.), výběr prvku ze struktury zadané ukazatelem (->)

Priorita jednotlivých operátorů

Priorita operátorů určuje pořadí, ve kterém bude docházet k vyhodnocování. Následující výpis zobrazuje operátory seřazené od nejvyšší po nejnižší úroveň.

( ) [ ] -> .
 ! ~ + - ++ -- (přetypování) * & sizeof
 * / %
 + -
 << >>
 < <= > >=
 == !=
 &
 ^
 |
 &&
 ||
 ?:
 = += -= *= /=
 ,

Vstupní a výstupní funkce

V této kapitole se zaměříme na funkce pro formátovaný vstup a výstup programu. Funkce pro výstup printf je nám již dobře známa z prvního dílu seriálu. Novou funkcí však pro nás bude vstupní funkce scanf. Pro využití těchto funkcí je nutné připojit ke zdrojovému kodu hlavičkový soubor stdio.h.

scanf("formátovací_řetězec", adresy);
printf("formátovací_řetězec", proměnné_výrazy);

Funkce printf()

printf("formátovací_řetězec", proměnné_výrazy);

Formátovací řetězec se skládá z úseku statického textu, který se obejví na výstupu a z formátové specifikace, která nám určuje, v jakém tvaru se hodnoty výrazů či proměnných zobrazí. Každá formátová specifikace začíná znakem % a končí písmenem, které odpovífá typu vypisované hodnoty. Vkládáme li do formtovacího řezězce více proměnných nebo výrazů, oddělíme je mezi sebou čárkami.

Funkce scanf()

scanf("formátovací_řetězec", adresy);

Formátovacím řetězcem je specifikována formátová specifikace vstupní hodnoty (% a odpovídající písmeno jako u funkce printf). Adresa určuje místo v paměti, kde bude proměnná uložena a zapisuje se takto: &identifikátor_proměnné. Chceme li číst více hodnot, oddělíme jednotlivé adresy čárkami.

Formátová specifikace

%[.přesnost][modifikátor]konverze

Konverze

  • c (jeden znak)
  • d i (číslo typu INT v zápisu DEC)
  • u (číslo typu INT bez znaménka v zápisu DEC)
  • o (číslo typu INT bez znaménka v zápisu OCT)
  • x X (číslo typu INT bez znaménka v zápisu HEX)
  • f (desetinné číslo FLOAT, DOUBLE)
  • e E (číslo typu DOUBLE, FLOAT sedmilogaritmický tvar)
  • g G (číslo typu DOUBLE, FLOAT)
  • s (řetězec bez ukončovacího znaku )
  • p (ukazatel)
  • n (ukazatel na typ INT)Přesnost zapisujeme

Přesnost zapisujeme desetinnou tečkou.

Ukázkový příklad

#include <stdio.h>
int x,y;
int main()
{
    printf("Zadejte dve cisla: n");
    scanf("%d %d", &x, &y);
    printf("Soucet %d a %d je roven: %dn", x, y, x+y);
    printf("Rozdil %d a %d je roven: %dn", x, y, x-y);
    printf("Soucin %d a %d je roven: %dn", x, y, x*y);
    printf("Podil %d a %d je roven: %.2fn", x, y, (float)x/y);
    getchar();
    return(0);
}

O Martin Pitřík

Zajímám se o jazyk C, C++ a C#. V současné době stojím za vznikem projektu ElMetr, který si klade za cíl vytvořit program pro elektroniku zcela zdarma.