Algoritmy a programování

Slides:



Advertisements
Podobné prezentace
Základy ukládání dat v počítači
Advertisements

1 – Informatika Nauka (tj. věda) o informacích, tj. o zápisu (kódování (angl.)), přenosu (transfer (angl.)), zpracování (procesování (angl.)) informací.
Pascal - příklady.
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ý.
Algoritmizace Vývojové diagramy.
ALGO – Algoritmizace 1. cvičení
Základy informatiky přednášky Kódování.
Genetické algoritmy. V průběhu výpočtu používají náhodné operace. Algoritmus není jednoznačný, může projít více cestami. Nezaručují nalezení řešení.
Algoritmizace 9. Ročník.
Třídění PA. Kompaktní PA (KPA) -menší - měly původně pevně danou konfiguraci integrovaných modulů a byly uzavřeny v jednom pouzdře. -Pouzdro se montuje.
Informatika pro ekonomy II přednáška 4
ALGORITMIZACE ÚVODNÍ PŘEDNÁŠKA 2 SLOVO ALGORITMUS VZNIKLO ZE JMÉNA ARABSKÉHO MATEMATIKA AL-KHWARIZMIHO, KTERÝ V DEVÁTÉM STOLETÍ SEPSAL ROZSÁHLOU KOLEKCI.
Algoritmizace a programování
Seminář – Základy programování
Algoritmizace.
Informatika a práce s počítačem
25. ALGORITMIZACE A PROGRAMOVÁNÍ
Algoritmus po krocích rozepsaný návod k nějaké činnosti
Algoritmizace a základy programování
Základy algoritmizace a programování
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Základy číslicové techniky
Obchodní akademie, Náchod, Denisovo nábřeží 673
Informatika pro ekonomy II přednáška 10
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í.
Cvičení.
Datové typy a struktury
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
IB111 Programování a algoritmizace
Dokumentace informačního systému
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Algoritmizace a programování Algoritmizace – základní pojmy - 01
Vytváření a realizace algoritmů Algoritmy a datové struktury
Databázové modelování
Referát č.8 Daniela Venusová.
Algoritmus a jeho vlastnosti
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
Databázové systémy Informatika pro ekonomy, př. 18.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Automaty a gramatiky.
Převody mezi číselnými soustavami 1
Algebra v informatice Antonín Jančařík.
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.
Úvod do programování Vyučující: Mgr. Vítězslav Jersák
Programování v MATLABu © Leonard Walletzký, ESF MU, 2000.
Orbis pictus 21. století Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Blokové schéma počítače.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 4: Programovací jazyk C Bc. Radek Libovický.
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
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:
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Reprezentace dat v počítači. základní pojmy  BIT označení b nejmenší jednotka informace v paměti počítače název vznikl z angl. BINARY DIGIT (dvojkové.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Software,hardware,data,biti a bajty.  Software je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost.
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Výukový materiál zpracován v rámci projektu
ALU Aritmeticko-logická jednotka
Algoritmizace – základní pojmy
Základní pojmy v automatizační technice
Výukový materiál zpracován v rámci projektu
Vlastnosti souborů Jaroslava Černá.
Výukový materiál zpracován v rámci projektu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Ukládání dat v paměti počítače
Informatika pro ekonomy přednáška 8
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.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Algoritmy a programování Vladimír Dostál 4.c

Algoritmy-úvod První člověk, který poprvé vyslovil slovo algoritmus byl perský matematik Abū ‘Abd Allāh Muhammad ibn Mūsā al-Khwārizmī. Tento matematik jako první prakticky vytvořil systém arabských číslic a základy algebry. Algoritmus bývá často definován jako: „přesný návod či postup, kterým lze vyřešit daný typ úlohy.“ 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 algoritmu zní: „Algoritmus je procedura proveditelná Turingovým strojem“ (Skládá se z procesorové jednotky, tvořené konečným automatem a programu ve tvaru pravidel přechodové funkce a potenciálně nekonečné pásky pro zápis mezivýsledků a vstupů dat.)

Vlastnosti algoritmů Algoritmus většinou pracuje s určitými vstupy, veličinami, které jsou mu předány před započetím jeho provádění, nebo v průběhu jeho činnosti. Vstupy mají definované množiny hodnot, jichž mohou nabývat. Algoritmus má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným vstupům, a tím tvoří odpověď na problém, který algoritmus řeší.

Konečný Každý algoritmus musí skončit v konečném počtu kroků. Počet kroků může být libovolně velký, ale pro každý jednotlivý výstup musí být konečný. Speciálním příkladem nekonečné výpočetní metody je relativní proces, který průběžně reaguje s okolním prostředím.

Deterministický Každý jeden krok algoritmu musí být jednoznačně a přesně definován: v každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat.

Př. Vyšetřování hypokalámie Efektivní Efektivní Obecně se požaduje, aby algoritmus byl efektivní vtom smyslu, že požadujeme, aby každá operace udělána algoritmem, aby byla dostatečně jednoduchá na to, aby mohla být zhotovena pouze s použitím tužky a papíru. Př. Vyšetřování hypokalámie

Obecný Algoritmus neřeší jeden konkrétní problém (např. 2 x 3), ale obecnou třídu obdobných problémů (např. ,, jak spočítat součet nebo rozdíl dvou celých čísel). Rezultativní Algoritmus, který při zadání vstupních dat vždy vrátí nějaký výsledek pořád dokola (může se jednat jen o chybné hlášení)

Druhy algoritmů Algoritmy můžeme rozdělovat různými způsoby, mezi nejvýznamnější patří rekurzivní, hladové, rozděl a panuj, dynamického programování, pravděpodobnostní, genetické a heuristické algoritmy.

Rekurzivní algoritmy- využívají (neboli volají) samy sebe.   Hladové algoritmy- požívají se k řešení propracování po jednotlivých rozhodnutích, která, jakmile jsou jednou učiněna, už nejsou nadále revidována. Algoritmy typu rozděl a panuj-dělí problémy na menší podproblémy, po čemž se dílčí řešení vhodným způsobem sloučí. Algoritmy dynamického programování- funguje podobně jako hladové algoritmy, ale negeneruje se pouze jedna postoupnost. Zkoumají se všechny posloupnosti, které by mohly být optimální a vylučují se ty, které optimální nebudou. Používají se dílčí výsledky, které byly získané již dříve během výpočtu. Typickým příkladem využití dynamického programování jsou grafové úlohy a jejich grafové algoritmy. Pravděpodobnostní algoritmy (neboli probabilistické) provádějí některá rozhodnutí náhodně nebo pseudonáhodně. Pokud bychom měli k dispozici více počítačů (jader nebo procesorů), můžeme úlohu mezi ně rozdělit, což nám umožní danou problematiku rychleji vyřešit. Tomuto cíli se věnují paralelní algoritmy Genetické algoritmy- pracují na postupu, který se snaží aplikací principů evoluční biologie nalézt řešení složitých problémů, pro které neexistuje použitelný exaktní algoritmus. Evoluční algoritmy používají techniky napodobující evoluční procesy známé z biologie – dědičnost, mutace, přirozený výběr a křížení – pro „šlechtění“ řešení zadané úlohy.

Zápis algoritmů Slovním popisem -Slovní popis v přirozeném jazyce Vývojovým diagramem -Grafické znázornění algoritmu řešení úlohy jednotnými značkami a zkratkami Strukturogramy -Používá obdobné symboly ale přesnější, tento systém přesně splňuje podmínky důležité pro strukturované programování. Datově orientované diagramy (HIPO) -Je grafickým vyjádřením funkčního členění problému, struktury dat a postupu řešení problému při různém stupni podrobnosti. Rozhodovací tabulky -Požíváme při velmi složitých větveních

Programování-Binární kód Binární kód je způsob uložení informace v počítači definován jako konečný počet bitů, ze kterých každý může nabývat pouze jednu ze dvou hodnot (označených jako 0 nebo 1). Dneska se převážně požívá Byte (bajt) s délkou slova osm bitů. Pro vypočítání binárního zápisu se používá binární soustava. Označení binárního kódu, které se požívá v případě, že člověk neví, jaká informace je v zápisu hodnot použita. Aby mohla informace být uložena a později zase obnovena, používá se při převodu do binárního kódu vždy nějaké kódování, které určuje, jak je převedena informace do číselného zápisu.

Systém kódování -Kódování ASCII (nebo-li American Standard Cod efor Information Interchange), požívá 7 bitový binární kód, který představuje text pro počítače, komunikační zařízení a mnoho jiných zařízení, která požívají text. V každém znaku nebo písmenu je přiřazeno číslo od 0 do 127 ( např. v 8 bitovém kódu ASCII je malé a reprezentováno jako řetězec bitů 01100001)

Programovací jazyk Programovací jazyk je prostředek pro zápis algoritmů, které mohou být provedeny na počítači. Program se nazývá zápis algoritmu v daném programovacím jazyce. Programovací jazyk je komunikačním nástrojem mezi programátorem (který v daným programovacím jazyce formuluje postup řešení daného problému) a počítačem.

Typy programovacích jazyků Komplikované-(např. Pascal nebo C) -jsou kompletně přeloženy kompilátorem ještě předtím než se spustí -výsledkem je větší náročnost na správně zapsaný kód,ale také větší rychlost 2) interpretované- (např. Basic,Perl,shell a Phython) -interpretované jazyky, které se pouze interpretují (z toho důvodu jsou pomalejší - proto většina jazyků má alespoň nějakou jinou možnost, pokud nejsou stejně zpomalované něčím jiným, jako třeba shell) -interpretované jazyky, které se překládají, ale pouze do mezikódu, nikoli do strojového kódu počítače (např. Java, Python) -interpretované jazyky, které se po spuštění za běhu programu překládají do strojového kódu počítače (např. Java, pokud se použije systém JIT)

Programovací jazyk C Programovací jazyk C vyvinuli počátkem 70. let 20. století Ken Thompson a Dennis Ritchie pro potřeby operačního systému Unix. V součastné době je jeden z nejznámějších a nejpopulárnějších jazyků. Nejčastěji se používá pro psaní systémového softwaru, ale je velmi rozšířený i pro aplikace. Programovací jazyk C je nízko úrovňový, kompilovaný a relativně minimalistický. Je dostatečně mocný na většinu systémového programování (ovladače a jádro OS), přičemž zbytek lze dořešit tzv. iniline assemblerem ( metoda zápisu assembleru přímo do kódu). Ukládání dat je v C řešeno třemi základními způsoby: statickou alokací paměti, automatickou alokací paměti na zásobníku a dynamickou alokací na haldě za pomocí knihovních funkcí.

Datové typy Programovací jazyk C má tyto datové typy Char- požívá se pro znaky Int- používá se pro celá čísla Float- používá se pro desetinné číslo s plovoucí řádkovou čárkou Double- používá se pro desetinné číslo s plovoucí řádkovou čárkou s dvojnásobnou přesností Void-požívá se pokud nepotřebujeme žádnou hodnotu( např u funkcí)

Díky za pozornost :-P