1 / 17

Základy algoritmizace a programování

Základy algoritmizace a programování. pavel.jezek @mff.cuni.cz Pavel Ježek. Doporučená literatura. Lucie Pelikánová, Jan Čihák, Lucie Knejpová: Visual Basic – Sbírka řešených příkladů , Ben 1998 Základy programování vysvětleny v příkladech, vhodné pro začátečníky jako učebnice.

mahdis
Download Presentation

Základy algoritmizace a programování

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Základyalgoritmizace a programování pavel.jezek@mff.cuni.czPavel Ježek

  2. Doporučená literatura • Lucie Pelikánová, Jan Čihák, Lucie Knejpová: Visual Basic – Sbírka řešených příkladů, Ben 1998Základy programování vysvětleny v příkladech, vhodné pro začátečníky jako učebnice. • Lenka Tahalová, Tomáš Holan: Visual Basic v příkladech, BEN 2001Kniha je sbírkou prográmků, které by měly ilustrovat to, co je dobré znát. Není to učebnice, ale spíše přehled, co všechno zajímavého ve Visual Basicu jde a co je zajímavé. • Michael Havorson: Microsoft Visual Basic 6.0 Professional Krok za krokem, Computer PressUčebnice jazyka Microsoft Visual Basic verze 6.0. Příklady jsou podrobně rozebrány.

  3. Algoritmus • Popis pracovního postupu, kterým lze řešit určitou skupinu úloh • Může být popsán mnoha různými způsoby – např. slovním popisem, pomocí matematických vztahů

  4. Příklad algoritmu řidičePrasklá pneumatika 1. Zastavit 2. Vystoupit 3. Vyměnit kolo 4. Nastoupit 5. Rozjet se

  5. Prasklá pneumatika, pokr.Podrobnější 1. Zastavit 2. Vystoupita. Otevřít dveře b. Vylézt c. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

  6. Prasklá pneumatika, pokr.Ještě podrobnější 1. Zastavit 2. Vystoupita. Otevřít dveře i. Chytit páčku dveří ii. Zatáhnout za páčku iii. Zatlačit iv. Pustit páčku dveří b. Vylézt c. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

  7. Prasklá pneumatika, pokr.Ještě, ještě podrobnější 1. Zastavit 2. Vystoupita. Otevřít dveře i. Chytit páčku dveří a. Najít páčku dveří b. Roztáhnout prsty levé ruky c. Změnit polohu levé ruky, aby se dotýkala páčky d. Sevřít prsty levé ruky ii. Zatáhnout za páčku iii. Zatlačit iv. Pustit páčku dveří b. Vylézt c. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

  8. Program • Pokud chceme, aby algoritmus vykonával nějaký konkrétní stroj, musíme ho přetvořit v program • Program je složen pouze z příkazů, kterým daný stroj rozumí • Seznam příkazů, kterým rozumí nějaký stroj a pravidla pro jejich používání jsou programovací jazyk • Na „chytrosti“ stroje závisí míra abstrakce programovacího jazyka, jehož příkazy je stroj schopen vykonávat • Implementovat složitý programovací jazyk v hardwaru je složité – hardware rozumí spíše jednoduchým jazykům = strojovému kódu • Psát program ve strojovém kódu je těžké pro člověka – programuje se ve vyšším jazyce (Visual Basic), který se pak překládá (transformuje, rozepisuje) do strojového kódu • Algoritmus/program by měl být: • Správný – reagovat správně na všechny možné vstupní stavy dané úlohy • Efektivní – dosáhnout správného výsledku v rozumném čase

  9. Prasklá pneumatika, pokr.Funguje algoritmus vždy? 1. Zastavit 2. Vystoupita. Otevřít dveře b. Vylézt c. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

  10. Prasklá pneumatika, pokr.Co bezpečnostní pásy? 1. Zastavit 2. Vystoupita. Otevřít dveře b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

  11. Prasklá pneumatika, pokr.Co když jsme na kopci? 1. Zastavit 2. Zatáhnout ruční brzdu 3. Vystoupita. Otevřít dveře b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře 4. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 5. Nastoupit 6. Rozjet se

  12. Prasklá pneumatika, pokr.Objekty • Bude algoritmus fungovat v případě, když zastavíme před domem, který má otevřené vstupní dveře?3. Vystoupit a. Otevřít dveře b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře • V daném kontextu není jasný vlastník objektu, musíme specifikovat komu dveře „patří“:3. Vystoupit a. Otevřít dveře auta b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře auta

  13. Prasklá pneumatika, pokr.Objekty • Co když zastavím vedle cizího auta s otevřenými dveřmi?3. Vystoupit a. Otevřít dveře mého auta b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře mého auta • „auto“ je typ, resp. třída objektu • „mé auto“, stejně jako „Petrovo auto“ jsou konkrétní instance, resp. objekty typu, resp. třídy auto

  14. Objektové programováníNapř. objekt typu dům • Objekt může obsahovat další objekty: • Např. objekt dveře a objekty okno • Objekt má vlastnosti • Např. barva fasády, výška • Vlastnosti objektu nemusí být „viditelné“ • Např. rok postavení, jméno ulice kde stojí • Vlastnost objektu může nabývat pouze některých hodnot – určeno „typem“ vlastnosti • barva fasády: OK – zelená, CHYBA – 3,14 • výška domu: OK – 20 metrů, CHYBA – žlutá • Čili: barva fasády je typu barva, výška domu je typu číslo v metrech • Na objektu může jít provádět „operace“: • Např. přemalovat – změna vlastnosti barva fasády • Např. přistavět patro – změna vlastnosti výška domu, ale také změna vnitřní strukturu objektu • Např. zbourat • Objekt může reagovat na události

  15. Algoritmus spolujezdce • dívej se z okna • podívej se, jestli nepraskla pneumatika; pokud ano, upozorni řidiče a po zastavení vyměň kolo • kousej si nehty na rukou • podívej se zda nezlobí děti; pokud ano, tak je zpacifikuj • pokud je uvnitř auta teplo, otevři okénko; až začne být v autě zima, zavři okénko • dívej se z okna • podívej se, jestli nepraskla pneumatika; pokud ano, upozorni řidiče a po zastavení vyměň kolo • …

  16. Algoritmus spolujezdceReakce na události • Události: • praskla pneumatika → upozorni řidiče a po zastavení vyměň kolo • děti zlobí → zpacifikuj je • v autě je teplo → otevři okénko • v autě je zima → zavři okénko • Událostmi řízené programování • Zjednodušuje psaní programů s objekty

  17. Visual Basic • Programovací jazyk od Microsoftu • Pracuje s objekty jako okno, tlačítko, editační řádek, apod. • Umožňuje programovat reakce na události těchto objektů – příklady událostí: kliknutí myši, změna obsahu editačního řádku, apod. • Část programu reagující na určitou událost – událostní procedura (podprogram) • Každý objekt má své jednoznačné jméno • Příkazy: • Vyvolání (provedení) akce na objektu • Změna vlastnosti objektu – přiřazovací příkaz:JménoObjektu.JménoVlastnosti = NováHodnota

More Related