+ZPE Ing.Jan MAYER (Základy programování pro elektrotechniku) E-mail: jmayer@kte.zcu.cz http://home.zcu.cz/~jmayer/ZPE2012 ICQ: 330-987-582
Místnosti pro cvičení Sudé +liché kalendářní týdny: EU505
1. CELKOVÉ INFORMACE Práce na cvičení - prvních 10 lidí kladné body za správně vypracované příklady (otázky) Semestrální práce – mezní termín odevzdání je poslední předzápočtový týden. Spočívá v napsání programu, odladění a ověření správné funkce. Zdrojový kód (text) programu bude umístěn na Portál ( s min. týdenním předstihem, tj. do 11 výukového týdnu !!! ). Zápočtový test – bude cca v 11 výukovém týdnu
2. PRAVIDLA pro zápočet Zápočet : Body na cvičeních 10 % 1. test z jazyku C 5 % Semestrální práce 10 % ( za opakované odevzdání -2 % ) ( za 1 den zpoždění -0,5% ) Zápočtová písemka z jazyku C 25 % ( za každý nový pokus -2 % ) Nutno mít celkem za cvičení : > 25 % (max.50 %)
3. PRAVIDLA pro zkoušku Zkouška : zkouší vás ten,komu patříte na přednášky (tj. buď ing. Basl nebo ing. Kropík) Písemný test (a b c d) + příklad = 50 % nutno mít >25 % bodů z písemného testu pro postoupení k ústní části Výsledná známka=body za zápočet + zkoušku výborně 85 % – 100 % velmi dobře 69 % – 84 % dobře 52 % – 68 % nevyhověl < 52
4. Literatura Pavel Herout: Brian W.Kernighan , Dennis M.Ritchie: Učebnice jazyka C (2 díly) Brian W.Kernighan , Dennis M.Ritchie: Programovací jazyk C (vydání 1988) Programovací jazyk C verze ANSIC99 (vydání 2009) Jiří Prokop: Algoritmy v jazyku C a C++ Robert Sedgewick: Algoritmy v C
C (nauč se sám) ( nakladatelství SOFTPRESS Herbert Schildt: C (nauč se sám) ( nakladatelství SOFTPRESS www.softpress.cz ) internetové zdroje např. http://www.fi.muni.cz/usr/jkucera/pb071/uvodc.htm http://docs.linux.cz/programming/c/c_saloun/ přednášky cvičení
5. Základní pojmy Hardware počítače - procesor,operační paměť,vstupně-výstupní zařízení Software Operační systém (co to je ?) „Je to program.“ Pracuje v operační paměti, řídí zdroje počítače. Počet zdrojů je vždy omezený a musí se na ně čekat Systém čekání na obsluhu požadavků Pozor na stav vzájemného zablokování: „deadlock“ Základní datová struktura: fronta (FIFO)
- Je to jednoznačný předpis (algoritmus) pro zpracování Program (co to je ?) - Je to jednoznačný předpis (algoritmus) pro zpracování dat na počítači Programovací jazyk - prostředek, který slouží na přepis algoritmu do počítače Software Operační systém (co to je ?) „Je to program. “(zpravidla napsaný v Assembleru nebo v jazyce C) Pracuje v operační paměti, řídí zdroje počítače. Počet zdrojů je vždy omezený a musí se na ně čekat Systém čekání na obsluhu požadavků Může nastat stav vzájemného zablokování „deadlock“ Základní datová struktura: fronta - queue (FIFO: First in,First out)
Programovací jazyk (co to je ?) - Je to jednoznačný předpis (algoritmus) pro zprac.dat na počítači - základní stavbou připomíná hovorový jazyk , ale je podstatně jednodušší konstrukce (obsahuje mnohem méně pravidel) - slouží na jednoznačný zápis způsobu nakládání s datovými objekty – je to přepis algoritmu) Co je překladač programovacího jazyku ? „Je to program.“ Zpracovává posloupnost znaků (~ slov) na vstupu a generuje instrukční kód na výstupu 2 základní typy překladačů: Překladač generující přímo strojový kód počítače (~kompilátor) Interpretační překladač (~interpret) generující mezikód Základní datovou strukturou pro práci překladače je zásobník – stack ( LIFO: last in , first out)
3 základní fáze překladu programovacího jazyku Lexikální analýza: Zpracovává posloupnost znaků na vstupu a dělí je na jednotlivá slova Syntaktická analýza: Rozpoznává správnost jazykových konstrukcí podle gramatiky toho kterého jazyka (gramatika je popsána syntaktickými pravidly) Sémantická analýza: Přizazuje jednotlivým konstrukcím jejich význam (sémantiku)
6. Ukázky definice progr.jazyka Definice některých prvků progr. jazyka - BNF – Backus-Naurova normální forma. Popis prvků gramatiky. Složitější prvky jazyku popisujeme pomocí už dříve definovaných prvků jednodušších. - BNF se často využívá k zápisu gramatik počítačových programovacích jazyků, sad instrukcí a komunikačních protokolů, ale také jako notace zastupující části gramatik skutečných jazyků. Řada učebnic o teorii programovacích jazyků nebo sémantiky popisuje programovací jazyky pomocí BNF. http://cs.wikipedia.org/wiki/Backus-Naurova_forma
Ukázka definice prvků jazyku pomocí BNF Číslice: Pozn.: znak “ | ” znamená “nebo“ <číslice> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Písmena: <písmeno> ::= a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z| A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z Logická hodnota: <logická hodnota> ::= true | false Identifikátor: <identifikátor> ::= <písmeno> | <identifikátor> <písmeno>| <identifikátor> <číslice> Číslo: <celé číslo bez znaménka>::= <číslice> | <celé číslo bez znaménka> <číslice> <číslo typu integer>::= <celé číslo bez znaménka> | + <celé číslo bez znaménka> | -<celé číslo bez znaménka> <desetinná část>::= . <celé číslo bez znaménka> <exponentová část>::= e < číslo typu integer > | E < číslo typu integer > <desetinné číslo>::= <celé číslo bez znaménka> | <desetinná část>| <celé číslo bez znaménka> <desetinná část>|