Základní pojmy v jazyce C

Post on 08-Jan-2016

36 views 2 download

description

Verze 2009.02. Základní pojmy v jazyce C. 2. A1PRG - Programování - seminář Ing. Michal Heczkoheczko@fai.utb.cz. Agenda. Identifikátory Klíčová slova Komentáře Konstanty a proměnné Řídicí sekvence. Identifikátory. Jména funkcí, proměnných, konstant, ... - PowerPoint PPT Presentation

transcript

A1PRG - Programování - seminář

Ing. Michal Heczko heczko@fai.utb.cz

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

heczko@fai.utb.cz

218/U3

Prezentace k dispozici na http://vyuka.fai.utb.cz