Lexikální atomy jazyka C

Slides:



Advertisements
Podobné prezentace
Výukový materiál zpracovaný v rámci projektu EU peníze školám Registrační číslo projektu:CZ.1.07/1.4.00/ Šablona:III/2 Inovace a zkvalitnění výuky.
Advertisements

Provozováno Výzkumným ústavem pedagogickým v Praze.
Provozováno Výzkumným ústavem pedagogickým v Praze.
Úvod do programování 2. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
Mocniny, odmocniny, úpravy algebraických výrazů
Číselné množiny - přehled
MATEMATIKA Lineární nerovnice o jedné neznámé a jejich soustavy.
MATEMATIKA Čísla celá základní pojmy.
Celá čísla VY_32_INOVACE_2.14.M.7 Ročník: 7. Vzdělávací oblast:
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
Řešení nerovnic Lineární nerovnice
IDENTIFIKÁTOR MATERIÁLU: EU
Výukový materiál zpracovaný v rámci projektu EU peníze školám
Výukový materiál zpracován v rámci projektu
Přetěžování Datové typy.
Název projektu: Moderní výuka s využitím ICT
Základní logické funkce
Programování v jazyce C++
Lineární rovnice Ekvivalentní úpravy
Struktury.
Název projektu: Moderní výuka s využitím ICT
Název projektu: Moderní výuka s využitím ICT
Překladače Lexikální analýza
Pseudonáhodná čísla (1)
Název projektu: Moderní výuka s využitím ICT
Výukový materiál zpracován v rámci projektu
Databáze MS ACCESS 2010.
Uložení dat v PC -Binární (dvojkový) systém-
Programovací jazyky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Financováno z ESF a státního rozpočtu ČR.
Překladače 4. Lexikální analýza
Datové typy v jazyce C Datové typy void skalární aritmetické
DIGITÁLNÍ UČEBNÍ MATERIÁL
Inf Vývojový diagram.
Příkazy IF a SELECT CASE
C# konzole – Program pro výpočet výrazu
4.1 – 4.3 Lineární nerovnice i jednoduchý podílový tvar
Výukový materiál zpracován v rámci projektu
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
PŘÍKAZ CYKLU S ŘÍDÍCÍ PROMĚNNOU for.
Výukový materiál zpracován v rámci projektu
Kvadratické nerovnice
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Řešení nerovnic Lineární nerovnice
Stavební fakulta ČVUT, B407
CYKLUS S PODMÍNKOU NA KONCI (s výstupní podmínkou)
BIBS Informatika pro ekonomy přednáška 2
Informatika pro ekonomy přednáška 8
Výukový materiál zpracován v rámci projektu
Zlomky a desetinná čísla
Rovnice základní pojmy.
REÁLNÁ ČÍSLA (mocniny a odmocniny) mocniny a odmocniny.
Základy algoritmizace 3/13 příkaz cyklus, proměnná typu pole
Proměnné (1) Proměnná: Definice proměnných:
Lomené výrazy (2) Podmínky řešitelnost
Datové typy v jazyce C Datové typy void skalární aritmetické
Název projektu: Moderní výuka s využitím ICT
Průvodní list Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT   Vzdělávací materiál: Prezentace – zápis pro žáky Určen pro: 2. ročník oboru.
Obchodní akademie, Střední odborná škola a Jazyková škola s právem státní jazykové zkoušky, Hradec Králové Autor: Mgr. Lenka Marková Název materiálu:
ČÍSELNÉ MNOŽINY Jitka Mudruňková 2014.
Lineární funkce a její vlastnosti
20 MNOHOČLENY.
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Algoritmizace a datové struktury (14ASD)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Union neboli sjednocení Bitová pole
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
MATEMATIKA Lineární rovnice o jedné neznámé.
Transkript prezentace:

Lexikální atomy jazyka C Znaky, které tvoří program v jazyce C, se spo-jují do tzv. lexikálních atomů Existuje 5 tříd atomů: klíčové (rezervované) slovo identifikátor konstanta (celočíselná, reálná, znaková, řetězcová) operátor oddělovač 10/06/2018

Klíčová (rezervovaná) slova auto enum restrict unsigned break extern return void case float short volatile char for signed while const goto sizeof _Bool continue if static _Complex default inline struct _Imaginary do int switch double long typedef else register union 10/06/2018

Identifikátory (1) Identifikátor může mít libovolnou délku, ale různé implementace rozlišují jen pouze prvních n znaků (C99 – 63 znaků) Písmeno Podtržítko Písmeno Číslice Podtržítko 10/06/2018

Identifikátory (2) Podtržítko: _ Písmeno: A Z a z 10/06/2018

Číslice Číslice:  Nenulová číslice: Oktálová číslice: 9 1 9 Oktálová číslice: 7 Hexadecimální číslice: Číslice A F a f 10/06/2018

Čísla (1) Celá: dekadická: oktálová: Nenulová číslice Číslice Přípona Oktálová číslice Přípona 10/06/2018

Čísla (2) hexadecimální: přípona: poznámka: 0x Hex. číslice Přípona 0X u u l l L L U U L L poznámka: l, L – označuje long ll, LL – označuje long long u, U – označuje unsigned 10/06/2018

Čísla (3) Reálná (vždy v desítkové soustavě): Exp: - Reálná přípona Číslice . Číslice Exp Exp: E + Číslice e - 10/06/2018

Čísla (4) Reálná přípona: Poznámka: f, F: označuje float l, L: označuje long double jestliže není použita přípona, pak se jedná o typ double 10/06/2018

Čísla (5) Hodnota celočíselné i reálné konstanty je vždy nezáporná Pro vyjádření záporných konstant je možné použít znaménko - (mínus) Znaménko - je považováno za unární ope-rátor, který se aplikuje na konstantu, tj. není součástí konstanty 10/06/2018

Přiřazovací příkaz (1) Obecný tvar: proměnná = výraz; Funkce: Např.: vyhodnotí výraz na pravé straně a výslednou hodnotu vloží do proměnné na levé straně pří-kazu Např.: i = 10; j = 2*i+15; k = j; i = i+2; k = k+1; Výraz na pravé straně přiřazovacího příkazu musí být typově kompatibilní s proměnnou uvedenou na jeho levé straně 10/06/2018

! ~ ++ -- + - * & (typ) sizeof Přiřazovací příkaz (2) Při vyhodnocování výrazu je respektována následující priorita operátorů: Operátory Asociativita Skupina ( ) [ ] -> . Zleva doprava Primární ! ~ ++ -- + - * & (typ) sizeof Zprava doleva Unární * / % Zleva doprava Multiplikativní + - Zleva doprava Aditivní << >> Zleva doprava Posuny < <= > >= Zleva doprava Relační == != Zleva doprava Relační 10/06/2018

%= &= ^= |= <<= >>= Přiřazovací příkaz (3) Operátory Asociativita Skupina & Zleva doprava Bitový součin ^ Zleva doprava Exkl. bit. součet | Zleva doprava Bitový součet && Zleva doprava Logický součin || Zleva doprava Logický součet ?: Zprava doleva Ternární podm. = += -= *= /= %= &= ^= |= <<= >>= Zprava doleva Přiřazovací , Zleva doprava Operátor čárka 10/06/2018

Přiřazovací příkaz (4) Zápisy, v nichž se proměnná na levé straně ihned opakuje na pravé straně, lze zapsat v kompaktnější formě: proměnná = proměnná op (výraz); lze zapsat jako: proměnná op= výraz; Např.: i = i+2; lze zapsat jako i += 2; j = j-5; lze zapsat jako j -= 5; k = k*4; lze zapsat jako k *= 4; l = l/3; lze zapsat jako l /= 3; 10/06/2018

Přiřazovací příkaz (5) Poznámka: operátory op= se nazývají přiřazovací operátory zápis x *= y+1; vyjadřuje x = x*(y+1); nikoliv x = x*y+1; V případě zvyšování (snižování) hodnoty proměnné o 1 lze použít operátor inkremen-tace (dekrementace) Např.: i = i+1; lze zapsat jako i++; nebo ++i; j = j-1; lze zapsat jako j--; nebo --j; 10/06/2018

Přiřazovací příkaz (6) Poznámka: zápis i++; (j--;) provede zvýšení (snížení) hodnoty proměnné i (j) o jedničku až po jejím použití zápis ++i; (--j;) provede zvýšení (snížení) hodnoty proměnné i (j) o jedničku před jejím použitím příklad: n = 5; x = n++; /* x = 5 a n = 6 */ n = 5; x = ++n; /* n = 6 a x = 6 */ 10/06/2018

Složený příkaz (1) Označovaný také jako blok Obecný tvar: { seznam deklarací a definic p1 /* posloupnost */ p2 /* příkazů */ pn } Poznámka: složený příkaz není ukončen středníkem 10/06/2018

Složený příkaz (2) Funkce: posloupnost deklarací, definic a příkazů uzavře-ných mezi symboly { a } sdružuje příkazy p1 až pn do jednoho složeného příkazu (bloku) deklarované a definované symboly jsou dostup-né pouze v daném bloku a všech blocích do něj vnořených používán v okamžiku, kdy je místo jednoho pří-kazu nutné provést příkazů více, např. u podmí-něného příkazu nebo u příkazů cyklu 10/06/2018

Relační a logické operátory (1) Relační operátory: slouží k porovnávání svých operandů tyto operátory testují vztah: < je menší než <= je menší nebo roven > je větší než >= je větší nebo roven == je roven != je různý od poznámka: operátory == a != mají nižší prioritu než operátory <, <=, > a >= 10/06/2018

Relační a logické operátory (2) umožňují provádět logické operace: && logický součin, konjunkce || logický součet, disjunkce Pro vyjádření logické negace lze použít operátor ! Relační a logické operátory lze využít pro zápis výrazů, které reprezentují podmínky pro podmíněný příkaz a příkazy cyklu Výraz je: pravdivý: jestliže má nenulovou hodnotu nepravdivý: jestliže má hodnotu rovnou nule 10/06/2018

Podmíněný příkaz (1) Používá se v případě, kdy je zapotřebí vyjá-dřit rozhodování Zvolí k provedení jeden (nebo žádný) ze svých dílčích příkazů Tato volba je dána pravdivostní hodnotou výrazu (reprezentujícího podmínku) Jazyk C rozlišuje dva typy podmíněného příkazu: 10/06/2018

Podmíněný příkaz (2) neúplný: úplný: obecný tvar: if (výraz) příkaz funkce: vyhodnotí se výraz za klíčovým slovem if je-li výraz pravdivý, provede se příkaz, v opačném případě program pokračuje dalším příkazem úplný: obecný tvar: if (výraz) příkaz1 else příkaz2 je-li výraz pravdivý, provede se příkaz1, v opačném případě se provede příkaz2 10/06/2018

Podmíněný příkaz (3) Funkce podmíněných příkazů znázorněná graficky pomocí vývojových diagramů: výraz výraz příkaz příkaz1 příkaz2 10/06/2018