Teoretické základy informatiky pro ekonomy (pracovní materiál)

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

Download "Teoretické základy informatiky pro ekonomy (pracovní materiál)"

Transkript

1 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Evropský polytechnický institut, s.r.o. 1. soukromá vysoká škola na Moravě Kunovice Teoretické základy informatiky pro ekonomy (pracovní materiál) Oldřich Kratochvíl Jindřich Petrucha Robert Jurča Dan Slováček 2012 Naposledy vytištěno :55:00 1

2 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Obsah OBSAH... 2 ÚVOD ÚVOD DO PROBLEMATIKY JAK PRACUJE MOZEK ČLOVĚKA HISTORIE STROJŮ NA ZPRACOVÁNÍ DAT ARCHITEKTURA POČÍTAČŮ Harwardská koncepce Von Neumannovo schéma počítače Sběrnicová struktura současné pojetí PC UMĚLÁ INTELIGENCE SHRNUTÍ OTÁZKY ALGORITMIZACE EKONOMICKÝCH ÚLOH ALGORITMUS A VÝVOJOVÝ DIAGRAM Algoritmus, který má řešit nějakou úlohu je třeba ověřit (verifikovat jeho správnou funkci) VYBRANÉ ÚLOHY NA PROCVIČENÍ ZÁKLADŮ ALGORITMŮ UKÁZKA VYUŽITÍ TECHNOLOGIÍ ALGORITMŮ V PRÁCI MANAŽERA A ÚČETNÍHO CYKLUS Cyklus s podmínkou na začátku cyklu Cyklus s podmínkou na konci cyklu Cyklus s předem známým počtem opakování HARDWARE A SOFTWAROVÉ VYBAVENÍ PC OCHRANNÝ SYSTÉM PROTI VIRŮM SHRNUTÍ OTÁZKY PŘEPIS VÝVOJOVÉHO DIAGRAMU DO PROGRAMOVACÍHO JAZYKA C STRUKTURA PROGRAMU V JAZYCE C JAK NAPSAT PROGRAM V PROSTŘEDÍ DEV-C ÚVOD DO SYNTAXE JAZYKA C VĚTVENÍ PROGRAMU if (výraz) příkaz; je příkaz pro větvení programu (tzv. podmíněný příkaz) if (výraz) příkaz 1 else příkaz 2; Blok příkazů Aritmetické operátory Relační operátory, které můžeme v jazyce C použít: Relační operátory mají nižší prioritu než aritmetické operátory Aplikace algoritmů větvení Verifikace vývojového diagramu Přehled struktury programu s využitím podprogramů: Pole Cyklus Aplikace programu C do práce ekonoma SHRNUTÍ SLOVNÍ ZÁSOBA V JAZYCE ANGLICKÉM: OTÁZKY KÓDOVÁNÍ INFORMACE V POČÍTAČI PRINCIPY ASCII KÓDU ASCII TABULKA A JEJÍ POUŽITÍ ČESKÝ JAZYK A JEHO KÓDOVÁNÍ NA POČÍTAČI PRINCIPY ŠIFROVÁNÍ DAT NA POČÍTAČI PRINCIPY ZABEZPEČENÍ PŘENOSU DAT NA INTERNETU INTERNET A PRÁCE S INFORMACEMI CÍLOVÉ ZNALOSTI A DOVEDNOSTI KLÍČOVÁ SLOVA VYMEZENÍ ZÁKLADNÍCH POJMŮ ZÍSKÁVÁNÍ INFORMACÍ V PROSTŘEDÍ INTERNETU, INTERNETOVÉ VYHLEDÁVAČE Naposledy 2 vytištěno :55:00

3 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc INTERNETOVÉ VYHLEDÁVAČE DIGITÁLNÍ SPOLEČNOST, ORGANIZACE VĚDOMOSTÍ A JEJICH ZÍSKÁVÁNÍ ZÍSKÁVÁNÍ INFORMACÍ KONTROLNÍ OTÁZKY NÁMĚTY K ZAMYŠLENÍ LITERATURA LITERATURA Naposledy vytištěno :55:00 3

4 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Naposledy 4 vytištěno :55:00

5 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Úvod Úkolem tohoto studijního textu je vybudovat u posluchačů teoretické základy informatiky ve specializaci pro správce informačních systémů, podnikové ekonomiky a manažery. Předmět vytváří základ pro studium dalších předmětů. Jeho obsahem je teoretický základ k problematice realizace informačních systémů. Vymezuje pojem algoritmus a způsob popisu algoritmů. Studenti jsou seznámeni s datovými strukturami a metodou návrhu algoritmů. Jsou jim vysvětleny základní pojmy z teorie množin a s metodami využití teorie grafů při řešení problémů. Dále se studenti seznámí s algoritmizací na bázi strukturovaného jazyka nebo jiného objektového jazyka, s jednotlivými základními a strukturovanými typy jejich implementací a využití při vědeckotechnických výpočtech. Jsou jim vysvětleny úlohy hromadného zpracování dat a práce se soubory na bázi tohoto jazyka. Pochopí význam a použití rekurzivních algoritmů. Praktické využití dovedností vyústí v aplikaci programu na bázi objektového jazyka pro zpracování dat na disku v oblasti jednoduché databáze nebo zpracování výpočtů měření s jejich grafickým znázorněním. Jako informační zdroje budou sloužit ukázkové programy na disku a sbírky úloh z programování se zdrojovými texty v objektovém jazyce. Předmět bude sloužit jako základ pro další nadstavbu v oblasti složitějších algoritmů, které mohou být implementovány v odlišném jazyce. Součástí práce studenta je vypracování semestrálního projektu ve spolupráci se specialistou z oboru. Studijní text je profesně orientovaný a člení se do 7 kapitol: Naposledy vytištěno :55:00 5

6 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Naposledy 6 vytištěno :55:00

7 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Úvod do problematiky Co bude posluchač po prostudování kapitoly znát: 1. Vývoj technologií pro automatizaci výpočtů. 2. Způsob práce mozku a paměti při zpracování informací. 3. Definovat počítač, příkaz a program 4. Popsat hardwarské a von Neumannovo schéma počítače a jejich rozdíl v pojetí. 5. Popsat sběrnicové pojetí PC. 1.1 Jak pracuje mozek člověka Mozek člověka se skládá ze dvou částí tzv. levé a pravé hemisféry. Každá z nich má svoji specifickou funkci: Výzkumy ukazují, že levá hemisféra ovládá pravou polovinu těla, je sídlem logiky, řeči a vůle jedince. Zabezpečuje naše schopnosti práce s daty, fakty, schopnost posuzovat váhy a míry, provádět matematické operace. Je sídlem analytického myšlení, přístupů k systematickému myšlení, sídlem citu pro řád. Hlavní funkcí levé hemisféry je lineární zpracování informací, logika, postupný analytický proces a nepřetržité spojení s našimi minulými zkušenostmi uloženými v paměti. Je určená pro vnímání a plánování času. Levá hemisféra se specializuje na vědu, matematiku a zpracování řeči. [1] Obr. č. 1: Struktura mozku Zdroj: [1] Pravá hemisféra ovládá levou polovinu těla, zapojuje fantazii a tvořivost, vnímání obrázků, schémat, barev, grafických prvků, emocí (pocity úzkosti, radosti, vegetativní nervový systém), chutí, vůní, hudby a rytmu. Pravá hemisféra se pak, jak uvádí, podílí převážně na zpracování vizuálních a prostorových informací, vytváří analogie. Chce dospět k syntéze a mít přehled. Umělecké, hudební a tvořivé schopnosti jsou na pravé hemisféře silně závislé. Pravá hemisféra je sídlem intuice, spontánnosti, hravosti, nadšení, představivosti a podvědomí. Pravá hemisféra se specializuje na vnímání melodie, tónů, barvy zvuku a harmonie, zatímco levé hemisféře náleží vnímání rytmu, vysvětluje dále. Pravá hemisféra dokáže pojmout všechny informace najednou, levá hemisféra informace analyzuje postupně, po malých částech. Právě proto má pravá hemisféra přístup k neviditelnému moři informací, je s touto inteligentní energií v kontaktu převážně podvědomě. Vědomě se s ní můžeme spojit pouze tehdy, když jsou obě hemisféry harmonicky synchronizované. [3] Lidé se liší právě tím, jak jsou schopní využívat obě poloviny mozku. Je třeba naučit se využívat obou částí mozku. Naposledy vytištěno :55:00 7

8 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Člověk, který zatěžuje levou hemisféru, myslí ve slovech, analyzuje věci, dostává se od velkých celků k detailům. Ale vždy musí postupovat krok za krokem, musí se tedy na svou činnost hodně soustředit, stojí ho to hodně síly. Vypracovává pravidla a má zájem je dodržovat. Je tedy zaměřen konzervativně. Znejistí, když něco neodpovídá jeho představě na základě dřívějších zkušeností. Někdy může bezohledně prosazovat své myšlenky a přiklání se k autoritářskému způsobu vedení. Pracuje přesně, soustředěně, detailně, ale může se takto stát malým dříčem. Nemá rád pokusy, u nichž není zaručený předem očekávaný výsledek, nenávidí rizika a nejistotu, tím ale může blokovat kreativitu ostatních a využití všech schopností jeho spolupracovníků. Stále hledá odpovědi, ne vždy však hledá důležité otázky. Vůbec nemá rád otázky, které nemůže zodpovědět. Jeho potřeba jistoty vyvolává také přehnaný pocit sebehodnocení a neustálé kontroly, což vyvolává nervózní napětí v okolí, v komunikaci a vede ke stresu. Naopak člověk, který využívá více pravou hemisféru, myslí v obrazech. Má rád přehled, pravidla, zákonitosti ho nezajímají. Může tedy neustále inovovat a tvořit nová pravidla. V týmu je otevřený pro příjem nových informací a je vždy připravený své stanovisko znovu zvážit. Dovede pochopit osobité vlastnosti různých lidí a k tomu je třeba mít pozorovací nadání a schopnost empatie. Jedná spontánně, intuitivně, rád experimentuje. [4] Všichni bychom měli vědět, jak náš mozek pracuje s daty, která snímají jeho čidla oči, uši, sluch, hmat atd. Je zcela jisté, že mozek musí mít možnost odfiltrovat informace, které mají podprahový význam pro naše chování v daný okamžik a naopak musí uchovat a následně vystavit podle potřeby ty informace, které pro nás v následujícím čase mají smysl. Tyto funkce zabezpečují tři typy paměti: 1. senzorická, 2. krátkodobá a 3. dlouhodobá. P Senzorická (ultrakrátká) paměť je vědomá část paměti, která uchovává informace přicházející ze smyslů. Ty jsou podrženy po dobu nezbytně nutnou ke zpracování a rozhodnutí, zda jsou informace důležité, tedy vhodné k dalšímu zpracování či nikoliv. Pokud ano, postupují dále do krátkodobé či dlouhodobé paměti. Krátkodobá paměť, (nebo také paměť pracovní, operativní) je vědomá aktivní část paměti, ve které se odehrává většina psychických procesů (např. řešení aktuálních problémů). Zpracovávají se v ní informace dodané senzorickou pamětí a informace vyvolané z paměti dlouhodobé, která není dostupná vědomě. Krátkodobá paměť dokáže uchovat vjemy smyslových orgánů a emoce pomocí přeměny (kódování) v mentální reprezentace. Ty může paměť dále zpracovávat a uchovávat. Krátkodobá paměť je omezena na 5-9 prvků (tzv. magické číslo 7±2 ), které při zamezení opakování, uchová na sekund. Kapacitu lze zvýšit spojováním prvků do logických celků. Pro zachování informace v krátkodobé paměti, je třeba si informaci opakovat, jinak je paměťová stopa nenávratně ztracena. P Dlouhodobá paměť je relativně pasivní část paměti uchovávaná v nevědomí. Její kapacita je hypoteticky neomezená. Ukládá významné zkušenosti, např. poznatky nutné k vykonávání nějaké činnosti či poznatky životně důležité. Vštěpování informace do dlouhodobé paměti trvá přibližně 30 minut, a může probíhat buďto záměrně (např. mechanickým opakováním - memorováním), nebo bezděčně. Lépe zapamatovatelné jsou smysluplné obsahy a logické celky což může vést ke zkreslování vzpomínek. Při začleňování nových informací se totiž proměňují i stávající znalosti. Lépe se také pamatují poznatky, které mají citový nádech a které jsou často vybavovány. Takové informace paměť považuje za důležité a tudíž i nutné k dlouhodobému uchování. Biologicky staví dlouhodobá paměť na strukturální nebo molekulární změně dendritů (části neuronu). Počítač je externí zařízení mozku. Chcete-li komunikovat s Angličanem, potřebujete mluvit anglicky. Chcete-li komunikovat s počítačem, potřebujete znát jeho jazyk. Moderní manažer, ekonom nebo účetní používá počítače ve své práci on-line. Naposledy 8 vytištěno :55:00

9 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Jak řeší mozek problém - sekvenčně krok po kroku, algoritmem. Např.: Vypočítej si odvody ze své hrubé mzdy 1 Z MC 2 Načti hrubou mzdu Hrubá mzda 3 Vypočítej odvod Odvod 4 Vypiš hodnotu na papír 5 K Obr. č. : Příklad restrukturalizace problému Mozek si problém restrukturizuje rozloží do posloupnosti kroků tak, aby jej postupně vyřešil. Takovému postupu říkáme algoritmizace a lze jej popsat algoritmem. K řešení problému mozek potřebuje: Vstupní zařízení: oko, ucho, Výstupní zařízení: hlasivky, ruka ke psaní, atd. Řadič který řídí posloupnost kroků V našem případě.podle výše uvedeného algoritmu v krocích 1 až Zahájení programu Načtení hrubé mzdy očima z papíru a uložení do paměti Výpočet výše odvodů a hrubé mzdy a uložení do paměti Vypsání hodnoty odvodů na papír Ukončení práce Mimo algoritmované úlohy řeší mozek i problémy, které nelze algoritmovat lásku, cit, úctu, atd. I když je kapacita mozku veliká, nelze do ní vložit všechny poznatky lidstva. Proto mozek mimo interní knihovny znalostí využívá i knihovny externí vědecké knihovny, informace na internetu, informace z databází, atd. Podobně je na tom i počítač. 1.2 Historie strojů na zpracování dat Cílem lidí bylo postavit stroj, který by měl vlastnosti lidského mozku. Mluvíme o počítači. První zařízení, která se později vyvinula v dnešní počítače, byla velmi jednoduchá a byla založena na mechanických principech. Naposledy vytištěno :55:00 9

10 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Abakus vznikl přibližně před 5000 lety. Je prvním známým nástrojem, který usnadňoval počítání s čísly. Původně šlo jen o zaprášený kámen (starohebrejské slovo abaq znamená prach ), který se používal v Babylonii již od poloviny třetího tisíciletí př. n. l. Nejstarším dochovaným exemplářem je salamiská tabulka, která pochází zhruba z roku 300 př. n. l., avšak historik Hérodotos popsal příklady pro tabulku tohoto typu již o více než století dříve. Ve starověkém Řecku a Římě se používala dřevěná nebo hliněná destička, do které se vkládaly kamínky ( calculli ) odtud název kalkulačka. Obr. č. 2: Abakus Zdroj: [5] První mechanický kalkulátor vznikl někdy mezi roky 150 až 100 před Kristem se objevil první stroj, označovaný jako mechanický počítač, pojmenovaný Mechanismus z Antikythéry (podle řeckého ostrova Antikythera, kde byl objeven vrak lodi). Podle dnešních poznatků sloužil k výpočtu polohy vesmírných těles. Mechanizmus se skládal se z více než třiceti ozubených koleček seřazených v rovnostranných trojúhelnících a na svou dobu byl skutečně miniaturní. Zajímavé je, že mechanizmus je nejspíš založen na heliocentrickém principu (tedy Země obíhá kolem Slunce), kterému se v Evropě začalo dařit až o osmnáct století později. Roku 1614 objevil John Napier novou matematickou metodu, umožňující realizovat násobení a dělení pomocí sčítání a odčítání s využitím logaritmů. Následně byly v Anglii sestaveny první logaritmické tabulky. Po nich následovalo logaritmické pravítko, kde byla reálná čísla reprezentována vzdáleností na ose. Logaritmické pravítko bylo prakticky beze změny používáno dalších 200 let, dokonce bylo používáno i k provádění výpočtů v rámci programu Apollo. Obr. č. 3:Logaritmické pravítko Zdroj: [6] Další známý mechanický kalkulátor sestavil roku 1623 Wilhelm Schickard. Byl sestaven z ozubených koleček z hodinových strojků (proto bývá nazýván počítací hodiny ), uměl sčítat a odčítat šesticiferná čísla a měl být prakticky použit Johannem Keplerem při astronomických výpočtech. Známý francouzský matematik, fyzik a teolog Blaise Pascal vyrobil ve svých 19 letech v roce 1642 počítací stroj, který uměl sčítat a odčítat (Pascaline). Obr. č. 4: Mechanický kalkulátor z ozubených koleček Zdroj: [7] Obr. č. 5: Mechanický kalkulátor Zdroj: [8] V roce 1725 použil Basile Bouchon děrovaný papír pro řízení tkalcovského stavu. O rok později v roce 1726 vylepšil Jean-Baptiste Falcon funkci spojením jednotlivých papírových karet, čím zjednodušil úpravy a změny programu. V roce1801 použil francouzský vynálezce Joseph Marie Jacquard v tkalcovském stavu děrné štítky, které bylo možné vyměnit beze změny v mechanice samotného stavu. Tento okamžik je považován za milník v programovatelnosti strojů. Naposledy 10 vytištěno :55:00

11 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Roku 1820 si dal patentovat francouzs Thomas de Colman mechanický potíačová stroj tzv. Arithmometr. Ten pracoval na principu Lebnizova ozubeného válce a sady ozubených kol. Posun kol byl realizován kličkou. Měl sečítat, odečíta, násobit a dělit. Obr. č. 6: Thomasův Arithmometr Zdroj: [8] Nápad použít děrné štítky k programování mechanického kalkulátoru uplatnil v roce 1835 Charles Babbage. Děrný štítek obsahoval znaky ve formě kombinace dírek a umožňoval obsah opakovaně použít. Obr. č. 7: Řídící jednotka Ch. Babbage Zdroj: [8] Obr. č. 8: Děrný štítek Zdroj: [10] K uchovávání dat a jejich pozdějšímu dalšímu využití použil poprvé děrné štítky Herman Hollerith, který se svou metodou vyhrál v roce 1890 v USA konkurz na sčítání lidu (to předchozí totiž trvalo plných 7 let). Jeho firma se později stala základem slavné počítačové společnosti IBM a tento charakter zpracování dat se udržel dalších 100 let. Pro analýzu a další zpracování dat na děrných štítcích byly vyvíjeny specializované stroje děrovače, tabelátory a třídiče. Technologie děrných štítků o něco později umožnila návrhy prvních programovatelných strojů. Programování spočívalo v tom, že programátor předal své děrné štítky ke zpracování do výpočetního střediska a čekal, jestli získá výsledky nebo výpis chybových hlášení. Pokud došlo k chybě, musel zpětně zapracovat opravu do svého programu, který mezi tím již dále vylepšil. Poté znovu odeslal štítky do výpočetního střediska a celý cyklus se opakoval. Za počítače nulté generace jsou považovány elektromechanické počítače využívající většinou relé. Pracovaly většinou na kmitočtu okolo 100 Hz. Hybnou silou vývoje nulté generace se stala druhá světová válka, kdy došlo paralelně k velkému pokroku v různých částech světa. První, komu se podařilo sestrojit fungující počítací stroj, byl německý inženýr Konrad Zuse. V roce 1934 začal pracovat na konstrukci mechanické výpočetní pomůcky a po řadě různých zdokonalení dokončil v roce 1936 základní návrh stroje pracujícího v dvojkové soustavě s aritmetikou v plovoucí čárce a programem na děrné pásce (jako nosič byl použit kinofilm). Neznalost prací Babbageho a jeho následovníků však měla za následek, že Zuse do svého projektu nezahrnul podmíněné skoky. Přes tento nedostatek však můžeme tvrdit, že roku 1938 spatřil světlo světa první počítač nazvaný Z1. Byl ještě elektromechanický s kolíčkovou pamětí na 16 čísel a byl velmi poruchový, pro praktické použití nevhodný. Naposledy vytištěno :55:00 11

12 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Obr. č. 9: Počítač Z1 Zdroj: [11] Zuse proto přistoupil ke stavbě počítače Z2, který již obsahoval asi 200 relé. Paměť však byla stále ještě mechanická, převzatá ze Z1. Potom se Konrád Zuse spojil s Helmutem Schreyrem a společně se pustili do vývoje ještě výkonnějšího počítače Z3, který dokončil v roce Tento první prakticky použitelný počítač na světě obsahoval 2600 elektromagnetických relé a byl užíván též k výpočtům charakteristik balistických raket V2. Pracoval ve dvojkové soustavě a prováděl až 50 aritmetických operací s čísly v pohyblivé řádové čárce za minutu (ani ne jedna za sekundu). Paměť byla na tehdejší dobu velká, 64 čísel po 22 bitech. Údaje se ručně zadávaly pomocí klávesnice. Počítač byl v roce 1944 zničen při náletu. Obr. č. 10: Relé Zdroj: [13] Obr. č. 11: Relé Zdroj: [12] oku 1943 zkonstruoval v Bletchley Park anglický inženýr Tomáš H. Flowers ( ) prototyp počítače určeného k lámání německých šifer, vytvářených šifrovacími stroji Enigma a armádními dálnopisy (Schlüsselzusatz 40; SZ 40, pak T52; ve spojeneckém kódu FISH Sturgeon a Tunny), který se nazýval Colossus Mark I. Používal vakuové elektronky a v následujícím roce byl zprovozněn vylepšený Colossus Mark 2. [38] Obr. č. 12: Počítač Z2 Zdroj: [14] Obr. č. 13: Elektronka Zdroj: [15] Obr. č. 14: MARK1 Zdroj: [16] Naposledy 12 vytištěno :55:00

13 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Obr. č. 15: Kódovací stroj Enigma Zdroj: [17] Obr. č. 16: Mark 2 Zdroj: [18] Prvním počítačem vyrobeným v Československu byl SAPO (SAmočinný POčítač), který byl uveden do provozu v roce Obsahoval 7000 relé a 400 elektronek. Měl magnetickou bubnovou paměť o kapacitě 1024 dvaatřicetibitových slov. Pracoval ve dvojkové soustavě s pohyblivou řádovou čárkou. Tento počítač měl dvě zvláštnosti: první bylo, že byl pětiadresový neboli součástí každé instrukce bylo 5 adres (2 operandy, výsledek a adresy skoků v případě kladného a záporného výsledku) a druhou bylo, že se vlastně jednalo o tři shodné procesory, které pracovaly paralelně. Výsledek každé operace z jednotlivých procesorů se mezi sebou porovnal a o výsledku se rozhodovalo hlasováním. Pokud byl Obr. č. 17: SAPO Zdroj: [19] shodný alespoň ve dvou případech, byl považován za správný. Pokud se ve všech třech případech lišil, operace se opakovala. Počítač SAPO byl zkonstruován prof. A. Svobodou, Dr. Oblonským a jejich spolupracovníky v Ústavu matematických strojů (pozdější Výzkumný ústav matematických strojů) a byl instalován v budově ústavu na Loretánském náměstí. Tři roky po jeho spuštění, v roce 1960, počítač SAPO shořel. Z jiskřících releových kontaktů se vzňala loužička oleje, kterým se relé promazávala. První generace je charakteristická použitím elektronek a v menší míře též ještě relé (elektromechanika). Počítače byly poměrně neefektivní, velmi drahé, měly vysoký příkon, velkou poruchovost a velmi nízkou výpočetní rychlost. Zpočátku byl program vytvářen na propojovacích deskách, později byly využity děrné štítky a děrné pásky, které též sloužily spolu s řádkovými tiskárnami k uchování výsledků. V té době neexistovaly ani operační systémy ani programovací jazyky ani assemblery. Počítač se ovládal ze systémové konzole. Jeden tým lidí pracoval jako konstruktéři, operátoři i technici, jejichž úspěchem bylo ukončit výpočet bez poruchy počítače. V roce 1944 byl na univerzitě v Pensylvánii uveden do provozu elektronkový počítač ENIAC, který byl prvním počítačem, který pracoval podobně jako dnešní počítače. Na rozdíl od Z3 umožňoval vytvoření smyčky i podmíněné skoky. Prováděl až 5000 součtů za sekundu, ale byl energeticky velmi náročný, poruchový a jeho provoz byl drahý. Jeho provoz byl ukončen v roce ENIAC byl přímou inspirací pro počítač MANIAC (Mathematical Analyser Numerical Integrator And Computer), který byl sestaven roku 1945 a uveden do provozu John von Neumannem. V laboratořích Los Alamos National Laboratory byl použit k matematickým výpočtům popisujícím fyzikální děje a byl využit i k vývoji jaderné bomby. Počítače druhé generace charakterizuje použití tranzistorů, které dovolily zlepšit všechny parametry počítačů (zmenšení rozměrů, zvýšení rychlosti a spolehlivosti, snížení energetických nároků). Díky počátku obchodu s počítači byla snaha o co nejlepší využití počítače, proto vznikají první dávkové systémy, které byly zaváděny do počítače pomocí děrné pásky, štítků nebo magnetické pásky a které Naposledy vytištěno :55:00 13

14 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc se využívaly při prodeji strojového času počítače (pronájem počítače po dobu vykonání programu). Počátek využívání operačních systémů, jazyka symbolických adres, první programovací jazyky (COBOL, FORTRAN, ALGOL). Roku 1960 byl ve Výzkumném ústavu matematických strojů (VÚMS) spuštěn elektronický počítač EPOS 1, zkonstruovaný pod vedením prof. A. Svobody, ale už v roce 1962 upravený typ EPOS 2, osazený tranzistory. Počítač pracoval v desítkové aritmetice, v kódu, který umožňoval automatickou opravu jedné chyby (délka slova 12 číslic), vykonával přes 30 tisíc operací za sec. a měl feritovou paměť s kapacitou 40 tisíc slov. Zvláštností počítače bylo hardwarové zařízení pro sdílení času mezi až pěti nezávislými programy. V 60. a 70. letech se vyráběl jako ZPA 600 a ZPA 601 i v mobilní verzi a byl vybaven poměrně bohatým software (operační systém, assembler, překladače). Třetí generace je charakteristická použitím integrovaných obvodů. S postupem času roste počet tranzistorů v integrovaném obvodu (zvyšuje se integrace). V této době byl výkon počítače úměrný druhé mocnině jeho ceny, takže se vyplatilo koupit co nejvýkonnější počítač a poté prodávat jeho strojový čas. Majitelé požadovali maximalizaci využití počítače, proto se objevilo multiprogramování zatímco jeden program čeká na dokončení I/O operace, je procesorem zpracovávána druhá úloha. S tím úzce souvisí zavedení pojmu proces, který označuje prováděný program a zahrnuje kromě něj i dynamicky se měnící data. Objevuje se první podpora multitaskingu, kdy se programy vykonávané procesorem střídají, takže jsou zdánlivě zpracovávány najednou. Tento pokrok umožňuje zavedení interaktivních systémů (počítač v reálném čase reaguje na požadavky uživatele). Kromě velkých střediskových počítačů (mainframe, tzv. sálový počítač) se objevují i první minipočítače a mikropočítače. Obr. č. 18: EPOS1 Zdroj: [20] Obr. č. 19: Tranzistor Zdroj: [21] Obr. č. 20: Tranzistory Zdroj: [22] Čtvrtá generace je charakteristická mikroprocesory a osobními počítači. Mikroprocesory v jednom pouzdře obsahují celý procesor (dřívější procesory se skládaly z více obvodů) a jsou to integrované obvody s vysokou integrací, které umožnily snížit počet obvodů na základní desce počítače, zvýšila se spolehlivost, zmenšily rozměry, zvýšila rychlost a kapacita pamětí. Nastává ústup střediskových počítačů (mainframe) ve prospěch pracovních stanic a v roce 1981uvedeného osobního počítače IBM PC. Počítač shodné konstrukce vyrábějí i jiní výrobci jako tzv. IBM PC kompatibilní počítače. Přichází éra systémů DOS a vznikají grafická uživatelská rozhraní. Poměr cena/výkon je nejlepší u nejvíce prodávaných počítačů, vyšší výkon je vykoupen exponenciálním růstem ceny, proto se již nevyplatí koupit nejvýkonnější počítač na trhu a z mnoha běžných a laciných počítačů vznikají clustery. S rozvojem počítačových sítí vzniká Internet, distribuované systémy. Výkon počítačů se zvyšuje použitím několika procesorů (multiprocesory). Naposledy 14 vytištěno :55:00

15 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Obr. č. 21: Mikroprocesor Zdroj: [23] Obr. č. 22.: Mikroprocesory Zdroj: [24] 1.3 Architektura počítačů Pro vývoj moderních počítačů byly významné tři následující koncepce: Harwardská koncepce Harvardská koncepce předpokládá existenci dvou oddělených pamětí. V první paměti jsou uloženy instrukce (programy) a ve druhé jsou uložena proměnná data. Tato koncepce se využívá např. v jednoúčelových programovatelných automatech nebo kapesních kalkulátorech. Hlavním rysem harvardské architektury je fyzické oddělení dat a instrukcí. Proto Harvardská architektura umožňuje, aby data i instrukce měly různou reprezentaci a implementaci. Paměť obsahující instrukce se často realizuje jako ROM 1, tedy paměť určená pouze pro čtení. Data a uživatelské programy se ukládají do paměti typu RAM 2, do níž lze zapisovat a číst. Výhodou této architektury je možnost přistupovat do obou paměti současně. Harvardská architektura se používá hlavně tam, kde se program téměř nikdy nemění (např. malá vestavěná zařízení). Obr. č. 23: Harvardská architektura Zdroj: Von Neumannovo schéma počítače Von Neumannovská (někdy také Stanfordská) architektura je pojmenovaná podle slavného Američana maďarského původu Johna von Neumanna. V této architektuře jsou instrukce i data uloženy v téže paměti a nejsou nijak explicitně rozlišeny. Paměť je organizována lineárně na buňky stejné velikosti, které jsou adresovatelné celými čísly. Data jsou reprezentována binárně a jejich datové typy se implicitně nerozlišují. Instrukce se 1 ROM - Read-Only Memory 2 RAM - Random-Access Memory Obr. č. 24: Von Neumannovo schéma počítače Zdroj: Naposledy vytištěno :55:00 15

16 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc provádí jednotlivě a to postupně tak, jak jsou zapsány v paměti, dokud není toto pořadí ovlivněno speciální instrukcí (např. skoky). Von Neumannovská architektura najde využití všude tam, kde je požadována univerzálnost a jednoduchost. Von Neumannova architektura je model architektury počítače využívající společnou paměť pro data i instrukce. Počítač má obsahovat procesor, řadič, ALU, operační paměť, vstupní a výstupní zařízení. Je základem současných počítačů. Aritmetickologická jednotka: jednotka provádějící veškeré aritmetické výpočty a logické operace. Obsahuje sčítačky, násobičky (pro aritmetické výpočty) a komparátory (pro porovnávání). Řadič: řídící jednotka, která řídí činnost všech částí počítače. Toto řízení je prováděno pomocí řídících signálů, které jsou zasílány jednotlivým modulům. Reakce na řídící signály, stavy jednotlivých modulů jsou naopak zasílány zpět řadiči pomocí stavových hlášení. Operační paměť: Slouží k uchování zpracovávaného programu, zpracovávaných dat a výsledku výpočtu. Vstupní zařízení: zařízení určená pro vstup programu a dat. Výstupní zařízení: zařízení určená pro výstup výsledku, které program zpracoval. Základním rozdílem mezi von Neumannovou a Harvardskou architekturou je, že Harvardská architektura má oddělenou paměť pro data a instrukce (každá zvlášť), kdežto u von Neumannovy architektury jsou instrukce a data v jedné paměti a mezi nimi se vybírá pomocí různé adresy Sběrnicová struktura současné pojetí PC procesor hodiny paměti adresová datová Počítače typu PC jsou konstruovány na bázi sběrnic (adresová, datová, řídící), které propojují procesor, paměti (interní a externí) a přidaná zařízení. řídící sběrnice Obr. č. 25: Sběrnicové pojetí PC Zdroj: vlastní přídavná zařízení paměť RAM procesor připojení HDD a CD ROM napájení základní desky sběrnice Obr. č. 26: Základní deska PC Zdroj: vlastní Naposledy 16 vytištěno :55:00

17 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc př. n. l. Abakus př. n.l. Mechanický kalkulátor - Mechanismus z Antikythéry 1623 Mechanický kalkulátor z ozubených kol (Wilhelm Schickard) 1801 Využití stroje na děrné štítky v tkalcovském stavu - Joseph Marie Jacquard 1820 G. W. Lebniz 1890 Herman Hollerith sčítání lidu v USA 1938 Z1 K. Zuse počítač nulté generace (relé) 1944 ENIAC počítač první generace (elektronka) 1960 VÚMS EPOS 1 počítač druhé generace (tranzistor) 1970 IBM 370 počítač třetí generace (integrované obvody) sálové počítače 1981 PC čtvrtá generace počítačů (mikroprocesory), IBM 5157, INTEL x 86, osobní počítače Tabulka č. 1: Vývoj strojů na zpracování dat Zdroj: vlastní 1.4 Umělá inteligence Viděli jsme, že mozek člověka má úžasné schopnosti paměti, řešení situací, vnímání krásna, citu atd. Po staletí se člověk snaží vytvořit stroj, který by měl schopnosti našeho mozku. Potřebuje k tomu vytvořit technické řešení hardware 3 a tomuto technickému řešení vdechnout život příslušným software 4. Lidé vyvíjí mocné systémy paralelně pracujících procesorů, nové technologie pamětí. Zkoumají procesy rozhodování člověka, způsob jeho komunikace se svým okolím, reakce na své okolí. Snaží se vytvořit stroje, které by řídily výrobní linky identicky s jednáním člověka. Snaží se vytvořit umělou bytost, která by měla stejné rozhodovací postupy jako člověk, stejný pohyb, mimiku, komunikaci. Přirozenou inteligenci mozku se snaží vědci imitovat tzv. umělou inteligencí, která je založena na matematickém popisu inteligence člověka. Umělá inteligence (artificial intelligence) je člověkem vytvořený model inteligence vrozené. Nazývá se tak i vědecká disciplína spojující psychologii, matematiku a informatiku, která přirozenou inteligenci studuje a snaží se jí napodobovat pomocí formálních modelů a algoritmů. Je celkem obtížné definovat, co to vlastně inteligence je. Můžeme o ní hovořit jako o souboru těchto dovedností: 1. plánování následujících akcí s ohledem na maximální možný prospěch jednotlivce či skupiny 2. řešení neznámých problémů na základě podobných situací v minulosti 3. schopnost indukce, dedukce, abstrakce a klasifikace 4. rozpoznávání opakujících se vzorů 5. hledání podobností mezi věcmi a událostmi vzdálenými v čase i prostoru 6. schopnost vyjadřování a komunikace 7. schopnost učení a třídění nových poznatků Disciplíny umělé inteligence 1. řešení problémů (např. vyhledávání cesty ve stavovém prostoru) 2. reprezentace znalostí (např. inferenční stroje) 3. plánování 4. komunikace (např. multiagentní systémy) 5. učení se (např. neuronové sítě) 6. pohyb (např. robotika) 3 Hardware - veškeré fyzicky existující technické vybavenípočítače 4 Software programové vybavení, sada počítačových programů používaných v počítači, které provádějí nějakou činnost Naposledy vytištěno :55:00 17

18 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc vnímání (např. rozpoznávání vzorů), atd. I když se zatím nepodařilo sestrojit plně samostatnou a univerzální umělou inteligenci, s jakou se setkáváme ve sci-fi filmech, pronikla už spousta praktických aplikací i do našeho každodenního života. Algoritmy umělé inteligence jsou všude kolem nás digitální fotoaparáty, které rozpoznávají obličeje a úsměvy, lékařské expertní systémy, řízení dopravních prostředků, optimalizace návrhu a výrobních procesů, automatické varovné systémy, dopravní regulační systémy Spolu s rychlým vývojem tohoto oboru vyvstávají filozofické a etické otázky: 1. Bude etické inteligentní stroj zničit? 2. Může někomu patřit? 3. Neovládnou inteligentní stroje planetu, jak to známe z katastrofických filmů? Jde o stejně složité otázky, jako tomu je v případě problematiky klonování lidské bytosti. Touha lidstva po poznání náš žene k novým výzkumům. Nedostalo však lidstvo do rukou nástroje, na které ještě nedozrálo? Odpovědi na tyto otázky můžeme hledat už dnes, ale na skutečnou potřebu tyto problémy řešit si (naštěstí) ještě počkáme. 1.5 Shrnutí Od starověku se lidé snaží automatizovat výpočty. Vývoj technologií na zpracování dat a informací, které byly schopné plnit tento úkol ve své době odpovídal úrovni technologického poznání své doby: zařízení na mechanických principech (Abakus 5000 př. n. l., logaritmické pravítko) mechanický kalkulátor (Blaice Pascal , Lebniz ) děrnoštítková zařízení (1835 Charles Babbage) releové technologie (Z1, Z2, Z ) první generace počítačů - počítače na bázi elektronek (1944 ENIAC) druhá generace počítačů počítače na bázi tranzistorů (1960 EPOS1) třetí generace počítačů počítače na bázi integrovaných obvodů (1970) čtvrtá generace počítačů počítače na bázi mikroprocesorů (1980) Při řešení tohoto problému se lidé snaží vycházet z toho, jak funguje lidský mozek v takových případech. Mozek člověka využívá pro zpracování informací ze svého okolí tři paměti: 1. Senzorickou (ultrakrátká) - uchovává informace přicházející ze smyslů jen do okamžiku rozhodnutí o užitečnosti informace. 2. Krátkodobá (pracovní, operativní) srovnává informace ze senzorické paměti s vybavenými informacemi z dlouhodobé paměti. Informace udržuje s. 3. Dlouhodobou implikace informace do dlouhodobé paměti trvá přibližně 30 s. a může probíhat buď záměrně, nebo bezděčně. Mozek člověka se skládá z levé a pravé hemisféry. Levá hemisféra je sídlem logiky, řeči a vůle jedince, zpracovává informace lineárně a úzce spolupracuje s informacemi v dlouhodobé paměti. Pravá hemisféra vytváří analogie, realizuje syntézy, je sídlem intuice, představivosti, atd. Paměť člověka má své algoritmy na uložení dat a na jejich vybavení a zpracování. Vývoj techniky v této oblasti prošel od jednoúčelových mechanismů ve starověku a středověku k víceúčelovým programovatelným zařízením v současnosti, k počítačům. Činnost současných počítačů je řízena posloupností příkazů instrukcí. Posloupnost příkazů, která umí vyřešit určitý Naposledy 18 vytištěno :55:00

19 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc problém, nazýváme program. Program je umístěn v paměti počítače MC (Memory Centrále) ve formě nul a jedniček. Uživatel jej píše v tzv. vyšších jazycích, například http, PHP atd., které jsou blízké myšlení a logice člověka. Moderní pojetí počítačů nabídl von Neumann, který umístil data i program do centrální paměti. S rozvojem technologií byly vyvinuty mocné technologie pro vstup a výstup dat z počítače, a pro jejich uchování (různé druhy pamětí), vybavení a zpracování. 1.6 Otázky 1. Jaké funkce plní pravá hemisféra lidského mozku? 2. Jaké funkce plní levá hemisféra lidského mozku? 3. Jaké znáte druhy paměti? 4. Jak lze charakterizovat dlouhodobou paměť? 5. Kdy byly vyrobeny první číslicové počítače? 6. Čím je charakteristická první generace počítačů? 7. Čím je charakteristická druhá generace počítačů? 8. Čím je charakteristická třetí generace počítačů? 9. Čím je charakteristická čtvrtá generace počítačů? 10. Jaký je rozdíl mezi von Neumannovou a Harvardskou architekturou? 11. Charakterizujte sběrnicovou strukturu PC. Naposledy vytištěno :55:00 19

20 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Naposledy 20 vytištěno :55:00

21 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Algoritmizace ekonomických úloh Co bude posluchač po prostudování kapitoly znát: 1. Definovat vývojový diagram, jeho značky a nakreslit jej pro jednoduché matematické a 2. ekonomické aplikace. 3. Popsat vstup, zpracování a výstup dat z počítače. 4. Na praktických příkladech popsat vstup, zpracování a výstup dat z počítače, práci MC, funkci proměnné v tomto případě. 5. Použít VD pro organizaci práce manažera a jeho útvaru. 2.1 Algoritmus a vývojový diagram Konstatovali jsme již, že při řešení jakéhokoliv problému mozek snaží se jeho řešení rozčlenit do sekvence navazujících jednoduchých dílčích kroků. Mluvíme o algoritmizaci a algoritmech. Algoritmy vznikaly už dávno před zkonstruováním prvních počítačů. Samotné slovo "algoritmus" vzniklo ze jména perského matematika, který žil v 9. století a jmenoval se Mohammed al-khowarizmí (v latinském přepise Algoritmus). Zabýval se především pravidly pro aritmetické operace s čísly. Například Eukleidův algoritmus pro výpočet největšího společného dělitele dvou přirozených čísel pochází už ze 4. až 3. století před naším letopočtem. [25] Vhodně sestavené algoritmy lze převedením do programovacího jazyka řešit na počítačích, např. na tzv. Turingově stroji. Turingův stroj je jednoduché abstraktní výpočetní zařízení, které se používá ke studiu vypočitatelnosti tedy ke zjištění, které problémy s jeho použitím vyřešit lze a které ne. V roce 1937 jej definoval původem anglický filozof, matematik a kryptograf Alan Mathison Turing. [25] Algoritmus můžeme definovat jako jednoznačně určenou posloupnost konečného počtu elementárních kroků vedoucí k řešení daného problému, přičemž musí být splněny základní vlastnosti každého algoritmu: 1. Hromadnost a univerzálnost - algoritmus musí vést k řešení celé třídy úloh, vzájemně se lišících pouze vstupními údaji. Musí řešit úlohu pro libovolnou přípustnou kombinaci vstupních dat a musí pokrývat všechny situace, které mohou při výpočtu nastat. 2. Determinovanost (jednoznačnost) - v každém kroku algoritmem popsaného postupu musí být jednoznačně určeno, co je výsledkem tohoto kroku a jak má algoritmus dále pokračovat. Pro stejná vstupní data vydá algoritmus vždy stejný výsledek. 3. Konečnost - algoritmus v konečné době skončí. 4. Rezultativnost - algoritmus při zadání vstupních dat vždy vrátí nějaký výsledek. 5. Správnost - výsledek vydaný algoritmem musí být správný. 6. Výsledek - lze při provádění algoritmu získat zcela mechanicky. Algoritmus, který má řešit nějakou úlohu je třeba ověřit (verifikovat jeho správnou funkci). Vývojové diagramy [26] Vývojový diagram je druh diagramu, který slouží ke grafickému znázornění jednotlivých kroků algoritmu nebo obecného procesu. Vývojový diagram používá pro znázornění jednotlivých kroků algoritmu pomocí symbolů, které jsou navzájem propojeny pomocí orientovaných šipek. Naposledy vytištěno :55:00 21

22 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Symboly reprezentují jednotlivé procesy, šipky tok řízení. Vývojové diagramy jsou často využívány v informatice během programování pro analýzu, návrh, dokumentaci nebo řízení procesu. Klasický vývojový diagram se skládá s následujících druhů symbolů: Úsečka (spojnice) či množina navazujících úseček končící šipkou určuje směr zpracování algoritmu Svislé nebo vodorovné čáry - mohou se křížit nebo spojovat. - směr dolů a doprava je prioritní. Startovací a ukončovací symboly - jsou znázorněny pomocí kruhů, oválů či zaoblených obdélníků, obvykle obsahují nápis Start nebo Konec, či podobnou frázi určující začátek a konec procesu (např. Zaslání požadavku nebo Odebrání produktu ). Začátek Konec Šipky - zobrazují řídící tok. Šipka směřující z jednoho symbolu a končící u druhého naznačuje, že řídící tok přechází z jednoho symbolu na druhý. Obdélník s popisem definuje dílčí krok zpracování algoritmu Výpočet faktury Kosočtverec větvení postupu v algoritmu v závislosti na splnění podmínky, viz skok A = B ne ano Podprogramy - jsou zobrazovány pomocí obdélníku se svislými čarami po stranách. Používají se k zobrazení skupiny kroků procesu pomocí jednoho symbolu. Podprogramy jsou takové části algoritmu, které se mohou opakovat a mohly by být tvořeny samostatným vývojovým diagramem. Kontrola Vstup/Výstup - k jejich zobrazení se používá rovnoběžníku, v případě uživatelského vstupu se zobrazuje pomocí lichoběžníku. Příklad: Získej proměnnou X od uživatele; zobraz proměnnou X. Čti A Tisk A Naposledy 22 vytištěno :55:00

23 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Podmíněný cyklus - zobrazen pomocí šestiúhelníku. Cyklus probíhá, dokud vyhovuje podmínce, poté přejde k dalšímu kroku algoritmu. I = 1.. N Spojovací značka - pro její značení se obvykle používá kruh. Používá se tam, kde je třeba spojit více toků procesu do jednoho toku. 2.2 Vybrané úlohy na procvičení základů algoritmů V následujícím textu se naučíme používat značky v reálných vývojových diagramech pro řešení úloh z praxe k využití na počítači. Je dobré si udělat analogii mezi řešením takových úloh v našem mozku a množství řešení na hardware a software současných počítačů. Analyzujeme, jak by náš mozek řešil následující úlohu (Úloha č. 1): Máš načíst pět čísel, která jsou napsána na listu papíru a součet napsat zpět na tento papír = 27 Mozek v takovém případě vyvolá aktivitu, která sejme první číslo očima, v oku jej převede na elektrické signály a tyto odešle do té oblasti paměti, v níž má místo pro uložení takového čísla. Počítač získá první číslo z klávesnice, vyvolá tzv. knihovnu input/output (dále jen I/O), spustí v ní program na přenos čísla a jeho uložení do paměti do místa, které nazýváme proměnná. Tuto oblast paměti (proměnnou) musíme pojmenovat, abychom s jejím obsahem mohli dále pracovat. Počítač však potřebuje vědět, co bude do dané proměnné uloženo (celé číslo, číslo s desetinným místem, znak, řetězec), jak velký prostor si má vyhradit a jaké operace budeme pomoci ALU s těmito proměnnými realizovat. Mluvíme o deklaraci proměnných. Když mozek načte všechna čísla, sečte je a výsledek uloží opět do paměti, spustí procesy k přenosu součtu na ovládání ruky, která výsledek napíše na papír. Počítač postupuje při výstupu dat stejně. Nejprve sečte hodnoty čísel, které jsme uložili do proměnných a, b, c, d, e, a výsledek uloží do proměnné "f". Následně spustí knihovnu I/O a v ní program, který vystaví hodnotu proměnné "f" na obrazovku. V úkolu č.1napíšeme vývojový diagram a popisujeme vytvoření proměnných v paměti. Plnění jednotlivých bloků (příkazů, které v programu C zapíšeme pomocí tzv. klíčových slov) postupně řadí tzv. řadič, viz von Neumannovo schéma v kapitole Naposledy vytištěno :55:00 23

24 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Úkol č. 1: Zadání: 1 2 Nakreslete vývojový diagram pro řešení následující úlohy: Načtěte pět čísel z klávesnice, sečtěte je a vytiskněte výsledek. Číslo se musí zadat. 3 4 Metodický pokyn: Nejprve si promyslíme, jaké činnosti musíme udělat, abychom problém vyřešili. Mluvíme o algoritmizaci úlohy. Potřebujeme vědět, jakého typu budou proměnné, abychom jim mohli přidělit rozsah paměti na jejich uložení. Data čteme z klávesnice. Dále budeme muset sečíst proměnné a uložit do proměnné, v níž bude součet (f); nakonec potřebujete tentýž součet vytisknout na obrazovku počítače. Řešení: Nyní můžeme nakreslit vývojový diagram a práci proměnných v paměti. Realizaci kroků provádí řadič. Nejprve se naučíme číst zadání. V textu je uloženo, abychom realizovali kroky Vývojový diagram: Paměť - MC Z řadič Deklarace proměnných Do proměnné a, b, c, d, e, a f budeme vkládat celá čísla. 2 Vstup dat z klávesnice a, b, c, d, e a Proměnné v paměti a, b, c, d, e, f ALU b c Načtení dat z klávesnice do proměnných 1 d 3 e Realizace f = a + b + c + d + e f f = Uložení součtu všech proměnných do proměnné f 4 Tisk f = ; f (obrazovka) Tento příkaz vytiskne na obrazovku vše, co je v uvozovkách f =, v našem případě f = a dále vytiskne obsah proměnné, která stojí za středníkem K Pozn.: Místa v paměti označená jako a, b, c, d, e, f nazýváme proměnná. Naposledy 24 vytištěno :55:00

25 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Test umístěný mezi apostrofy v příkazu Tisk se zobrazí na obrazovce počítače. Při popisu počítače von Neumannovy koncepce (viz kapitola kapitole ) jsme konstatovali, že má tzv. aritmeticko logickou jednotku. V úkolech č. 2 a 3 vidíme její využití pro řešení úkolu. V úkolu č. 1 pracovala ALU v bloku Realizace f = a + b + c + d + e. Jejím úkolkem je sečíst hodnoty v proměnných a, b, c, d, e, a součet uložit do f. Úkol č. 2 Vytvořte algoritmus, který načte dvě čísla z klávesnice, určí, které ze dvou zadaných čísel je větší a toto zobrazí na obrazovce. Čísla se nesmí rovnat. Proveďte verifikaci algoritmu. Řešení: Z Z Deklarace a, b Deklarace a, b PAMĚŤ 2 3 Načtení dvou čísel knihovna I/O ALU a b a b Načtěte hodnotu do proměnné a (pracuje knihovna I/O). Načtěte hodnotu do proměnné a (pracuje knihovna I/O). 1 Najdi větší z obou čísel a > b NE Porovnej obsah proměnné a a proměnné b. 4 Vytiskni větší číslo knihovna I/O ANO Větší číslo je a Větší číslo je b Vytiskni větší číslo. (pracuje knihovna I/O) K K Úkol č. 3 Najděte největší číslo ze tří čísel, které vstupují z klávesnice a proveďte verifikaci vývojového diagramu. Čísla se nesmí rovnat. Řešení: Při řešení této úlohy si musíme uvědomit, že budeme potřebovat v paměti tři místa na uložení zadávaných čísel z klávesnice tři proměnné. Pojmenujeme je a, b, c. Viděli jsme již, že již v počátcích řešení algoritmu musíme vědět, co budeme do daných proměnných vkládat. V tomto případě to bude celé číslo, číslo s desetinným místem, znak nebo řetězec znaků. Jejich načtení realizujeme s využitím knihovny I/O. Znamená to, že potřebujeme při řešení úkolu vyvolat specializované programy, které jsou schopny převést data z klávesnice do proměnných a z proměnných na obrazovku. Do vývojového diagramu potřebujeme doplnit příkaz vyvolání knihovny I/O: Vyvolání knihovny I/O Naposledy vytištěno :55:00 25

26 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Verifikace programu znamená prověření správnosti jeho činnosti pro vstupní data. Nejjednodušší verifikace tedy znamená, že vytvoříme takové soustavy vstupních dat, abychom pokud možno prověřili všechny větve a varianty činnosti vývojového diagramu. Posloupnost řešení příkazů od po realizuje řadič. Z K Po jejich načtení se spustí aritmeticko logická jednotka (ALU ve von Neumannově schématu) tak, že postupně porovnává obsah dvojic proměnných a, b, c a v každé větvi, uloží jejich největší hodnotu pro vstupní kombinaci čísel do proměnné max, a nakonec obsah této proměnné vytiskne na obrazovku. Z Z PAMĚŤ Vyvolání knihovny i/0 Budeme tedy potřebovat čtyři proměnné! Deklarace proměnných a a b max Deklarace proměnných b c Načtení tří čísel ALU Najdi z těchto tří čísel největší ANO c a > b NE ALU ANO a > c NE NE b > c ANO MAX = a MAX = c MAX = c MAX = b Vytiskni maximum K Vytiskni maximum K Verifikujte pro data: a = 4, b = 3, c = 5 a = 5, b = 3, c = 2 a = 3, b = 5, c = Ukázka využití technologií algoritmů v práci manažera a účetního Následující úkol presentuje možnosti použití počítače mzdovou účetní při hrubém odhadu objemu hrubých mezd a odvodů v příslušném měsíci. Před zahájením řešení této úlohy je třeba si ujasnit, jak má vypadat výstupní sestava, které proměnné budeme potřebovat a co do nich budeme zapisovat (čísla, texty příjmení, měsíc, atd.) a zda budeme potřebovat zapojit do činnosti knihovnu I/O. Označme si vstupní proměnné ty, do nichž načítáme data z klávesnice a výstupní proměnné ty, jejichž obsah vystavíme na obrazovku počítače. Naposledy 26 vytištěno :55:00

27 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Úkol č. 4 V podniku Eskaliber, s.r.o. pracují následující pracovníci: p. Koníček Aleš p. Tománek Petr p. Šula Jan p. Prát Antonín p. Koubek Karel p. Čujan Petr p. Forman Jiří Vaším úkolem je vytvořit vývojový diagram pro řešení, které dovolí v daném měsíci pro jednotlivé pracovníky zadat hrubé mzdy, vypočítat z hrubých mezd odvody a vytisknout níže uvedenou sestavu. Výstupní sestava Hrubé mzdy a odvody za měsíc: 1 K1 a 1 a 2 a 3 a 4 a Pořadí Příjmení 1 Jméno Hrubá mzda Odvody 1 Koníček Aleš Součet hrubé mzdy: Součet odvodů: V Kunovicích, dne K2 K3 K4 Před zahájením řešení úkolu je třeba definovat, které proměnné budeme potřebovat a zda budeme potřebovat knihovnu I/O. vstupní proměnné 1-8 výstupní proměnné 9-11 Naposledy vytištěno :55:00 27

28 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Nyní již můžeme nakreslit vývojový diagram pro řešení tohoto problému: Cyklus se opakuje, dokud nejsou načtena data pro všechny pracovníky Z Zadání Zadání Výpočet Výpočet a tisk výstupní sestavy Typy proměnných: 1 2 řetězec znaků celé čísla řetězec znaků celé číslo 6 celé číslo den 7 celé číslo nebo řetězec znaků (leden) 8 celé číslo rok 9 číslo s desetinným místem 10 celé číslo 11 číslo s desetinným místem K Naposledy 28 vytištěno :55:00

29 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Z A Deklarace proměnných Hrubé mzdy a odvody za měsíc: K1 viz 1 měsíc Mezera K1 1 P2(a) den K2 6 Tisk a1 a2 a3 a4 a5 měsíc K3 7 P2 (b) Načtení vstupních rok pořadí a1 příjmení jméno hrubá mzda a2 a3 a4 K4 1 Koníček Aleš Výpočet odvodů a5 8 P1(a) Podprogramy P2 (c) P2 (d) P2 (e) P2 (f) P2 (g) H = a4 + b4 + c4 + d4 + e4 + f4 + g4 Součet hrubé mzdy ; H Tisk výstupní P1 (b) o = a5 + b5 + c5 + d5 + e5 + f5 + g5 11 P1 (c) P1 (d) P1 (e) Načtení vstupních dat (Z A), P1 (f) Součet odvodů ; o Mezera V Kunovicích, dne, K2, K3, K4 13 P1 (g) NE Konec A ANO Vymaž obrazovku K Nejprve tedy zadáme měsíc, za který chceme sestavu vypracovat. V položce reálné sestavy a ten se uloží v paměti do proměnné K1. 1 zadáme měsíc do Data načtená v načtou den (př. 15), měsíc (př. 1, nebo řetězec znaků leden ) a rok (př. 2013). Den vypracování sestavy se uloží do proměnné K2, měsíc do proměnné K3 a rok do proměnné K4. Výstupem je: V Kunovicích dne K2, K3, K4 Nyní je třeba zadat údaje o jednotlivých pracovnících. V sestavě vidíme, že u každého pracovníka chceme zadat pořadí (pro prvního pracovníka je pořadí 1, uložená v proměnné a1), příjmení které Naposledy vytištěno :55:00 29

30 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc uložíme po načtení do proměnné a2, jméno uložíme do proměnné a3, hrubou mzdu uložíme do proměnné a4 a dále ihned vypočítáme výši odvodů (a4 x 0,35) a uložíme do proměnné a5. Pro druhého pracovníka celý postup opakujeme s tím, že data ukládáme do proměnných označených b1, b2, b3, b4, b5. Další proměnné označujeme c, d, e, f, g. Podrobnou část vývojového diagramu, která naplní a1, a2, a3, a4, a5, označujeme podprogram P1(a), jeho opakování jen s jinak označenými proměnnými zakreslíme: P1 (b) Po dokončení realizace vývojového diagramu v rozmezí až jsme načetli vstupní data, Z A vypočítali odvody pro jednotlivé pracovníky a v paměti jsme vytvořili z proměnných jednoduchou databázi. Útvar v paměti, který obsahuje data, která mají navzájem souvislost, jako i v tomto případě, nazýváme databáze. Následující obrázek ukazuje jednoduchou databázi, kterou jsme výše uvedeným programem v paměti naplnili. Naše databáze má tedy strukturu: a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 c5 d1 d2 d3 d4 d5 e1 e2 e3 e4 e5 f1 f2 f3 f4 f5 g1 g2 g3 g4 g5 MC 1 Koníček Aleš Tománek Petr Šula Jan Prát Antonín Koubek Karel Čujan Petr Forman Jiří V praxi bývá databáze pojmenovaná a jednotlivé prvky databáze přímo přístupně (lze je zapisovat, číst, nebo přepisovat). Vývojové diagramy lze úspěšně využít také pro operativní plánování rozsáhlých činností manažera. Takové strukturované řešení rozsáhlých akcí zprůhledňuje harmonogram a koordinuje práci řešitelů. V následujícím textu uvádíme dvě ukázky využití této technologie. Tisk výstupní sestavy A až K. V následující části řešení naší úlohy potřebujeme ze získaných a v paměti uložených vstupních dat vypracovat a vytisknout výstupní sestavu. Nejprve tedy použijeme příkaz pro tisk nadpisu sestavy s tím, že jsme v měsíc, za který je sestava zpracována. 1 do K1 proměnné načetli V P2(a) a dalších podprogramech P2(b), P2(c), P2(d), P2(e), P2(f), P2(g) přenášíme obsah proměnných pro jednotlivé pracovníky, které jsme naplnili v na obrazovku. Například P2 (a) vytiskne na obrazovku 1 Koníček Aleš P2(b) vytiskne na obrazovku: 2 Tománek Petr atd. V 10 uložíme do proměnné H součet hrubých mezd všech pracovníků (obsahy proměnných a4, b4, c4, d4, e4, f4, g4) a v 12 vytiskneme na obrazovku Součet hrubé mzdy H Totéž máme pro odvody v a a. Nakonec zobrazíme s využitím K1, K2, K3 na obrazovce text: V Kunovicích, dne Naposledy 30 vytištěno :55:

31 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Následující příklad ukazuje aplikaci vývojových diagramů do práce manažera. Úkol č. 1 Student Petr Nedbálek studuje na EPI, s.r.o. třetí semestr studijního oboru Management a marketing zahraničního obchodu. Protože dostal v Praze nabídku pracovní pozice v oblasti daňového poradenství, požádal rektora dne o možnost přestoupení ze studijního oboru Management a marketing zahraničního obchodu na studijní obor Finance a daně. Rektor předal žádost k vyřízení prorektorovi pro pedagogickou činnost. Ten si zpracoval řešení problému formou vývojového diagramu: Z Zahájit správní řízení Pozvat studenta k projednání k prorektorovi pro ped. činnost Termín: Zodp: prorektor pro ped. činnost vedoucí studijního oddělení Termín: Kde: ředitelna ( ) Kdo: prorektor vedoucí studijního oddělení prorektor pro ped. Založení složky Termín: Uznání zkoušek + stanovení rozdílových zkoušek Termín: Kdo: ředitel ústavu vedoucí katedry Stanovení termínů, komisí a obsahu Termín: Kdo: ředitel ústavu Rozhodnutí Převedení studenta do kruhu 2FHi Termín: Projednat se členy komisí Vystavit jmenovací dekrety Termín: Kdo: prorektor pro ped. činnost Termín: Kdo: prorektor pro ped. činnost Co: 1. přidělit přístupová práva Po uplynutí času na složení zkoušek kontrola Termín: uspěl neuspěl student Plné zařazení studenta + založení indexu Termín: Zodp.: vedoucí studijního oddělení Rozhodnutí o ukončení Termín: Zodp.: prorektor pro ped. činnost Ukončení studia student K K Naposledy vytištěno :55:00 31

32 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Úkol č. 2 Obchodní ředitel firmy EKOSERVIS, s.r.o. si připravuje plán úkolů na týden od do V podniku je zvykem, že vedoucí útvarů (zásobování, odbyt, obchodní) dodají sekretariátu v pátek do hodin hlavní úkoly svých útvarů tak, aby mohl sekretariát tyto úkoly zapracovat do plánu práce úseku obchodního ředitele a aby plnění úkolů mohlo být kontrolováno. V pátek ve hodin předává sekretariát obchodnímu řediteli vypracovaný harmonogram týdne ke schválení. V průběhu týdne kontroluje sekretariát obchodního ředitele plnění harmonogramu úkolů jednotlivých útvarů. Pondělí Úkoly na období od do Z Obchodní ředitel 7.00 Sekretariát Provozní porada Rozbor pošty Zásobování Odbyt Obchodní útvar Obchodní ředitel Porada u GŘ zápis Obchodní ředitel JUDr. Šimek Porada s vedoucím právního oddělení příprava služební cesty - EKOSTAL Obchodní ředitel Kontrola úkolů útvarů příprava na služební cestu EKOSTAL zápis dokumenty Konec Naposledy 32 vytištěno :55:00

33 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Úterý Z Obchodní ředitel Služební cesta Sekretariát Zásobování Odbyt Obchodní útvar EKOSTAL 1. Pošta Informovat obchodního ředitele o průběhu dne Hodnocení dne Úkoly na středu Hodnocení dne Úkoly na středu Hodnocení dne Úkoly na středu K Středa Samostatná práce studenta Nakreslete vývojový diagram pro řešení některé Vaší pracovní úlohy. V dalším textu se seznámíme se strukturou vývojových diagramů, které nám usnadní (zjednoduší) celou strukturu programu. V úkolu č. 4 jsme viděli použití cyklu při načtení údajů o pracovních a cyklus, pomocí něhož jsme tiskli data o pracovních na obrazovku. Naposledy vytištěno :55:00 33

34 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc CYKLUS V praxi se často vyskytují úlohy, v nichž se část algoritmu opakuje, jen s jinými parametry. Takové struktury vývojových diagramů významně zjednoduší struktura, kterou nazýváme cyklus. Cyklus obsahuje podmínku a výkonnou část tělo cyklu. Počet průchodů cyklem registruje tzv. počitadlo cyklu. Definice cyklu Cyklus zajišťuje opakování činnosti programu (viz blok A) tak dlouho, dokud je splněna zadávací podmínka B. Tato podmínka může stát na začátku nebo na koci cyklu viz a), b). Základní typy cyklů jsou cyklus s podmínkou na začátku cyklu, cyklus s podmínkou na konci cyklu a cyklus s předem známým počtem opakování Cyklus s podmínkou na začátku cyklu Pokud platí podmínka B vykonej A B + A - C A může být řetězec příkazů, navzájem oddělených středníkem a uložených mezi závorkami: { } Opakování s podmínkou před prvním vykonáním činnosti A Úkol č. 4 Vypracujte vývojový diagram, který načte pro 5 pracovníků - Karel Botek, Jan Fila, Milan Staněk, Jan Šebek, Petr Malý do proměnných v paměti hrubé mzdy. Popište činnost paměti a potřebné proměnné. Využijte cyklus s podmínkou na začátku cyklu. Řešení: Nejprve si musíme rozmyslet, jaké proměnné budeme potřebovat a co do nich budeme ukládat: V paměti se má vytvořit pro každého pracovníka následující záznam: příjmení jméno hrubá mzda n a n b n c n 1 Botek Karel n = 1 a 1 b 1 c 1 n. pořadí pracovníků (celé číslo) a 1 až a 5 příjmení pracovníků (řetězec znaků) b 1 až b 5 jméno pracovníků (řetězec znaků) c 1 až c 5 hrubé mzdy pracovníků (celé číslo) Tělo cyklu by mělo naplnit údaje postupně pro všechny pracovníky. Cyklus se bude tedy opakovat tolikrát, kolika pracovníkům potřebujeme data do proměnných naplnit. Obecně n krát. V našem případě 5 x pro 5 prvků. n je tedy počítadlo počtu průchodů cyklem, které se po každém průchodu cyklu zmenší o 1. Jakmile naplníme data posledního pracovníka, n nabude hodnoty 0, podmínka n 1 není splněna a proto odejdeme z cyklu na C. Naposledy 34 vytištěno :55:00

35 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc V tomto případě máme opakovat 5 krát (zajistí počitadlo cyklu) naplnění dat do proměnných jednotlivých pracovníků. Z paměť Deklarace proměnných počítadlo cyklu Počet pracovníků n = 5 n 5 A Pracovník příjmení Pracovník jméno Hrubá mzda n 1? ANO a n b n c n do n ulož n 1 NE a 5 b 5 c 5 5 > 1 Botek Karel a 4 b 4 c 4 4 > 1 Fila Jan 8400 a 3 b 3 c 3 3 > 1 Staněk Milan > 1 Šebek 4 = = = = = 1-1 n n n n n 4 > 1 3 > 1 2 > 1 1 = 1 0 < 1 a 2 b 2 c 2 Jan a 1 b 1 c 1 1 = 1 Malý Petr < 1 Konec cyklu A A Metodický pokyn: Podrobný popis činnosti vývojového diagramu a paměti: Po spuštění programu nastavíme do proměnné n počet pracovníků (n=5), tj. počet opakování cyklu. V podmínce 1 se ptáme, zda obsah počitadla cyklů n je větší, nebo rovné jedné. Protože n=5, což je větší než 1, postupně naplníme údaje o pracovníkovi č. 5 a5 2 Botek, b5 3 Karel, c a v 5 nížíme hodnotu počitadla cyklů o 1. V n tedy bude hodnota 4. Budeme tedy plnit údaje o pracovníkovi č. 4. Vstupujeme opět do 1 a ptáme se, zda je počitadlo cyklu n větší, nebo rovné 1. Protože n = 4, je podmínka 1 splněna a projdeme opět tělo cyklu, nyní naplníme a4, b4, c4, snížíme n na 3 a jdeme na vyhodnocení podmínky 1, atd. V tomto případě počítač mění podle toho, kolik pracovníků máme ještě zpracovat. Jakmile jsme naplnili do počitadla cyklu n =1, data do proměnné a1, b1, c1 a snížili n o 1, máme v proměnné n zápornou hodnotu 1, takže nás podmínka 1 vyvede z cyklu na A. Naposledy vytištěno :55:00 35

36 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Otázka: Co se stane, když zadáme n = 0? Stejným způsobem si můžete popsat činnost cyklu s podmínkou na konci cyklu v kapitole Cyklus s podmínkou na konci cyklu Opakuj A, dokud platí B Vykonej příkaz (nebo blok příkazů) a pokud platí podmínka B, opakuj vykonání příkazu. Pokud podmínka B neplatí, odejdi z cyklu. A B + - Tělo cyklu (A) se tedy v tomto případě. realizuje alespoň jedenkrát. Opakování s podmínkou po skončení činnosti A Úkol č. 5 Vypracujte vývojový diagram, který načte pro 5 pracovníků - Karel Botek, Jan Fila, Milan Staněk, Jan Šebek, Petr Malý hrubé mzdy. Popište činnost paměti a potřebné proměnné. Využijte cyklus s podmínkou na konci cyklu. Řešení: Z Deklarace proměnných n, c n.. celé číslo a n, b n.. řetězec znaků Počet pracovníků n = 5 n 5 A Pracovník příjmení Pracovník jméno a n b n a 5 b 5 Botek Karel a 4 b 4 Fila Jan Staněk a 3 Milan b 3 a 2 b 2 Šebek Jan a 1 b 1 Malý Petr Hrubá mzda c n c c c 3 c c do n ulož n - 1 n = 4 n = 3 n = 2 n = 1 n = 0 ALU ANO n > 0 1 NE 4 > 0 3 > 0 2 > 0 1 > 0 n = 0 1 Naposledy 36 vytištěno :55:00

37 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Samostatná práce studenta: 1. Vypracujte metodický popis podrobný popis činnosti vývojového diagramu a paměti viz předešlý příklad. 2. Modifikujte rozhodovací blok tak, aby byli načteni jen tři pracovníci n > 3? 3. K čemu nám slouží počítadlo cyklů? Cyklus s předem známým počtem opakování V některých případech víme, kolikrát se bude cyklus opakovat. V takové situaci lze využít cyklus s předem známým počtem opakování. [1] Pro i := 1 až po N s krokem ( ) opakuj A Cyklus s předem známým počtem opakování Příklad: počáteční hodnota počítadla cyklu Začátek cyklu Podmínka na i := 1, N, horní mez Činnost A i := i + [2] krok Konec cyklu Tělo cyklu V tomto případě zadáváme na počátku cyklu počáteční hodnotu počitadla cyklu (v našem případě 1, horní mez, kterou když počitadlo dosáhne, cyklus skončí a krok, s nímž se počitadlo cyklu po průchodu cyklu změní. Pokud počítadlo cyklu nepřekročí horní mez (N), vykonávají se příkazy z těla cyklu (A) a připočítává se krok k počítadlu průchodů cyklů. Jakmile i překročí hodnotu horní meze N, cyklus končí a vývojový diagram pokračuje prvním příkazem za cyklem. Předešlé dva typy cyklů (s podmínkou na začátku a s podmínku na konci cyklu, začaly plnit od n=5, cyklus s podmínkou se známým počtem opakování plní počítadlo cyklů od n=1. Vypracujte vývojový diagram, který načte pro 5 pracovníků - Karel Botek, Jan Fila, Milan Staněk, Jan Šebek, Petr Malý hrubé mzdy. Popište činnost paměti a potřebné proměnné. Vytvořte cyklus s využitím cyklu s předem známým počtem opakování. Řešení: Z Deklarace proměnných n, c n, i.. celé číslo a n, b n.. řetězec znaků paměť počítadlo cyklu krok je +1 horní mez počítadla cyklů i dolní mez počítadla tělo cyklu n Pracovník příjmení Pracovník jméno Hrubá mzda Počet pracovníků i = 1 i = 1, n, 1 ANO Co by se stalo, kdybychom dali krok = 2. a i b i c i i = i + 1 A n i a 1 b 1 c i i i i i Botek Karel i (= i + 1) i i i i Naposledy vytištěno :55:00 37 a 2 b 2 c 2 Nastavení dolní mez počítadla (1) Fila Jan 8400 Staněk a 3 b 3 c 3 Milan a 4 b 4 c 4 Šebek Jan a 5 b 5 c 5 Malý Petr A

38 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Samostatná práce studenta 1. Vypracujte metodický popis podrobný popis činnosti vývojového diagramu a paměti viz předešlý příkaz. 2.5 Hardware a softwarové vybavení PC Údaje (data) můžeme tedy ukládat do proměnné, která je ve vnitřní paměti počítače. Na následujícím obrázku je ukázka elektronického prvku, paměti: Obr. č. : Operační paměť Zdroj: [27] Protože dnešní doba si žádá uložení ohromného množství dat (mluvíme o kapacitě paměti), můžeme k počítači připojit externí, výměnnou paměť. Ty se vyrábí ve formě a) harddisků Obr. č. : Hard disk Zdroj: [28] Obr. č. : Hard disk Zdroj: [29] b) Flesh disku Obr. č. : Flesh disk Zdroj: [31] Kapacitu těchto pamětí klasifikujeme podle počtu bytů v: Kilobitech Obr. č. : Flesh disk Zdroj: [30] Naposledy 38 vytištěno :55:00

39 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Megabytech Gigabytech Terabaytech Paměti členíme na paměti typu ROM a RAM. Paměti ROM: Obr. č. : Paměť ROM Zdroj: [32] Obr. č. : Paměť ROM Zdroj: [33] Paměti RAM: Obr. č. : Paměť RAM Zdroj: [34] Obr. č. : Paměť RAM Zdroj: [35] Ukázka U von Neumannovo schématu jsme si ukázali, že vnitřní paměť slouží k ukládání jak programů (posloupnost příkazů, které řeší náš vývojový diagram a zpracovává naše data), tak i dat. Kapacita vnitřní paměti je ovšem omezená. Moderní počítače jsou elektronické, digitální (jejich práce je určována tzv. hodinami) a jsou řízeny jedním, nebo více procesory. Procesor a hodiny jsou elektronické obvody, vyráběné ve formě elektronického prvku. Připojíme li elektronický prvek vnitřní paměť, vnější paměť ve formě CD disku, flopy disku, atd., mluvíme o hardware. Obr. č. : Procesor Zdroj: [36] Naposledy vytištěno :55:00 39

40 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc zdroj chladič s procesorem operační paměť RAM grafická karta základní deska Obr. č. : Odkrytované PC (case) hard disk Zdroj: [37] PC_case_modified.jpg Externí, výměnné paměti používáme na tzv. zálohování dat a programů. Zálohováním data chráníme svá data proti ztrátě. Je to vytvořená kopie našich dat, která je uložena na jiném datovém nosiči (CD, DVD, externí hard disk) nebo i jiném místě. Záložní data využijeme v případě ztráty nebo poškození originálních dat. Hardware je nefunkční bez software. K software patří především: Operační systém Uživatelské programy Ochranný systém proti virům atd. Operační systém Operační systém zahájí činnost v okamžiku, kdy stlačíme tlačítko ON. Operační systém zahájí činnost všech částí počítače: procesoru, klávesnice, paměti, display. Uživatelské programy V další fázi si uživatel zvolí aplikaci, se kterou chce zpracovat. Toto může učinit dvěma způsoby: 1) Zvolením programu na ploše obrazovky. 2) Zvolením programu pomocí nabídky start. Obr. č. : Zvolení aplikace na ploše Obr. č. : Výběr aplikace pomocí nabídky start Naposledy 40 vytištěno :55:00

41 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Tyto aplikace mají standardní obsah. Pokud si potřebujete zpracovat na počítači svůj problém a svůj vývojový diagram, můžete si zakoupit programy, které mohou plnit Vaše individuální programy (Pascal, C++, PHP atd.). Po jejich instalaci můžete váš vývojový diagram do programu převést do programu. Ten přeložíte do řeči počítače (jedničky a nuly) pomocí překladače a následně jej můžete opakovaně spouštět a využívat. O tom až později. 2.6 Ochranný systém proti virům Počítač je třeba chránit proti tzv. virům Počítačový virus je malý softwarový program, který se šíří z jednoho počítače do druhého a překáží provozu počítače. Počítačový virus může poškodit nebo odstranit data v počítači, pomocí ového programu se rozšířit do dalších počítačů, nebo dokonce odstranit celý obsah pevného disku. Počítačové viry se nejsnáze šíří prostřednictvím rychlých zpráv nebo příloh ových zpráv. Proto nikdy neotevírejte přílohu u, pokud nevíte, kdo vám zprávu odeslal, nebo pokud přílohu u nečekáte. Počítačové viry mohou být maskovány jako přílohy obsahující vtipné obrázky, pohlednice nebo zvukové soubory či soubory videa. Počítačové viry se také šíří při stahování z Internetu. Počítačové viry se mohou skrývat v nelegálním softwaru či v jiných souborech nebo programech, které stáhnete. [39] Druhým způsobem, jak se viry dostanou do počítače z u je, že se spustí samy. Ano, něco podobného je za určitých okolností opravdu možné! Viry totiž mohou využívat (a využívají) různé bezpečnostní chyby v operačním systému, poštovním klientovi či dalších aplikacích k tomu, aby mohly provádět úkony, které za normálních okolností nemohou vykonat. Elektronická zpráva s virem pak přijde do počítače, a pokud tento obsahuje některou bezpečnostní chybu, dojde k samočinnému spuštění souboru uloženého na příloze (tedy viru). Záplaty vám boj usnadní Obrana proti bezpečnostním chybám je velmi jednoduchá, přesto ji bohužel většina uživatelů zanedbává. Většina výrobců programů totiž pravidelně uvolňuje AKTUALIZACE, s jejichž pomocí je možné tyto nedostatky průběžně odstraňovat. Tyto jsou k dispozici zpravidla zdarma na internetu v případě nejrozšířenějšího operačního systému na stránce windowsupdate.microsoft.com Aktualizace Windows. Používejte antivirový program, a co nejčastěji k němu stahujte aktuální virovou databázi. Přitom si ale uvědomte, že antivirový program není všelékem, který vyřeší všechny problémy a který Vám umožní dělat ve světě počítačů beztrestně naprosto vše. Rozhodně klaďte důraz na výše popsanou prevenci a s antivirovým programem počítejte spíše jako se záchrannou brzdou v nouzi nejvyšší. Věta na závěr, všeho moc škodí, je vhodné mít nainstalovaný pouze jeden Antivirový program, nikoliv 2 nebo více, PC by byl velmi zpomalený (veškeré kontroly by se prováděly dvakrát či vícekrát). [40] 2.7 Shrnutí Počítače používáme nejen na řešení matematických problémů, ale také na řízení výroby, procesů, zpracování ekonomických dat, analytické rozbory atd. Řešení těchto problémů zpracovává manažer, nebo ekonom tak, že si nejprve definuje, co od řešení očekává (jaké výstupy), analyzuje vstupy a vstupní a výstupní podmínky a nakonec si nakreslí postup řešení, tzv. vývojový diagram. Vstupní data jsou uchovávána v paměti v tzv. proměnných. Operace s těmito daty provádíme jako operace s proměnnými. Pojem proměnná proto, že do takto označeného místa v paměti můžeme vkládat různá data. Vývojový diagram tedy člověku přirozeným způsobem popisuje jednotlivé kroky řešení problému. Ve vývojových diagramech je třeba používat standardizované značky tak, aby byly zřejmé každému specialistovi z oboru. Při řešení úkolů z oblasti zpracování dat převádíme vývojové diagramy Naposledy vytištěno :55:00 41

42 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc do některého programovacího jazyka. Data můžeme v paměti ukládat do vymezené oblasti, kterou nazýváme databáze. 2.8 Otázky 1. K čemu nám slouží počítače? 2. Popište vývoj technologií na zpracování informací. 3. Co to je program? 4. Popište von Neumannovo schéma počítače a jeho jednotlivé části 5. Jak spolupracuje řadič instrukcí a paměť? 6. Kde se ukládají vstupní data co to jsou V V operace? 7. Co to je paměť? 8. Co to je proměnná? 9. Co to je vývojový diagram? 10. Jaké značky užíváme ve vývojových diagramech 11. Co to je cyklus a jaké druhy vývojových diagramů pro cyklus znáte? 12. Popište postup řešení problému (zadání, vývojový diagram, řešení). 13. Vysvětlete, jak použijete vývojový diagram pro řešení úkolů manažera. 14. Vysvětlete, jak použijete vývojový diagram ve své práci. 15. Co to je uměla inteligence? 16. Nakreslete vývojový diagram pro výpočet průměru tří čísel. Výsledek vytiskněte. 17. Nakreslete vývojový diagram pro Váš jeden den. 18. Co to je a k čemu slouží vnitřní paměť? 19. Proč musíme používat vnější (externí) paměť? 20. Jaké typy externí paměti dnes používáte? 21. Co to je kapacita paměti? 22. V čem měříme velikost (kapacitu) paměti? 23. Jakou funkci má paměť ROM a jakou RAM? 24. Co to je procesor? 25. Co to jsou hodiny 26. Jaký typ externí paměti je vhodný na zálohování dat? 27. Jakým způsobem si zálohujete data Vašeho počítače? 28. Jak si zálohují data vaši spolupracovníci? Naposledy 42 vytištěno :55:00

43 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Přepis vývojového diagramu do programovacího jazyka C Jakmile se rozhodneme řešit nějakou úlohu s využitím programovacího jazyka C, postupujeme v následujících krocích: Zadání Vývojový diagram Přepis do jazyka C Editor.c (zdrojový soubor) Překlad programu Překladač (kompilátor.obj) (cílový soubor) Připojení externích knihoven Sestavovací program (Linker).exe Spustitelný soubor Spuštění programu Jak popsat řešený problém vývojovým diagramem již známe. Nyní je třeba zvládnout dovednost přepsat vývojový diagram do jazyka C, umět jej přeložit, připojit externí knihovny, spustit a uložit. Přepis vývojového diagramu do programovacího jazyka C prochází následujícími technologiemi. Editor používá se na zápis vývojového diagramu do zdrojového kódu daného jazyka. Výstupem je Zdrojový soubor (source file) je textový soubor, vypracovaný v klíčových slovech jazyka C. Překladač (kompilátor) přeloží program. Výstupem překladu je soubor s příponou obj. Linker (sestavovací program) - připojí k cílovému soubor externí 3.1 Struktura programu v jazyce C Program v jazyce C zapisujeme prostřednictvím následujících klíčových slov: asm, auto, break, case, sdesl, char, const, continue, default, do, double, else, enum, extern, far, float, for, goto, huge, if, int, interrupt, long, Nera, pascal, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unisgned, void, volatile, while. Tato klíčová slova se píší malými písmeny a nesmí se jinak, než jako klíčová slova použít. Program začíná tzv. hlavičkovým souborem Hlavičkový soubor slouží k tomu, aby program mohl využít externích knihoven funkcí, například funkce pro načtení údajů z klávesnice, nebo funkce pro výpis dat na obrazovku (tzv. systém Input/Output, parametr stdio.h.). Tyto soubory využívá překladač a mají příponu.h. Knihovny připojuje překladač direktivou kompilátoru # include <>. Ta říká kompilátoru, aby načetl externí soubor a včlenil jej do předkládaného programu. #include <stdio.h> není příkaz. Je to instrukce pro překladač jazyka C. Proto se za ni nepíše středník. Program v C jazyce se skládá z jedné, nebo více funkcí. Funkce může mít libovolné jméno. Jméno funkce se skládá z velkých a malých písmen, číslic 0 9 a podtržítka a nesmí začínat číslicí. Jazyk C rozlišuje malá a velká písmena. Hlavní funkce, která je pro program vždy povinná, je identifikována klíčovým slovem main( ). Funkce main znamená začátek realizace programu. Když se program v jazyku C spustí, začne tedy funkcí main a v ní postupně plní příkaz za příkazem.(postupnou realizací příkazů organizuje řadič viz von Neumanowo schéma). Ani za main ( ) se nedělá středník. Naposledy vytištěno :55:00 43

44 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Funkce main obsahuje příkazy. Ty jsou umístěny mezi { }. Konec této funkce znamená ukončení práce programu. Obecně tedy můžeme strukturu programu C v nejjednodušší variantě napsat: main( ) { příkazy; } Jedno z klíčových slov je prinntf( );. Příkaz printf("text"), vypíše ve své nejjednodušší variantě na obrazovku text, který je umístěn v závorce mezi apostrofy. S dosavadní znalostí již můžeme napsat první, jednoduchý program v C, jehož úkolem je vypsat text "Vypis rocni uzaverky" na obrazovku: #include<stdio.h> main( ) vyvolání externí knihovny I/0 hlavičkový soubor hlavní funkce { printf("vypis rocni uzaverky"); výpis textu v uvozovkách na obrazovku } Program aktivuje příkazem #include<stdio.h> knihovnu I/O, aby mohl program vypsat na obrazovku text "Vypis rocni uzaverky". Hlavní funkce začíná systémovým slovem main ( ), mezi závorkami { } je příkaz printf("."); k vypsání textu na obrazovku ( Vypis rocni uzaverky ), který je umístěný mezi uvozovkami. Vytvořili jsme tedy jednoduchý program a nyní potřebujeme tento program zapsat do prostředí C++. To se naučíme v dalším textu. 3.2 Jak napsat program v prostředí Dev-C++ Vlastní psaní programu je velice podobně, jak kdybychom pracovali v programu Word. Nejprve musíme otevřít toto prostředí. Program je nutné do počítače nejprve nainstalovat. 1. Na ploše obrazovky klikneme na ikonu Po tomto kliknutí se otevře se obrazovka aplikace viz obr. č. 1 Naposledy 44 vytištěno :55:00

45 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc V horní liště vybereme záložku Soubor Nový Zdrojový kód Objeví se obrazovka, do které již můžeme psát program Vlastní program budeme psát s využitím anglické klávesnice. Musíme respektovat malá a velká písmena. Zápis #include je ve verzi #include chybný. Dále budeme používat pro psaní speciálních znaků (musíme mít zapnutu anglickou klávesnici) tzv. klávesové zkratky: { shift + ú > shift +. } shift + ) < shift +, * shift + 8 shift + POZOR: & shift + 7 shift + V závislosti na typu klávesnice musíte tuto ) shift + % # shift + 3 tabulku modifikovat. ( shift Do prázdného okna napíšeme program. Naposledy vytištěno :55:00 45

46 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Napsaný program musíme uložit. V horní liště si vybereme záložku Soubor Uložit jako. Do rámečku Název soubor, vybereme místo na disku, kde chceme soubor uložit. Proto napíšeme jméno souboru (např. priklad1), které chceme použít. Nesmíte zapomenout za toto jméno přidat.c (priklad1.c) Pod tímto názvem budeme program vyvolávat. Doporučujeme, abyste si ve svém adresáři udělali adresář pro programy v jazyku C. Na obrazovce se objeví původní obrazovka na níž můžeme napsat program v C, který bude uložen pod názvem priklad1.c Pozor přípona.c je povinná! 5. Po napsání celého programu, musíme zkontrolovat jeho syntaxi zadaného kódu (správnost programu). V horní liště klikneme na záložku Spustit Zkompilovat. Naposledy 46 vytištěno :55:00

47 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc chybných údajů a znovu program zkompilujeme. Program provede kontrolu správnosti a úplnosti a zobrazí obrazovku, kde uvidíme, v případě správně zapsaného programu obrazovku s nulovým počtem chyb. Pokud tomu tak je, podokno zavřeme. Pokud je v programu chyba, je řádek s chybným údajem zabarven. Chybu opravíme přepsáním Jestliže se při kompilaci nezobrazí žádná chyba, můžeme okno zavřít a program spustit. V horní liště vybereme záložku Spustit Spustit. Program se spustí a provede svou činnost. V následující části textu se naučíme přepsat vývojový diagram do jazyka C v prostředí Dev- C++. Budeme využívat editor, klíčová slova jazyka C a výstupem naší práce bude zdrojový soubor s příponou.c. 3.3 Úvod do syntaxe jazyka C V další části se budeme učit užívat příkazy programového jazyka C na jednoduchých aplikacích příkladech. Nejjednodušší úkol je vypsat text na obrazovku. Pozor: V následujícím textu musíte respektovat malá a velká písmena. Klíčová slova musí být malými písmeny, PAUSE s příkazu systém ("PAUSE") musí být velkými písmeny. Je velký rozdíl mezi proměnnou, která se jmenuje mzda a proměnnou MZDA, atd. Naposledy vytištěno :55:00 47

48 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Nejjednodušší varianta programu C je main( ) {příkazy}; Pokud ptřebujeme pracovat se vstupy a výstupy: #include<stdio.h> main( ) {příkazy}; hlavičkový soubor Existují i další knihovny např.: math.h všechny matematické funkce (goniometrické, kvadratické, exponenciální, logaritmické a zvláštní) vyžadují, aby program obsahoval hlavičkový soubor math.h. Příklad č. 1 Zadání: Napište na obrazovku počítače text Výpis roční uzávěrky. Metodický pokyn: 1. Spusťte DEV++ 2. Vyberte záložku Soubor nový 3. Vyberte záložku Zdrojový kód 4. Přepněte počítač na anglickou klávesnici 5. Napište program 6. V horní liště vyberte záložku Soubor uložit jako Uložte tento program: př. priklad1.c (vyberte si místo, kam chcete program uložit) 7. V horní liště vyberte nabídku Spustit kompilovat Nyní probíhá kontrola, zda je správný syntax. Jeli správně, objeví se. 8. V horní liště vyberte nabídku Spustit spustit Program proběhne. K tomu, aby program uměl přečíst údaje z klávesnice a uložit jej do proměnné v počítači potřebujeme ovládací program. Ten je uložen v tzv. knihovně vstup/výstup (I/O). Tuto knihovnu připojujeme příkazem #include <stdio.h>. Pro tisk textu na obrazovku máme k dispozici příkaz prinntf("text"); za kterým musí být středník. Text v uvozovkách se na obrazovku přenese. V tomto programu nepoužíváme žádné proměnné Naposledy 48 vytištěno :55:00

49 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Řešení: Vývojový diagram Zápis v jazyku C Popis příkazů Z Vyvolej knihovnu I/0 Výpis roční uzávěrky K #include <stdio.h> main () { printf("vypis rocni uzaverky"); } načtení I/0 knihovny hlavní funkce programu začátek hlavní funkce programu tisk textu v uvozovkách na obrazovku konec hlavní funkce programu Pozn.: obrazovka s textem pouze problikne, protože program po jeho vykonání zápisu na obrazovku se ukončil a obrazovku smazal. Abychom program zastavili po vypsání textu Výpis roční uzávěrky na obrazovku, potřebujeme do programu doplnit příkaz na zastavení programu. Popis nově použitých klíčových slov: Printf příkaz, který text v uvozovkách vystaví na obrazovku. Program lze zapsat též ve zkrácené formě #include <stdio.h> main (){printf("vypis rocni uzaverky");} Pozn.: Studenti často zapomínají, že doplněný program musí vždy zkompilovat a uložit s koncovkou.c Úkol: Spusťe znovu (lze pořád dokola) - buď v C++ - nebo na místě, kde jste původní program uložili se vytvořitl soubor s příponou exe a ten lze kdykoliv spustit Příklad č. 2: Zadání: Napište na obrazovku záhlaví Vašeho budoucího programu Vypis rocni uzaverky a tento nápis ponechte zobrazený na obrazovce (program je třeba po vypsaní textu na obrazovku zastavit) příkazem system("pause"); Metodický pokyn: Programu č. 1 tedy doplníme příkazem na zastavení programu, znovu zkompilujeme a spustíme. Naposledy vytištěno :55:00 49

50 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc POZOR studenti v tomto bodě často dělají další chybu v tom, že neuzavřou obrazovku předešlého řešení, program zůstane spuštěný. Pak nelze znovu program kompilovat. Proto stiskneme libovolnou klávesu a obrazovka se automaticky vypne. Řešení: Vývojový diagram Zápis v jazyku C Popis příkazů Z Vyvolej knihovnu I/0 Vypis rocni uzaverky #include <stdio.h> main () { printf("vypis rocni uzaverky"); načtení I/0 knihovny hlavní funkce programu začátek hlavní funkce programu tisk textu v uvozovkách na obrazovku zastav K system("pause"); } program se zastaví a na obrazovku vypíše Pokračujte stisknutím libovolné klávesy. Činnost programu se obnoví stlačením kterékoliv klávesy. konec hlavní funkce programu zkrácené verzi: #include <stdio.h> main (){ printf("vypis rocni uzaverky"); system("pause");} Program provede činnost a zobrazí: Popis nově použitých klíčových slov: systém ("PAUSE"); zastaví program a na obrazovku vypíše Pokračujte stisknutím libovolné klávesy. na to místo, kde stojí kurzor (tedy na stávající text). "PAUSE" musí být velkými písmeny. systém malými písmeny. Pozor: Opět uzavřete předešlý program (černou obrazovku), stlačením libovolné klávesy. Příklad č. 3: Zadání: Zajistěte, aby se text Pokračujte stisknutím libovolné klávesy v příkazu systém ("PAUSE"); vypsal na nový řádek. Využijte příkaz printf("\n"); Naposledy 50 vytištěno :55:00

51 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Metodický pokyn: Nedostatkem tohoto programu je, že se komentář v systému ("PAUSE") Pokračujte stisknutím libovolné klávesy napíše ihned za náš text Vypis rocni uzaverky. Potřebujeme příkaz, který oba texty oddělní tak, že text Pokračujte stisknutím libovolné klávesy. napíše na nový řádek. Takový příkaz je \n, např. v příkazu printf("\n"); viz Příklad č. 3. Doplňte si příkaz printf("\n"); Zkompilujte. Spusťte. Z Vyvolej I/0 Výpis roční uzávěrky #include <stdio.h> main () { printf("vypis rocni uzaverky"); Přechod na nový řádek printf("\n"); přesun kurzoru na nový řádek Čekání na stisk klávesy system("pause"); K } Na obrazovce se objeví: Program provede příkazy a zobrazí: Naposledy vytištěno :55:00 51

52 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Popis nově použitých klíčových slov: \n v příkazu printf zajistí přechod kurzoru na další řádek \a v příkazu printf( ) způsobí signál alarm. tzv. zvonek Př.: Následující program vyvolá zvonek: #include <stdio.h> main () { printf("\a");} Vypracujte jako příklad 1b 1. Soubor nový- zdrojový kód 2. Přepište program main () { printf("\a");} 3. Zkompilujte 4. Spusťe Pozn.: Na \ není zkratková klávesa, je zobrazeno přímo na klávesnici. Zkompilujte, spusťte a zdůvodněte, proč je program funkční, i když jsme vypustili #include <stdio.h> Zvukový signál používáme na upozornění obsluhy, že má něco udělat. Například zadat vstupní údaj. Samostatná práce studenta: 1. Co udělá zápis main () { printf("\a");} 2. Vypracujte program, který spustí zvonek 5x. Ukázka chyby v syntaxu v programu V průběhu překladu programu si překladač průběžně kontroluje, zda při vytvoření zápisu programu neudělal programátor chybu. Pokud ano, sdělí mu, že v programu je chybný zápis. Upravte si program č. 3, smažete uvozovky v 1 Chybový zápis #include <stdio.h> main () { printf("vypis rocni uzaverky); 1 printf("\n"); Opravený zápis #include <stdio.h> main () { printf("vypis rocni uzaverky"); printf("\n"); } system("pause"); } system("pause"); Naposledy 52 vytištěno :55:00

53 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Proveďte kompilaci. Při kontrole programu, se (výběr záložky Spustit Zkompilovat ) se objeví obrazovka s hlášením chyby. Program zvýrazní řádek, na kterém se chyba nalézá. Chybu opravíme (viz opravný zápis výše) a program znovu zkompilujeme, v případě, že jsme opravili správně a další chybové hlášení se neobjeví, můžeme program spustit. Nyní již program proběhne bez chybového hlášení. Pokud jste zapomněli středník, ukáže chybové hlášení obvykle na následující řádek za příkazem, v němž je chyba. Deklarace proměnných Doposud jsme nevyužívali proměnné, pouze příkaz printf( ); Pokud chceme psát program, který proměnné používá, musíme je deklarovat. Na tomto místě jen zjednodušeně rozšíříme znalosti o deklaraci proměnných a přiřazení hodnot. Konstatovali jsme již, že data ukládáme do proměnných. Proměnná je pojmenovaná část paměti, do níž můžeme ukládat různé hodnoty. Proměnné musí být před použitím deklarované. To znamená, že musíme programu říci, co lze do dané proměnné (daného místa v paměti) ukládat a jaké operace jsou s takovým údajem dovoleny. Než začneme psát program, musíme promyslet, které proměnné budeme používat s ohledem na vstupní a výstupní data a potřebné zpracování problému. Pro deklaraci (definici) proměnné používáme příkaz typ jméno proměnné; př.: int x; Paměť x Pozn.: do této proměnné mohu ukládat jen celá čísla Opakujeme, že deklarace proměnné říká překladači, o jaký typ proměnné jde a tedy i kolik místa je pro ni v paměti potřeba a jaké operace s proměnnou můžeme dělat. Programovací jazyk C má pět typů proměnných: Naposledy vytištěno :55:00 53

54 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Typ znak (8 bitů) celé číslo se znaménkem desetinné číslo s pohyblivou řádovou čárkou desetinné číslo s pohyblivou řádovou čárkou s dvojnásobnou přesností bez hodnoty Klíčové slovo char int float double void Proměnná char je 8 bitů dlouhá a slouží pro uložení jednoho znaku. Celočíselná proměnná typu int může obsahovat celá čísla (bez desetinné části) se znaménkem. V paměti zabere 16 bitů a může obsahovat hodnoty v rozmezí až Pozn.: Ve 32 bitových systémech od až Proměnné typu float a double obsahují hodnoty s pohyblivou řádovou čárkou, které mohou mít desetinnou část. Float a double se liší tím, že double umožňuje ukládat čísla s dvojnásobným počtem desetinných míst. Deklarace proměnných se nachází v úvodní části programu, za. { Příklad deklarace proměnných a, b, c typu double: # include <stdio.h> main( ) { double a, b, c; příkaz 1; příkaz 2; } bude využívána knihovna vstupu, výstupu začátek hlavní funkce do proměnné a, b, c můžeme ukládat čísla s desetinnou čárkou příkazy, které realizují naši úlohu konec hlavní funkce Jak naplníme proměnnou Abychom mohli s proměnnou pracovat, potřebujeme do proměnné naplnit data. Dosáhneme toho buď tzv. přiřazením hodnoty přiřazovacím příkazem, nebo načtením hodnoty z klávesnice. Naposledy 54 vytištěno :55:00

55 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Přiřazovací příkaz Abychom mohli do proměnné vložit hodnotu, máme v jazyku C k dispozici přiřazovací příkaz: Jméno_proměnné = hodnota; Př: Uložte do proměnné MZDA hodnotu Př.: int MZDA;.vytvořili jsme proměnnou mzda, do níž lze ukládat jen celá čísla. MC MZDA MZDA = 24000;. do proměnné mzda jsme uložili hodnotu (pozn. v hodnotě ukládané do číselné proměnné nesmí být mezera) Tento příkaz vloží v paměti do proměnné na místo proměnné MZDA hodnotu Tuto hodnotu můžeme dále využívat. Pozn: Také v příkazu printf( ); musíme proměnnou definovat. Následující příkaz přiřazení uloží do proměnné a hodnotu 20. Ukážeme si, co by udělal v této situaci příkaz printf("a=",a), když mu nesdělíme, o jaký typ proměnné se jedná. # include <stdio.h> main ( ) { int a; a=20; printf("a=",a); systém("pause"); } Vývojový diagram Z Deklaruj a a = 20; "a=",a Zastav K Naposledy vytištěno :55:00 55

56 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Tento příkaz sice nehlásí v kompilátoru chybu, ale nevypíše 20 na obrazovku. Doděláme tedy v příkazu printf( ) deklaraci proměnné a zápisem %d: #include <stdio.h> main () { int a; a=20; printf("a=%d",a); system("pause"); } 1 printf("a=%d",a); Program provede příkazy a zobrazí: Samostatná práce studenta: Místo příkazu 1 napište printf("a=%d\n",a);, kompilujte, spusťte a popište rozdíl oproti předešlému programu. Komentáře Často je pro přehlednost programu užitečné vkládat komentáře. Komentář je poznámka, kterou vložíme do zdrojového kódu programu. Překladač ji však ignoruje, takže poznámka nevyvolá žádnou činnost. Program se potom lépe čte. Syntaktický zápis komentáře: /*komentář*/, nebo //komentář. Druhá varianta však může být použita, když komentář nepřesáhne daný řádek Za komentářem se nedělá středník. Př. Otevřete si zdrojový kód k příkladu č. 3 a ke každému řádku při komentář. Uložte tento program s komentářem, zkompilujte a spusťte. Uvidíte, že text napsaný jako komentář se na obrazovce neobjeví. Naposledy 56 vytištěno :55:00

57 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Řešení: # include <stdio.h> /*připojení knihovny I/O*/ main ( ) /*hlavní funkce*/ { printf ("Vypis rocni uzaverky"); /*výpis na obrazovku*/ } //konec hlavní funkce main* Program zkompilujeme, spustíme a vidíme, že na obrazovku vypíše pouze text Vypis rocni uzaverky a komentáře ignoruje. Když se později vrátíme ke zdrojovému textu, rychle zjistíme, co v které části řešíme. Popis nových příkazů: Přiřazovací příkaz: c = a + b; Použití operátoru + pro sečtení hodnot Pozn: Čteme a + b vlož do c. Paměť MC: a b - typ celé číslo - typ celé číslo c + - typ celé číslo U příkazu printf ("%d + %d = %d / n ", a, b, c); v pozici, kde se nachází znak % s datovým typem, se doplní názvy proměnné, které stojí v druhé části příkazu, v příslušném pořadí. Př: a=20; b=30; printf("%d + %d = %d / n ", a, b, c); realizuje součet a + b = tj. 50 a vytiskne jej a přejde na nový řádek. Samostatná práce studenta: 1. Upravte předešlé zadání tak, aby program provedl výpočet rozdílu obou čísel. 2. Nadpis Program na součet dvou čísel z Příkladu č. 5 oddělte od dalšího textu na monitoru o 10 řádků. 3. Co se vypíše na obrazovku, pokud spustíme program: #include <stdio.h> main () { printf("jedna\n dve\n tři\n čtyři"); system("pause"); } 4. Po spuštění programu se vypíše výpis na obrazovku a vše se smaže. Jak dosáhnete toho, aby text zůstal na obrazovce? Vstup dat z klávesnice do programu V předešlém textu jsme se naučili jak přesunout informace na obrazovku a naplnit proměnné s využitím přiřazovacího příkazu. Nyní se naučíme, jak realizovat jiný způsob vstupu dat do našeho Naposledy vytištěno :55:00 57

58 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc programu. V nejjednodušším případě čteme data z klávesnice a ukládáme je do proměnné paměti. Každá proměnná z paměti musí mít své jméno a musí mít deklarací určeno, jaký typ dat do ní lze načíst. Potřebujeme-li například pracovat s konkrétními mzdami pracovníků, je třeba nejprve zadat jména pracovníků, jejich hrubé mzdy a následně lze z těchto údajů vypočítat odvody a vypsat výstupní sestavu na obrazovku. Příkaz pro načtení dat z klávesnice do proměnné a má tvar: scanf ("% t", & jméno_proměnné); Pozor: Značka & se používá jen u číselných datových typů. t typ proměnné &.. označení názvu proměnné V tomto příkazu to, co stojí za %, definuje typ proměnné (co do ní lze vkládat). To, co stojí za & je jméno proměnné, které se definování typu v "%d" týká. %d čtení celého čísla %c čtení jednoho znaku %e čtení čísla s pohyblivou řádovou čárkou %f čtení čísla s pohyblivou řádovou čárkou %g čtení čísla s pohyblivou řádovou čárkou %s čtení řetězce (1) To co stojí za & je jméno proměnné. Uveďme dva příklady př.: int cislo; scanf ("% d", &cislo); př.: float podil;... scanf ("%f", &podil); cislo 10.1 podíl MC MC Deklarace int číslo, říká, že do proměnné číslo lze vkládat jen celá čísla. To musí respektovat všechny následující příkazy. "% d" říká, že do proměnné číslo lze z klávesnice načíst jen celé číslo, v souladu s deklarací. Deklarace float podíl, říká, že do proměnné podíl lze vkládat čísla s desetinnou čárkou. "%f" říká, že do proměnné podíl lze z klávesnice načíst číslo s desetinnou čárkou v souladu s deklarací. Pokud chceme obsah proměnné načtené příkazem scanf ( ) zobrazit na obrazovku, musíme v souladu s (1) popsat proměnnou také v příkaze printf ( ), např. v základním stavu printf("%d", a); je a typu int. Plnění a tisk hodnoty proměnné a můžeme zobrazit jako: MC a Obr. č..: Načtení a zobraze proměnné Naposledy 58 vytištěno :55:00

59 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Příklad č. 4 Zadání: Převeďte vývojový diagram pro načtení hrubé mzdy pracovníka Kotka do proměnné mzda a následně zobrazte na obrazovku hruba mzda pana Kotka je Použijte příkaz scanf( ) a printf( ). Metodický pokyn: V tomto případě potřebujeme využívat knihovnu I/O jak pro načtení, tak i pro výstup údajů. Řešení: Vývojový diagram Zápis v jazyku C Popis příkazů Z Načtení knihovny i/0 #include <stdio.h> main () { načti knihovnu I/0 hlavní funkce Deklarace proměnné int mzda; deklarace proměnné - mzda je celé číslo řadič zadej hrubou mzdu pana Kotka Načti hrubou mzdu pana Kotka do proměnné mzda printf("zadej hrubou mzdu pana Kotka:"); scanf ("%d",&mzda); tisk textu Zadej hrubou mzdu pana Kotka na obrazovku načtení hodnoty do proměnné mzda Tisk hruba mzda pana Kotka je ; mzda printf("hruba mzda pana Kotka je:%d\n",mzda); tisk textu hruba.. + hodnota proměnné system("pause"); zastavení programu K } přechod na nový řádek proměnná mzda je typu integer MC mzda vytiskne Naposledy vytištěno :55:00 59

60 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Barevně jsme ukázali, jak byla proměnná mzda nejprve deklarována (int mzda;) a následně používána v souladu s touto deklarací (např. scanf ("%d",&mzda); a printf( ) i). Po spuštění programu, program provede operaci a zobrazí se: Popis nově použitých klíčových slov: scanf ( ) načtení vstupní hodnoty do programu printf ( ) vystavení proměnné na obrazovku Naposledy 60 vytištěno :55:00

61 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Příklad č. 5 Zadání: Vypracujte vývojový diagram, popište činnost paměti a převeďte vývojový diagram do jazyka C pro následující úkol: Načtěte dvě celá čísla z klávesnice, sečtěte je a na monitor vypište výstupní sestavu: Program na součet dvou čísel a = b = a, +, b, =, c Metodický pokyn: Toto zadání má demonstrovat použití přiřazovacího příkazu a podrobnější syntax příkazu printf( ). Před zahájením práce na vývojovém diagramu si musíme vyřešit, které proměnné a jakého typu budete potřebovat (co do nich budeme ukládat). V našem případě to jsou proměnné a, b, c, do kterých ukládáme celá čísla (varianta A), proto je deklarace int a, b, c; Typ v deklaraci int a, b, c musíme potom respektovat v příkazech scanf ( ), printf ( ), přiřazení, atd. Příkaz #include <stdio.h> vyvolá knihovnu I/O, která organizuje přenosy dat ve scanf( ) a printf( ). Řešení: Varianta a: Použijeme přiřazovací příkaz c = a + b 1 a v příkazu 2 vytiskne jako výsledek c. Vývojový diagram Proměnné paměti Zápis v jazyku C Z Vyvolání knihovny I/O Deklarace proměnných MC #include <stdio.h> main () { int a,b,c; a b a b Načtení a Načtení b printf("zadej a:"); scanf("%d",&a); printf("zadej b:"); scanf("%d",&b); na obrazovku potřebujeme vystavit, kterou proměnnou budeme plnit. c = a + b c a + b c=a+b; 1 a =; a printf("a=%d\n",a); b =; b printf("b=%d\n",b); c =; c printf("c=%d\n",c); Tisk a; + ; b = ;c printf("%d+%d=%d\n",a,b,c); system("pause"); 2 K } co máme udělat s čím to máme udělat 2 Pozn.: 1 v printf říká, že máme načíst proměnnou typu a je typu integer ("%d") 2 2 v printf říká, že máme načíst proměnnou typu b je typu integer ("%d") 3 v printf říká, že máme načíst proměnnou typu c je typu integer ("%d") Naposledy vytištěno :55:00 61

62 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Opět barevně zobrazujeme, jak byly proměnné deklarovány a následně používány v souladu s deklaracemi. Příkaz printf( ) má mnoho možností. Ve variantě b do něj umístíme součet dvou proměnných a + b. V takovém případě nepotřebujeme proměnnou c (nebudeme ji tedy ani deklarovat). Napište si tento program, přeložte a spusťte. Naposledy 62 vytištěno :55:00

63 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Varianta b: Součet a + b umístíme do příkazu printf( ). Z Vyvolání knihovny I/O Deklarace proměnných a b a =; a b =; b TISK a + b Zápis v jazyku C: #include <stdio.h> main () { int a,b; printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); printf("a=%d\n",a); printf("b=%d\n",b); printf("%d\n",a+b); system("pause"); K } Naposledy vytištěno :55:00 63

64 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Větvení programu V životě se musíme rozhodovat obvykle mezi více variantami řešení v závislosti na existujících podmínkách. Tuto možnost Vám dává také programovací jazyk C svými příkazy if a if-else. Tyto příkazy nám dovolí větvit program if (výraz) příkaz; je příkaz pro větvení programu (tzv. podmíněný příkaz). Je-li výraz pravdivý, vyplň příkaz. Na místě příkazu může být blok příkazů. Pokud výraz není pravdivý, pokračuj v řešení následujícími příkazy za tímto příkazem. Př.: Co se vypíše na obrazovku, vykoná-li program příkaz: ANO výraz NE if (10 > 9) printf ("je pravda"); Na obrazovku se vypíše Příkaz je pravda Pokud zadáme jako vstupní hodnoty: a = 10; b = 20; potom příkaz if (a > b) printf ("je pravda"); nenapíše se na obrazovku nic, protože a je menší než b if (výraz) příkaz 1 else příkaz 2; Struktura příkazu: Příkaz if (výraz) příkaz 1 else příkaz 2; Pokud je pravdivý výraz, vykonej příkaz 1; jinak vykonej příkaz 2; ANO a > c NE Příkaz 1 Příkaz 2 I v tomto případě lze do Příkaz 1 a Příkaz 2 dosadit blok příkazů. V takovém případě je uzavřeme mezi závorky { }. Př.: if (a > c) { a: = a + 1; c: = c + 1; } else { a: = a 1; c: = c - 1; }; Naposledy 64 vytištěno :55:00

65 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Blok příkazů Konstatovali jsme již, že v jazyku C lze za sebou řadit příkazy do bloků: { začátek bloku příkaz 1; příkaz 2; tělo bloku blok příkazů příkaz 3;.. } konec bloku Blok příkazů začíná a končí závorkami { }. Blok příkazů lze využít například v příkazu if - else. Demonstrujme si využití struktury bloku příkazů na zápisu if a > b {a: = a+1; b: = b+1} else {a: = a-1; b: = b-1}, pro dvě varianty vstupních hodnot: př.: varianta 1 varianta if a b a b a > b... výraz a > b je pravdivý.... výraz a > b není pravdivý { a: = a + 1; 6 b: = b + 1; a 3 } b else { a: = a - 1; 1 b: = b - 1; a 4 } 2 b Aritmetické operátory +. sčítání -.. odčítání *.. násobení /.. dělení %.. zbytek po celočíselném dělení. Lze jej použít pro operace s celočíselnými typy. Dává výsledek jako zbytek pro celočíselném dělení. Na pravé straně přiřazovacího příkazu se může objevit výraz: p = a b; Operátory, /, a % mají vyšší prioritu, než operátory + a -. Pro určení pořadí vyhodnocování příkazu používáme závorky. Naposledy vytištěno :55:00 65

66 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Výpočet plochy obdélníku P = a+b #include <stdio.h> main () { int P,a,b; printf("zadej a:"); scanf ("%d",&a); } printf("zadej b:"); scanf ("%d",&b); P=a*b; printf("plocha je: %d\n",p); system("pause"); V následujícím příkladu si ukážeme příklad na operaci sečítání a podrobněji popíšeme možnosti příkazu printf( ). Operace sčítání používá operátor +, který provede sečtení hodnot do požadované proměnné. Př.: x = Do proměnné x se vloží hodnota 30 jako výsledek operace sčítání. Častěji se tato operace používá mezi proměnnými. Př.: a = 10; b = 20; x = a + b; Další variantou je použití operátoru + v příkazu printf viz příklad č. 5. Př.: printf("součet je: %d", a+b); 2 V tomto případě je součet proměnných a, b proveden v rámci příkazu printf. Proměnné a, b i výsledek musí být typu int, což určuje "%d". Stejnou funkci jako operátor + má také operátor -, který se používá pro výpočet rozdílu mezi dvěma hodnotami, nebo mezi proměnnými: Př.: x = a b; V následujících příkladech použijeme aritmetické operátory k řešení úkolů. Naposledy 66 vytištěno :55:00

67 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Relační operátory, které můžeme v jazyce C použít: Operátor Činnost > větší než >= větší než nebo rovno < menší než <= menší než nebo rovno = = rovno!= nerovno Relační operátory mají nižší prioritu než aritmetické operátory. Nevyšší priorita! >>=<<= = =!= && Nejnižší priorita Výstupem relačního operátoru a > b ve variantě 1 předešlého příkladu je logická hodnota 1, ve variantě 2 předešlého příkladu je výstupem relačního operátoru logická hodnota Aplikace algoritmů větvení Příklad č. 6 Zadání: Vytvořte algoritmus, který určí, které ze dvou zadaných čísel je větší a toto vytiskne. Čísla nesmí být stejná. Metodický pokyn: Vývojový diagram Z Z Vyvolání knihovny i/0 Deklarace proměnných Vyvolání knihovny i/0 Deklarace proměnných Knihovna I/O Načtení dvou čísel a ALU Najdi větší z obou čísel b a > b NE ALU ANO Knihovna I/O Vytiskni větší číslo Větší číslo je a Větší číslo je b K K Naposledy vytištěno :55:00 67

68 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Zápis v jazyku C Popis příkazů #include <stdio.h> main () { int a,b; vyvolej knihovnu I/0 hlavní funkce začátek hlavní funkce a, b jsou proměnné, kam lze uložit jen celá čísla printf("zadej a:"); scanf ("%d",&a); zobrazit zadej a: na obrazovku zadání hodnoty do proměné a } printf("zadej b:"); scanf ("%d",&b); if(a>b) { printf("vetsi cislo je a \n");} else { printf("vetsi cislo je b \n");} system("pause"); zobrazit zadej b: na obrazovku zadání hodnoty do proměné b je-li a > b vystav na obrazovku text větší číslo je a posuň kurzor na nový řádek jinak vystav na obrazovku text větší číslo je b posuň kurzor na nový řádek zastavení programu Naposledy 68 vytištěno :55:00

69 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Popis nových příkazů: if jestliže platí (výraz) proveď (příkazy) else jinak, proveď (blok příkazů) Příklad č. 7 Zadání: Vytvořte jednoduchou kalkulačku. Zadejte z klávesnice typ operace (S - sčítání, O - odčítání, N - násobení, D - dělení) a dvě čísla, se kterými provedete operaci. Výsledek vytiskněte na obrazovku. Metodický pokyn: Tento příklad představuje využití MENU při řešení programů MENU v programu slouží k tomu, aby si uživatel mohl pohodlně vybrat z nabídky funkcí programu. Při řešení potřebujeme další proměnnou, do níž načteme svoji volbu. Příkaz if potom dovolí vykonat blok příkazů, které odpovídají volbě operátora. Dále se při řešení tohoto problému naučíme používat příkazy getchar ( ); a příkaz pro porovnání = = : Příkaz getchar ( ) Tato funkce je součástí knihovny stdio.h a slouží pro načtení jednoho znaku z klávesnice. Tuto funkci lze také použít pro zastavení programu a čekání na stisk libovolné klávesy. Po stisku se vloží do proměnné typu char znak, který lze testovat pomocí podmínek if a vyhodnotit jaký stisk klávesy uživatel učinil. Řešení: Vývojový diagram Z 1 Vyvolej knihovnu i / 0 CH = S NE ANO a + b Spusť hlavní funkci Zadej typ proměnných CH = O NE ANO a - b Smaž obrazovku Nabídka MENU S, O, N, D Načtení volby operace do CH S sčítání O odčítání N násobení D - dělení CH = N NE CH = D NE ANO ANO a x b a / b Načtení a Tisk výsledku Načtení b Zastav program 1 K Naposledy vytištěno :55:00 69

70 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Zápis v jazyku C - VARIANTA A #include <stdio.h> main () { int a,b; char ch; system("cls"); do proměnných a, b lze ukládat jen celá čísla do proměnné ch lze ukládat jen znaky printf("chcete:\n"); printf("scitat, Odecitat, Nasobit nebo Delit:\n"); printf("zadejte prvni pismeno funkce :"); ch=getchar(); printf("\n"); printf("zadejte prvni cislo:"); scanf ("%d",&a); printf("zadejte druhe cislo:"); scanf ("%d",&b); if(ch=='s')printf("%d",a+b); if(ch=='o')printf("%d",a-b); if(ch=='n')printf("%d",a*b); if(ch=='d')printf("%f",a/b); načtení volby z klávesnice načtení prvního čísla načtení druhého čísla jestliže je načtený znak z klávesnice S, vytiskni a + b jestliže je načtený znak z klávesnice O, vytiskni a - b jestliže je načtený znak z klávesnice N, vytiskni a x b jestliže je načtený znak z klávesnice D vytiskni a / b } printf("\n"); system("pause"); Program provede příkazy a zobrazí: Naposledy 70 vytištěno :55:00

71 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Poznámka: Pokud v této variantě dosadíme za a = 3, b = 4, výsledkem dělení je 0, protože proběhlo tzv. celočíselné dělení (zobrazí jen celé číslo výsledku: Když si tedy napíši program a ve výstupní sestavě mám jako výsledek operace 0, je pravděpodobné, že je třeba upravit některou deklaraci v dělení. Pokud chceme tento nedostatek odstranit, je třeba v deklaraci proměnných uvést: float a, b; a v příkazu scanf na místě %d vložit %f viz varianta b Zápis v jazyku C - VARIANTA B #include <stdio.h> main () { float a,b; char ch; system("cls"); printf("chcete:\n"); printf("scitat, Odecitat, Nasobit nebo Delit:\n"); printf("zadejte prvni pismeno funkce :"); ch=getchar(); printf("\n"); printf("zadejte prvni cislo:"); scanf ("%f",&a); printf("zadejte druhe cislo:"); scanf ("%f",&b); if(ch=='s')printf("%f",a+b); if(ch=='o')printf("%f",a-b); if(ch=='n')printf("%f",a*b); if(ch=='d')printf("%f",a/b); printf("\n"); } system("pause"); Naposledy vytištěno :55:00 71

72 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Nové příkazy: getchar načtení jednoho znaku z klávesnice if(ch=='s') dvě rovnítka v příkazu if znamenají porovnání znaku načteného z klávesnice se znakem v apostrofech. Následující příklad má demonstrovat postup pří řešení reálných algoritmů, které řeší problém. Vycházíme vždy z jednoduchého algoritmu, který popisuje jen hlavní body řešení úlohy a ten následně zpřesňujeme tak, až se dostaneme téměř na úroveň jednotlivých příkazů v jazyku C. Samostatná práce studenta: Změňte v Příkladu č.7 varianta B příkaz float a, b; a nahraďte jej příkazem int a, b. Jak se bude program chovat? Naposledy 72 vytištěno :55:00

73 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Příklad č. 8 Zadání: Najdi největší číslo ze tří čísel, které vstupují z klávesnice a proveďte verifikaci vývojového diagramu. Realizujte variantu, kdy je a, b, c typu int, a variantu kdy je a, b, c typu double. (pozn. všechna čísla musí být vzájemně různá). Metodický pokyn: Vlastní problém nejprve zpracujeme v přehledném, stručném vývojovém diagramu, který popisuje blokové řešení problému. Následně zpracujeme jednotlivé bloky tohoto algoritmu postupně až po dílčí příkazy, které lze převést do příkazů jazyka C. Metoda zpřesňování vývojového diagramu je obecně platná při řešení jakéhokoliv problému. Vývojový diagram: Z Z Deklarace a, b, c, max Načtení tří čísel Budeme tedy potřebovat čtyři proměnné! Deklarace a, b, c a b c Najdi z těchto tří čísel největší ANO a > b 1 NE Vytiskni maximum 2 ANO a > c NE MAX = b ANO b > c MAX = a MAX = c MAX = c K Vytiskni maximum K Naposledy vytištěno :55:00 73

74 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc a) Varianta s celým číslem Zápis v jazyku C #include <stdio.h> main () { int a,b,c,max; system("cls"); printf("zadejte a:"); scanf ("%d",&a); printf("zadejte b:"); scanf ("%d",&b); printf("zadejte c:"); scanf ("%d",&c); if(a>b) 1 { if(a>c) max=a; 2 else max=c; 3 } else { if(b>c) max=b; 4 else max=c; 5 } printf("maximalni cislo je :%d\n",max); Připojení knihovny I/0 Hlavní funkce Začátek hlavní funkce a, b,c. budou celá čísla Smaž obrazovku vystav na obrazovku text "zadejte a" načtení hodnoty z klávesnice do proměnné a (a je celé číslo) vystav na obrazovku text "zadejte b" načtení hodnoty z klávesnice do proměnné b (b je celé číslo) vystav na obrazovku text "zadejte c" načtení hodnoty z klávesnice do proměnné c (c je celé číslo) jestliže je a > b vlož do max hodnotu a jinak vlož do max hodnotu c. jinak jestliže je b > c vlož do max hodnotu b jinak vlož do max hodnotu c. Vytiskni na obrazovku Maximalni cislo je max } system("pause"); Zastavení programu Zakončení programu Naposledy 74 vytištěno :55:00

75 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc b) Varianta s desetinným číslem (Příklad 8a) Zápis v jazyku C Paměť #include <stdio.h> main () { double a,b,c,max; system("cls"); printf("zadejte a:"); scanf ("%lf",&a); printf("zadejte b:"); scanf ("%lf",&b); naplň naplň vstupy dat vstupy dat a } printf("zadejte c:"); scanf ("%lf",&c); if(a>b) { if(a>c) max=a; Porovnáme a, c else max=c; větší uloží do max } else { if(b>c) max=b; else max=c; } printf("maximalni cislo je :%lf\n",max); system("pause"); naplň vstupy dat b c max Výstupní max na obrazovku hledání maxima Naposledy vytištěno :55:00 75

76 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Program provede operaci a zobrazí: Verifikace vývojového diagramu Hrubou verifikaci (ověření správné funkce programu) provedeme tak, že za vstupní data vložíme takové kombinace hodnot, aby program musel projít všechny větve algoritmu Metodický pokyn: Vypracujeme verifikaci Programu č. 8. Vybrali jsem si čtyři kombinace vstupních dat a) b) c) d), s jejich využitím ověříme funkčnost všech větví tohoto programu: a) a = 12, b = 3, c = 1 a > b > c, b) a = 1, b = 7, c = 4 b > c > a Z Z Deklarace proměnných Deklarace proměnných a a = 12 a a = 1 b b = 3 b b = 7 c c = 1 c c = 4 ANO a > b NE ANO a > b NE ANO a > c NE NE b > c ANO ANO a > c NE NE b > c ANO MAX = a MAX = c MAX = c MAX = b MAX = a MAX = c MAX = c MAX = b K K Naposledy 76 vytištěno :55:00

77 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc c) a = 20, b = 30, c = 10 c > a > b, d) a = 10, b = 20, c = 30 a < b < c Z Z Deklarace proměnných Deklarace proměnných a a = 20 a a = 10 b b = 30 b b = 20 c c = 10 c c = 30 ANO a > b NE ANO a > b NE ANO a > c NE NE b > c ANO ANO a > c NE NE b > c ANO MAX = a MAX = c MAX = c MAX = b MAX = a MAX = c MAX = c MAX = b K K Samostatná práce studenta: 1) Doplňte program příkazy, které by programátorovi sdělovaly, kterou cestou při ladění prochází Z Deklarace proměnných #include <stdio.h> main () { int a,b,c,max; system("cls"); a 1 printf("zadejte a:"); scanf ("%d",&a); printf("krok c. 1 \n"); b 2 c 3 ANO a > b NE ANO a > c NE NE MAX = a MAX = c MAX = c 8 K b > c ANO 7 MAX = b } printf("zadejte b:"); scanf ("%d",&b); printf("krok c. 2 \n"); printf("zadejte c:"); scanf ("%d",&c); printf("krok c. 3 \n"); if(a>b) { printf("krok c. 3a \n"); if(a>c) {printf ("krok c. 4 \n"); max=a;} else {printf ("krok c. 5 \n"); max=c;} } else { printf("krok c. 3b \n"); if(b>c) {printf ("krok c. 6 \n"); max=b;} else {printf ("krok c. 7 \n"); max=c;} } printf("maximalni cislo je :%d\n",max); printf("krok c. 8 \n"); system("pause"); Naposledy vytištěno :55:00 77

78 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Program provede příkazy a zobrazí: Naposledy 78 vytištěno :55:00

79 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Přehled struktury programu s využitím podprogramů: Ve vývojovém diagramu a následně v programu se často opakují úseky, které řeší stejnou problematiku, jen pro různá vstupní data. Takovému úseku říkáme podprogram. Hlavní program Zde se provádějí příkazy hlavního programu Příkaz pro zavolání podprogramu "P1" Podprogram "P1" Zde se provádějí příkazy podprogramu P1 Zde se provádějí příkazy hlavního programu Příkaz pro návrat z podprogramu Zde se provádějí příkazy podprogramu P2 Podprogram "P2" Příkaz pro zavolání podprogramu "P2" Příkaz pro návrat z podprogramu Zde se provádějí příkazy hlavního programu Příkaz pro ukončení programu Obr. č.:.. Zdroj: Ve vývojovém diagramu například v Příkladu č. 9 potom nemusíme pro každou hodnotu vstupní proměnné vykreslovat celou strukturu vývojového diagramu. Stačí jen stejný úsek označit a v následující části k tomuto označení přidávat označení proměnných, viz Příklad č. 9. Mluvíme o podprogramu. Naposledy vytištěno :55:00 79

80 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc K Deklarace proměnných K1 K2 K3 K4 Pro proměnné a, b, c, d, e, f, g vyvolej P1 P1 Podprogram č. 1 - načtení údajů a proměnných Hrubé mzdy a odvody za měsíc: Mezera Tisk a1 a2 a3 a4 a5 Pro proměnné a, b, c, d, e, f, g vyvolej P2 P2 Podprogram č. 2 - tisk údajů o pracovníkovi H = a4 + b4 + c4 + d4 + e4 + f4 + g4 Součet hrubé mzdy ; H o = a5 + b5 + c5 + d5 + e5 + f5 + g5 Součet odvodů ; o Mezera V Kunovicích, dne, K2, K3, K4 NE Konec ANO Vymaž obrazovku K Výstupem programu bývají většinou tzv. výstupní sestavy. Před začátkem algoritmizace a programování problému potřebujeme přesně definovat, jak mají vypadat výstupní sestavy. V tomto případě úzce spolupracuje ekonom a manažer se specialistou-programátorem. Jednoduché rozborové sestavy si má umět navrhnout každý ekonom, manažer a informatik. Využití podprogram u výstupní sestavy vidíme na příkladu řešení v Příkladu č. 9. Naposledy 80 vytištěno :55:00

81 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Pole Pole je seznamem proměnných, které jsou všechny jednoho typu a přistupuje se k nim přes jméno pole a pozici prvku. Pole může být jednorozměrné, např. a [2] nebo dvourozměrné b [30], [20]. a) Jednorozměrné pole Deklarace jednorozměrného pole: Typ jméno-proměnné [velikost]; U jednorozměrného pole jsou data (vždy stejného typu) ukládána sekvenčně za s sebou: MZDA[0] MZDA[1] MZDA[2] MZDA[n - 1] Pole je útvar (datová struktura), který je uložený v paměti. Proto mu musí být přiděleno jméno, které je adresou, kde je pole uloženo: MZDA[0] MZDA[1] MZDA [n-1] 0 1 n - 1 MZDA MC Například mzdy pracovníků lze umístit do proměnné typu pole, která na je nazvána MZDA. Prvky pole jsou číslovány od 0 do n (pole má n + 1 prvků) a pozice prvku v poli je udávána identifikací jména proměnné a v závorkách pořadím (pozor čísluje se od nuly); MZDA [10] je jméno prvního prvku tohoto pole. Překladači musíme určit, jaký typ dat budeme do prvku pole vkládat: - deklarace jednorozměrného pole typu int (do pole prvků mohu vkládat jen celá čísla), je: int a [10];.. Pole a má 10 znaků, číslovaných od 0. Př.: a [0]= 15; a [1]= 12; a [2]= 18; a [9]= 21; scanf ("%d",&a[0]); - deklarace jednorozměrného pole pro čísla s desetinnou čárkou do pole typu float float b [10]; Př.: b [1]= 14.2; b [3]= -7.3; b [9]= ; scanf ("%d",&b[1]); - deklarace jednorozměrného pole znaky cha c [5]; Př.: c [0]= A ; c [2]= ú ; c [4]= b ; scanf ("%d",&c[0]); - deklarace jednorozměrného pole řetězce (Kotek): char r1 [50]; scanf ("%s",r1) Naposledy vytištěno :55:00 81

82 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc V příkazu printf potom pracuji s tímto polem: printf("%d", a [3]); printf("%f", b [2]); printf("%c", c [2]); printf("%s", r1]); Pozn: Chceme-li použít scanf ( ) pro načtení celočíselné hodnoty do prvku pole, zadáváme před symbol &. Příklad: KR b) Dvojrozměrná pole Dovoluje pracovat se dvěma rozměry pole. První rozměr si můžeme představit jako řádek a druhý rozměr jako sloupec tabulky. Do takovéto tabulky lze vkládat různé hodnoty podle datového typu. Pokud použijeme datový typ řetězce lze vkládat na jednotlivé řádky texty. Př.: Deklarujeme-li dvojrozměrné pole, do něhož budeme vkládat text (řetězce znaků), lze použít: char jmena [10] [20]; a z klávesnice načte do první buňky hodnotu příkazem scanf ("%s", jmena[0]); 10 počet řádků 20 počet znaků Počet prvků B O T E K 1 F I L A 2 S T A N E K Cyklus Konstatovali jsme již, že cyklus zajišťuje opakování činnosti části programu dokud není splněna nějaká podmínka. Rozlišujeme cykly: 1) while 2) do 3) for Naposledy 82 vytištěno :55:00

83 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Cyklus while a) Cyklus while s podmínkou na začátku cyklu while (výraz) příkaz; Na místě příkaz může být blok příkazů. Program kontroluje pravdivost výrazu na začátku cyklu. výraz Výraz není pravdivý Je-li tedy <výraz> na začátku cyklu nepravdivý, nebude se příkaz nebo blok příkazů realizovat ani jednou. Výraz je pravdivý příkaz (blok příkazů) Příklad č. 9 Zadání: Vytiskni na obrazovku čísla od 1 10 a použij cyklus s podmínkou na začátku. Vývojový diagram Zápis v jazyku C Z Deklarace typu proměnné i #include <stdio.h> main () { int i; i = 1 i=1; Nastavení počáteční hodnoty počítadla tiskni ANO i 10 NE while (i<=10) { printf("%d\n",i); i=i+1; } Dokud platí, že i 10: - vytiskni hodnotu i - hodnotu i zvyš o 1 i = i + 1 system("pause"); } K Naposledy vytištěno :55:00 83

84 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc V následujícím textu si popíšeme podrobně činnost příkazu if a práce paměti. Řešení: Z Vyvolej knihovnu I / 0 MC i = 1 i 1 ANO i 10 NE i 10 i 10 i 10 i = 10 i > 10 tiskni i Tisk: 1 Tisk: 2 Tisk: Tisk: 10 i = i + 1 i K K Program provede příkazy a zobrazí: Naposledy 84 vytištěno :55:00

85 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Příklad č. 10 Mzdová účetní potřebuje rychle vypočítat průměr mezd pracovníků. Počet pracovníků předem nezná. Vyřešte tento problém s využitím cyklu while, nakreslete vývojový diagram, verifikujte průběh programu na vývojovém diagramu, přepište do jazyka C, a spusťte. Řešení: Z Vyvolání knihovny i/0 Paměť Proměnná, pomocí níž rozhodnu, zda chci pokračovat Větev A: Deklarace typu proměnné plat, součet, počet, průměr, povel Součet = 0 Počet = 0 Povel = = A 1 2 Větev B součet povel 0 0 A Nastavení počátečních hodnot A je pravdivé Povel = A A není pravdivé zadej plat 3 Průměr = suma/počet plat průměr Součet = součet + plat Počet = počet Tiskni průměr součet počet 4 5 Povel pokračovat A/N K povel 6 načti povel 6 zadáno A Zápis v jazyku C #include <stdio.h> main () { int plat,soucet,pocet; double prumer; char povel; soucet=0; pocet=0; povel='a'; while (povel=='a') { printf("\n zadej plat :"); 3 scanf ("%d",&plat); 4 soucet=soucet+plat; 5 pocet=pocet+1; printf("pokracovat A N :"); 6 povel=getch(); Vyvolání knihovny I/0 Hlavní funkce programu Definice typu proměnných Nastavení počáteční hodnoty proměnné Hlavička cyklu Větev A cyklus pro načtení vstupních dat } prumer=soucet/pocet; 7 printf("\n prumer platu je :%lf \n",prumer); } system("pause"); Větev B výstupy průměrů platů na obrazovku Naposledy vytištěno :55:00 85

86 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Program provede příkazy a zobrazí: Popis nových klíčových slov while (výraz) příkaz;..dokud je výraz pravdivý, vykonej příkaz a opakuj dotaz na pravdivost výrazu. Samostatná práce studenta Doplňte znakové upozornění (zvonek) pro obsluhu, že má zadat vstupní hodnotu! Příklad č. 11 Načtěte pro pět pracovníků příjmení, jméno a hrubou mzdu s využitím cyklu while a s využitím téhož cyklu vytiskněte sestavu: Výpis údajů Malý Petr Šebek Jan Staněk Milan Fila Igor Bobek Karel Naposledy 86 vytištěno :55:00

87 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Nejprve si naplánujeme, jaké proměnné budeme potřebovat, jak je označíme a jak jim deklarujeme typ. a (příjmení) b (jméno) c (hrubá mzda) a1=malý b1=petr c1= 9600 a2=šebek b2=jan c2= a3= Staněk b3=milan c3= a4=fila b4=igor c4=8 400 a5=bobek b5=karel c5= Vývojový diagram Z Vyvolání knihovny i/0 Deklarace typů proměnných n a1, a2, a3, a4, a5 příjmení b1, b2, b3, b4, b5 - jméno c1, c2, c3, c4, c5 hrubá mzda Vymaž obrazovku n = 5; n > 1 while ( n 1) NE Podmínka na začátku cyklu Načtení vstupních dat (příjmení, jméno, hrubá mzda) n = 1 n = 2 n = 3 n = 4 ANO Načti údaje o pracovnících ANO ANO ANO ANO naplň a 1, b 1, c 1 naplň a 2, b 2, c 2 naplň a 3, b 3, c 3 první průchod cyklem while protože n = 5 n > 1 (naplní a5, b5, c5) první průchod cyklem while protože n = 4 n > 1 (naplní a4, b4, c4) atd. naplň a 4, b 4, c 4 n = 5 ANO naplň a 5, b 5, c 5 n = n Naposledy vytištěno :55:00 87

88 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc vymaž obrazovku n = 5; Tisk výpis údajů n > 1 while ( n 1) NE ANO n = 1 ANO tisk a 1, b 1, c 1 K Tisk výstupní sestavy n = 2 n = 3 ANO ANO tisk a 2, b 2, c 2 tisk a 3, b 3, c 3 n = 4 ANO tisk a 4, b 4, c 4 n = 5 ANO naplň a 5, b 5, c 5 n = n - 1 Naposledy 88 vytištěno :55:00

89 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Plnění paměti v průběhu zpracování programu: plnění proměnných n < 1 Konec cyklu 1 5 > 1 4 > 1 3 > 1 2 > 1 1 = 1 5 > 1 4 > 1 3 > 1 2 > 1 1 = 1 A Botek Fila Staněk Šebek Malý a 5 a 4 a 3 a 2 a 1 b 5 Karel b 4 Jan b 3 Milan b 2 Jan b 1 Petr c 5 c 4 c 3 c 2 c 1 n 4 n 3 n 2 n 1 n 0 Obr. č...: Plnění paměti při realizaci Příkladu č. 11 Nevýhodou tohoto řešení je, že musíte deklarovat veliké množství proměnných a při velkém počtu pracovníků by byl vývojový diagram i program v jazyku C neúnosně rozsáhlý. Zápis v jazyce C #include <stdio.h> main () { int Počet znaků c1,c2,c3,c4,c5; char a1[30],a2[30],a3[30],a4[30],a5[30];. příjmení char b1[30],b2[30],b3[30],b4[30],b5[30]; int n; a 1 a 1 [0] a 1 [29] system("cls"); a 2 a 2 [0] a 2 [29] n=5; while (n>=1) { if (n==1) { printf("zadejte prijmeni:");scanf ("%s",a1); printf("zadejte jmeno:");scanf ("%s",b1); printf("zadejte mzdu:");scanf ("%d",&c1); } if (n==2) { printf("zadejte prijmeni:");scanf ("%s",a2); printf("zadejte jmeno:");scanf ("%s",b2); printf("zadejte mzdu:");scanf ("%d",&c2); } Naposledy vytištěno :55:00 89

90 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc if (n==3) { printf("zadejte prijmeni:");scanf ("%s",a3); printf("zadejte jmeno:");scanf ("%s",b3); printf("zadejte mzdu:");scanf ("%d",&c3); } if (n==4) { printf("zadejte prijmeni:");scanf ("%s",a4); printf("zadejte jmeno:");scanf ("%s",b4); printf("zadejte mzdu:");scanf ("%d",&c4); } if (n==5) { printf("zadejte prijmeni:");scanf ("%s",a5); printf("zadejte jmeno:");scanf ("%s",b5); printf("zadejte mzdu:");scanf ("%d",&c5); } n=n-1; } řetězec 15 znaků zarovnání vlevo } printf("vypis udaju\n\n"); n=5; číslo celé 10 znaků while (n>=1) { if (n==1)printf("%-15s%-15s%10d\n",a1,b1,c1); if (n==2)printf("%-15s%-15s%10d\n",a2,b2,c2); if (n==3)printf("%-15s%-15s%10d\n",a3,b3,c3); if (n==4)printf("%-15s%-15s%10d\n",a4,b4,c4); if (n==5)printf("%-15s%-15s%10d\n",a5,b5,c5); n=n-1; } system("pause"); Naposledy 90 vytištěno :55:00

91 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Samostatná práce studenta 1. Pokuste se s využitím stávajících znalostí naprojektovat takový program, který umožní obsluze mezi dvěma znaky změřit délku proluky. Z Délka proluky Zvonek Prodleva Zvonek ANO NE Pokračovat? K Naposledy vytištěno :55:00 91

92 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc a) Cyklus s podmínkou na konci cyklu - cyklus do-while Dalším cyklem v jazyku C je cyklus do-while. Obecně má tvar: do / převeď / { příkazy / tělo cyklu / } while (výraz); / dokud platí <výraz> / Pokud se provádí jeden příkaz, { } závorky nejsou potřebné, např.:. do printf ( První úloha ); while (a < b);. Cyklus opakuje příkazy, dokud je výraz pravdivý. V tomto případě se příkazy provedou alespoň jednou, protože podmínka je až na konci cyklu. Příklad č. 12 Zadání: Vytiskni na obrazovku čísla od 1 10 a použij cyklus s podmínkou na konci. Vývojový diagram Zápis v jazyku C Popis příkazů Z i = 1 include <stdio.h> main () { int i; Vyvolání knihovny I / 0 Začátek hlavní funkce Proměnná i je typu int tiskni i = i + 1 i=1; do { printf("%d\n",i); i=i+1; } while (i<=10); Nastavení počítadla cyklu Začátek cyklu Tělo cyklu Podmínka cyklu ANO i 10 NE } system("pause"); K Naposledy 92 vytištěno :55:00

93 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Následující graf prezentuje vztah průběhu cyklu do a práci paměti. Z Vyvolání knihovny i / 0 Knihovna i / 0 i = 1 i 1 tiskni i i = i + 1 i ANO i 10 NE 2 < 10 3 < = > 10 K K první průchod cyklu druhý průchod cyklu Následující příklad ukončí cyklus zadáním příkazu povel stlačením písmene A na klávesnici. Naposledy vytištěno :55:00 93

94 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Příklad č. 13 Vytvořte vývojový diagram a napište program v jazyku C, kdy z klávesnice budou zadávány platy, následně bude proveden dotaz na pokračování a po ukončení cyklu zadávání platů se vypočte součet zadávaných platů. Vývojový diagram Zápis v jazyku C Z Deklarace externích dat součet = 0 zadej plat Součet = součet + plat #include <stdio.h> main () { int plat,soucet; char povel; soucet=0; do { printf("\n zadej plat :"); scanf ("%d",&plat); soucet=soucet+plat; deklarace externích knihoven (i/0) deklarace typu proměnných, které budeme používat nastavení počítané hodnoty součtu cyklus do - while ANO Povel pokračovat A / N povel A NE součet platů K } printf("pokracovat A N :"); povel=getch(); } while (povel=='a'); printf("\n soucet platu je :%d \n",soucet); system("pause"); Naposledy 94 vytištěno :55:00

95 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Popis nových klíčových slov Pokud chceme cokoliv porovnávat, uvedeme dvě rovnítka: Př.: while (povel = = "A").. c) Cyklus for Cyklus for se používá pro předem známý počet opakování příkazu nebo bloku příkazů. Má obecně formát: for (inicializace, test podmínky, krok) příkazy; Inicializace znamená zadání počáteční hodnoty řídící proměnné cyklu. Test podmínky zjištění, zda řídící proměnná cyklu dosáhla konečné hodnoty Je-li test konečné hodnoty řídící proměnné pravdivý, cyklus se opakuje. Není-li pravdivý, cyklus se ukončí a program pokračuje zpracováním prvního příkazu, který stojí za cyklem. Test podmínky se provádí na začátku cyklu. Testování podmínky se provádí na začátku cyklu, což znamená, že po každém provedení cyklu se proměnná sníží (zvýší) o určitou hodnotu. Krok změna proměnné cyklu pro provedení cyklu Z Nastavení hodnoty počáteční proměnné; podmínka test na hodnotu proměnné; krok Tělo cyklu jeden příkaz nebo blok příkazů Provedení kroku Naposledy vytištěno :55:00 95

96 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Příklad č. 14 Zadání: Vytiskni na obrazovku čísla od 1 10 a použij cyklus for. Vývojový diagram Z Zápis v jazyku C #include <stdio.h> main () { int i; i: = 1; i 10; i + 1 for (i=1;i<=10;i++) { tělo cyklu tiskni i Tělo cyklu printf("%d\n",i); } i = i + 1 } system("pause"); K Popis příkazů: i + + je ekvivalent i = i + 1; i - - je ekvivalent i = i 1; Na základě dosavadních znalostí jste schopni podrobně analyzovat činnost vývojového diagramu a programu následujícího příkladu. Naposledy 96 vytištěno :55:00

97 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Příklad 15 Vypracujte vývojový diagram, který načte pro 5 pracovníků - Karel Botek, Jan Fila, Milan Staněk, Jan Šebek, Petr Malý hrubé mzdy. Vypočítejte odvod každého pracovníka a vypočítejte součet hrubých mezd a součet odvodů. Popište činnost paměti a potřebné proměnné. Vytiskněte součet hrubých mezd a součet odvodů. Řešení: Tento příklad ukazuje na využití proměnné typu pole. Vývojový diagram Paměť Z Vymaž obrazovku Deklarace proměnných n Počet pracovníků Nastavení počáteční hodnoty suma = h suma = o n 5 i = 0; i < n; i ++ i i i i i pole Pracovník příjmení ANO Prijmeni i [i] Botek Fila Staněk Šebek Malý Prijmeni [i] Pracovník jméno jmeno i [i] prijmeni 1 Karel prijmeni 2 Jan prijmeni 3 Milan prijmeni 4 prijmeni 5 Jan Petr Jmeno [i] Hrubá mzda mzda i [i] jmeno jmeno jmeno jmeno jmeno Mzda [i] Do odvod [i] vlož vypočítaný odvod pracovníka mzda odvod 1 mzda 2 mzda 3 mzda 4 mzda odvod 2 odvod 3 odvod 4 odvod 5 odvod [i] Přičti hodnotu mezd pracovníka k celkovému součtu mezd Přičti hodnotu mezd pracovníka k celkovému odvodu i suma h 1 suma h 2 suma h 3 suma h 4 suma h suma o 1 suma o 2 suma o 3 suma o 4 suma o 5 suma - h [i] suma - o [i] i = i + 1 i i i i i < n i < n i < n i < n i < n i > n Naposledy vytištěno :55:00 97

98 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Součet hrubých mezd i n Součet odvodů V Kunovicích dne prijmeni B O T E K 1 F I L A 2 S T A N E K K Zápis v jazyku C Počet pracovníků #include <stdio.h> main () Počet znaků { int i,n; char prijmeni[100][30]; Jména char jmeno[100][30]; double mzda[100]; double odvod[100]; double suma_h,suma_o; Příjmení jmeno K A R E L 1 J A N 2 99 system("cls"); printf("zadejte pocet pracovniku (max 100):"); scanf ("%d",&n); suma_h=0; suma_o=0; for (i=0;i<n;i++) { Mzda Odvod zahájení cyklu } printf("pracovnik %d\n",i+1); printf("zadejte prijmeni:"); scanf ("%s",prijmeni[i]); printf("zadejte jmeno:"); scanf ("%s",jmeno[i]); printf("zadejte mzdu:"); scanf ("%lf",&mzda[i]); odvod[i]=mzda[i]*0.35; suma_h=suma_h+mzda[i]; suma_o=suma_o+odvod[i]; printf("\n"); printf("soucet hrubých mezd :%10.2lf\n", suma_h); tělo cyklu výpočet odvodů deset míst celkem 2 desetinná místa printf("soucet odvodu :%10.2lf\n\n",suma_o); printf("v Kunovicich dne : \n"); lf proměnná typu double } system("pause"); Naposledy 98 vytištěno :55:00

99 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Popis příkazu printf ("Soucet hrubych mezd: %10.21f\n", suma_h); 1. Na obrazovku vypíše Soucet hrubých mezd: 2. Za tento text vypíše obsah proměnné suma_h s tím, že celkem může mít toto zobrazení 10 míst, z toho jsou dvě desetinná. 3. \n\n posune kurzor obrazovky o dva řádky Naposledy vytištěno :55:00 99

100 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Aplikace programu C do práce ekonoma Příklad č. 16 V podniku Eskaliber, s.r.o. pracují následující pracovníci: p. Koníček Aleš p. Tománek Petr p. Šula Jan p. Prát Antonín p. Koubek Karel p. Čujan Petr p. Forman Jiří Vaším úkolem je vytvořit vývojový diagram pro řešení, které dovolí v daném měsíci pro jednotlivé pracovníky zadat hrubé mzdy, vypočítat z hrubých mezd odvody a vytisknout níže uvedenou sestavu převést do programovacího jazyka C a spustit. Hrubé mzdy a odvody za měsíc: 1 K1 a 1 a 2 a 3 a 4 a Pořadí Příjmení 1 Jméno Hrubá mzda Odvody 1 Koníček Aleš Součet hrubé mzdy: Součet odvodů: H O V Kunovicích, dne K2 K3 K4 Výstupní sestava vstupní proměnné výstupní proměnné Naposledy 100 vytištěno :55:00

101 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Vývojový diagram již řešili v předešlých částech textu. Z A Deklarace proměnných Hrubé mzdy a odvody za měsíc: K1 viz 1 měsíc Mezera K1 1 P2(a) den K2 6 Tisk a1 a2 a3 a4 a5 měsíc K3 7 P2 (b) Načtení vstupních rok pořadí a1 příjmení jméno hrubá mzda a2 a3 a4 K4 1 Koníček Aleš Výpočet odvodů a5 8 P1(a) Podprogramy P2 (c) P2 (d) P2 (e) P2 (f) P2 (g) H = a4 + b4 + c4 + d4 + e4 + f4 + g4 Součet hrubé mzdy ; H Tisk výstupní P1 (b) o = a5 + b5 + c5 + d5 + e5 + f5 + g5 11 P1 (c) P1 (d) P1 (e) Součet odvodů ; o Mezera 13 P1 (f) V Kunovicích, dne, K2, K3, K4 P1 (g) NE Konec A ANO Vymaž obrazovku K Naposledy vytištěno :55:00 101

102 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Viděli jsme také, že toto řešení vytváří jednoduchou databázi, kterou můžeme výše uvedeným programem naplnit. Naše databáze bude mít strukturu: a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 c5 d1 d2 d3 d4 d5 e1 e2 e3 e4 e5 f1 f2 f3 f4 f5 g1 g2 g3 g4 g5 1 Koníček Aleš Tománek Petr Šula Jan Prát Antonín Koubek Karel Čujan Petr Forman Jiří Zápis v jazyku C #include <stdio.h> main () { int a1,b1,c1,d1,e1,f1,g1,k2,k3,k4; char k1[30]; char a2[30],b2[30],c2[30],d2[30],e2[30],f2[30],g2[30]; char a3[30],b3[30],c3[30],d3[30],e3[30],f3[30],g3[30]; double a4,b4,c4,d4,e4,f4,g4; double a5,b5,c5,d5,e5,f5,g5; double suma_h,suma_o; system("cls"); proměnná řetězce (K1 bude zobrazena řetězcem znaků) proměnná pro načtení měsíce jako text printf("zadejte mesic uzaverky:");scanf ("%s",k1); printf("zadejte den:");scanf ("%d",&k2); printf("zadejte mesic:");scanf ("%d",&k3); printf("zadejte rok:");scanf ("%d",&k4); a1=1; printf("zadejte prijmeni:");scanf ("%s",a2); printf("zadejte jmeno:");scanf ("%s",a3); printf("zadejte mzdu:");scanf ("%lf",&a4); a5=a4*0.35; b1=2; printf("zadejte prijmeni:");scanf ("%s",b2); printf("zadejte jmeno:");scanf ("%s",b3); printf("zadejte mzdu:");scanf ("%lf",&b4); b5=b4*0.35; proměnná mzda (číselná hodnota) proměnná typu double c1=3; printf("zadejte prijmeni:");scanf ("%s",c2); printf("zadejte jmeno:");scanf ("%s",c3); printf("zadejte mzdu:");scanf ("%lf",&c4); c5=c4*0.35; d1=4; printf("zadejte prijmeni:");scanf ("%s",d2); printf("zadejte jmeno:");scanf ("%s",d3); printf("zadejte mzdu:");scanf ("%lf",&d4); d5=d4*0.35; e1=5; printf("zadejte prijmeni:");scanf ("%s",e2); printf("zadejte jmeno:");scanf ("%s",e3); printf("zadejte mzdu:");scanf ("%lf",&e4); e5=e4*0.35; f1=6; printf("zadejte prijmeni:");scanf ("%s",f2); printf("zadejte jmeno:");scanf ("%s",f3); printf("zadejte mzdu:");scanf ("%lf",&f4); f5=f4*0.35; Naposledy 102 vytištěno :55:00

103 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc g1=7; printf("zadejte prijmeni:");scanf ("%s",g2); printf("zadejte jmeno:");scanf ("%s",g3); printf("zadejte mzdu:");scanf ("%lf",&g4); g5=g4*0.35; sedm míst pro číslo 20 znaků text dorovnání vlemo 10 míst a 2 desetinná čísla typu double system("cls"); printf("hrube mzdy a odvody za mesic :%s\n\n",k1); printf("%7s %-20s %-20s %10s %10s\n","poradi","prijmeni","jmeno","hruba mzda","odvody"); printf("%7d %-20s %-20s %10.2lf %10.2lf\n",a1,a2,a3,a4,a5); printf("%7d %-20s %-20s %10.2lf %10.2lf\n",b1,b2,b3,b4,b5); printf("%7d %-20s %-20s %10.2lf %10.2lf\n",c1,c2,c3,c4,c5); printf("%7d %-20s %-20s %10.2lf %10.2lf\n",d1,d2,d3,d4,d5); printf("%7d %-20s %-20s %10.2lf %10.2lf\n",e1,e2,e3,e4,e5); printf("%7d %-20s %-20s %10.2lf %10.2lf\n",f1,f2,f3,f4,f5); printf("%7d %-20s %-20s %10.2lf %10.2lf\n",g1,g2,g3,g4,g5); suma_h=a4+b4+c4+d4+e4+f4+g4; printf("soucet hrube mzdy :%10.2lf\n", suma_h); suma_h=a4+b4+c4+d4+e4+f4+g4; printf("soucet hrube mzdy :%10.2lf\n", suma_h); suma_o=a5+b5+c5+d5+e5+f5+g5; printf("soucet odvodu :%10.2lf\n\n",suma_o); printf("v Kunovicich dne :%d.%d.%d\n",k2,k3,k4); } system("pause"); Naposledy vytištěno :55:00 103

104 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Po spuštění programu a naplnění dat se objeví tato obrazovka: Popis příkazu printf("%7s %-20s %-20s %10s %10s\n","poradi","prijmeni","jmeno","hruba mzda","odvody"); Tento příkaz vypíše na obrazovku řádek - základní tabulky. Přitom platí: Text pořadí je umístěn do 7 znaků dorovná vpravo: P O R A D I Text příjmení je umístěn do 20 znaků dorovná vlevo: P R I J M E N I Naposledy 104 vytištěno :55:00

105 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Text příjmení je umístěn do 20 znaků dorovná vlevo: J M E N O %10.2lf umístí číslo do 10 znaků se dvěma desetinnými místy, zarovnání zprava: a 4 = a 5 = Shrnutí Vývojový diagram je třeba po jeho verifikaci přepsat do jazyka C. V takovém případě si volíme prostředí, v němž bude probíhat přepis do jazyka C (editor, výstupem je zdrojový soubor, koncovku má.c), překladač (kompilátor, výstupem je cílový soubor s koncovkou. obj), zapojit do externí knihovny pomocí sestavovacích programů (linker, připojí externí knihovny a vytvoří spustitelný soubor s příponou.exe). Hlavičkové soubory Knihovny.lib Editor Preprocesor Překladač Linker Debugger Zdrojový soubor.c Hlavičkový soubor.h Relativní kód.obj Spustitelný soubor. exe Spuštění Program C začíná hlavičkovým souborem, který definuje přidané externí knihovny - #include <stdio.h>, které mají příponu.h. Nejčastěji používanou knihovnou je knihovna pro ovládání vstupu a výstupu (I/O) stdio.h. Za hlavním souborem se nachází jedna nebo více funkcí. Povinnou funkcí je funkce main ( ); za tímto klíčovým souborem je příkaz nebo blok příkazů (blok příkazů je uzavírá závorkami { }). Za každým příkazem musí být středník. V programu používáme konstanty (například čísla a = 5) nebo proměnné. Konstanty i proměnné jsou ukládány do paměti. U konstanty i proměnné musíme určit její typy. V programu lze používat následující typy: znak (8 bitů) celé číslo se znaménkem desetinné číslo s pohyblivou řádovou čárkou desetinné číslo s pohyblivou řádovou čárkou s dvojnásobnou přesností bez hodnoty Naposledy vytištěno :55:00 105

106 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc U proměnné musíme zadat její jméno a typ, aby si program mohl v paměti vytvořit potřebné místo (typ jméno proměnné;) př.: int x; Proměnná může být definována jako a) globální b) lokální uvnitř funkce, v níž je deklarována Hodnotu konstanty přiřazujeme položce přiřazovacím příkazem jméno proměnná = hodnota. Nejčastěji používaný příkaz výstupu dat na obrazovku je printf ( );, nejčastější příkaz pro načtení dat z klávesnice je scanf ( ); Oba příkazy lze zadáním parametrů v ( ) více specifikovat. Činnost programu lze zastavit příkazem systém ("PAUSE"); Obrazovku smažeme příkazem ("CLS"); Na proměnné můžeme aplikovat operátory: Operátor Činnost + sčítání - odčítání > větší než >= větší než nebo rovno < menší než <= menší než nebo rovno = = rovno!= nerovno nebo logické (relační) operátory Nevyšší! >>=<<= = =!= && Nejnižší Přechod na nový řádek zajistíme \n. Pro větvení programu používáme příkaz if (výraz) příkaz; nebo if (výraz) příkaz1; else příkaz2; U výrazu se zkoumá jeho pravdivost. Komentáře v programu / komenář / V programech můžeme používat cykly while, do while a for. a) while (výraz) příkaz; může mít podmínku na začátku nebo na konci cyklu. b) do {tělo cyklu} while (výraz); c) for (inicializace, test podmínky, krok) příkazy; K načtení vstupního údaje lze použít také příkaz getch ( ); Data, zvláště ekonomické údaje, lze ukládat do pole. U pole určujeme typ dat, která do tohoto pole můžeme ukládat a rozsah znaků, které může proměnná mít. Tyto údaje se uvádí již v části deklarace proměnných viz char prijmeni[100][30]; nebo double mzda [100]; Pro opakující se části, lze použít tzv. podprogram. V programech používáme tzv. MENU, které dovolí uživateli strukturování jeho požadavků. Naposledy 106 vytištěno :55:00

107 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Vývojový diagram před zahájením jeho překladu tzv. verifikace provádíme kontrolu jeho správné funkce na vhodně zvolených vstupních datech. Z toho také vyplývá, že vstupní data pro konkrétní řešení programu musí vyhovovat tzv. vstupní podmínce. Pokud uděláme v přepisu nebo logice řešení úkolu chybu, program nás na chybu upozorní a zvýrazní řádek, kde si myslí, že jsme udělali chybu. Skutečnou chybu však musí nají programátor. Naposledy vytištěno :55:00 107

108 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Slovní zásoba v jazyce anglickém: Slovíčka v jazyce anglickém Česká varianta Psáno anglicky Výslovnost Počítač Computer [kęmpju:tę:] Umělá inteligence Artificial Intelligence [a:rtęfišęl intelędžęns] Generace Generation [dženę:eišęn] Nula Zero [zirou] Nultá generace počítačů Zero Generation Computers [zirou dženę:eišęn kęmpju:tęs: ] MARK1 byl počítač první generace Mark 1 was the first generation computer. EPOS1 byl počítač druhé generace EPOS 1 was the second generation computer. Algoritmus Algorithm [ąlgę:iđęm] Vývojový diagram Flowchart Program Computer Programme [kęmpju:tę: prougrąm] Paměť Memory [memę:i:] Příkaz command [kęmąnd] Obsah paměti Memory Contents [memę:i: ka:ntents] Místo Space [speis] Místo v paměti Memory space [memę:i: speis ] Uložit Save [seiv] Konstanta Constant [ka:nstęnt] Znak Character [keriktę:] Uložit do paměti Save into Memory [seiv intu: memę:i:] Proměnná Variable [veri:ębęl] Uložit proměnnou do paměti Save variable into Memory Typ Type [taip] Typ proměnné Variable type [veri:ębęl taip] Proměnná typu int int variable Proměnná typu double double variable Proměnná typu float float variable Proměnná typu char char variable Pole Array [ę:ei] Proměnná typu pole Array Délka Length [leńk0] Délka proměnné Variable Length [veri:ębęl leńk0] Příkaz Command [kęmąnd] Blok příkazů Block of commands [bla:k av kęmąndz] Přiřadit Assign [ęsain] Příkaz přiřazení Assignment command [ęsainmęnt kęmąnd] Procedura Procedure [pręsi:džę:] Main je první procedura Main is first a function programu Data Data [deitę] Číst data To read Data [tu: red deitę] Načti data do proměnné Read Data into a variable Vstup dat Data Input [deitę input] Výstup dat Data Output [deitę autput] Knihovna Library Naposledy 108 vytištěno :55:00

109 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Knihovna vstupu a výstupu Input and Output Library [input ąnd autput laibreri:] % procento % ratio/per cent Lomítko Slash/forward slash Úvozovky.. Quotation Marks [kwouteišęn ma:rks] Závorky {} Brackets [brąkęts] Komentář /*.*/ Comment [ka:ment] Cyklus Loop [lu:p] Tělo cyklu Loop body [lu:p ba:di:] Cyklus while While loop [mail lu:p] Cyklus do while Do While loop [du: mail lu:p] Cyklus for For loop [fo:r lu:p] Podmínka Condition [kęndišęn] Pole Array [ę:ei] Prvek Item [aitęm] Počet Count/ computation number Počet prvků pole Number elements of array Zadání úlohy Problem spetting/task Informatika Informatics [infę:mątiks] Teoretický základ informatiky Theoretical Basis on Informatics Manažer Manager [mąnędžę:] Ekonom Economist [ika:nęmist] Přejdi Go over (to) [gou ouvę:] Přejdi na nový řádek Go over (to) a new line Výraz Vep Uložit Save [seiv] Zadání Setting [setiń] Zadání úlohy Problem spetting/task Teorie Theory [0iri:] Řešení Solution [sęlu:šęn] Grafické řešení Graphic Solution [grafik sęlu:šęn] Obsahuje Includes [inklu:dz] Funkce Function [fańkšęn] Algoritmus je řešením úlohy. Algorithm is the solution of the problem. Vývojový diagram je grafickým řešením algoritmu. Flowchart is a graphic solution of the algorithm. Program obsahuje příkazy. The programme includes instruction commands. Program obsahuje funkci main The programme includes the function main. Do paměti ukládáme data. Data is saved into memory. Do paměti ukládáme příkazy. Instruction commands are saved into memory. Do paměti ukládáme proměnné Parameter/Variable is saved into memory. Do paměti ukládáme data i příkazy Data and instruction commands are saved into memory. Data a proměnné mají v paměti délku. Data and instruction have a length in memory. Blok příkazů obsahuje příkazy. Block of instructions includes commands/ Data and variables Naposledy vytištěno :55:00 109

110 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc have the length in memory a = 5 je příkaz přiřazení a is 5 is an assignment command/ a is 5 is a command of assign První funkce programu je The first function is main main Příkaz #include<studio.h >; vyvolá knihovnu vstupu a výstupu Command #include <studio.h>, call input library and out put library Obrazovka Screen Příkaz printf ( ); píše na obrazovku Příkaz scanf( ); čte data ze Command? WTF vstupu Proměnná je typu int Int variable Podmínka Condition/Term Obrazovka Screen [skri:n] Cyklus má podmínku a tělo Loop, has body cyklu Pole má určitý počet prvků The array has a certain number of elements. \n nařizuje přejít na další řádek. \n commands to go over to next line Studujeme teoretické základy informatiky pro manažery a ekonomy We study theoretical basis of informatics for managers and economists. Přepis zadání do vývojového diagramu The transcription of the setting to the flowchart Naposledy 110 vytištěno :55:00

111 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Otázky Co to je algoritmus? (jednoznačně určená posloupnost konečného počtu elementárních kroků, vedoucích k vyřešení daného problému při splnění podmínek hromadnosti, jedinečnosti, konečnosti, rezultativnosti, správnosti a výsledku) Co to je vývojový diagram? (je to je druh diagramu, který slouží ke grafickému znázornění jednotlivých kroků algoritmu, nebo obecného procesu) Jak provádíme verifikaci programu? (Navrhneme kombinace vstupních dat tak, abychom ověřili správnou funkci všech větví programu). K čemu slouží vstupní proměnné v programu? (Pro načtení vstupních dat a práci s daty). K čemu slouží výstupní proměnné v programu? (Pro tisk výstupních dat). K čemu slouží cyklus? (Cyklus slouží k opakování části programu, dokud je splněna podmínka) Jaké typy cyklů používáme nejčastěji při algoritmizaci úloh? (while, do_while, for) Co zabezpečuje je editor? Zápis vývojového diagramu do zdrojového kódu daného jazyka Jakou funkci má překladač? (Přeloží program. Výstupem je soubor s koncovkou.obj) Co to je linker? (připojuje externí knihovny) K čemu slouží tzv. hlavičkový soubor? (umožní programu připojení externích knihoven, má příponu.h a tvar #include <stdio.h>) Jakým klíčovým slovem se zapisuje funkce v programu? (main( )) Který příkaz zajistí připojení knihovny I/O? (#include <stdio.h>) Proč potřebujeme v programu deklarovat proměnné? (Potřebujeme říci překladači, o jaký typ proměnné jde, kolik místa si má v paměti na proměnnou vyčlenit, jaké operace jsou s touto proměnnou dovolené). Který příkaz deklaruje celé číslo se znaménkem? (int) Který příkaz deklaruje desetinné číslo s pohyblivou řádovou čárkou s dvojnásobnou délkou? (double) Naposledy vytištěno :55:00 111

112 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Který příkaz deklaruje desetinné číslo s pohyblivou řádovou čárkou? (float) Jakou strukturu má deklarace proměnné? (typ jméno_proměnné;) Jakou strukturu má deklarace příkaz pro naplnění proměnné konstantou? (jméno_proměnné=konstanta;).ve kterém řádku je chyba? #include <stdio.h>; #include <stdio.c>; #include <stdio.d>; Všechny odpovědi jsou správné. (ve druhém, třetím a čtvrtém) Musí být za příkazem printf( ) středník? (Ano, musí být vždy) Musí být středník za příkazem scanf ("%d",&mzda)? (Ano, musí být vždy).co způsobí příkaz system("pause");? (Program se zastaví a na obrazovku napíše Pokračuj stlačením libovolné klávesy Po stlačení libovolné klávesy program pokračuje). Co způsobí příkaz \n v příkazu printf( \n )? (Program posune kurzor obrazovky na nový řádek). K čemu slouží příkaz scanf("%d",&mzda);? (Je to příkaz na načtení dat (celých čísel) z klávesnice do proměnné mzda.) Co určuje "%d" v příkazu scanf("%d",&mzda);? (mzda je typ proměnné double). Co určuje & v příkazu scanf("%d",&mzda);? (Označuje proměnnou).co vykoná příkaz system("cls");? (Smazání obrazovky) Co znamení v programu C příkaz int a,b,c;? (proměnné typu a, b, c budou celá čísla) Jakou strukturu má cyklus if? (if(podmínka)příkaz;)).jakou strukturu má cyklus if, else? (if(podmínka)příkaz1 else příkaz2;) K čemu slouží příkaz getch();? (k načtení dat do proměnné) Co vykoná příkaz if (char== S ) printf( %d, a+b);? Naposledy 112 vytištěno :55:00

113 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc (Pokud char = S, vytiskne se na obrazovku součet obsahu proměnných a, b (celočíselné hodnoty)) Co znamená deklarace char a[30][10];? (Proměnná a je typu pole o 30 řádcích, každý řádek má 10 znaků).program má určit, které ze dvou zadaných čísel je větší a toto vytisknout. Který zápis je správný? a) #include <stdio.h> main () { int a,b,c; system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); if(a>b){ printf("vetsi cislo je a \n"); } else { printf("vetsi cislo je b \n"); } } b) main () { int a,b,c; system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); if(a>b){ printf("vetsi cislo je a \n"); } else { printf("vetsi cislo je b \n"); } } c)#include <stdio.h> { int a,b,c; system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); if(a>b){ printf("vetsi cislo je a \n"); } else { printf("vetsi cislo je b \n"); } }.d) Žádný zápis není správný (odpověď a je správná).program má načíst hrubou mzdu pracovníka Kotka do proměnné mzda Kotek a následně ji zobrazit na obrazovku Hrubá mzda pana Kotka je Který zápis je správný? a) #include <stdio.h> main () {int mzda; system("cls"); printf("zadej hrubou mzdu pana Kotka:"); scanf ("%d",&mzda); printf("hruba mzda pana Kotka je:%d\n",mzda); system("pause"); } b)main () {int mzda; system("cls"); printf("zadej hrubou mzdu pana Kotka:"); scanf ("%d",&mzda); printf("hruba mzda pana Kotka je:%d\n",mzda); system("pause"); }.c)#include <stdio.h> {int mzda; system("cls"); printf("zadej hrubou mzdu pana Kotka:"); scanf ("%d",&mzda); }.d)#include <stdio.h> main () {int mzda; system("cls"); printf("zadej hrubou mzdu pana Kotka:"); } (Odpověď a je správná) Program má načíst dvě čísla z klávesnice, má je sečíst a na monitor vypsat: Program na součet dvou čísel a = b = a +, b, =, c Který zápis je správný? a) #include <stdio.h> main () {int a,b,c; system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); c=a+b; printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c); printf("%d+%d=%d\n",a,b,c); system("pause"); } b) main (); {int a,b,c; system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); c=a+b; printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c); printf("%d+%d=%d\n",a,b,c); system("pause"); } Naposledy vytištěno :55:00 113

114 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc c) #include <stdio.h> {int a,b,c; system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); c=a+b; printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c); printf("%d+%d=%d\n",a,b,c); system("pause"); }.Následující program má sečíst dvě čísla a součet vypsat na obrazovku. Který zápis je správný? a) #include <stdio.h> main () {system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); c=a+b; printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c); printf("%d+%d=%d\n",a,b,c); system("pause"); } b) main () {system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); c=a+b; printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c); printf("%d+%d=%d\n",a,b,c); system("pause"); } c) #include <stdio.h> {system("cls"); printf("zadej a:"); scanf ("%d",&a); printf("zadej b:"); scanf ("%d",&b); c=a+b; printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c); printf("%d+%d=%d\n",a,b,c); system("pause"); } d) žádný zápis není správný.počítač v jazyce anglickém je a) Computer b) Memory c) Save c) Theory Umělá inteligence v jazyce anglickém je a) Computer Programme b) Memory space c) Assignment command d) Artificial Intelligence Naposledy 114 vytištěno :55:00

115 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Kódování informace v počítači Co bude posluchač po prostudování kapitoly znát: 1. Význam zakódování dat v počítači pomocí číselné hodnoty. 2. Způsob zakódovaní znaků abecedy pomocí ASCII tabulky. 3. Varianty kódování českého jazyka pomocí kódových stránek 4. Význam a způsob šifrování pomocí jednoduchých šifer. 5. Princip zabezpečení šifrovaného přenosu v prostředí internetu. 4.1 Principy ASCII kódu Cíl: Pochopení významu ukládání dat v počítači a významu ukládání informace do počítače V počítači se ukládají všechna data ve formě binárních informací pomocí nul a jedniček. S těmito daty počítač pracuje ve své operační paměti tím způsobem, že jsou načtena do jednotlivých registrů procesoru a jsou s nimi prováděny instrukce procesoru. Pro tuto práci s instrukcemi procesoru je vytvořen určitý paměťový prostor, který se vyjadřuje v konkrétních jednotkách. Nejmenší jednotka je jeden bit (0 nebo 1). Z této jednotky jsou vytvářeny další odvozené jednotky. Datová jednotka BYTE Byte je jednotka vyjadřující množství dat v informatice. Obsahuje 8 bitů (bit nejmenší jednotka 0 nebo 1), které reprezentují číslo od 0 do 255 v desítkové číselné soustavě. Do jednoho byte lze uložit 256 znaků. Současné počítače pracují s jednotkami většími než jeden byte, říká se jim slovo. ( 64 bitová architektura pracuje s 8 byte najednou ) V praxi se používají násobky této jednotky dle následující tabulky: Jednotka Značka B kb MB Kilobajt kb Megabajt MB Gigabajt GB Terabajt TB Tabulka č..: Varianty násobku základní jednotky Pomocí těchto jednotek se nejčastěji vyjadřuje velikost operační paměti počítače. Další častou variantou je vyjádření velikosti externí paměti počítače pevného disku. Na pevné disku jsou data uchovávána v určité organizační struktuře, kterou vytváří operační systém počítače. Velmi často Naposledy vytištěno :55:00 115

116 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc potřebujeme uchovávat textové informace ze kterých se vytvářejí dokumenty pomocí různých programů, kterým se označují textové editory (např. Word). Tyto textové informace vytváří uživatel psaním na klávesnici nebo jinou formou. Dochází tak ke komunikaci mezi uživatelem a počítačem. Při stisku určité klávesy si počítač zapamatuje číslo, které je této klávese přiřazeno. Toto číslo je určeno pomocí tabulky. V následující kapitole je popsána nejčastější forma této tabulky tzv. ASCII tabulka. 4.2 ASCII tabulka a její použití Cíl: Pochopení významu kódování písmene abecedy do paměti počítače Při práci s počítačem člověk potřebuje převádět informace vizuálního charakteru (písmena mají určitý tvar) jako je například tištěné nebo psané písmo na číselnou hodnotu, kterou si počítač zapamatuje ve své vnitřní paměti nebo na vnějším médiu (pevný disk). Tento proces je spojen s akcí, která se nazývá kódování, přiřazení určitému písmenu určité číslo (kód). K této činnosti potřebujeme tabulku, která toto přiřazení provádí pro jednotlivé písmena abecedy a také pro jednotlivé číslice. Nejznámější formou takovéto tabulky je ASCII tabulka. ASCII je zkratkou pro American Standard Code for Information Interchange ( americký standardní kód pro výměnu informací ). Tato tabulka přiřazuje číslo každému písmenu anglické abecedy, číslicím a tzv. řídícím povelům. Tato tabulka se zobrazuje v různých podobách a různých číselných soustavách. V této tabulce jsou znaky rozděleny do několika různých skupin podle významu. V první části jsou to tzv. řídící kódy, které nejsou často zobrazitelné. Řídící kódy jsou určeny pro různá zařízení, která se připojovala jako externí periférie a pro ně byl určen znak např. CR návrat vozíku a LF nový řádek. Hlavní význam pro praxi je přiřazení číselných kódu jednotlivým písmenům velké a malé abecedy. Jedná se o anglickou abecedu bez použití české diakritiky. Tato diakritika je uvedena v různých variantách jako číselné kódy za čísly ASCII tabulky. Jednotlivé skupiny ASCII tabulky jsou následující: čísla 1 31 představují řídící kódy čísla představují znaménka čísla představují číslice 0 9 čísla představují další znaménka, dvojtečka a podobně čísla představují písmena velké abecedy (A=65, B=66 ) čísla představují značky čísla představují písmena malé abecedy (a=97, b=98 ) čísla představují další značky Naposledy 116 vytištěno :55:00

117 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Následující tabulka popisuje 127 znaků ASCII tabulky v desítkové, oktalové a binární podobě. dekadic oktal Hex binárně znak význam znaku NUL (Null char.) SOH (Start of Header) STX (Start of Text) ETX (End of Text) EOT (End of Transmission) ENQ (Enquiry) ACK (Acknowledgment) BEL (Bell) BS (Backspace) HT (Horizontal Tab) A LF (Line Feed) B VT (Vertical Tab) C FF (Form Feed) D CR (Carriage Return) E SO (Shift Out) F SI (Shift In) DLE (Data Link Escape) DC1 (XON)(Device Control 1) DC2 (Device Control 2) DC3 (XOFF)(Device Control 3) DC4 (Device Control 4) NAK (Negative Acknowledgement) SYN (Synchronous Idle) ETB (End of Trans. Block) CAN (Cancel) EM (End of Medium) A SUB (Substitute) B ESC (Escape) C FS (File Separator) D GS (Group separátor) E RS (Request to Send)(Record Separator) F US (Unit Separator) Značky a interpunkční znaménka SP (Space) ! (exclamation mark) " (double quote) # (number sign) $ (dollar sign) % (percent) & (ampersand) ' (single quote) ( (left opening parenthesis) ) (right closing parenthesis) A * (asterisk) B (plus) C , (comma) D (minus or dash) E (dot) F / (forward slash) Číslice Naposledy vytištěno :55:00 117

118 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Další značky A : (colon) B ; (semi-colon) C < (less than sign) D = (equal sign) E > (greater than sign) F ? (question mark) (AT symbol) Písmena velké abecedy A B C D E F G H I A J B K C L D M E N F O P Q R S T U V W X Y A Z Značky a závorky Naposledy 118 vytištěno :55:00

119 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc B [ (left opening bracket) C \ (back slash) D ] (right closing bracket) E ^ (caret cirumflex) F _ (underscore) ` Písmena malé abecedy a b c d e f g h i A j B k C l D m E n F o p q r s t u v w x y A z Další značky a poslední je řídící kód pro vymazání znaku, na klávesnici je často stejně označen B { (left opening brace) C (vertical bar) D } (right closing brace) E ~ (tilde) F DEL (delete) Při prostudování ASCII tabulky vidíme, že poslední znak je 127 binárně , kde jedničky obsazují 7 bitů. Další část tabulky využívá právě 8 bit pro další číselné kódy, které vyjadřují diakritiku v různých jazycích. Tuto další část definuje operační systém jako kódovou stránku pro určitý jazyk. V operačním systému WINDOWS se pro český jazyk používá tabulka s označením kódová stránka Cvičení: Napište své jméno a příjmení pomocí ASCII tabulky v různých číselných soustavách. Příklad napsání zprávy pomocí ASCII tabulky, horní řádek text a dolní řádek číselné vyjádření: Naposledy vytištěno :55:00 119

120 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Písmeno A h o J Číslo desítkově Tímto způsobem se zapisují jednotlivé znaky při psaní na klávesnici do textového editoru (program). Pokud do souboru pokus.txt napíšeme text na více řádků např. Ahoj kluci A holky V souboru budou uloženy následující číselné kódy, které v hexadecimální formě zobrazuje editor PS PAD dle následujícího obrázku. Všimněte si, že jednotlivé znaky textu jsou zobrazeny v hexadecimální soustavě dle ASCII tabulky. Obr. Ukázka hexadecimálního zápisu textu pomocíascii tabulky Pokuste se v této variantě zobrazení nalézt znaky, které určují konec řádku. Při analýze textu zjistíte, že se jedná o dva znaky OD a OA v hexadecimální formě, které představují řídící kódy ASCII tabulky CR a LF. Tyto znaky znamenají návrat vozíku a nový řádek, jedná se o analogie s psacím strojem, kde se ručně posouval válec na začátek pomocí páky. 4.3 Český jazyk a jeho kódování na počítači V další části se zaměříme na problematiku jak jsou zakódovány znaky české abecedy, když ASCII tabulka popisuje jen znaky anglické abecedy bez diakritiky. Je to realizováno tak, že písmena např. ěščřžýáíé a podobně jsou přiřazena v tabulce až za číslem 127, tedy v další části tabulky. K dispozici máme číselné hodnoty Pro český jazyk se vymyslelo několik tabulek ve kterých je diakritika obsažena. V následující tabulce je ukázána možnosti kódování češtiny pomocí různých kódovacích tabulek. Windows ISO CP852(Latin2) kód používaný firmou Microsoft v operačních systémech Windows pro kódování středoevropských jazyků standard ISO, používaný např. v operačním systému Linux kód stanovený firmou IBM používaný např. v operačním systému DOS. Česká Windows jej dodnes využívají při zadávání speciálních znaků pomocí alt-kódů. Naposledy 120 vytištěno :55:00

121 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Kód Kamenických Například když stisknete klávesu alt, vyťukáte číslo 248 a klávesu alt pustíte, objeví se na obrazovce znak pro stupeň -. V tabulce znaků je uveden pod hexadecimálním kódem F8, což je dekadicky 248. jiné kódování používané v DOSu pro potřeby češtiny a slovenštiny KOI8-ČS kódování definované v rámci RVHP Tab.: varianty kódování českého jazyka v počítači Z tabulky je zřejmé, že kódování českého jazyka je poměrně složité, protože je vyjádřeno několika různými tabulkami. Tato situace vznikla vývojem různých operačních systémů, které se na počítačích používaly. Data, která na těchto počítačích vznikala se převáděla do nových operačních systémů a byla důležitá z hlediska zachování informace, kterou nesla, proto se často ponechala v původním číselném kódu. Na tuto situaci reagovaly firmy v oblasti IT vývojem kódování UTF 8 tzv. Unicode, který vyjadřuje více jazyků v jedné kódové stránce a je tedy univerzální pro použití. Tento kód se nyní používá na internetu a dalších oblastech, protože sjednocuje zobrazení www stránek pro různé operační systémy. Pro převod mezi různými variantami kódování českého jazyku můžeme použít také editor PS PAD, který na následujícím obrázku zobrazuje menu s formátováním textu podle vybrané kódové stránky. Obr. Ukázka převodu různých variant českého jazyka pomocí menu editoru PS PAD V tomto editoru lze provádět převod textu mezi různými operačními systémy jako např. UNIX a MAC, které odlišným způsobem určují konec řádku. Pro UNIX stačí znak LF nový řádek návrat vozíku a pro MAC zase znak CR návrat vozíku. Znaková sada českého jazyka se zaznamenává nejen do textových souborů, ale také do databází, které jsou propojeny v informační systémy. V těchto databázích jsou uleženy také textové informace a ty je nutno zpracovat a zobrazovat v různých programech. Z těchto důvodů někdy vzniká dojem, že například www stránky špatně pracují s českým jazykem a nezobrazují správně diakritiku. Také v prohlížeči můžeme nastavit různé kódování češtiny podle variant, které byly uvedeny v předcházejících odstavcích. Naposledy vytištěno :55:00 121

122 D:\Iva\Prace\Skripta\tzi\TZI_pro_ekonomy_12.doc Obr. Zobrazení textu kódovaného pomocí HTML příkazu WWW stránky Na obrázku je PS PAD editor s vygenerovanou WWW stránkou pomocí HTML kódů Řádek: <meta http-equiv="content-type" content="text/html; charset=windows-1250"> Ukazuje způsob kódování češtiny v HTML kódu WWW stránky. Obr. Ukázka varia-nty zobrazení pro různé jazyky na internetovém prohlížeči Prohlížeč WWW stránek Google chrome dovoluje nastavit různé varianty kódování také ručně z manu. Na menu, které je na obrázku je vidět způsoby kódování pro různé jazyky od Arabštiny až po Západní jazyky. Naposledy 122 vytištěno :55:00

Identifikátor materiálu: ICT-1-05

Identifikátor materiálu: ICT-1-05 Identifikátor materiálu: ICT-1-05 Předmět Informační a komunikační technologie Téma materiálu Historie počítačů Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí historii a vývoj počítačů.

Více

VY_32_INOVACE_INF.15. Dějiny počítačů II.

VY_32_INOVACE_INF.15. Dějiny počítačů II. VY_32_INOVACE_INF.15 Dějiny počítačů II. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Kalous Základní a mateřská škola Bělá nad Radbuzou, 2011 První programovatelné stroje V roce

Více

1 DĚJINY POČÍTAČŮ PŘEDCHŮDCI POČÍTAČŮ NULTÁ GENERACE PRVNÍ GENERACE (1945 AŽ 1951) DRUHÁ GENERACE (1951 AŽ 1965)...

1 DĚJINY POČÍTAČŮ PŘEDCHŮDCI POČÍTAČŮ NULTÁ GENERACE PRVNÍ GENERACE (1945 AŽ 1951) DRUHÁ GENERACE (1951 AŽ 1965)... 1 DĚJINY POČÍTAČŮ... 2 2 PŘEDCHŮDCI POČÍTAČŮ... 3 2.1 ABAKUS... 3 2.2 LOGARITMICKÉ TABULKY... 3 2.3 MECHANICKÉ KALKULÁTORY... 3 3 NULTÁ GENERACE... 5 3.1 POČÍTAČ Z1... 5 3.2 POČÍTAČE Z2, Z3... 5 3.3 POČÍTAČ

Více

1 DĚJINY POČÍTAČŮ PŘEDCHŮDCI POČÍTAČŮ ABAKUS LOGARITMICKÉ TABULKY MECHANICKÉ KALKULÁTORY NULTÁ GENERACE...

1 DĚJINY POČÍTAČŮ PŘEDCHŮDCI POČÍTAČŮ ABAKUS LOGARITMICKÉ TABULKY MECHANICKÉ KALKULÁTORY NULTÁ GENERACE... 1 DĚJINY POČÍTAČŮ... 2 2 PŘEDCHŮDCI POČÍTAČŮ... 2 2.1 ABAKUS... 2 2.2 LOGARITMICKÉ TABULKY... 2 2.3 MECHANICKÉ KALKULÁTORY... 2 3 NULTÁ GENERACE... 3 3.1 POČÍTAČ Z1... 3 3.2 POČÍTAČE Z2, Z3... 3 3.3 POČÍTAČ

Více

Historie výpočetních pomůcek

Historie výpočetních pomůcek Historie výpočetních pomůcek Pomůcky pro sčítání Za nejstarší dochovanou početní pomůcku je považován abakus. (vznikl přibližně před 5000 lety) Tato pomůcka je založena na systému korálků, které na tyčkách

Více

(12) Historie počítačů. Vznik před 5000 lety Usnadňoval počítání s čísly Dřevěná / hliněná destička, do níž se vkládali kamínky (tzv.

(12) Historie počítačů. Vznik před 5000 lety Usnadňoval počítání s čísly Dřevěná / hliněná destička, do níž se vkládali kamínky (tzv. (12) Historie počítačů Předchůdci První zařízení = velmi jednoduchá (mechanické principy) Vývoj těchto zařízení probíhal do pol. 20. století (dvě větve): Analogové počítače Číslicové počítače Abakus Vznik

Více

1 Historie výpočetní techniky

1 Historie výpočetní techniky Úvod 1 Historie výpočetní techniky Základem výpočetní techniky jsou operace s čísly, chcete-li záznam čísel. V minulosti se k záznamu čísel používaly různé předměty, jako například kameny, kosti, dřevěné

Více

2.1 Historie a vývoj počítačů

2.1 Historie a vývoj počítačů Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín

Více

Jak to celé vlastně začalo

Jak to celé vlastně začalo Historie počítače Jak to celé vlastně začalo Historie počítačů, tak jak je známe dnes, začala teprve ve 30. letech 20. století. Za vynálezce počítače je přesto považován Charles Babbage, který v 19. století

Více

Masarykova 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 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_286_Historie_počítačů

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

Trocha obrázků na začátek..

Trocha obrázků na začátek.. Trocha obrázků na začátek.. Elementární pojmy LCD panel tower myš klávesnice 3 Desktop vs. Tower tower desktop 4 Desktop nebo Tower? 5 Obraz jako obraz? 6 A něco o vývoji.. Předchůdci počítačů Počítadlo

Více

Historie výpočetní techniky. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1121_Histrorie výpočetní techniky_pwp

Historie výpočetní techniky. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1121_Histrorie výpočetní techniky_pwp Historie výpočetní techniky Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1121_Histrorie výpočetní techniky_pwp Název školy: Číslo a název projektu: Číslo a název šablony klíčové aktivity:

Více

Martin Hejtmánek hejtmmar@fjfi.cvut.cz http://kmlinux.fjfi.cvut.cz/ hejtmmar

Martin Hejtmánek hejtmmar@fjfi.cvut.cz http://kmlinux.fjfi.cvut.cz/ hejtmmar Základy programování Martin Hejtmánek hejtmmar@fjfi.cvut.cz http://kmlinux.fjfi.cvut.cz/ hejtmmar Počítačový kurs Univerzity třetího věku na FJFI ČVUT Pokročilý 21. května 2009 Dnešní přednáška 1 Počátky

Více

HISTORIE. Principy počítačů I. Literatura. Počátky historie počítačů. Počátky historie počítačů. Dnešní chápání počítače

HISTORIE. Principy počítačů I. Literatura. Počátky historie počítačů. Počátky historie počítačů. Dnešní chápání počítače Principy počítačů I HISTORIE Literatura www.computerhistory.org C.Wurster: Computers An Ilustrated History R.Rojas, U.Hashagen: The First Computers History and Architectures D.Mayer: Pohledy do minulosti

Více

NULTÁ GENERACE reléové obvody 30. a 40. let minulého století Harvard Mark I Harvard Mark II Konráda Zuseho Z2 SAPO

NULTÁ GENERACE reléové obvody 30. a 40. let minulého století Harvard Mark I Harvard Mark II Konráda Zuseho Z2 SAPO HISTORIE NULTÁ GENERACE Základ - reléové obvody 30. a 40. let minulého století. Typičtí představitelé: Harvard Mark I, Harvard Mark II či stroje německého inženýra Konráda Zuseho Z2 a Z3. Čechy - první

Více

1. Historie počítacích strojů Předchůdci počítačů. 2. Vývoj mikropočítačů Osmibitové mikropočítače Šestnácti a dvaatřicetibitové počítače IBM

1. Historie počítacích strojů Předchůdci počítačů. 2. Vývoj mikropočítačů Osmibitové mikropočítače Šestnácti a dvaatřicetibitové počítače IBM PŘEHLED TÉMATU 1. Historie počítacích strojů Předchůdci počítačů Elektronické počítače 0. generace Elektronické počítače 1. generace Elektronické počítače 2. generace Elektronické počítače 3. generace

Více

Historie výpočetní techniky

Historie výpočetní techniky Snaha ulehčit si počítání vedla už daleko v minulosti ke vzniku jednoduchých, ale promyšlených pomůcek. Následoval vývoj mechanických počítacích strojů, který vedl až k vývoji počítačů, tak jak je známe

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

Historie počítačů. 0.generace. (prototypy)

Historie počítačů. 0.generace. (prototypy) Historie počítačů Historie počítačů se dělí do tzv. generací, kde každá generace je charakteristická svou konfigurací, rychlostí počítače a základním stavebním prvkem. Generace počítačů: Generace Rok Konfigurace

Více

Úvod SISD. Sekvenční výpočty SIMD MIMD

Úvod SISD. Sekvenční výpočty SIMD MIMD Úvod SISD Single instruction single data stream Sekvenční výpočty MISD 1. Přednáška Historie Multiple instruction single data stream SIMD Single instruction multiple data stream MIMD Multiple instruction

Více

Architektura počítačů

Architektura počítačů Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem

Více

První počítače mechanické kalkulátory Nejstarší počítač: Abakus

První počítače mechanické kalkulátory Nejstarší počítač: Abakus První počítače mechanické kalkulátory Nejstarší počítač: Abakus HISTORIE (počítací mechanická pomůcka, cca 3.000 let p. n. l.) Ve starém Řecku a Římě - dřevěná, nebo hliněná destička, do nichž se vkládaly

Více

Práce v textovém editoru

Práce v textovém editoru Práce v textovém editoru 0) Otevřete NOTEPAD a okopírujte celý tento článek do NOTEPADu. [Můžete použít zkratky Ctrl-A (označit vše) Ctrl+C(kopírovat), Ctrl+V (vložit)] 1) Najděte v tomto textu slovo "myš"

Více

Historie počítačů 1. Předchůdci počítačů Počítače 0. a 1. generace

Historie počítačů 1. Předchůdci počítačů Počítače 0. a 1. generace Historie počítačů 1 Počítače 0. a 1. generace Snaha ulehčit si počítání vedla už daleko v minulosti ke vzniku jednoduchých, ale promyšlených pomůcek Následoval vývoj mechanických počítacích strojů, který

Více

Algoritmizace prostorových úloh

Algoritmizace 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 Vývojové diagramy Daniela Szturcová

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 14 0:40 1.3. Vliv hardware počítače na programování Vliv

Více

Popis výukového materiálu

Popis výukového materiálu Popis výukového materiálu Číslo šablony III/2 Číslo materiálu VY_32_INOVACE_I.14.2 Autor Petr Škapa Datum vytvoření 24. 11. 2012 Předmět, ročník Tematický celek Téma Druh učebního materiálu Anotace (metodický

Více

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače V roce 1945 vystoupil na přednášce v USA matematik John von Neumann a představil architekturu samočinného univerzálního počítače (von Neumannova koncepce/schéma/architektura). Základy této koncepce se

Více

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy VÝUKOVÝ MATERIÁL Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková

Více

Stručná historie výpočetní techniky část 1

Stručná historie výpočetní techniky část 1 Stručná historie výpočetní techniky část 1 SOU Valašské Klobouky VY_32_INOVACE_1_1 IKT Stručná historie výpočetní techniky 1. část Mgr. Radomír Soural Za nejstaršího předka počítačů je považován abakus,

Více

Jak do počítače. aneb. Co je vlastně uvnitř

Jak do počítače. aneb. Co je vlastně uvnitř Jak do počítače aneb Co je vlastně uvnitř Po odkrytí svrchních desek uvidíme... Von Neumannovo schéma Řadič ALU Vstupně/výstupní zař. Operační paměť Počítač je zařízení, které vstupní údaje transformuje

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010 Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už

Více

0. Nultá generace. Historie počítačů

0. Nultá generace. Historie počítačů Historie počítačů Dějiny počítačů zahrnují vývoj jak samotného hardware, tak jeho architektury a mají přímý vliv na vývoj software. První počítače byly vyrobeny ve 30. letech 20. století, avšak za jejich

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

Základy algoritmizace

Základy algoritmizace Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Logické řízení. Náplň výuky

Logické řízení. Náplň výuky Logické řízení Logické řízení Náplň výuky Historie Logické funkce Booleova algebra Vyjádření Booleových funkcí Minimalizace logických funkcí Logické řídicí obvody Blokové schéma Historie Číslicová technika

Více

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4 1 Osobní počítač... 2 1.1 Architektura IBM PC... 2 2 Obecně o počítačích... 3 2.1 Co jsou počítače dnes... 3 3 Technické a programové vybavení... 4 3.1 Hardware... 4 3.1.1 Procesor... 4 3.1.2 Sběrnice...

Více

Osnova. Základy informatiky. 1. Přednáška Historie. Úvod. Kategorie počítačů z pohledu hardware

Osnova. Základy informatiky. 1. Přednáška Historie. Úvod. Kategorie počítačů z pohledu hardware Osnova Lenka Carr Motyčková 1. Přednáška Historie 1 1. Historie vývoje počítačů 2. Struktura počítačů 3. číselné soustavy 4. Logika, logické operace 5. teorie informace, k odování 6. Operační systémy 7.

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

C2115 Praktický úvod do superpočítání

C2115 Praktický úvod do superpočítání C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

HISTORIE VÝPOČETNÍ TECHNIKY. Od abakusu k PC

HISTORIE VÝPOČETNÍ TECHNIKY. Od abakusu k PC HISTORIE VÝPOČETNÍ TECHNIKY Od abakusu k PC Předchůdci počítačů abakus - nejstarší předek počítačů, počítací pomůcka založená na principu posuvných korálků. V Číně byl abakus používán od 13. století, v

Více

Úvod do informačních technologií

Úvod do informačních technologií Úvod do informačních technologií Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Úvod Jan Outrata (Univerzita Palackého v Olomouci) Úvod do informačních technologií Olomouc, září

Více

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy VÝUKOVÝ MATERIÁL Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková

Více

www.zlinskedumy.cz Střední průmyslová škola Zlín

www.zlinskedumy.cz Střední průmyslová škola Zlín VY_32_INOVACE_31_01 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední

Více

Algoritmy a algoritmizace

Algoritmy a algoritmizace Otázka 21 Algoritmy a algoritmizace Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských

Více

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

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

Z{kladní struktura počítače

Z{kladní struktura počítače Z{kladní struktura počítače Cílem této kapitoly je sezn{mit se s různými strukturami počítače, které využív{ výpočetní technika v současnosti. Klíčové pojmy: Von Neumannova struktura počítače, Harvardská

Více

http://www.zlinskedumy.cz

http://www.zlinskedumy.cz Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Autor Ročník Obor CZ.1.07/1.5.00/34.0514 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Algoritmizace, vy_32_inovace_ma_03_10

Více

Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí

Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí Studijní text pro 3. a 4. ročníky technických oborů Programování řídících systémů v reálném čase Verze: 1.11

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

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_31_02 Škola Střední průmyslová škola Zlín Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Inovace výuky

Více

Integrovaná střední škola, Sokolnice 496

Integrovaná střední škola, Sokolnice 496 Integrovaná střední škola, Sokolnice 496 Název projektu: Moderní škola Registrační číslo: CZ.1.07/1.5.00/34.0467 Název klíčové aktivity: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Kód výstupu:

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: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí. Základní pojmy IT, číselné soustavy, logické funkce Základní pojmy Počítač: Stroj na zpracování informací Informace: 1. data, která se strojově zpracovávají 2. vše co nám nebo něčemu podává (popř. předává)

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana Kubcová Název

Více

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy

Více

Vývojové diagramy 1/7

Vývojové diagramy 1/7 Vývojové diagramy 1/7 2 Vývojové diagramy Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu zpracování informací a případnou stručnou publikaci programů.

Více

Informační a komunikační technologie

Informační a komunikační technologie Informační a komunikační technologie 1. www.isspolygr.cz Vytvořil: Ing. David Adamovský Škola Integrovaná střední škola polygrafická Ročník Název projektu 1. ročník SOŠ Interaktivní metody zdokonalující

Více

Historie, současnost a budoucnost výpočetní techniky

Historie, současnost a budoucnost výpočetní techniky Základní škola a Mateřská škola G.A.Lindnera Rožďalovice Historie, současnost a budoucnost výpočetní techniky Jméno a příjmení: Vladislav Mlejnecký Třída: 9.A Školní rok: 2009/2010 Garant / konzultant:

Více

Úvod do informačních technologií

Úvod do informačních technologií Úvod do informačních technologií přednášky Jan Outrata září prosinec 2009 (aktualizace září prosinec 2012) Jan Outrata (KI UP) Úvod do informačních technologií září prosinec 2012 1 / 18 Literatura http://phoenix.inf.upol.cz/~outrata/courses/udit/index.html

Více

INFORMATIKA. Jindřich Kaluža. Ludmila Kalužová

INFORMATIKA. Jindřich Kaluža. Ludmila Kalužová INFORMATIKA Jindřich Kaluža Ludmila Kalužová Recenzenti: doc. RNDr. František Koliba, CSc. prof. RNDr. Peter Mikulecký, PhD. Vydání knihy bylo schváleno vědeckou radou nakladatelství. Všechna práva vyhrazena.

Více

Osobní počítač. Zpracoval: ict Aktualizace: 10. 11. 2011

Osobní počítač. Zpracoval: ict Aktualizace: 10. 11. 2011 Osobní počítač Zpracoval: ict Aktualizace: 10. 11. 2011 Charakteristika PC Osobní počítač (personal computer - PC) je nástroj člověka pro zpracovávání informací Vyznačuje se schopností samostatně pracovat

Více

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, tvorba algoritmu, vývojový diagram, strukturogram Algoritmus

Více

Počítací stroje. David Horák. Škomam 30.1.2013

Počítací stroje. David Horák. Škomam 30.1.2013 Počítací stroje David Horák Škomam 30.1.2013 Vtip: Co k práci potřebuje matematik? A co k práci potřebuje filosof? V.Láska, V.Hruška, Praha, 1927: Teorie a prakse numerického počtu Přehled pomůcek počtářských

Více

Popis výukového materiálu

Popis výukového materiálu Popis výukového materiálu Číslo šablony III/2 Číslo materiálu VY_32_INOVACE_I.14.1 Autor Petr Škapa Datum vytvoření 24. 11. 2012 Předmět, ročník Tematický celek Téma Druh učebního materiálu Anotace (metodický

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Historie výpočetní techniky 1. část. PRVOHORY Staré výpočetní pomůcky

Historie výpočetní techniky 1. část. PRVOHORY Staré výpočetní pomůcky Historie výpočetní techniky 1. část PRVOHORY Staré výpočetní pomůcky Staré výpočetní pomůcky Základem pro počítání je zaznamenávání čísel. V minulosti k tomu sloužily předměty, kam bylo možno dělat zářezy

Více

Algoritmizace- úvod. Ing. Tomáš Otáhal

Algoritmizace- úvod. Ing. Tomáš Otáhal Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století

Více

OPS Paralelní systémy, seznam pojmů, klasifikace

OPS Paralelní systémy, seznam pojmů, klasifikace Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus

Více

Klasifikace počítačů a technologické trendy Modifikace von Neumanova schématu pro PC

Klasifikace počítačů a technologické trendy Modifikace von Neumanova schématu pro PC Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Obsah: Historie počítačů Počítačové generace Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Klasifikace počítačů

Více

Základní pojmy a historie výpočetní techniky

Základní pojmy a historie výpočetní techniky Základní pojmy a historie výpočetní techniky Vaše jméno 2009 Základní pojmy a historie výpočetní techniky...1 Základní pojmy výpočetní techniky...2 Historický vývoj počítačů:...2 PRVOHORY...2 DRUHOHORY...2

Více

5. Umělé neuronové sítě. Neuronové sítě

5. Umělé neuronové sítě. Neuronové sítě Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně

Více

3. Maturitní otázka PC komponenty 1. Počítačová skříň 2. Základní deska

3. Maturitní otázka PC komponenty 1. Počítačová skříň 2. Základní deska 3. Maturitní otázka Počítač, jeho komponenty a periferní zařízení (principy fungování, digitální záznam informací, propojení počítače s dalšími (digitálními) zařízeními) Počítač je elektronické zařízení,

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Algoritmizace. Obrázek 1: Přeložení programu překladačem Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.

Více

5. Historie výpočetní techniky Druhy počítačů

5. Historie výpočetní techniky Druhy počítačů 5. Historie výpočetní techniky Druhy počítačů - Předchůdci počítačů (počitadla [Abacus], princip mechanické kalkulačky, děrnoštítková zařízení, Babbageův analytický stroj) - přehled vývojových typů počítačů

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Matematika - 6. ročník Vzdělávací obsah

Matematika - 6. ročník Vzdělávací obsah Matematika - 6. ročník Září Opakování učiva Obor přirozených čísel do 1000, početní operace v daném oboru Čte, píše, porovnává čísla v oboru do 1000, orientuje se na číselné ose Rozlišuje sudá a lichá

Více

Abakus Antikythérský mechanismus

Abakus Antikythérský mechanismus Abakus kuličkové počitadlo, objevil se před cca 5000 lety v Malé Asii, odtud se rozšířil na východ. Objevuje se v různých verzích: o Čína znám od 13. stol. suan-pâna o Japonsko převzat z Číny asi v 17.

Více

1. Informace a informatika

1. Informace a informatika 1. Informace a informatika Informatika věda zabývající se zpracováním informací (př. vyhledávání, ukládání, přenášení, třídění) Informace (data) zpráva nebo sdělení mající určitý smysl a význam př. textové

Více

Profilová část maturitní zkoušky 2014/2015

Profilová část maturitní zkoušky 2014/2015 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

Počítač jako elektronické, Číslicové zařízení

Počítač jako elektronické, Číslicové zařízení Počítač jako elektronické, Číslicové Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1135_Počítač jako elektrornické, číslicové _PWP Název školy: Číslo a název projektu: Číslo a název šablony

Více

ALGORITMIZACE Příklady ze života, větvení, cykly

ALGORITMIZACE Příklady ze života, větvení, cykly ALGORITMIZACE Příklady ze života, větvení, cykly Cíl kapitoly: Uvedení do problematiky algoritmizace Klíčové pojmy: Algoritmus, Vlastnosti správného algoritmu, Možnosti zápisu algoritmu, Vývojový diagram,

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

ZŠ a MŠ Strunkovice nad Blanicí

ZŠ a MŠ Strunkovice nad Blanicí ZŠ a MŠ Strunkovice nad Blanicí Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ.1.07/1.4.00/21.3649 Název projektu: Moderní škola pro konkurenceschopnost Šablona:

Více

Architektura počítačů

Architektura počítačů Architektura počítačů Co je architektura obecně: souhrn znalostí o prvcích, ze kterých se skládá nebo dá složit nějaký celek o způsobech, kterými lze tyto prvky využít pro dosažení požadovaných vlastností

Více

M - 2. stupeň. Matematika a její aplikace Školní výstupy Žák by měl

M - 2. stupeň. Matematika a její aplikace Školní výstupy Žák by měl 6. ročník číst, zapisovat, porovnávat, zaokrouhlovat, rozkládat přirozená čísla do 10 000 provádět odhady výpočtů celá čísla - obor přirozených čísel do 10 000 numerace do 10 000 čtení, zápis, porovnávání,

Více

Počítač jako prostředek řízení. Struktura a organizace počítače

Počítač jako prostředek řízení. Struktura a organizace počítače Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský

Více

Reálná čísla a výrazy. Početní operace s reálnými čísly. Složitější úlohy se závorkami. Slovní úlohy. Číselné výrazy. Výrazy a mnohočleny

Reálná čísla a výrazy. Početní operace s reálnými čísly. Složitější úlohy se závorkami. Slovní úlohy. Číselné výrazy. Výrazy a mnohočleny A B C D E F 1 Vzdělávací oblast: Matematika a její aplikace 2 Vzdělávací obor: Cvičení z matematiky 3 Ročník: 9. 4 Klíčové kompetence (Dílčí kompetence) 5 Kompetence k učení učí se vybírat a využívat vhodné

Více

VISUAL BASIC. Přehled témat

VISUAL 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

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

Historie počítacích strojů a počítačů. Mgr. David Frýbert

Historie počítacích strojů a počítačů. Mgr. David Frýbert Historie počítacích strojů a počítačů Mgr. David Frýbert Historie počítacích strojů STAROVĚK - ŘECKO, ŘÍM První počítací stroj Abacus (před 5000 lety starohebrejsky abaq = prach ) dřevěná nebo hliněná

Více

Principy počítačů. Historie. Martin Urza

Principy počítačů. Historie. Martin Urza Principy počítačů Historie Martin Urza Co je cílem tohoto kurzu? Kurz by měl osvětlit, co je to vlastně počítač, že se nejedná pouze o PC, a vysvětlit, čím se jednotlivé druhy počítačů odlišují. Posluchač

Více