PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 3

Rozměr: px
Začít zobrazení ze stránky:

Download "PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 3"

Transkript

1 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 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í 3 Podprogramy a práce se zásobníkem STRUČNÝ OBSAH CVIČENÍ: Vysvětlení principu podprogramů a jejich použití, souvislost se zásobníkem Řešený proklad podprogram pro určení, zda je číslo sudé Řešený příklad počítání sudých čísel v poli Úkoly k procvičení VSTUPNÍ ZNALOSTI: Toto cvičení předpokládá znalosti získané na předchozím cvičení. CÍL: V tomto cvičení se naučíme pracovat se zásobníkem a vytvářet podprogramy, což nám usnadní tvorbu složitějších programů v budoucnu. Díky využití podprogramů budeme moci vytvářet knihovny znovupoužitelných programových modulů. Cvičení se vztahuje k těmto otázkám Funkce a ovládání zásobníkové paměti, instrukce pro práci se zásobníkem u mikropočítače HC08 Makroinstrukce a podprogramy, princip, použití, příklady

3 3 1. Řešené příklady Program 1 Podprogram pro určení, zda je číslo sudé Úkol: Vytvořte podprogram JeSude, který určí, jestli je zadané číslo sudé. Vstupním parametrem bude číslo v registru A, výsledkem je v registru A číslo 1, jestliže bylo zadané číslo sudé, 0 jestliže nebylo sudé. Podprogram využijte v programu, který určí kolik z čísel c1 a c2 je sudých - tedy zda žádné, jedno nebo obě. Poznámka: Návratovou hodnotu podprogramu JeSude jsme úmyslně zvolili tak, že jestliže je předané číslo sudé, vrací podprogram 1, protože jednička má v kombinační logice význam pravda (true). Jestliže není číslo sudé vrací nulu což je hodnota pro nepravdu, (false). Můžeme tedy při použití podprogramu jako pomůcku uvažovat, že se podprogramu JeSude ptáme, zda zadané číslo je sudé. Jestliže ano, dostaneme odpověď 1, pravda. Řešení Zda je číslo sudé určíme tak, že číslo vydělíme dvěma a jestliže je zbytek po celočíselném dělení nulový, číslo je sudé (je dělitelné dvěma beze zbytku). Algoritmus pro podprogram JeSude lze tedy slovně zapsat takto: Vydělíme předané číslo dvěma Porovnáme zbytek s nulou Jestliže je zbytek roven nule, do registru A vložíme 1 viz zadání úkolu, 1 = je sudé a ukončíme podprogram. V opačném případě vložíme do registru A nulu a ukončíme podprogram. Vývojový diagram a odpovídající kód je na následujícím obrázku.

4 4 Obr. 1 Vývojový diagram a kód podprogramu JeSude. Hlavní program má určit počet sudých čísel pomocí podprogramu, který jsme už napsali. Pro jednoduchost pouze ze dvou čísel, tj. z čísel c1 a c2. V hlavním programu proto budeme používat počitadlo, které se zvětší o jedna tehdy, jestliže při testu některého z čísel zjistíme, že je sudé. V programu se nejprve vynuluje toto počitadlo sudých čísel. Poté se testuje, jestli je c1 sudé číslo. Pokud ano, inkrementujeme počítadlo sudých čísel. Následuje test c2 a opět, jestliže je toto číslo sudé, inkrementuje se počitadlo sudých čísel. Jestliže tedy není ani c1 ani c2 sudé, projde program rovně dolů vývojovým diagramem a v počitadle sudých zůstane nula. Bodově můžeme hlavní program popsat takto: Vynuluje se počitadlo sudých čísel Do registru A vloží číslo c1 (argument podprogramu JeSude) Provede skok do podprogramu JeSude Porovná obsah registru A (návratovou hodnotu podprogramu) s 1. Jestliže je návratová hodnota rovna 1 (což znamená že c1 je sudé), inkrementuje se počitadlo sudých čísel. Do registru A se nahraje c2. Provede se skok do podprogramu JeSude atd. Postup pro c2 je stejný jako pro c1. Vývojový diagram a odpovídající kód je na následujícím obrázku.

5 5 Obr. 2 Vývojový diagram a kód hlavního programu pro testování podprogramu JeSude. Potřebné instrukce LDHX nahraje 2-bajtové číslo z paměti do registru H:X CMP porovná obsah A s paměťovou buňkou: (A) (M) BEQ skočí na zadané návěští pokud číslo v akumulátoru A je rovno číslu v paměťové buňce (M). BNE opak BEQ, skočí pokud není rovno. INC inkrementuje obsah zadané paměťové buňky: M (M) + 1 PSHH uloží registr H na zásobník PULA načte do reg. A hodnotu ze zásobníku BRA skočí vždy (bez podmínky) na zadané návěští JSR skok do podprogramu RTS návrat z podprogramu Vysvětlení programu Nejprve se zabývejme podprogramem JeSude. Srovnáme-li vývojový diagram v levé části obrázku 3.4 se slovním popisem algoritmu výše, měla by být zřejmá souvislost. V pravé části obrázku jsou jednotlivé bloky vývojového diagramu přepsány do assembleru pro procesor HC08. Základem podprogramu je instrukce pro dělení - DIV, která vydělí 16-bitové číslo uložené v registrech H:A (tedy horní bajt čísla v registru H a dolní v registru A) číslem uloženým v registru X. Výsledek po celočíselném dělení pak vloží do registru A, a zbytek po

6 6 dělení do registru H. (jedná se o celočíselné dělení. Procesor HC08 neumí pracovat s reálnými čísly). Např. při dělení čísla 5 číslem 2, tedy: 5 / 2 bude v registru A výsledek = 2 a v registru H bude zbytek 1. (5/2 = 2, zbytek 1). Instrukce DIV je v instrukční sadě popsána takto: DIV: A <- (H:A) / (X), H <- zbytek Podívejme se nyní na kód programu odpovídající jednotlivým blokům vývojového diagramu na obr. 2. Podprogram JeSude dostane v registru A číslo, které má testovat. Jestliže je toto číslo sudé, (ANO), má podle zadání umístit do registru A číslo 1. Jestliže číslo není sudé, má do registru A umístit číslo 0. Blok porovnání je nejsložitější, protože provádí dělení. Již víme, že instrukce pro dělení DIV dělí číslo v registru H:A číslem v registru X. Výsledek dělení bude v registru A, zbytek v reg. H. Náš podprogram ovšem dostává jako vstupní parametr pouze registr A tj. spodní byte čísla, které pro dělení použije instrukce DIV. Horní byte, registr H musí být proto nulový (tak aby se dělilo skutečně jen číslo v registru A, a nikoliv i případná hodnota v registru H. Proto před dělením vynulujeme instrukcí CLRH obsah registru H. Poté do registru X nahrajeme číslo 2, tj. číslo kterým budeme dělit. V reg. A už máme číslo, které chceme testovat, takže můžeme provést dělení instrukcí DIV. Po vykonání instrukce DIV potřebujeme otestovat jestli je zbytek po dělení roven nule. K tomu použijeme instrukci pro porovnání CMP. Ta ovšem porovnává registr A, a paměťovou buňku. Přitom ale zbytek po dělení je v registru H (viz popis instrukce DIV výše). Proto musíme zbytek přesunout z registru H do registru A. Uděláme to s pomocí zásobníku: obsah registru H uložíme na zásobník instrukcí PSHH a uloženou hodnotou pak naplníme registr A pomocí instrukce PULA. Pak už můžeme obsah reg. A porovnat instrukcí CMP s nulou. Skok BNE se v našem případě provede tehdy, jestliže číslo v reg. A není rovno nule (tedy jestliže zbytek po dělení nebyl nula), tj. jestliže je číslo liché. V případě, že se skok provede (číslo je liché) se proto v následujícím kódu do registru A nahrává nula návratová hodnota. Jestliže se skok neprovede, nahraje se do registru A číslo 1 (návratová hodnota pro případ sudého čísla). Poté se instrukcí BRA provede skok na konec podprogramu. Skok BRA je zde nutný, jinak by program pokračoval následující instrukcí, což je nahrání nuly do registru A. Takový podprogram by pak vracel vždy nulu bez ohledu na vstupní parametr. Hlavní program provede nejprve nulování počitadla sudých čísel a to instrukcí CLR (clear). Proměnná je pojmenovaná nsude.

7 7 Test zda je číslo sudé provádíme pomocí podprogramu JeSude. Tento podprogram má jako vstupní parametr číslo, které chceme testovat v registru A. Proto před skokem do něj nahráváme číslo c1 do registru A (instrukcí LDA). Poté zavoláme podprogram instrukcí JSR JeSude. Podprogram vrátí v reg. A číslo 1 jestliže zadané číslo bylo sudé. Porovnáme toto vrácené číslo (návratovou hodnotu) s číslem 1 pomocí instrukce CMP. Jestliže je vrácené číslo rovno 1, provede se skok instrukcí BEQ (BEQ = skoč jestliže je rovno) na návěští Pricti1, kde se inkrementuje počitadlo nsude. Jestliže se skok BEQ neprovede, provede se nepodmíněný skok BRA, který přeskočí inkrementaci a pokračuje další částí programu, kde se testuje číslo c2. Postup testování c2 je stejný jako u c1. Na konci hlavního programu bude v proměnné nsude číslo 0, 1 nebo 2 podle toho zda není sudé žádné z obou čísel, jedno z nich nebo obě. Kód programu Na následujícím výpisu je uveden kompletní zdrojový kód programu. Pozor na umístění na správné místo v kostře programu, kterou vygeneroval CodeWarrior, tj. data programu (proměnné) do Data section a kód programu do Code section. Podprogram JeSude umístěte na úplný konec zdrojového souboru. ; variable/data section MY_ZEROPAGE: SECTION SHORT c1 DS.B 1 c2 DS.B 1 nsude DS.B 1 ; code section MyCode: SECTION main: LDHX # SEG_END_SSTACK ; initialize the stack pointer TXS CLI ; enable interrupts mainloop: NOP MOV #8,c1 MOV #3,c2 ; inicializace promennych CLR nsude ; nuluj pocet sudych cisel LDA c1 ; priprava parametru pro podprogram JeSude JSR JeSude ; volani podprogramu JeSude CMP #1 ; vratil podprogram jednicku? (je cislo sude?) BEQ Pricti1 ; pokud je sude, inkrementuj pocitadlo BRA Skok1 ; pokud ne, preskoc inkrementaci a testuj ;dalsi cislo Pricti1 INC nsude ; nsude = nsude + 1 Skok1 LDA c2 ; totez pro druhe cislo JSR JeSude

8 8 CMP #1 BEQ Pricti2 BRA Skok2 Pricti2 INC nsude Skok2 NOP ; konec programu BRA mainloop ; ; Podprogram JeSude ; VSTUP: reg.a - cislo, ktere su bude testovat ; VYSTUP: reg.a: 1 = cislo je sude, 0 = cislo je liche ; JeSude CLRH ; vynulujem registr H LDX #2 ; budeme delit 2 DIV PSHH ; uloz zbytek na zasobnik (chceme dostat H- >A) PULA ; nactu do A hodnotu ze zasobniku CMP #0 ; je zbytek po deleni 0? BNE Liche ; neni-li, cislo je liche LDA #1 ; v opacnem pripade je sude BRA Konec Liche CLRA ; liche cislo, v A vracime 0 Konec RTS Testování programu Program přeložíme a spustíme. Nejčastější chyby: Zkopírován a vložen ze vzorového programu celý jeho obsah i s kódem, který už v kostře aplikace byl. Některá návěští se pak v programu vyskytují dvakrát. Není vložen kód z druhého (zeleného) pole tj. definice proměnných. Není vložen kód podprogramu Návěští (tj. jméno podprogramu) je odsazeno od levého okraje řádku. Vyzkoušíme program odkrokovat. Se zadanými čísly c1 = 8 a c2 = 3 by měl být výsledek v proměnné nsude roven 1 (jedno sudé číslo). Vyzkoušejte nyní také tlačítko simulátoru Step over (krok přes). To, na rozdíl od dosud používaného tlačítka Single Step, neprovede skok dovnitř podprogramu, ale provede celý podprogram v jediném kroku - jakoby to byla jediná instrukce. To je výhodné pokud už máme podprogram odladěn, víme tedy že funguje a nemusíme jej při každém použití krokovat.

9 9 Sami vyzkoušejte v simulátoru následující: Výsledek pro různé hodnoty c1 a c2 Krokování dovnitř podprogramu tlačítkem Single Step. Krokování přes podprogram tlačítkem Step Over. Obsah registru A po návratu z podprogramu JeSude jestliže předané číslo bylo/nebylo sudé. Pro sudé číslo bude v reg A číslo 1, pro liché č. 0. Program 2 Využití podprogramu v cyklu Úkol: Podprogram JeSude z minulého příkladu použijte v programu, který určí počet sudých čísel v poli data o šesti prvcích. Počet sudých čísel uložte do proměnné sud. Řešení Princip: v cyklu projdeme prvky pole a pro každý zavoláme podprogram JeSude pro určení zda je daný prvek sudé číslo. Pokud jste už zapomněli základní principy práce s polem, podívejte se nejprve do předchozí kapitoly na program pro nulování pole. Slovně bychom mohli činnost programu pro určení počtu sudých čísel v poli popsat takto: Vynuluje se počitadlo sudých čísel Podprogramu JeSude se předá první prvek pole Otestuje se návratová hodnota podprogramu JeSude. Jestliže bylo předané číslo sudé, inkrementuje se počitadlo Posuneme se na další prvek pole Testujeme, jestli už jsme prověřili všechny prvky pole. Jestliže ne, opakujeme volání JeSude s aktuálním prvkem pole a opět inkrementujeme počitadlo jestliže tento prvek je sudé číslo Tento popis je ovšem příliš lidský, neurčitý. Přesnější popis s ohledem na princip programování v assembleru je zachycen na vývojovém diagramu na následujícím obrázku.

10 10 Obr. 3 Vývojový diagram programu pro počítání sudých čísel v poli Nejprve nastavujeme do registru H:X (index registr) adresu pole viz minulá lekce o cyklech a polích. Také nulujeme počitadlo cyklů, které slouží k tomu, abychom cyklus ukončili po zpracování všech prvků pole. Blok zpracuj aktuální prvek má zde význam: zjisti jestli je aktuální prvek sudé číslo a pokud ano, inkrementuj počitadlo sudých čísel. Posun na další prvek se provede inkrementací obsahu index registru (instrukce AIX). Poté se testuje, zda už je zpracováno všech šest prvků pole. Jestliže ne, vrací se program na začátek cyklu a zpracovává další prvek. Možná jste si všimli, že vývojový diagram je stejný jako u příkladu na nulování pole v minulé kapitole. Diagram je totiž obecný pro prakticky libovolnou operaci s prvky pole. Blok Zpracuj aktuální prvek pole totiž v sobě skrývá celou akci, která se má s prvkem pole vykonat, ať už je to nulování nebo zjištění zda je sudý a inkrementace počitadla. Ostatní bloky tedy vlastně představují režii, pomocné operace, nezbytné pro práci s polem. V kódu se nahrává aktuální prvek pole do registru A pomocí instrukce LDA,X, tedy používáme indexové adresování. V index registru (H:X) je adresa začátku pole. Připomeňme si, že podprogram JeSude vrací 1, jestliže jsme mu v registru A (kam vždy nahráváme aktuální prvek pole) předali sudé číslo. V tom případě se zde neprovede skok BNE, protože to je skok jestliže není rovno. Tedy jestliže je číslo sudé, skok se neprovede a inkrementuje se proměnná sud pomocí instrukce INC sud. Jestliže je číslo liché, skok se provede a tím se inkrementace přeskočí.

11 11 Následuje inkrementace index registru instrukcí AIX #1 čímž se adresa aktuálního prvku pole v registru H:X zvětší o jedničku a tudíž při opakování cyklu už instrukce LDA,X nahraje do registru A další prvek pole. Také se inkrementuje počitadlo cyklů v proměnné citac. Obsah této proměnné se následně nahraje do registru A k porovnání s počtem prvků pole (s číslem 6). Jestliže je čítač menší než 6, provede se skok BLO (skoč jestliže je menší) na začátek cyklu a kód se opakuje pro další prvek pole. Na následujícím výpisu je kód podprogramu JeSude. Všimněme si červeně orámovaných změn oproti minulé verzi tohoto podprogramu. Jedná se o uložení obsahu registrů H a X na začátku programu na zásobník a jejich obnovení na konci, před instrukcí RTS. Proč se tyto registry musejí v podprogramu ukládat? Obr. 4 Úprava podprogramu JeSude Sledujte kód hlavního programu na předchozím obrázku. Do registru H:X nahráváme adresu začátku pole a z této adresy pak vždy v průběhu cyklu nahráváme aktuální prvek pole instrukcí LDA,X. Spoléháme tedy na to, že registr H:X obsahuje vždy adresu aktuálního prvku pole. Tuto adresu také zvětšujeme uvnitř cyklu instrukcí AIX. Jestliže by ale podprogram JeSude registr H:X neuložil, při jeho zavolání by byla adresa aktuálního prvku pole ztracena protože podprogram JeSude registr H:X využívá (v H je zbytek po dělení, do X nahrává dělitele atd.). Je tedy třeba aby podprogram vrátil registr H:X se stejným obsahem, s jakým jej dostal. K tomu stačí na začátku uložit registry H a X na zásobník a na konci podprogramu je ze zásobníku obnovit, tak jak je to provedeno na výpisu na obr. 4.

12 12 ; code section MyCode: SECTION main: LDHX # SEG_END_SSTACK ; initialize the stack pointer TXS CLI ; enable interrupts mainloop: NOP MOV #3,data MOV #1,data+1 MOV #5,data+2 MOV #8,data+3 MOV #2,data+4 MOV #3,data+5 ; inicializace dat v poli CLR sud CLR citac LDHX #data ; adresa pole data do H:X opakuj LDA,x ; nacti do A prvek pole dany adresou v H:X JSR JeSude CMP #1 ; je cislo sude? BNE preskoc ; pokud ne, preskoc inkrementaci sud INC sud preskoc AIX #1 ; prejdi na dalsi prvek pole INC citac ; citac = citac + 1 LDA citac CMP #pocet ; jsme na konci pole? BLO opakuj ; pokud je citac<pocet, skoc na opakuj BRA mainloop Obr. 5 Zdrojový kód hlavního programu Testování programu Po překladu program vyzkoušejte a prohlédněte si v simulátoru následující: Výsledek v proměnné sud po proběhnutí programu Hodnotu v registru A vždy po nahrání aktuálního prvku a pak po návratu z podprogramu (použijte tlačítko Step over). Obsah registru A po návratu z podprogramu JeSude jestliže předané číslo bylo/nebylo sudé. Pro sudé číslo bude v reg A číslo 1, pro liché č. 0. Krokování dovnitř podprogramu tlačítkem Single Step a uložení a obnovení obsahu H:X.

13 13 Poznámka: Pole jako parametr podprogramu Pokud bychom chtěli podprogram, který by zpracoval sám celé pole a vrátil rovnou např. počet sudých nebo lichých čísel v něm, narazíme na otázku jak podprogramu předat pole. Samozřejmě by bylo zbytečné předávat podprogramu celé pole např. jeho zkopírováním na zásobník. Raději předáme jen adresu začátku pole. Nejjednodušší je předat ji přímo v registru H:X tj. v index registru. Podprogram pak pracuje s tímto registrem obvyklým způsobem pro indexové adresování. Aby byl podprogram univerzální, použitelný pro pole různých rozměrů (ať už ve stejném programu nebo v nějakém jiném), musíme mu také předat počet prvků pole. Příklady k procvičení Obr. 6 princip předání pole jako parametru do podprogramu 1. Vytvořte podprogram, který sečte dvě čísla a výsledek vrátí v registru A. Vstupní parametry dostane v registru A a X. 2. Vytvořte podprogram, který spočítá lichá čísla v předaném poli. Adresa pole se předá v registru H:X, počet prvků v registru A. Podprogram vrátí počet lichých čísel v reg. A. Pak napište program, který pomocí zadaného podprogramu určí počet lichých čísel v poli data s pěti prvky. Pole můžete inicializovat na libovolné hodnoty. 3. Pomocí stejného podprogramu se pokuste spočítat počet bajtů v paměti mikropočítače, které obsahují lichá čísla v paměti od adresy $182C v rozsahu 10 bajtů. Poznámka: od této adresy začíná v paměti kód našeho programu) Doplňující zdroje [1] Freescale: Firemní dokumentace pro mikropočítače HCS08, dostupné online: EDD5

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

PROGRAMOVÁ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íce

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2

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íce

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7

PROGRAMOVÁ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íce

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 11

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 11 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

Více

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 8

PROGRAMOVÁ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íce

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6

PROGRAMOVÁ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íce

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 5

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 5 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 5 Práce s přerušením, zpracování stisku tlačítka Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál

Více

Jako 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.

Jako 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íce

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 1

PROGRAMOVÁ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íce

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce Universita Pardubice Fakulta elektrotechniky a informatiky Mikroprocesorová technika Semestrální práce Jméno: Chmelař Pavel Datum: 14. 5. 2008 Úkol: Příklad č. 1 V paměti dat je uložen blok 8 b čísel se

Více

8. Laboratoř: Aritmetika a řídicí struktury programu

8. 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íce

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,

Více

Programová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 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íce

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. 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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. 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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (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íce

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Č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íce

Programování PICAXE18M2 v Assembleru

Programování PICAXE18M2 v Assembleru Nastavení programming editoru PICAXE PROGRAMMING EDITOR 6 Programování PICAXE18M2 v Assembleru Nastavit PICAXE Type PICAXE 18M2(WJEC-ASSEMBLER, stejně tak nastavit Simulation Pokud tam není, otevřeme přes

Více

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů). Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis

Více

8. 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 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íce

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

Strojový kód. Instrukce počítače

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 18 0:40 Algoritmus Algoritmem by se dal nazvat

Více

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více

Assembler - 5.část. poslední změna této stránky: Zpět

Assembler - 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íce

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

Implementace LL(1) překladů

Implementace LL(1) překladů Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku

Více

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Č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íce

5 Přehled operátorů, příkazy, přetypování

5 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íce

ISU Cvičení 7. Marta Čudová

ISU Cvičení 7. Marta Čudová ISU Cvičení 7 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Osnova

Více

Program "Světla" pro mikropočítač PMI-80

Program 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

Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky. Aplikace mikroprocesorů.

Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky. Aplikace mikroprocesorů. Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky Aplikace mikroprocesorů Deska Evb IO Návod k použití Lukáš Lahoda 2010 Obsah 1 DESKA EVB IO...

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Algoritmizace a programování

Algoritmizace 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íce

Algoritmy a datové struktury

Algoritmy 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íce

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Assembler pro Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zápis instrukcí umíme už zapisovat instrukce v binárním tvaru to je silně nešikovné pro snazší vývoj

Více

Přerušovací systém s prioritním řetězem

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

6 Příkazy řízení toku

6 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

Standardní algoritmy vyhledávací.

Standardní algoritmy vyhledávací. Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární

Více

10 Algoritmizace Příklad 2 Word 2007/ VBA

10 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íce

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný. 1 Přerušení Při výskytu určité události procesor přeruší vykonávání hlavního programu a začne vykonávat obslužnou proceduru pro danou událost. Po dokončení obslužné procedury pokračuje výpočet hlavního

Více

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3 Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT Třída: 4.C Skupina: 3 Klimatizace Zpráva číslo: 3 Dne: 08.01.2007 Soupis použitých přístrojů: přípravek s μc 8051 přípravek s LCD přípravek

Více

Algoritmizace a programování

Algoritmizace 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íce

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců. TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců. Zadání: V textovém souboru text.txt je uloženo několik řádků textu. Vytvořte makro, které určí nejdelší řádek z daného souboru. 1. Název

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

Assembler - 2.část. poslední změna této stránky: Zpět

Assembler - 2.část. poslední změna této stránky: Zpět 1 z 9 19.2.2007 7:51 Assembler - 2.část poslední změna této stránky: 9.2.2007 1. Příznaky (flagy) Zpět Flagy (česky podivně "příznaky", proto používám výhradně anglický název) jsou výlučnou záležitostí

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 25 Název materiálu: Ovládací prvky formuláře a makra Ročník: 2. ročník Identifikace materiálu:

Více

2. lekce Algoritmus, cyklus Miroslav Jílek

2. lekce Algoritmus, cyklus Miroslav Jílek 2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝ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íce

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Vý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íce

Jazyk symbolických adres

Jazyk symbolických adres Jazyk symbolických adres 1 Proč programovat v JSA Pro některé procesory resp. MCU jsou překladače JSA dostupnější. Některé překladače vyšších jazyků neumí využít určité speciální vlastnosti procesoru.

Více

- funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte. V obou případech vyzkoušejte Taylorovy řady

- funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte. V obou případech vyzkoušejte Taylorovy řady Vzorové řešení domácího úkolu na 6. 1. 1. Integrály 1 1 x2 dx, ex2 dx spočítejte přibližně následují metodou - funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte.

Více

Logické 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. 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íce

Zvyšování kvality výuky technických oborů

Zvyšování kvality výuky technických oborů Zvyšování kvality výuky technických oborů Klíčová aktivita lll.2 Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol Pracovní list pro téma lll.2.5 Rastrová grafika

Více

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout.   tel: Skripta ke školení Základy VBA vypracoval: Tomáš Herout e-mail: herout@helpmark.cz tel: 739 719 548 2016 Obsah TROCHA TEORIE VBA...2 ZPŮSOB ZÁPISU VE VBA...2 CO JE TO FUNKCE...2 CO JE TO PROCEDURA...2

Více

Modul řízení otáček stejnosměrného motorku

Modul řízení otáček stejnosměrného motorku Modul řízení otáček stejnosměrného motorku Výukový modul pro předmět mikropočítače Popis modulu úvod Jedná se o rozšiřující modul pro kit GB60. Modul obsahuje stejnosměrný motorek osazený zařízením pro

Více

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2 Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných

Více

Více o konstruktorech a destruktorech

Ví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íce

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................

Více

setup() { I = 0; } loop() { I = I + 1; }

setup() { I = 0; } loop() { I = I + 1; } PŘERUŠENÍ Procesor pracuje tak, že načítá z paměti jednotlivé instrukce a ty následně zpracovává. Instrukce se zpracovávají v pořadí v jakém jsou uloženy v paměti. Vezměme jednoduchý program, který v nekonečném

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013 2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky

Více

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani

Více

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů. Příkazy cyklu v C# Kapitola vysvětluje použití tří typů cyklů for, while a -while a plňuje jejich použití řau příkladů programů v jazyku C#. V jazyku C by šlo pouze k záměně funkcí pro vstup a výstup.

Více

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL Středoškolská technika 2017 Setkání a prezentace prací středoškolských studentů na ČVUT PROGRAM NA GENEROVÁNÍ PRVOČÍSEL Vojtěch Pchálek Střední škola technická Kouřílkova 8, Přerov ANOTACE Bratr, který

Více

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení Připojení periferních zařízen zení 1 Koncepce připojení V/V zařízení V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče specializované (řadič disku) lze k nim připojit jen zařízení určitého

Více

Textové, datumové a časové funkce

Textové, datumové a časové funkce Textové, datumové a časové funkce EU peníze středním školám Didaktický učební materiál Anotace Označení DUMU: VY_32_INOVACE_IT4.15 Předmět: IVT Tematická oblast: Microsoft Office 2007 Autor: Ing. Vladimír

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 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íce

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Ú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íce

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery II. Jan Hnilica Počítačové modelování 17 Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky

Více

.include "m32def.inc" // Konstanty.equ N = 5 // Počet prvků v poli.equ PRVNI = 3 // První číslo v poli

.include m32def.inc // Konstanty.equ N = 5 // Počet prvků v poli.equ PRVNI = 3 // První číslo v poli Příklad č. 1 Vytvořte v paměti RAM pole, umístěte jen v paměti SRAM od začátku, jeho velikost bude dána konstantou N. Pole naplňte, přičemž hodnota prvního prvku bude dána konstantou PRVNI, a další prvky

Více

Lineární spojový seznam (úvod do dynamických datových struktur)

Lineární spojový seznam (úvod do dynamických datových struktur) Lineární spojový seznam (úvod do dynamických datových struktur) Jan Hnilica Počítačové modelování 11 1 Dynamické datové struktury Definice dynamické struktury jsou vytvářeny za běhu programu z dynamicky

Více

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je

Více

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. Katedra informatiky a výpočetní techniky České vysoké učení technické, fakulta elektrotechnická Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. 10. prosince 2007 Pamět ové banky S výhodou používáme

Více

Obr. P1.1 Zadání úlohy v MS Excel

Obr. P1.1 Zadání úlohy v MS Excel Přílohy Příloha 1 Řešení úlohy lineárního programování v MS Excel V této příloze si ukážeme, jak lze řešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel. Výpočet budeme demonstrovat

Více

ZADÁNÍ Č. 6 ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA APLIKOVANÝCH VĚD KATEDRA INFORMATIKY A VÝPOČETNÍ TECHNIKY

ZADÁNÍ Č. 6 ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA APLIKOVANÝCH VĚD KATEDRA INFORMATIKY A VÝPOČETNÍ TECHNIKY ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA APLIKOVANÝCH VĚD KATEDRA INFORMATIKY A VÝPOČETNÍ TECHNIKY SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU KIV/UPA 3. ÚLOHA ZADÁNÍ Č. 6 PETR THÜR 10.12.2006 A04236 FAV INIB/INF PETR.THUR@POST.CZ

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Algoritmizace řazení Bubble Sort

Algoritmizace řazení Bubble Sort Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,

Více

Návod k obsluze trenažéru

Návod k obsluze trenažéru Návod k obsluze trenažéru K ovládání trenažéru slouží kompaktní řídící systém, který je vybaven dvouřádkovým displejem a membránovou klávesnicí. Na klávesnici jsou klávesy : ENT + - - STOP nebo návrat

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

MPASM a IDE pro vývoj aplikací MCU (Microchip)

MPASM a IDE pro vývoj aplikací MCU (Microchip) MPASM a IDE pro vývoj aplikací MCU (Microchip) MPLAB, vývojové prostředí a jeho instalace; Založení nového projektu a jeho základní nastavení; Zásady tvorby a základní úprava formuláře zdrojového kódu;

Více

programátorský manuál

programátorský manuál programátorský manuál Marek Polák 1. ročník, studijní skupina 41 zimní semestr 2012/2013 Programování I NPRG030 1. Úvod Vítejte v programátorském manuálu k programu Hádej zvíře. Tento manuál by Vám měl

Více

AUTOMATIZACE Úvod do programování PLC

AUTOMATIZACE Úvod do programování PLC AUTOMATIZACE Úvod do programování PLC Rostislav Palowski Střední škola, Havířov-Šumbark, Sýkorova 1/613, příspěvková organizace Tento výukový materiál byl zpracován v rámci akce EU peníze středním školám

Více

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb. Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb. 1. Informace o přijímacích zkouškách Studijní program: Informatika navazující magisterský

Více

Programování v jazyku LOGO - úvod

Programování v jazyku LOGO - úvod Programování v jazyku LOGO - úvod Programovací jazyk LOGO je určen pro výuku algoritmizace především pro děti školou povinné. Programovací jazyk pracuje v grafickém prostředí, přičemž jednou z jeho podstatných

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/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íce

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

LED_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 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

Principy komunikace s adaptéry periferních zařízení (PZ)

Principy komunikace s adaptéry periferních zařízení (PZ) Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ107/1500/340410

Více

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v

Více