Algoritmizace a programování

Slides:



Advertisements
Podobné prezentace
Pro začátek něco lehčího
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
VÝVOJ PROGRAMOVACÍCH JAZYKŮ PERSPEKTIVY ELEKTRONIKY 3. Celostátní seminář, 18. března 2003 Ing. Pavel Pokorný UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ Fakulta technologická.
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Programování v Pascalu
Algoritmizace Vývojové diagramy.
Algoritmizace od algoritmu k Pascalu.
ALGO – Algoritmizace 1. cvičení
Algoritmizace a programování Operátory a příkazy v Delphi - 07
C# pro začátečníky Mgr. Jaromír Osčádal
If-else, do-while, switch, operátory
Algoritmizace 9. Ročník.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Větvení cykly J a v a Začínáme programovat Lucie Žoltá.
Vývojové diagramy a základy algoritmizace
Algoritmizace a programování
Algoritmizace a programování Podmíněné a cyklické příkazy- 08
Informatika I 3. přednáška
Seminář – Základy programování
Algoritmizace.
25. ALGORITMIZACE A PROGRAMOVÁNÍ
25. ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Algoritmus po krocích rozepsaný návod k nějaké činnosti
Informatika I 2. přednáška
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
C – strukturované příkazy
Algoritmizace a základy programování
Základy algoritmizace a programování
Úvod do algoritmizace Obsah: Algoritmus, algoritmizace
Obchodní akademie, Náchod, Denisovo nábřeží 673
Simulační modely a programové vybavení. Vývoj simulačních programů  Původně pouze strojový kód –Příliš dlouhé, náročné na programátora, obtížné hledání.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
ALGORITMIZACE A PROGRAMOVÁNÍ
Informatika I 1. přednáška
Od zadání úlohy k programu Výpočetní systémy I 8. přednáška.
Pascal - cykly.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Algoritmizace a programování Vývojové diagramy - 03
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_20 Digitální učební materiál Sada: Úvod do programování.
Algoritmizace a programování Algoritmizace – základní pojmy - 01
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
1 Programování a p. jazyky Postup při tvorbě programu (systému) –strategie –analýza ( konceptuální modely) Datová Procesní –návrh (i/o, výjimky, algoritmus)
Cykly Cykly umožňují provádět určitou část kódu opakovaně až do nastaveného počtu cyklování nebo splnění podmínky. Cykly umožňují provádět určitou část.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
Příkazy cyklů. Co je to cyklus Jako cyklus označujeme opakované vykonávání určitého bloku příkazů Jako cyklus označujeme opakované vykonávání určitého.
doc. RNDr. Zdeněk Botek, CSc.
Pascal – strukturované příkazy
Cvičení 2 Podmíněné příkazy, cykly. Podmíněné příkazy Podmínka – jakýkoliv logický výraz ( a=1,……..) ( a=1,……..) Příkaz – vlastní instrukce, která se.
Úvod do programování Vyučující: Mgr. Vítězslav Jersák
Algoritmizace. Co je to algoritmizace? Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém.
Překladače Vnitřní struktura překladače © Milan Keršláger
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 4: Programovací jazyk C Bc. Radek Libovický.
Základy programování mikropočítačů První program v jazyce symbolických adres.
Algoritmizace a programování Algoritmy 1 - Úvod. Základní pojmy Počítačový program Počítačový program zápis zdrojového kódu, kterému rozumí počítač zápis.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Vývojová prostředí Objektově Orientované Programování OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Výukový materiál zpracován v rámci projektu
Inf Cykly ve vývojových diagramech
Algoritmizace – základní pojmy
Základní pojmy v automatizační technice
Vytváření dokumentace algoritmů
Operační systémy Vnitřní struktura překladače
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
CU01 Informatika II 2/13 Základy algoritmizace
Transkript prezentace:

Algoritmizace a programování Jan Tvrdík, 2010 Algoritmizace a programování

Definice pojmů Problém Neřešitelný problém Algoritmus Algoritmizace nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém problém, který není algoritmicky řešitelný Algoritmus přesný návod či postup, kterým lze vyřešit daný problém Algoritmizace proces vytváření a sestavování algoritmů

Vlastnosti algoritmů Determinovanost (předurčenost) Opakovatelnost algoritmus musí být přesný, srozumitelný a jednoznačný Opakovatelnost stejná vstupní data a podmínky vedou ke stále stejným výsledkům Hromadnost algoritmus slouží k řešení celé skupiny úloh, které se od sebe liší jen vstupními parametry (ty se mohou měnit v určitých mezích) Resultativnost (konečnost) hledané výsledky musíme získat po konečném počtu kroků algoritmus se nezacyklí

Smysl tvorby umělých jazyků Pochopitelné jak pro lidi, tak pro počítače Naučitelné Jednoznačně definovaný význam slov a gramatická pravidla

Vývojové diagramy Slouží ke grafickému znázornění algoritmu Jednotlivé dílčí operace znázorňuje symboly Symboly se spojují pomocí úseček a šipek

Běžně používané symboly Začátek a konec programu Příkaz Větvení Vstup nebo výstup Cyklus s daným počtem opakování Cyklus  s podmínkou na začátku Cyklus  s podmínkou na konci Nebo

Sekvence Posloupnost příkazů, které se postupně provedou Proveď příkazy P1, P2, P3! S P1 begin P1; P2; P3; end; P2 P3 K

Větvení S Rozdělí program do 2 větví podle toho, zda je nebo není splněna podmínka Jestliže platí podmínka P, proveď příkaz P1, jinak proveď příkaz P2! P − + P2 begin if P then P1; else P2; end; P1 K

Větvení bez alternativy S Provede příkaz pouze při splnění podmínky Jestliže platí podmínka P, proveď příkaz P1! P − + P1 begin if P then P1; end; K

Cyklus s podmínkou na začátku Opakuje příkaz dokud platí daná pomínka Příkaz nemusí proběhnout ani jednou Dokud platí podmínka P, prováděj příkaz P1! P − + P1 begin while P do P1; end; K

Cyklus s podmínkou na konci Opakuje příkaz, dokud není splněna daná podmínka. Příkaz proběhne alespoň jednou. Opakuj příkaz P1, až do splnění podmínky P.! P1 P begin repeat P1; until P; end; − + K

Cyklus s daným počtem průchodů Provede n× daný příkaz Opakuj n× daný příkaz s parametrem i od 1 do n! i = 1, n P1 begin for i:=1 to n do P1; end; K

Logické spojky v podmínkách Logický součet = OR v matematice: disjunkce výraz je pravdivý, pokud je pravdivý alespoň jeden z operandů Logický součin = AND v matematice: konjukce výraz je pravdivý, pokud jsou pravdivé oba operandy zároveň Negace = NOT v matematice: negace výraz je pravdivý, pokud operand není pravdivý

Dělení programovacích jazyků Nižší programovací jazyky jejich instrukce odpovídají téměř přesně příkazům pro procesor závislé na architektuře procesoru Jazyk symbolických adres (assembly language), strojový kód Vyšší programovací jazyky abstrakce od architektury počítače a procesoru umožňují rychlejší vývoj aplikací tvoří většinu jazyků např. C#, Java, PHP, Pascal

Dělení programovacích jazyků Kompilované jazyky zdrojový kód se překládá do strojového kódu rychlejší běh programu, horší přenositelnost na jinou platformu např. C++, Pascal Interpretované jazyky zdrojový kód je vykonáván prostřednictvím interpretu pomalejší běh, nevyžaduje kompilaci např. Unix shell, PHP, VBA Jazyky překládané do mezikódu zdrojový kód je přeložen do mezikódu, který je následně vykonán pomocí interpretu např. C#, Java

Překladač (kompilátor) Slouží pro překlad algoritmů zapsaných ve vyšším programovacím jazyce do strojového kódu Typy překladačů Klasický – během překladu nelze zasahovat do jeho činnosti Konverzační (iterativní) – uživatel postupně zapisuje řádky zdrojového kódu Konverzační interpretační překladač – např. Logo, Karel Konverzační kompilační překladač

Datový typ Určuje druh proměnné Má daný obor hodnot a operace, které s ním lze provádět Většinou jsou předdefinované v programovacím jazyce, lze ale i vytvářet nové (abstraktní datové typy)

Základní datové typy Prázdný (void) Logická hodnota (boolean) – true nebo false Celé číslo (integer) Znak (char) Reálné číslo (float, real) Pole (array) Text (string) Výčtový typ (enum)

Programátorská chyba Chyba, kterou udělal programátor při programování Zranitelnost chyba způsobující bezpečnostní problém Exploit program využívající zranitelnost Bug anglický termín pro chybu Debugování ladění proces odstraňování chyb

Typy chyb Syntaktické chyby Logické chyby Běhové chyby „pravopisné chyby“, porušení syntaxe daného jazyka vznikají při kompilaci Logické chyby chyby v logickém návrhu programu nejhůře se hledají (program se bez problému spustí, nevypisuje žádné chybové hlášení, ale nepracuje správně) Běhové chyby vznikají až při běhu programu

Odstraňování chyb Metoda „rozděl a panuj“ Průběžné výpisy proměnných postupné zakomentování jednotlivých částí kódu Průběžné výpisy proměnných Debugger specializovaný program na vyhledávání chyb v jiných programech umožňuje krokovat kód umožňuje sledovat obsah proměnných Automatické testování zabraňuje návratu již opravených chyb snižuje výskyt chyb v budoucnu

Podprogram Část programu vykonávající určitou činnost, která může být ovlivněna předávanými parametry Slouží k zpřehlednění programu a neopakování stejného kódu na více místech V Pascalu existují dva druhy – funkce a procedury Funkce na rozdíl od procedur vrací hodnotu

Vizuální programování Vizuální IDE umožňují uživateli vytvářet nové aplikace přemístěním programovacích stavebních bloků nebo uzlů a vytvořením vývojových diagramů nebo blokových schémat, které jsou dále přeloženy.

Objektové programování Zkracováno jako OOP (Object-oriented programming) Snaží se modelovat řešení úlohy stejně jako v reálném světě Základem jsou objekty, které mají své vlastnosti a metody např. formulářové tlačítko, člověk, čtverec Koncepce Skládání – každý objekt může obsahovat jiné objekty Zapouzdření – každý objekt zpřístupňuje navenek rozhraní, pomocí kterého se s ním pracuje Dědičnost – objekty tvoří hierarchii, čímž od sebe navzájem přebírají vlastnosti Polymorfismus

Zdroje http://www.spsemoh.cz/vyuka/algor/ http://cmg.prostejov.cz/ivt/algo_progr.doc http://www.cmsps.cz/~marlib/diagramy/diagramy.html http://cs.wikipedia.org/wiki/Problém http://cs.wikipedia.org/wiki/Algoritmus http://cs.wikipedia.org/wiki/Programovací_jazyk http://cs.wikipedia.org/wiki/Jazyk_symbolických_adres http://cs.wikipedia.org/wiki/Vývojový_diagram http://cs.wikipedia.org/wiki/Překladač http://cs.wikipedia.org/wiki/Datový_typ http://cs.wikipedia.org/wiki/Programátorská_chyba http://cs.wikipedia.org/wiki/Vývojové_prostředí#Vizu.C3.A1ln.C3.AD_programov.C3.A1n.C3.AD http://cs.wikipedia.org/wiki/Objektové_programování http://www.cs.vsb.cz/kot/download/uti2007/uti-pr-07.pdf http://ncbr.chemi.muni.cz/~martinp/C2160/CChem_uvod.pdf http://sportgym-strava.cz/ucitele/files/informatika/22_programovaci_jazyky.pdf https://akela.mendelu.cz/~mot/vyuka/skralg03.pdf http://www.spsemoh.cz/vyuka/pascal/ppg.htm