Programování v C jazyku - SEMINÁŘ

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Vstup a výstup Ing. Lumír Návrat  katedra informatiky, A-1018 
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Programování funkcí v Excelu
Základní pojmy v jazyce C
HYPERTEXT PREPROCESSOR. JAZYK PHP. Jazyk PHP (Hypertext PreProcessor) je intepretovaný jazyk určený pro web. Je celkem jednoduchý, snadno přenositelný.
Algoritmy I Cvičení č. 1.
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Lexikální a syntaktická analýza Jakub Yaghob
8. přednáška typedef - preprocesor Studijní materiály najdete na adrese:
Datové typy 6 A1PRG - Programování – Seminář
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Sémantická analýza Jakub Yaghob
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Příklady v jazyku C – část 6
DEKLARACE PROMĚNNÝCH A KONSTANT
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Vstupy a výstupy znaků a) Terminálový vstup a výstup ( getchar(), putchar() ) Přečtěte znak pomocí systémové funkce getchar() a vypište ho pomocí putchar().
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
CSS styly Kaskádové styly (CSS – Cascading Style Sheets) jsou prostředkem, který zajišťuje jednotný vzhled publikovaných stránek. Technologii CSS podporují.
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Příklady v jazyku C – část 2
OSNOVA: a) Preprocesor b) ANSI-C knihovny c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro obor EST BPC1E.
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
OSNOVA: a) Příkazy pro větvení b) Příkazy pro cykly c) Příkazy pro řízení přenosu d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
C – switch Mgr. Lenka Švancarová. switch syntaxe switch (výraz) { case hodnota_1: příkaz(y)_ve_větvi_1; case hodnota_2: příkaz(y)_ve_větvi_2; … default:
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
P ROGRAMOVÁNÍ V JSA David Rozlílek. P ROGRAMOVÁNÍ V JSA Co to je zkratka JSA - ………….? Je tvořen z jednotlivých - s……. i…….? a k……… ? Jaký program používáme.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Příklady v jazyku C – část 2
C – procedury Mgr. Lenka Švancarová.
C – if Mgr. Lenka Švancarová. if vývojový diagram Podmínka Příkaz(y) Podmínka Příkaz(y) Úplné větveníNeúplné větvení ++--
C – cyklus do-while Mgr. Lenka Švancarová.
Pokročilé datové typy (struktury, unie, dynamické proměnné)
POSLOUPNOST test. ZKUSTE ODPOVĚDĚT Co je to komentář? Poznámky, které nám pomohou pochopit, když se k programu vrátíme po delší době, co jsme chtěli tou,
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
HYPERTEXT PREPROCESSOR. JAZYK PHP. VYUŽITÍ JAZYKA Programování dynamických internetových stránek a webových aplikací vytvoření šablony webu kniha návštěv.
Název:VY_32_INOVACE_ICT_9A_19B Škola:Základní škola Nové Město nad Metují, Školní 1000, okres Náchod Autor:Mgr. Milena Vacková Ročník:9. Tematický okruh,
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Orbis pictus 21. století Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Interkomunikační adresní systém.
HYPERTEXT PREPROCESSOR. JAZYK PHP. VYUŽITÍ JAZYKA Programování dynamických internetových stránek a webových aplikací vytvoření šablony webu kniha návštěv.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Makra v Excelu syntaxe. Zápis nahraného makra SubEnd Sub O klíčová slova Sub a End Sub – začátek a konec makra O komentáře O text za znakem ', až do konce.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Výukový materiál zpracován v rámci projektu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Programování v jazyce C++
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Oblast platnosti identifikátoru (1)
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Transkript prezentace:

Programování v C jazyku - SEMINÁŘ Ing. Michal Heczko heczko@fai.utb.cz

Preprocesor jazyka C 7 Programování v C jazyku – SEMINÁŘ Ing. Michal Heczko heczko@fai.utb.cz

Agenda Základní činnosti preprocesoru Makra bez parametrů (symbolické konstanty) Makra s parametry Vkládání souborů Oddělený překlad souborů Podmíněný překlad

Preprocesor jazyka C Zpracování programu

Základní činnost preprocesoru Zpracování zdrojového textu před použitím překladače Nekontroluje syntaktickou správnost programu Provádí pouze záměnu textu (např. identifikátorů konstant) za odpovídající číselné hodnoty (zpracování maker) Vypustí ze zdrojového textu všechny komentáře Připravuje podmíněný překlad Preprocesor

Makra bez parametrů Úvod Symbolické konstanty Příkaz #define Pravidla pro psaní konstant: Většinou se zapisují velkými písmeny Mezi jménem a hodnotou alespoň jedna mezera Za hodnotu je vhodné umístit komentář Nové konstanty mohou využívat již dříve definovaných konstant Pokud je konstanta delší než řádka, uvádíme na konci znak / Úvod

Makra bez parametrů Příklady #define PI 3.14 #define DVE_PI (2*PI) #define MOD % #define JMENO ″Michal″ #define ERROR {printf(″Chyba″);} Příklady

Makra bez parametrů Poznámky Poznámky: Za hodnotami není středník Mezi jménem konstanty a hodnotou se nepíše znak „=“ Konstanta platí od místa definice do konce souboru Poznámky

Makra bez parametrů Ukončení platnosti makra Ukončení platnosti makra – příkaz #undef Příklad: #define POCET 20 #undef POCET #define POCET 30 Ukončení platnosti makra

Makra bez parametrů Ukázka 1 #include <stdio.h> #define PI 3.14 int main() { double r = 6.5; double v = 2.1; printf(″Objem valce je %f!″,PI*r*r*v); return 0; } Ukázka 1

Makra bez parametrů Ukázka 2 #include <stdio.h> #define POSUN (′a′-′A′) #define KONEC_R ′\n′ int main() { int c; while ((c = getchar()) != KONEC_R) if (c >= ′a′ && c <= ′z′) putchar(c-POSUN); else putchar(c); } return 0; Ukázka 2

Makra s parametry Úvod Alternativa ke kratším funkcím Nevýhoda použití funkce Při použití funkce menší efektivita programu Nevýhoda použití makra Při použití makra vznikne delší (ale rychlejší) program Na rozdíl od funkcí preprocesor nahradí jméno makra v programu konkrétním textem Úvod

Makra s parametry Syntaxe Obecná syntaxe: Příklad použití: #define jmeno_makra(arg1,…,argN) hodnota_makra Příklad použití: #define je_velke(c) ((c) >= ′A′ && (c) <= ′Z′) ch = je_velke(ch) ? ch + (′a′- ′A′):ch Soubor se preprocesorem rozvine takto: ch = ((ch) >= ′A′ && (ch) <= ′Z′) ? Ch + (′a′- ′A′):ch Syntaxe

Makra s parametry Závorky Argument v definici makra je nutné uzavírat do závorek. V opačném případě velká šance vzniku chyb. Špatně: Definice: #define mocnina(x) x * x Volání: mocnina(f + g) Rozvinutí: f + g * f + g Správně: Definice: #define mocnina(x) ((x) * (x)) Rozvinutí: ((f + g) * (f + g)) Závorky

Předdefïnovaná makra Předdefinovaná makra Jazyk C obsahuje nejen řadu předdefinovaných funkcí, ale i makra. Makra pro konverzi znaků: Definovány v souboru ctype.h tolower - konverze na malá písmena toupper - konverze na velká písmena toascii - převod na ascii (pouze posledních 7b) Předdefinovaná makra

Předdefïnovaná makra Předdefinovaná makra Makra pro určení typu znaků: Definovány v souboru ctype.h isdigit - testuje, zda daný znak je číslice islower - testuje, zda je malé písmeno isupper - testuje, zda je velké písmeno … - … Předdefinovaná makra

Vkládání souborů Úvod Příkaz include obsah zdrojového souboru soubor bude vložen do místa, kde byla volána direktiva include Úvod

Vkládání souborů Tvary příkazu include Příkaz #include ″konstanty.h″ Hledá soubor konstanty.h ve složce, kde je uložen volající soubor. Pokud není nalezen, pokračuje se v hledání v dalších složkách dle aktuálního nastavení Tvary příkazu include

Vkládání souborů Tvary příkazu include Příkaz #include <stdio.h> Hledá soubor stdio.h v systémové složce. Použití pro standardní hlavičkové soubory. Tvary příkazu include

Vkládání souborů Standardní hlavičkové soubory: Obsahují definice funkcí, konstant a maker ze standardní knihovny Definovány ANSI normou Použití hlavičkových souborů v souladu s ANSI normou by mělo zajistit 100% přenositelnost mezi nejrůznějšími PC a OS Standardní hlavičkové soubory 1

Vkládání souborů Standardní hlavičkové soubory: Neobsahují celé konstrukce funkcí, ale pouze jejich hlavičky (tzv. funkční prototypy) – popisy jaké má funkce parametry a jaký datový typ vrací Většinou uloženy ve složce \include Např. v MS Visual C++ 2008 EXPRESS: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ Standardní hlavičkové soubory 2

Oddělený překlad souborů Vkládání souborů Oddělený překlad Jak se liší od vkládání souborů?

Oddělený překlad souborů Každý soubor se překládá zvlášť – vzniká více .obj souborů Využití u větších projektů Při opakovaném překladu je přeložen pouze ten soubor, který byl změněn Oddělený překlad souborů

Podmíněný překlad Testuje hodnotu logického výrazu Syntaxe: #if konstantní_výraz část_1 #else část_2 #endif Řízení hodnotou konst. výrazu

Podmíněný překlad Příklad 1: #define LADENI 1 #if LADENI printf(″Hodnota: %d″,i); #endif Řízení hodnotou konst. výrazu

Podmíněný překlad Příklad 2: #define WINDOWS 1 #if WINDOWS #define CESTA ″C:\\program\\data″ #else #define CESTA ″/program/data″ #endif Řízení hodnotou konst. výrazu

Podmíněný překlad Testuje, zda je dané makro definováno Syntaxe: #ifdef konstantní_výraz část_1 #else část_2 #endif Řízení definicí makra

Podmíněný překlad Příklad: #define WINDOWS 0 #ifdef WINDOWS #define CESTA ″C:\\program\\data″ #else #define CESTA ″/program/data″ #endif Řízení definicí makra

Podmíněný překlad Testuje, zda dané makro není definováno Syntaxe: #ifndef konstantní_výraz část_1 #else část_2 #endif Řízení definicí makra 2

Podmíněný překlad Příklad: #ifndef DEFINICE #define DEFINICE 1 #define PI 3.14 #define CESTA ″C:\\program\\data″ #endif Řízení definicí makra 2

Podmíněný překlad Operátor defined Pokud chceme kontrolovat více definic zároveň – umožňuje spojování logickými operátory #if defined(KONST_1) && defined(KONST_2) #define KONST_3 3 #endif Operátor defined

Podmíněný překlad #elif #error Stejný význam jako u else-if v mnohonásobném větvení #error Výpis textu preprocesorem na standardní výstup chybových hlášení #elif a #error

Podmíněný překlad Příklad #if LADENI==1 printf("Provedla se 1.cast\n"); #elif LADENI==2 printf("Provedla se 2.cast\n"); #elif LADENI==3 printf("Provedla se 3.cast\n"); #else #error Neplatna hodnota konstanty LADENI! printf("Nebyla provedena zadna cast\n"); #endif Příklad

A1PCJ-s 07. Preprocesor Děkuji za pozornost Ing. Michal Heczko heczko@fai.utb.cz 218/U3 Prezentace k dispozici na http://vyuka.qsh.eu Uživatelské jméno: student Heslo: utb