A1PRG - Programování - seminář
Ing. Michal Heczko [email protected]
Základní pojmy v jazyce C2
Verze 2009.02
Agenda
Identifikátory Klíčová slova Komentáře Konstanty a proměnné Řídicí sekvence
Identifikátory
Jména funkcí, proměnných, konstant, ... Důležité: jazyk C je case-sensitive, tj. je
třeba dávat pozor na malá a velká písmena Vysvětlení
IDENTIFIKATOR ≠ identifikator ≠ Identifikator
Pravidla pro tvorbu identifikátorů
Skládají se z písmen, číslic nebo podtržítka
Dle normy ANSI max. 31 znaků Nesmí začínat číslicí Mohou obsahovat pouze znaky bez
diakritiky Nesmí obsahovat mezery Nesmí se shodovat s klíčovým slovem
(více dále)
Klíčová slova
Mají v jazyce C speciální význam a nelze je používat jako uživatelem definované identifikátory (např. jména funkcí, proměnných, konstant atd.)
Zapisují se vždy malými písmeny
Klíčová slova
auto double int struct break else longswitch case enum register typedef char externreturn union const float short unsigned continuefor signed void default goto sizeof volatiledo if static while
Komentáře
Jsou důležitou částí zdrojového kódu Slouží k snadnější orientaci v programu Vhodné průběžné psaní komentářů Mohou obsahovat znaky národní
abecedy Lze je umístit do libovolné části
zdrojového kódu (při zpracování jsou odstraněny preprocesorem)
Komentáře
2 typy komentářů: Víceřádkové komentáře:
Uvozují se znaky: /* pro začátek komentáře */ pro konec komentáře
Jednořádkové komentáře: Uvozují se znaky // na začátku řádku
Komentáře
Komentáře
Komentáře
Konstanty a proměnné
Proměnná datový objekt, jehož hodnota se
v průběhu programu může měnit
Konstanta datový objekt, jehož hodnota v průběhu programu nelze měnit
Proměnná
Datový objekt, jehož hodnota se v průběhu programu může měnit Obecný zápis:
datovýtyp jméno;datovýtyp jméno = hodnota;
Příklad:int i = 2; // deklarace proměnné s výchozí hodnotou
int i; // deklarace proměnné
i = 2; // uložení čísla 2 do prom. i
Datové typy
Datový typ Velikost [b] Popischar 8 Znakshort 16 Krátké celé čísloint 16/32 Celé číslolong 32 Dlouhé celé číslofloat 32 Reálné číslodouble 64 Reálné číslo
s dvojitou přesnosti
long double 80 Velmi dlouhé reálné číslo
Datové typy
Klíčové slovo Popissigned Uvádí se před datovým
typem. Znamená se znaménkem. Výchozí, pokud není uvedeno.
unsigned Uvádí se před datovým typem. Znamená bez znaménka.
Konstanta
Datový objekt, jehož hodnota se v průběhu programu nemění
Pro definici konstant používáme direktivu #define
Obecný zápis: #define jméno hodnota
Příklad:#define POCET 2
#define PI 3.14
Rozdělení konstant
Celočíselné Reálné Znakové Řetězcové
Celočíselné konstanty
3 typy: Desítkové – posloupnost číslic, z nichž
první nesmí být 0 Osmičkové (oktalové) – číslo 0
následované posloupností osmičkových číslic
Šestnáctkové (hexadecimální) – číslo 0 následované znakem x nebo X posloupností šestnáctkových číslic (0 – 9, a – f, A – F)
Celočíselné konstanty
Desítkové #define MINIMUM 8000
Osmičkové (oktalové) #define MINIMUM 017500
Šestnáctkové (hexadecimální)
#define MINIMUM 0x1f40
Celočíselné konstanty
U datového typu long znak L nebo l na konci (doporučuje se pouze velké, možná záměna s 1).
U nezáporného typu znak U nebo u na konci.
Př.:#define MINIMUM 8000LU
Reálné konstanty
2 způsoby zápisu: Přímý tvar Semilogaritmický tvar
Základní datový typ: double Přípony:
Pro float … f nebo F Pro long … l nebo L
Reálné konstanty
Přímý tvar #define MINIMUM 2.1
#define PI 3.14
Semilogaritmický tvar #define MAXIMUM 5e32
#define HODNOTA -3e32
Znakové konstanty
Jeden znak dané kódové tabulky (nejčastěji ASCII)
Znak je uzavřen mezi 2 apostrofy
ASCII tabulka
Kódování znaků ve VT American Standard Code for Information
Interchange Vychází z ní většina standardů pro
kódování textu v euro-americké zóně V základu 7-bitový (128 platných znaků).
8-bitové rozšíření pro znaky národních abeced
ASCII tabulka
tisknutelné znaky: písmena, číslice, jiné znaky (závorky,
matematické znaky (+-*/% …), interpunkční znaménka (,.:; …), speciální znaky(@$~ …))
řídící (netisknutelné) kódy: původně určeny pro řízení periferních
zařízení (např. tiskárny nebo dálnopisu).
ASCII TABULKA
Znakové konstanty
Způsoby zápisu: ‘\ddd’ , kde ddd je osmičkové číslo
odpovídající kódu znaku ‘\xHH’ nebo ‘\XHH’, kde hh je
šestnáctkové číslo odpovídající kódu znaku
‘z’, kde z je znak dané kódové tabulky ‘\e’, kde e je znak odpovídající tzv.
escape sekvenci (neboli řídící sekvence)
Znakové konstanty
Sekvence
Hodnota
Význam
\n 0x0A Nový řádek\r 0x0D Návrat na začátek řádku\f 0x0C Nová stránka\t 0x09 Tabulátor\b 0x08 Posun doleva\a 0x07 Písknutí\\ 0x5C Zpětné lomítko\’ 0x2C Apostrof\0 0x00 Nulový znak
Řetězcové konstanty
Ohraničené uvozovkami Možno použít všechny způsoby zápisu
znakových konstant Možno použít znaky národní abecedy Př.:#define JMENO “Michal“
#define HLAVNI_MESTO “Praha“
Sekvence
Hodnota
Význam
\“ Uvozovka.
Řetězcové konstanty
Zřetězování dlouhých řetězců oddělených mezerami, tabulátory nebo novými řádkami
Příklad ekvivalentních zápisů
#define MUJTEXT “Velmi dlouhý řetězec“
#define MUJTEXT “Velmi “ “dlouhý “ “řetězec“
Terminálový vstup a výstup
Výpis na terminál: Obecný zápis:
printf(řetězec, proměnná1,…,proměnnáN);
Vstup z terminálu: Obecný zápis:
scanf(řetězec, &proměnná1, …, &proměnnáN);
Terminálový vstup a výstup Řídící řetězec formátu
Uvozuje se znakem %, za kterým následují další znaky dle následující tabulky:
Znak řídícího řetězcec Znakd Číslo int, desítkové znaménkovéu Číslo int, desítkové neznaménkovéx Číslo int, šestnáctkové malými
písmenyX Číslo int, šestnáctkové velkými
písmenyo Číslo int, osmičkové
Terminálový vstup a výstup
Znak řídícího řetězce
printf scanf
ld Číslo long, desítkové znaménkovéf Číslo floatlf Číslo doubles řetězec
Terminálový vstup a výstup Příklady:
printf(“Znak %c ma ASCII kod %d (%XH)\n“,’*’, ’*’, ’*’);
printf(“Je přesně %2d:%2d\n“,hodiny, minuty);
printf(“Hodnota čísla PI je %4.2f\n“,PI);
printf(“Zadejte libovolne desetinne cislo\n“);scanf(“%f“,&x);
printf(“Zadejte 2 cela cisla\n“);scanf(“%d %d“,&a,&b);
A1PRG-s 02. Základní pojmy
Děkuji za pozornost
Ing. Michal Heczko
218/U3
Prezentace k dispozici na http://vyuka.fai.utb.cz
Top Related