ZPŘS - Zadání projektu 2017/2018

Podobné dokumenty
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

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

Cvičení č. 5. Programování ve Windows program stopky 3 Body

- jak udělat konstantu long int: L long velka = 78L;

Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

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

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Rozsáhlé programy = projekty

Programování v C++ 1, 1. cvičení

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

Úvod do programování - Java. Cvičení č.4

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Konstruktory překladačů

Název: Řízení pohybu robota ultrazvukovým a tlakovým senzorem I.

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

Cvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

/*Dekodovani DFC signalu*/ // Projekt MMIA 2013 // Martin Dujicek, Milan Rejnus

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

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

Struktury a dynamické proměnné

IUJCE 07/08 Přednáška č. 1

TESTER TL-828-A CZ manuál

Programovací jazyk C++ Hodina 1

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

MQL4 COURSE. By Coders guru -12 Váš první indikátor Část 3

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Opakování programování

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

Šifrování/Dešifrování s použitím hesla

Ukázka zkouškové písemka OSY

Operační systémy. Cvičení 3: Programování v C pod Unixem

Server Internetu prostøednictvím slu eb (web, , pøenos souborù) poskytuje data. Na na í pracovní stanici Internet

Server Internetu prostøednictvím slu eb (web, , pøenos souborù) poskytuje data. Na na í pracovní stanici Internet

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

VISUAL BASIC. Přehled témat

Základy programování (IZP)

IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená

2N LiftIP. IO Extender. Communicator for Lifts. Version

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

PROGRAMOVÁNÍ V C++ CVIČENÍ

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

OVLÁDÁNÍ PÁSOVÉ DOPRAVY

Cvičení č. 2. Komunikace mezi procesy Program Hodiny. 4 body

Basic256 - úvod do programování Příklady. ing. petr polách

Digitální učební materiál

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

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY

Zápis programu v jazyce C#

Jazyk C++, některá rozšíření oproti C

Témata bakalářských prací 2015/2016

Desky Evb Display a Evb Keyboard

Formátové specifikace formátovací řetězce

7 kg 8 kg 11 kg 14 kg 18 kg 24 kg

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. November 16, 2017

Struktura programu v době běhu

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

DUM č. 20 v sadě. 29. Inf-5 RoboLab a Lego Mindstorms

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Operační systémy. Přednáška 4: Komunikace mezi procesy

E+034 = ; = e E+034

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

ALGORITMIZACE A PROGRAMOVÁNÍ

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Základy programování (IZP)

Zadání zápočtové práce

DUM č. 13 v sadě. 29. Inf-5 RoboLab a Lego Mindstorms

Adresa: Lomená 446, Chvaletice, Česká Republika, Tel: UŽIVATELSKÁ PŘÍRUČKA

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Úvod do programovacích jazyků (Java)

Programovanie v jazyku C - ti to zratam...

Cvičení z programování v C++ ZS 2016/2017 Přemysl Čech

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-304

Algoritmizace a programování

VISUAL BASIC. Práce se soubory

Střední průmyslová škola, Ústí nad Labem, Resslova 5, příspěvková organizace

Ukazatele #1, struktury

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

1. Úvodní informace. BI-EP1 Efektivní programování Martin Kačer

SAMOOBSLUŽNÉ PRÁDELNY

Lekce 19 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Algoritmizace a programování

Příkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Vrchem plněná pračka CTS 101. Návod k použití cz

Uživatelský Manuál HyperMedia Center Obsah V1.5

Algoritmus. Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému.

Algoritmizace a programování

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

Transkript:

ZPŘS - Zadání projektu 2017/2018 Vyberte si jedno z těchto zadání a to vypracujte: (15b) 1) Myčka - vytvořte stavový automat pro myčku. Uživatel si může zvolit z několika programů (Oplach, Mytí ECO, Mytí 65 C, Mytí 70 C). Vytvořte sekvenci mytí nádobí. (Předmytí, mytí, druhé mytí, sušení,...) 2) Nápojový automat - vytvořte stavový automat pro nápojový automat. Uživatel si může zvolit několik druhů nápojů, včetně cukru či vody navíc. Řešte vhazování mincí a návrat drobných. Dále řešte sekvenci míchání či vaření nápoje. Řešte situaci, kdy nejsou dostupné suroviny. 3) Pračka - vytvořte stavový automat pro pračku. Uživatel si může zvolit několik programů (Bavlna, Silon,...) dále teplotu ( 30 C, 40 C, 60 C, 90 C). Uživatel může zvolit programy navíc (předepírka, ždímání, stop ve vodě,...). Vytvořte posloupnost praní prádla (předepírka, hlavní praní, ždímání). Součástí hlavní posloupnosti vytvořte i ovládání motoru. Při praní točte střídavě na jednu a druhou stranu. Dále mějte mezi otáčením pauzu. Poznámky pro vypracování: Pro stavový automat si vytvořte enumerátor Uživatelské zásahy budou realizovány pomocí funkce scanf() Stavový automat bude průchozí. Program bude běžet v hlavní smyčce. Na konci hlavní smyčky bude čekání pomocí funkce Sleep(). Čekání pomocí scanf() se toleruje. Jednotlivé stavy hlaste pomocí funkce printf(). Stavový automat musí mít minimálně 5 stavů a větvení (rozhodování). Nejprve navrhněte stavový automat a až poté dle něho pište kód. Kód pište sami, budete ho obhajovat a musíte rozumnět každému procesu, souvislostem a každé řádce kódu. Odevzdejte komentovaný kód v jazyce C a nákres stavového automatu. Proveďte ukázku Vašeho kódu vyučujícímu a vysvětlete, jak program pracuje. Odpověžte na otázky, které Vám vyučující položí. - 1 -

Ukázka projektu Zde je uveden ukázkový projekt. Stavový automat reprezentuje ovládání závory. V programu si můžeme zvolit dva časy (dlouhý a krátký) otevření závory a také časové neomezené otevření. INIT Ready CYCLE ENTERED HOLD ACTIVATED GATE CLOSED TIME EXPIRED Opening Hold Closing HOLD DEACTIVATED Obr. 1: Stavový automat // I n c l u d e s #i n c l u d e <s t d i o. h> #i n c l u d e <s t d l i b. h> #i n c l u d e <windows. h> // Defines #d e f i n e SHORT_TIME 30 #d e f i n e LONG_TIME 60 #d e f i n e CLOSING_CONST 10 // Types typedef enum STATE_READY, STATE_OPENING, STATE_CLOSING, STATE_HOLD STATES; // Global v a r i a b l e s STATES actual_state ; - 2 -

i n t time = 0 ; // Function prototypes i n t ready_state ( void ) ; void opening_state ( i n t open_time ) ; void c l o s i n g _ s t a t e ( void ) ; void hold_state ( void ) ; // Main entry point i n t main ( void ) i n t selected_time = 0 ; actual_state = STATE_READY; while ( 1 ) // system (" c l s " ) ; /////////////////////////// // Main loop /////////////////////////// switch ( actual_state ) case STATE_READY: selected_time = ready_state ( ) ; case STATE_OPENING: opening_state ( selected_time ) ; case STATE_CLOSING: c l o s i n g _ s t a t e ( ) ; case STATE_HOLD: hold_state ( ) ; d e f a u l t : ///////////////////////// // End o f main loop ///////////////////////// Sleep ( 1 0 0 ) ; - 3 -

i n t ready_state ( void ) char input = 0 ; p r i n t f ("GATE READY\n " ) ; p r i n t f (" I n s e r t \" s \" f o r s h o r t cycle, " ) ; p r i n t f ("\" l \" f o r long c y c l e " ) ; p r i n t f (" or \"h\" f o r hold : " ) ; f s e e k ( stdin, 0, SEEK_END) ; s c a n f ("%c",& input ) ; i f ( input == s ) actual_state = STATE_OPENING; p r i n t f (" Short time s e l e c t e d. \ n " ) ; return SHORT_TIME; e l s e i f ( input == l ) actual_state = STATE_OPENING; p r i n t f (" Long time s e l e c t e d. \ n " ) ; return LONG_TIME; e l s e i f ( input == h ) actual_state = STATE_HOLD; p r i n t f (" Hold mode s e l e c t e d. \ n " ) ; e l s e p r i n t f ("Wrong input c h a r a c t e r! \ n " ) ; void opening_state ( i n t open_time ) i f ( time == 0) p r i n t f ("GATE OPEN " ) ; time++; p r i n t f ( ". " ) ; i f ( time == open_time ) time = 0 ; - 4 -

actual_state = STATE_CLOSING; p r i n t f ("\n " ) ; void c l o s i n g _ s t a t e ( void ) i f ( time == 0) p r i n t f ("GATE CLOSING " ) ; time++; p r i n t f ( ". " ) ; i f ( time == CLOSING_CONST) time = 0 ; actual_state = STATE_READY; p r i n t f ("\n " ) ; void hold_state ( void ) char input = 0 ; p r i n t f ("GATE OPEN in hold mode\n " ) ; p r i n t f (" I n s e r t \" c \" f o r c l o s e the gate : " ) ; f s e e k ( stdin, 0, SEEK_END) ; s c a n f ("%c ", &input ) ; i f ( input == c ) actual_state = STATE_CLOSING; e l s e p r i n t f ("Wrong i n s t r u c t i o n! \ n " ) ; - 5 -