PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 11
|
|
- Bedřich Bartoš
- před 7 lety
- Počet zobrazení:
Transkript
1 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 11 Programování mikropočítačů v jazyce C Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl za finanční podpory Evropského sociálního fondu (ESF) a rozpočtu České republiky v rámci řešení projektu: MODERNIZACE VÝUKOVÝCH MATERIÁLŮ A DIDAKTICKÝCH METOD
2 2 Cvičení 11 Programování mikropočítačů v jazyce C STRUČNÝ OBSAH CVIČENÍ: První program v jazyce C v prostředí CodeWarrior aritmetické operace Příklad na podmínky a cyklus Příklad s využitím vlastní funkce Úkoly k procvičení VSTUPNÍ ZNALOSTI: Toto cvičení předpokládá znalosti základů programování v jazyce C. CÍL: Na tomto cvičení se seznámíme s využitím jazyka C pro programování mikropočítačů. Jazyk C je nejrozšířenějším programovacím jazykem pro tvorbu aplikací pro mikropočítače, a proto je jeho znalost jedním z hlavních předpokladů úspěšného uplatnění v praxi. Cvičení se vztahuje k těmto otázkám Základní pojmy mikroprocesorové techniky, mikropočítač, mikroprocesor, sběrnice, periferní zařízení, registry,
3 3 Řešené příklady Nyní si ukážeme jak vytvořit program v jazyce C v prostředí CodeWarrior. CodeWarrior umožňuje jak programování v assembleru (což jsme používali dosud), tak i jazyce C. Výhodou je, že i při použití jazyka C budeme stále pracovat ve známém vývojovém prostředí V ukázkových programech vyřešíme stejná zadání jako v našich prvních programech v assembleru. Příklad 1 Základní aritmetické operace v jazyku C Úkol 1 Proveďte vyhodnocení výrazu ((c1+c2) (c3+c4))*c5. Řešení: Zatímco v assembleru zabralo vytvoření takovéhoto programu mnoho řádků kódu, v jazyce C prakticky jen přepíšeme zadaný výraz a překladač sám zajistí jeho převod do řeči procesoru, tj. jeho rozložení na instrukce procesoru. Nejprve samozřejmě definujeme proměnné, do kterých budou uložena zpracovávaná čísla a výsledek. Použijeme datový typ int jazyka C tj. celé číslo se znaménkem. Definice proměnných v jazyku C bude vypadat následovně: int c1, c2, c3, c4, c5, vysledek; Samotný kód programu, který vyhodnocuje zadaný výraz je velmi jednoduchý: vysledek = ((c1+c2) (c3+c4))*c5; Překlad programu Spusťte CodeWarrior a vytvořte nový projekt. V prvním okně průvodce novým projektem zaškrtněte políčko C a odškrtněte políčka ASM a C++, viz obr. 1. Tím zvolíte jako programovací jazyk pro tento projekt jazyk C.
4 4 Obr. 1 Vytváření nového projektu v jazyku C v prostředí CodeWarrior Další kroky jsou už stejné jako při vytváření projektu v assembleru. Tedy, vyberte typ mikropočítače (GB60) a jako připojení (connection) zvolte simulátor. Po dokončení průvodce se opět vygeneruje kostra programu, viz. Obr. 2. Podívejme se na vygenerovaný kód. Obr. 2 Kostra programu v C vygenerovaná CodeWarriorem
5 5 Základní struktura programu na obrázku 2 by vám měla být známá. Je totiž stejná jako u programu v C pro osobní počítač. Kód začíná direktivami #include, která vkládají do našeho zdrojového kódu definice základních portů a registrů zvoleného mikropočítače. Deklarace funkce void MCU_init(void) pro nás není důležitá, protože ji nebudeme využívat. Důležitá je ovšem funkce main, která, jak víme, představuje základní výkonnou jednotku programu v jazyku C. Program začíná vstupem do této funkce a opuštěním této funkce celý program končí. Vidíme, že průvodce už do funkce main vložil makro EnableInterupts, které povoluje přerušení. Toto makro je ekvivalentní provedení instrukce SEI v assembleru. Na konec funkce main pak průvodce vložil cyklus for, který v nekonečné smyčce provádí resetování watchdogu pomocí makra RESET_WATCHDOG();. Takto vytvořený program by tedy nic užitečného nedělal. Po spuštění by pouze v nekonečné smyčce resetoval obvod watchdog. Definice proměnných zapíšeme na začátek programu, ještě před funkci main. Náš kód pak zapíšeme dovnitř funkce main, za makro EnableInterups, ale před cyklus for. Nyní tedy dopište do kostry programu vlastní kód dle obrázku 3. Obr. 3 Zdrojový kód programu pro úkol 1
6 6 Námi vytvořený kód se skládá ze dvou bloků, které bychom mohli označit jako definici proměnných a samotný kód programu. Oproti zadání je v kódu navíc ukázáno i dělení celých čísel a získání zbytku po celočíselném dělení. Hned za direktivy #include na začátku programu jsme dopsali definici potřebných proměnných, tj. c1 až c5, vysledek a zbytek. Protože proměnné nejsou definovány uvnitř žádné funkce, budou globální, stejně jako bychom je v assembleru vytvořili direktivou RMB nebo DS.B. Náš kód je vložen do těla funkce main, za komentář insert your code here (sem vložte svůj kód). Nejprve do proměnných c1 až c5 vkládáme nějaké konkrétní hodnoty, abychom mohli otestovat funkčnost programu. Se zadanými čísly by výsledek měl vyjít 14. Samotný kód vyhodnocení výrazu zabírá pouhý jeden řádek a jedná se vlastně jen o přepis zadání do jazyka C, což je velmi podobné jako běžný matematický zápis. Na dalším řádku pak vidíme, že dělení se v C zapíše pomocí lomítka a zbytek po celočíselném dělení získáme pomocí operátoru modulo (%). S čísly dle obrázku dělíme 5/2 a tedy výsledek bude 2 a zbytek 1. Testování programu Program přeložíme stejným způsobem jako dříve u programů v assembleru, tedy např. tlačítkem Build na panelu nástrojů. Po překladu a odstranění případných chyb program spusťte v debuggeru. Krokujte program a všimněte si následujícího: o Po prvním kroku, před vykonáním přiřazení c1 = 5; je ve všech proměnných nula, viz okno Data. Toto je výchozí hodnota pro globální proměnné, kterou jim nastavil překladač. o Po přiřazení do proměnných c1 až c5 by v nich měla být zadaná čísla. o Po vykonání řádku vysledek = bude v proměnné vysledek číslo 14. o Po provedení dělení bude v proměnné vysledek hodnota 2 o Po provedení modula: zbytek = c1 % c2 bude v proměnné zbytek číslo 1, tedy zbytek po celočíselném dělení 5 / 2. o Program se pak neustále točí v cyklu for. Můžete si také prohlédnout kód našeho programu v assembleru, tak jak jej přeložil překladač jazyka C a to v okně Assembly vpravo nahoře. Např. příkaz c1 = 5; je přeložen jako: LDX #5
7 7 CLRH STHX 0x0100 Se znalostmi assembleru získanými dříve z toho dokážeme odvodit, že překladač C rezervuje pro proměnnou typu int dva bajty paměti a přiřazení provádí přes registry H:X. Proto nahrává číslo 5 do registru X a registr H nuluje. Oba registry pak ukládá do paměti na adresu 100 hexadecimálně. Na této adrese se tedy bude nacházet proměnná c1. V dalším příkladu se podíváme na zápis podmínek a cyklů v C. Úkol 2 podmínky, cykly a pole Porovnejte čísla c1 a c2 a větší z nich uložte do proměnné vysledek. Dále definujte pole M o pěti prvcích a toto pole vynulujte. Řešení Podívejme se na výpis programu na obrázku 4. Proměnné c1 a c2 tentokrát definujeme uvnitř funkce main a zároveň jim přiřazujeme hodnoty 5 a 3. Dále definujeme proměnné vetsi, i a M. M je přitom pole o pěti prvcích. První část kódu porovnává čísla c1 a c2 a pokud je c1 větší než c2, ukládá do proměnné vetsi c1 (c1 = vetsi;), v opačném případě (else) ukládá do proměnné vetsi c2. Zápis je vám jistě srozumitelný, jedná se o podmínku if (podmínka) vyraz else vyraz. Druhá část programu vyplní pole M nulami. K tomu potřebujeme cyklus. Jedním z cyklů v jazyce C je for, který je použit v naší ukázce. Zápis cyklu for je obecně: for ( inicializační příkaz; podmínka trvání cyklu; příkaz prováděný na konci cyklu ) { } tělo cyklu V našem příkladě se nejprve inicializuje proměnná i (počitadlo cyklu) na nulu. Podmínka běhu cyklu je i < 5, takže cyklus se zopakuje právě 5-krát (pro i =0, 1, 2, 3 a 4). Uvnitř složených závorek (v těle cyklu) se provádí příkaz M[i] = 0; Ten do i-tého prvku pole M přiřazuje nulu.
8 8 Obr. 4 Zdrojový kód programu dle zadání 2 Překlad a ladění programu Vytvořte nový projekt stejným způsobem jako u předchozího úkolu. Do kostry programu pak dopište zdrojový kód dle obr. 4. Po překladu a odstranění případných chyb program spusťte v simulátoru. S čísly podle ukázkového kódu bude splněna podmínka if (c1 je větší než c2) a proto se provede příkaz vetsi = c1 a větev else se přeskočí. Př krokování pole sledujte jak se jednotlivé prvky pole M plní nulami. Pokud pole již obsahuje nuly, upravte program tak, aby místo nuly přiřazoval jiné číslo, např. 3. Úkol 3 funkce Napište program, který spočítá, kolik z čísel c1 a c2 je sudých a výsledek uloží do proměnné nsude. Pro určení, zda je číslo sudé napište funkci, která jako vstupní parametr dostane číslo, které má otestovat a vrátí 1 jestliže je sudé a 0 jestliže není. Řešení Podobný příklad jsme již řešili v assembleru. Pro určení, zda je číslo sudé jsme použili dělení daného čísla dvěmi. Pak jestliže je zbytek roven nule, číslo je sudé. Zápis tohoto algoritmu v jazyku C bude mnohem jednodušší než v assembleru. Podívejte se na obr. 5 na výpis
9 9 zdrojového kódu. V zeleném rámečku v pravé části obrázku je kód funkce (podprogramu) pro určení zda je předané číslo sudé. Funkce se jmenuje JeSude. Levá část obrázku obsahuje kód hlavního programu, tedy funkce main. Šedě je zde uveden kód který vygeneroval průvodce novou aplikací. Podívejme se nejprve na kód hlavního programu. Uvnitř funkce main jsou definovány proměnné c1, c2 a nsude. C1 a c2 jsou přímo inicializovány na určité hodnoty. nsude bude po skončení programu obsahovat počet sudých čísel v těchto dvou proměnných, což může být buď 0 nebo 1 nebo 2. S konkrétními čísly dle uvedeného kódu bude v proměnné nsude číslo 1, protože proměnná c2 obsahuje sudé číslo, kdežto c1 obsahuje číslo liché. Vlastní kód začíná přiřazením nuly do proměnné nsude. Mohli bychom to samozřejmě udělat už v definici proměnné jako je tomu u c1 a c2. Zde se jedná jen o ukázku různých možností pro dosažení stejného cíle. Dále je zapsána podmínka if. Výraz v závorce je poněkud složitější než u předchozího příkladu. Provádí se zde volání funkce JeSude s číslem c1 jako parametrem. Výsledek vrácený funkcí JeSude() je pak porovnán s číslem 1. Podle zadání má funkce JeSude vrátit 1 jestliže je předané číslo (její parametr) sudé. Je proto celkem logické, že jestliže číslo vrácené funkcí JeSude() bude rovno jedné a tudíž podmínka if bude splněna, zvětšíme hodnotu v proměnné nsude o 1 (nsude = nsude + 1). Jestliže funkce JeSude nevrátí jedničku, podmínka splněna nebude a inkrementace proměnné nsude se neprovede. Druhá podmínka if testuje sudost proměnné c2. Je ale zapsána úspornějším způsobem bez operátoru porovnání. Využívá toho, že v jazyce C se podmínka vyhodnotí jako nesplněná (nepravda), jestliže je výsledkem výrazu 0 a jako splněná, pokud je výsledek nenulový. Jestliže c2 bude sudé číslo, vrátí funkce JeSude jedničku, což bude vyhodnoceno jako splněná podmínka (nenulový výsledek) a provede se inkrementace proměnné nsude. Jestliže c2 nebude sudé a funkce JeSude tudíž vrátí nulu, bude to vyhodnoceno jako nesplněná podmínka. Inkrementace proměnné je u druhé podmínky také zapsána úsporným způsobem: nsude++, což je ekvivalentní zápisu nsude = nsude + 1;.
10 10 Obr. 5 Zdrojový kód programu na počítání sudých čísel Kód funkce JeSude je uveden v zeleném rámečku na obr. 5. První řádek kódu: int JeSude(int cislo) říká, že funkce JeSude vrací celé číslo (int) a jako vstupní parametr má jedno celé číslo (int cislo). Podle zadání má funkce otestovat předaný parametr a v případě, že je to sudé číslo, vrátit hodnotu 1, jinak vrátit hodnotu 0. Uvnitř funkce je nejprve definována proměnná int zbytek. Na dalším řádku je do ní uložen zbytek po celočíselném dělení vstupního parametru cislo dvěmi. K tomu slouží operátor modulo (%), se kterým už jsme se setkali v prvním programu. Podmínka if ( zbytek == 0) je pak splněna, jestliže cislo bylo dělitelné 2 bez zbytku. Což znamená, že je sudé. Proto jestliže je podmínka splněna, funkce končí příkazem return 1, čímž vrací volajícímu hodnotu 1. (volajícím je zde funkce main). Pokud podmínka není splněna, provede se větev else, což znamená, že funkce JeSude skončí příkazem return 0, tedy vrátí volajícímu nulu.
11 11 Testování programu Vytvořte nový projekt v jazyku C, opět nastavený pro spuštění v simulátoru. Přepište kód z výpisu o vašeho programu. Kód funkce JeSude() napište za funkci main(), tj. za uzavírací závorku ( } ) funkce main, viz šipka na obrázku. Po překladu a odstranění případných chyb spusťte program v simulátoru a zkuste jej odkrokovat. Vyzkoušejte příkaz Step into, který bude krokovat dovnitř funkce JeSude() i příkaz Step Over, který funkci JeSude provede v jediném kroku. Zkuste změnit hodnoty v proměnných c1 a c2 tak, aby výsledkem byla 0 sudých čísel a 2 sudá čísla. Změnu je možno provést přímo v simulátoru poklepáním na proměnnou v okně Data stejně jako u programu v assembleru. Příklady k procvičení 1. Vytvořte program, který vyhledá v poli pěti čísel minimální a maximální hodnotu a uloží je do proměnných min a max. Pole naplňte libovolnými hodnotami podle uvážení. 2. Vytvořte program, který bude pomocí funkce faktor počítat faktoriál z čísel uložených v poli z předchozího příkladu. Faktoriály uloží do nového pole f_pole. Vzhledem k omezenému rozsahu celočíselné proměnné int (2 bajty tj. max 65535) nepoužívejte pro výpočet faktoriálu čísla větší než 8. Doplňující zdroje [1] Freescale: Firemní dokumentace pro mikropočítače HCS08, dostupné online: EDD5
PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2 Větvení programu, pole a cyklus v jazyce symbolických adres Jan Dolinay Petr Dostálek Zlín 2013 Tento
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 3
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 3 Podprogramy a práce se zásobníkem Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 Využití zásobníku pro předání parametrů podprogramům a lokální proměnné Jan Dolinay Petr Dostálek Zlín
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7 Využití knihoven podprogramů, displej Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 8
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 8 Využití sériové komunikace Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl za finanční
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 1
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 1 První program v jazyce symbolických adres Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
Více1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
VíceProgramování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole
Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné
Více1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
VíceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Více5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
Vícefor (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
VícePokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6 Práce s analogově digitálním převodníkem Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál
VíceOperační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
VíceVýrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
VíceAssembler - 5.část. poslední změna této stránky: Zpět
1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají
VíceProgramování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
Více6 Příkazy řízení toku
6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní
VíceČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
VícePříkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Více1. Téma 03 - Rozhodování
1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice
VíceMIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,
VíceSprávné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
Více10 Algoritmizace Příklad 2 Word 2007/ VBA
TÉMA: Zápis algoritmu, cyklus se známým počtem opakování Prostředí aplikace Wordu je možné doplnit v rámci využití maker o automatizaci složitějších posloupností příkazů. Vedle záznamu makra je možno makra
VícePole a Funkce. Úvod do programování 1 Tomáš Kühr
Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně
VíceAlgoritmy I. Cvičení č. 2, 3 ALGI 2018/19
Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář
VíceVISUAL BASIC. Přehled témat
VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat
VíceÚvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
VíceOperační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
VíceŘídicí struktury. alg3 1
Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení
VíceZáklady algoritmizace a programování
Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní
VíceObsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
VíceUkazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s
VíceObsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
VícePaměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceJako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.
Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VíceGEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 5
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 5 Praktické zvládnutí software Geomedia Pavel Vařacha a kol. Zlín 2013 Tento studijní materiál vznikl
VíceC# konzole Podíl dvou čísel, podmínka IF
C# konzole Podíl dvou čísel, podmínka IF Tematická oblast Datum vytvoření 2013 Ročník 3 Stručný obsah Způsob využití Autor Kód Internetové technologie, programování Výpočet podílu v konzolové aplikaci
VícePokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce
VícePascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
Více8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy
VíceAlgoritmy a datové struktury
Algoritmy a datové struktury 1 / 34 Obsah přednášky Základní řídící struktury posloupnost příkazů podmínka cyklus s podmínkou na začátku cyklus s podmínkou na konci cyklus s pevným počtem opakování Jednoduchá
VíceLogické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
VíceAlgoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
VíceProgram "Světla" pro mikropočítač PMI-80
Program "Světla" pro mikropočítač PMI-80 Dokument věnovaný mikropočítači PMI-80, jeho programování a praktickým ukázkám. Verze dokumentu:. Autor: Blackhead Datum: rok 1997, 4.3.004 1 Úvod Tento program
VíceÚvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
VíceVýčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
VíceZ. Kotala, P. Toman: Java ( Obsah )
Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například
Více2 Datové typy v jazyce C
1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
VíceNávod na práci s přípravkem a programem uscope na cvičeních
Návod na práci s přípravkem a programem uscope na cvičeních Ing. Tomáš Martinec Ph.D. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl v rámci
VíceIII/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
VíceProgram a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
VíceOperátory. Základy programování 1 Tomáš Kühr
Operátory Základy programování 1 Tomáš Kühr Operátory a jejich vlastnosti Základní konstrukce (skoro) každého jazyka Z daných operandů vytvoří výsledek, který je možné dále využívat Arita udává počet operandů
Více7 Formátovaný výstup, třídy, objekty, pole, chyby v programech
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,
VíceDUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
VíceProgramování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)
Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon
VíceStrukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele
Strukturu lze funkci předat: hodnotou i pomocí ukazatele pouze pomocí ukazatele (reference na strukturu) pouze hodnotou (kopie struktury) (pole[i])+j adresa prvku na souřadnicích i, j adresa i-tého řádku
VíceVětvení a cykly. Úvod do programování 1 Tomáš Kühr
Větvení a cykly Úvod do programování 1 Tomáš Kühr Konstrukce if u Příkazy se provádějí pouze při splnění dané podmínky u Podmínka = jakýkoli logický výraz = cokoli celočíselného u Volitelně i příkazy prováděné
Více8. Laboratoř: Aritmetika a řídicí struktury programu
8. Laboratoř: Aritmetika a řídicí struktury programu Programy v JSA aritmetika, posuvy, využití příznaků Navrhněte a simulujte v AVR studiu prográmky pro 24 bitovou (32 bitovou) aritmetiku: sčítání, odčítání,
VíceFunkce, podmíněný příkaz if-else, příkaz cyklu for
Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto
VíceFunkce, intuitivní chápání složitosti
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní
VíceAplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a
Aplikace Embedded systémů v Mechatronice Aplikace Embedded systémů v Mechatronice Obsah přednášky: Opakovaní Funkce v C Tvorba knihoven Konfigurační bity #pragma Makra v C #define Debugging v MPLAB Hardware
VíceIPA - Lab.1 Úvod do programování v ASM
IPA - Lab.1 Úvod do programování v ASM Ondřej Klubal http://www.fit.vutbr.cz/~iklubal/ipa/ 2014 Ondřej Klubal IPA - Lab.1 1 / 16 Osnova Nástroje Konvence volání Použití DLL Windows API Makra NASM + VS
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
Více8 Makra Příklad 4 Excel 2007
TÉMA: Úprava maker rozhodování, příkaz If..Then..Else Sekretářka společnosti Naše zahrada potřebuje upravit makra vytvořená pomocí záznamu tak, aby vyhovovala jejím požadavkům. Pro úpravy využije Editor
VíceFz =a z + a z +...+a z +a z =
Polyadické číselné soustavy - převody M-místná skupina prvků se z-stavovou abecedou umožňuje zobrazit z m čísel. Zjistíme, že stačí vhodně zvolit číslo m, abychom mohli zobrazit libovolné číslo menší než
VíceMasarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
VíceAlgoritmizace a programování
Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,
VíceGEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 4
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 4 Praktické zvládnutí software Geomedia Pavel Vařacha a kol. Zlín 2013 Tento studijní materiál vznikl
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceProgramování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
VíceInovace výuky prostřednictvím šablon pro SŠ
Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Inovace výuky prostřednictvím šablon pro SŠ CZ.1.07/1.5.00/34.0748
VíceIII/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
VíceJazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory
Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální
VíceZáklady programování (IZP)
Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden
VíceIII/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
VíceEVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI
EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!
VíceMAXScript výukový kurz
MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...
VíceVstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
VíceOperátory. Základy programování 1 Martin Kauer (Tomáš Kühr)
Operátory Základy programování 1 Martin Kauer (Tomáš Kühr) Organizační poznámky Formátujte kód přehledně! Pomůžete sobě i mně. Spusťte si vaše programy a zkuste různé vstupy! Pokud program nedává správné
VíceTéma 8: Konfigurace počítačů se systémem Windows 7 IV
Téma 8: Konfigurace počítačů se systémem Windows 7 IV 1 Teoretické znalosti V tomto cvičení budete pracovat se správou vlastností systému, postupně projdete všechny karty tohoto nastavení a vyzkoušíte
VíceVíce o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
VíceKoncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
VíceVyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
VíceOpakování programování
Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování
VícePoužití programu uscope k simulaci výukového přípravku pro předmět PMP
Použití programu uscope k simulaci výukového přípravku pro předmět PMP Ing. Tomáš Martinec Ph.D. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl
VíceVlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
VíceLED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48
LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám
VíceÚvod do programování 7. hodina
Úvod do programování 7. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Znaky Vlastní implementace
VíceGEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 9
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 9 Praktické zvládnutí software Geomedia Pavel Vařacha a kol. Zlín 2013 Tento studijní materiál vznikl
VíceC2110 Operační systém UNIX a základy programování
C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém
Více