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

Podobné dokumenty
Identifikátor materiálu: ICT-4-01

Algoritmizace. 1. Úvod. Algoritmus

Algoritmy a algoritmizace

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

Pojem algoritmus a jeho základní vlastnosti

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

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

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

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

Základy algoritmizace

IB111 Úvod do programování skrze Python Přednáška 13

Lekce 01 Úvod do algoritmizace

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

IB111 Programování a algoritmizace. Programovací jazyky

1 Základy algoritmizace a programování. 1.1 Algoritmus Možnosti zápisu algoritmů. Základy algoritmizace a programování

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

Algoritmizace prostorových úloh

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

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

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

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

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

Program a životní cyklus programu

Matematika v programovacích

2. lekce Algoritmus, cyklus Miroslav Jílek

Programovací jazyky Přehled a vývoj

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

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

Algoritmizace. Cíle předmětu

Seminář z Informatiky a výpočetní techniky. Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr

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

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Sada 1 - Základy programování

Maturitní otázky z předmětu PROGRAMOVÁNÍ

11. Přehled prog. jazyků

Algoritmizace prostorových úloh

Programování. Úvod a základní principy. Martin Urza

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Úvod. Programovací paradigmata

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

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

Základy algoritmizace, návrh algoritmu

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

VISUAL BASIC. Přehled témat

1 Strukturované programování

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

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

ALGORITMIZACE. Výukový materiál pro tercii osmiletého gymnázia

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

Základy algoritmizácie a programovania

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Překladač a jeho struktura

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Vývojové diagramy 1/7

Digitální učební materiál

DTP Základy programování Úvod do předmětu

Tvorba software a algoritmizace

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Kombinované úlohy - cvičení

Informační a komunikační technologie

Programování a algoritmizace: úvod

Základy umělé inteligence

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

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

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Digitální učební materiál

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

IB111 Úvod do programování skrze Python Přednáška 13

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

Algoritmy. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

Algoritmizace a programování

Základy algoritmizace a programování

Algoritmus (nebo dřívějším pravopisem algorithmus)

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

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

Základy algoritmizace

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

Základy programování Zdrojový kód, dokumentace, týmová práce

Západočeská univerzita Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky

C2184 Úvod do programování v Pythonu podzim Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita. Úvod.

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Základy algoritmizace

Práce v textovém editoru

09. Memory management. ZOS 2006, L.Pešička

Algoritmizace a programování

Programové vybavení počítačů

2 Postup při programování, úvod do programovacího jazyka Java

Hospodářská informatika

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

Programování I. Martin Pergel,

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

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

Transkript:

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í před n. l. Euklidova geometrie (axiomy) Euklidův algoritmus (hledá největšího společného dělitele dvou daných čísel)

Algoritmus Program x Programování Postup, který je v počítači prováděn nějakým programem se nazývá algoritmus (program) a jeho tvorba algoritmizace (programování). Algoritmus = popis procesu, který vede od měnitelných vstupních údajů k požadovaným výsledkům. Algoritmus je jednoznačný a přesný popis řešení problému.

Algoritmus Naší snahou je vybrat pro řešení problému co nejefektivnější algoritmus, který řeší problém v co nejkratším čase, je přehledný a srozumitelný. Vstupní informace: vycházíme z řešení úlohy musí splňovat vstupní podmínky Výstupní informace: získáme nové informace výsledek realizace algoritmu musí splňovat výstupní podmínky

Algoritmus lze vyjádřit: 1. slovně: jednotlivé kroky postupu jsou vyjádřeny větami v přirozeném jazyce 2. graficky: jednotlivé kroky jsou popsány grafickými značkami se slovním popisem, například pomocí tzv. vývojových diagramů 3. matematicky: soustavou rovnic, vztahem mezi veličinami 4. programem: jednotlivé kroky jsou popsány instrukcemi určitého procesoru

Efektivnost algoritmu Danou úlohu řeší více algoritmů, vybíráme efektivnější podle určitých kritérií: časové: úloha vyřešena v kratším čase (strojový čas tj. počet instrukcí procesoru) paměťové: spotřeba paměti přehlednost, srozumitelnost: (důležité pro další vývoj a úpravy)

Každý algoritmus musí mít: správnost: výsledek, který vznikne použitím algoritmu, musí být správný resultativnost: po konečném počtu kroků dospěje k řešení (vrátí třeba jen chybové hlášení) konečnost: algoritmus se nezacyklí, po určitém počtu kroků skončí determinovanost: v každém kroku je jednoznačně určen způsob pokračování práce algoritmu hromadnost: znamená, že algoritmus lze použít pro řešení obecné úlohy, tj. že nepopisujeme postup jedné úlohy, ale poslouží k řešení libovolné úlohy, která patří do jisté třídy úloh opakovatelnost: algoritmus vede vždy ke stejným výsledkům, jsou-li zadána stejná data

Programovací jazyk

Programovací jazyk Umělý jazyk jenž se používá pro definování sekvence programových příkazů, které lze zpracovat na počítači. Algoritmus má obecnou povahu, zatímco implementace algoritmu v určitém programovacím jazyku je ryze konkrétní.

Nižší programovací jazyky procesor bude vykonávat ty instrukce, které programátor napíše programátor musí vše vypisovat vše (složitý zdrojový kód) strojový kód (to, co uvidíte, když otevřete obsah exe souboru v textovém editoru). Strojový kód = Soubor číslicových instrukcí, které je procesor počítače schopen rozpoznat a uskutečnit. Assembler je velice blízký strojovému kódu

Vyšší programovací jazyky struktura je logická přenositelnost může běžet na různých platformách S, ale i HW pc Do strojového kódu se převádí kompilátorem Př. jazyk C++, JAVA, PHP, Delphi,..)

Programovací jazyky dále dělíme: kompilované interpretované programování strukturované (např. Pascal) objektově orientované programování (P) např. Visual Basic, Delphi

Kompilované jazyky nejdříve celé přeloženy a až potom mohou být spuštěny Jsou rychlejší, vyšší nároky na formální správnost kódu překládají se kompilátorem výsledkem překladu je (většinou).exe soubor patří sem většina klasických programovacích jazyků

Interpretované jazyky překládány až za běhu programu pomalejší, ale nemají tak velké požadavky překládají se interpretem, interpret instrukce při překladu zároveň provádí nevýhoda- musejí vždy spouštět v interpretu do této skupiny patří například Basic, skriptovací jazyky (PHP, Python, Perl ).

pakování- otázky tázky i s odpověďmi mi zašlete společně s vývojovým diagramem. Co je to algoritmus? Co jsou vstupní údaje? Co jsou výstupní údaje? Vyjmenuj a popiš vlastnosti algoritmu. Jak lze vyjádřit algoritmus? Co to je programování? Co to je algoritmizace? Vyjmenuj kritéria efektivnosti algoritmu. Co je programovací jazyk? Vysvětli rozdíl mezi vyššími a nižšími programovacími jazyky. Vysvětli rozdíl mezi interpretovanými a kompilovanými programovacími jazyky.

Algoritmizace- postup Ing. Tomáš táhal

Algoritmizaci má tyto kroky: 1. Formulace problému 2. Analýza úlohy 3. Vytvoření algoritmu 4. Sestavení programu 5. dladění programu

Algoritmizace- slovní úlohy na procvičení Ing. Tomáš táhal

Algoritmus přípravy pomerančové bowle Cvičení 1- napsat postup

Algoritmus přípravy pomerančové bowle 1) Formulace problému Připrav pomerančovou bowli. 2) Analýza úlohy Vstupní údaje: 1 kg pomerančů, 30 dkg práškového cukru, 5 dcl vína, 0,3 l sifonu, 3 lžíce rumu Výstupní údaje: pomerančové bowle Analýza: aplikovat správný postup 3) Sestavení algoritmu (slovní popis) loupej pomeranče Rozkrájej je na malé kousky Dej kousky pomeranče do mísy a zasyp cukrem Přidej víno a nechej zchladit Před podáním přidej rum a sifon

Algoritmus zatloukání hřebíků Cvičení 2- napsat postup

Algoritmus zatloukání hřebíků 1) Formulace problému Zatluč hřebík do desky 2) Analýza úlohy Vstupní údaje: kladivo, hřebík, deska Výstupní údaje: hřebík zatlučen do desky Analýza: tlouct tak dlouho, dokud není hřebík zatlučen až po hlavičku 3) Sestavení algoritmu (slovní popis) A) Vezmi kladivo a hřebík B) Přilož hřebík k desce C) Uhoď kladivem na hlavičku D) Je hřebík zatlučen? AN Pokračuj bodem E NE Vrať se na bod C E) Ukonči činnost a odlož kladiv

Algoritmus přechodu křižovatky, řízené semaforem Cvičení 3- napsat postup

Algoritmus přechodu křižovatky, řízené semaforem 1) Formulace problému Přejdi na druhou stranu ulice. 2) Analýza úlohy Vstupní údaje: přechod se semaforem Výstupní údaje: pozice na druhé straně ulice Analýza: přes přechod se nechodí na červenou 3) Sestavení algoritmu (slovní popis) A) Dojdi až k semaforu B) Svítí na semaforu červená? AN Čekej, vrať se na bod B NE Pokračuj bodem C C) Přejdi přes přechod

Vývojové diagramy Ing. Tomáš táhal

Vývojový diagram VD= způsob znázornění algoritmů používá se několik typů značek každá značka má určitý význam do značek se vpisují operace nebo skupiny operací, které se mají provést pomocí značek se kreslí základní algoritmické konstrukce

Cvičení- slovních algoritmů

Zatloukání hřebíků Slovní popis algoritmu: 1. Vezmi kladivo a hřebík 2. Přilož hřebík k desce 3. Uhoď kladivem na hlavičku 4. Je hřebík zatlučen? AN pokračuj bodem 5 NE vrať se na bod 3 5. Ukonči činnost a odlož kladivo

Řešení- zatloukání hřebíků

Algoritmus přechodu křižovatky, řízené semaforem 1) Formulace problému Přejdi na druhou stranu ulice. 2) Analýza úlohy Vstupní údaje: přechod se semaforem Výstupní údaje: pozice na druhé straně ulice Analýza: přes přechod se nechodí na červenou 3) Sestavení algoritmu (slovní popis) A) Dojdi až k semaforu B) Svítí na semaforu červená? AN Čekej, vrať se na bod B NE Pokračuj bodem C C) Přejdi přes přechod

Řešení- přechodu

Praktické cvičení 1. Napiš algoritmus na přechod z jedné místnosti do druhé (dveře jsou zavřeny, mají zámek a ty máš svazek klíčů). 2. Nakresli vývojový diagram na přechod z jedné místnosti do druhé (dveře jsou zavřeny, mají zámek a ty máš svazek klíčů).

Děkuji za pozornost.