Sbírka_úloh_z_jazyka_C [UP Logo] Katedra informatiky Univerzity Palackého v_Olomouci

Základy jazyka C

* Doplňující informace * Obecné vlastnosti programu v jazyce C

slov tvořících program (klíčová slova jazyka, datové typy, názvy

    standardních funkcí a maker) jsou psány malými písmeny.
  * Ignorují se tzv. bílé znaky (odřádkování, tabulátor, mezery). Doporučuje
    se využívat těchto znaků pro zvýšení přehlednosti zdrojového kódu
    programu.
  * Program se skládá z příkazů - výrazů ukončených středníkem. Pro větší
    přehlednost programu bývá zvykem psát jednotlivé příkazy na samostatné
    řádky.

int cislo, x, y; z = x * y / 2 / PI; printf(&quot;Výsledek je: %d&quot;, cislo); Kostra programu Jednoduché programy, které budete v několika prvních cvičeních psát, se budou vždy skládat pouze z tzv. hlavní funkce programu. Veškeré příkazy budete psát do této funkce. #include <stdio.h>

int main() {

 /* Tady bude vlastni posloupnost prikazu. */
 return 0;

} Datové typy Základní datové typy jazyka C můžeme rozdělit na celočíselné datové typy a reálné datové typy. U celočíselných datových typů pak navíc rozlišujeme, zda se jedná o typ znaménkový (pro kladná i záporná čísla) nebo neznaménkový (pouze pro nezáporná čísla). Jazyk C nemá datový typ odpovídající logické hodnotě (pravda nebo nepravda), místo něj je možné použít některý z celočíselných datových typů, přičemž hodnota 0 je brána jako nepravda a jakákoli jiná hodnota jako pravda. Celočíselné typy Seřazeny vzestupně podle rozsahu reprezentovaných čísel: char (vhodný především pro znaky) short int (v pragramu lze zkrátit na short) int long int (v programu lze zkrátit na long) Všechny výše uvedené typy mohou být specifikovány jako signed nebo unsigned (např. signed short int, unsigned char), přičemž signed je implicitní a tudíž se většinou vynechává. Reální typy Seřazeny vzestupně podle rozsahu a přesnosti reprezentovaných čísel: float double long double Celočíselné konstanty V jazyku C jsou celočíselné konstanty vnitřně reprezenttovány implicitně typem int, uvedením znaku “L” (resp. “l”) za konstantu lze tento typ změnit na long int. Uvedením znaku “U” (resp. “u”) za konstantu lze změnit vnitřní reprezentaci na unsigned. Základní číselnou soustavou pro zápis konstant v jazyku C je soustava desítková. Dále je možné využít osmičkový zápis (uvedením znaku “0” na začátku konstanty) a šestnáctkový zápis (uvedením dvojice znaků “0x” nebo “0X” na začátku konstanty). V šestnáctkové soustavě pak kromě číslic “0” až “9” používáme číslice “A” až “F” (resp. “a” až “f”). Znakové konstanty jsou tvořeny libovolným znakem uzavřeným do apostrofů. Příklady:

Reálné konstanty V jazyku C jsou reálné konstanty vnitřně reprezentovány implicitně typem double, uvedením znaku “L” (resp. “l”) za konstantu lze tento typ změnit na long double a uvedením znaku “F” (resp. “f”) za konstantu na typ float. Reálné konstanty je možné psát také v semilogaritmickém tvaru, kde mantisa a exponent jsou odděleny znakem “E” (resp. “e”). Příklady:

Proměnné Definice proměnné v jazyku C povinně obsahuje specifikaci datového typu a identifikátoru proměnné, který je tvořen libovolnou posloupností písmen, číslic a znaku podtržítko. Volitelně je možné uvést také inicializační hodnotu proměnné. Přestože pro větší přehlednost zdrojového kódu obvykle definujeme každou proměnnou novým příkazem, je syntakticky možné zapsat definici více proměnných stejného typu do jediného příkazu. Příklady: int moje_cislo; unsigned short int male_kladne_cislo; char muj_znak = '*'; /* definice s inicializací */ int c1, c2 = 3, c3; /* definice více proměnných */ Základní vstup a výstup Vstup a výstup na obrazovku je v jazyku C řešen standardními funkcemi scanf a printf. Prvním parametrem obou funkcí je tzv. řídící textový řetězec, který určuje co se má vypisovat či načítat, a za ním následují hodnoty, které se budou vypisovat, nebo proměnné, do nichž se budou uživatelem zadávané hodnoty vkládat. Použití funkcí obecně: printf(&quot;řídící řetězec&quot;, hodnota1, …); scanf(&quot;řídící řetězec&quot;, &amp;promenna1, …); Konkrétní příklady: printf(&quot;Součet je %d&quot;, suma); printf(&quot;Součet je %d&quot;, x + y); printf(&quot;Součet je %d\t Součin je %d\n&quot;, x + y, x * y); printf(&quot;Plán jsme splnili na 100%%.&quot;); printf(&quot;Dekadicky %d je oktalově %o a hexadecimálně %x.\n&quot;, cislo, cislo, cislo); scanf(&quot;%d&quot;, &amp;cislo); scanf(&quot;%d %o %x&quot;, &amp;cislo1, &amp;cislo2, &amp;cislo3); Základní možnosti řídícího řetězce:

semilogaritmicky na základě jeho hodnoty

[Creative_Commons_License] Sbírka_úloh_z_jazyka_C. © Katedra_informatiky Univerzity_Palackého_v_Olomouci, 2009. Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.