<< home >>
Didaktické využitie mini-jazyka Robot Karel na ZŠ
<<- ->>


  • Jazyk C

JAZYK C

Rozlišuje malé a veľké písmená.

Spôsob spracovania zdrojového programu

Editor *.c tvorba a úpravy zdrojového súboru
Preprocesor (aj vloženie hlavičkových súborov *.h)
Compiler *.objprekladač
*.lis protokol o preklade
Linker *.exe(aj volanie knižníc *.lib)
Debugger odmuchovač - ladiaci program

a toto opakujeme a opakujeme a opakujeme a ...


Vloženie hlavičkového súboru

#include <stdio.h>

Školský klub (družina) ŠK:

Každý program začína hlavičkou

/*
 * MENO.Cv.1.0
 *
 * Stručný popis programu
 *
 * Ucitel 10.2001
 */

Ak sa program skladá z viacerých súborov, ich mená napr. EDI_KLA.C, EDI_OBR.C, EDI_TLAC.C súvisia prvými tromi znakmi.

Identifikátory

Kľúčové slová musia byť písané malými písmenami (if, while, ...).

Školský klub (družina) ŠK:

Mená objektov písať malým písmom s využitím _ (view_file, view_menu, prem_x, ...)
Rozlišovať identifikátory podľa prvých 8 znakov.
Nepoužívať podobné identifikátory (systst, sysstst, ..., prem, PREM)
Mená objektov majú mať význam (plat a nie p1)
Bežne používané identifikátory: i, j, k indexy, parametre cyklov
c, ch znaky
m, n čítače
f, r reálne čísla
p_ začiatok pointeru (p_plat)
s reťazce

Komentáre

/* komentár */

/*
 * komentár
 */

Školský klub (družina) ŠK:

Vložiť komentár pred každou logicky ucelenou časťou.
Pri kratších funkciách stačí popis jej funkcie pred definíciou funkcie.


Údajové typy

PASCAL C
integer int
long int(long)
short int(short)
char char
real float
double
long double

Booleovské hodnoty sú reprezentované pomocou celočíselných (int) hodnôt:

nulová hodnota (0) false
nenulová hodn. (1) true


Definícia premenných

Definícia prideľuje typ, meno a pamäť, deklarácia iba typ a meno.
Definovať možno aj vnútri funkcie (lokálna premenná).
Definujeme až za {.

V C sú definície v opačnom poradí ako v Pascale.

PASCAL C
var i :integer; inti;
c, ch :chr; charc, ch;
f, g :real; floatf, g;

Školský klub (družina) ŠK:

Každú premennú definovať na samostatnom riadku a okomentovať.
Globálne premenné definovať od začiatku riadku.
Lokálne definovať na úrovni bloku.

Priradenie a porovnanie

V C je priradenie = miesto := v Pascale.
Priradenie sa stáva príkazom ak je ukončené bodkočiarkou ;
Je možné niekoľkonásobné priradenie (k = j = i = 2). Vyhodnocuje sa zprava doľava.

V C je porovnanie = = miesto = v Pascale.


Hlavný program

Vždy sa volá main() a musí byť uvedený ako prvý. Ak program tvorí viac modulov, je main iba v jednom a iba raz.

PASCAL C
program pokus(input, output); main() /* bez bodkočiarky */
var i, j :integer; {
begin inti, j;
i:=5; i = 5;
end. }

Pascalovské begin a end sú v C nahradené { a }. Tieto zátvorky uzatvárajú aj zložený príkaz a blok.
Za každou { môžu byť definície.

zložený príkaz zoznam príkazov
blok definície premenných + zoznam príkazov

Jazyk C umožňuje, na rozdiel od Pascalu inicializáciu premenných priamo v definícii.

main()
{
inti = 5,
j = -1;

j = j + i;
}

Školský klub (družina) ŠK:

Každá inicializovaná premenná sa píše do jedného riadku.
Medzi definíciami a príkazmi je prázdny riadok.


Konštanty

celočíselné desiatkové nesmú začínať nulou
celočíselné osmičkové začínajú 0
celočíselné šestnástkové začínajú 0x

znakové ´a´ /* medzi apostrofmi */

reťazcové "reťazec znakov" /* medzi uvodzovkami */

escape sekvencie (napr. pre formátovanie výpisu):

\n nový riadok
\r návrat na začiatok riadku
\f nová strana
\t tabulátor
\b posun doľava
\a pískutie
\\ \
\` `
\0 nulový znak


Aritmetické výrazy

; prázdny príkaz

PASCAL C
div /
mod%

Špeciálne unárne operácie (aplikovať na premennú), ako predpony aj ako prípony:

++ inkrement
-- dekrement

++premenna inkrementuje pred použitím, vracia zväčšenú hodnotu
premenna++ inkrementuje po použití, vracia pôvodnú hodnotu

Rozšírené priraďovacie operátory (bez medzery!)

premenna += výraz premenna=premenna+vyraz
-= atď.
*=
/=
%=
>>=
<<=
&=
|=


Terminálový vstup a výstup

#include <stdio.h>

getchar() vstup znaku
putchar(premenna) výstup znaku

Obe funkcie pracujú s premennými int, nie char!

#include<stdio.h>
main()
{
intc;
c = getchar();
putchar(c);
putchar(`\n`); /* odriadkovanie */
}


Formátovaný vstup a výstup

scanf(format, &premenna)
printf(format, premenna)

Viď konštanty escape sekvencie  pre formátovanie výstupu.

format: "%d" desiatkové číslo signed int
"%ld" desiatkové číslo signed long
"%u" desiatkové číslo unsigned int
"%lu" desiatkové číslo unsigned long
"%f" float
"%x" hexadecimálne malé
"%X" hexadecimálne veľké
"%o" osmičkové
"%s" reťazec



<<- ->>