1 / 19

Informatika I 2. přednáška

Informatika I 2. přednáška. RNDr. Jiří Dvořák, CSc. dvorak @uai.fme.vutbr.cz. Obsah přednášky. Vývojové diagramy Algoritmizace Základní řídicí struktury Algoritmizace s použitím základních řídicích struktur. Vybrané značky vývojových diagramů. zpracování. větvení. mezní značka. spojka.

Download Presentation

Informatika I 2. přednáška

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. Informatika I2. přednáška RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz

  2. Obsah přednášky • Vývojové diagramy • Algoritmizace • Základní řídicí struktury • Algoritmizace s použitím základních řídicích struktur Informatika I: přednáška 2

  3. Vybrané značky vývojových diagramů zpracování větvení mezní značka spojka spojnice Spojnice spojují jednotlivé značky. Mohou být kresleny vodorovně či svisle a mohou být zalomené. Jejich orientace určuje postup výpočtu. Orientace není nutná v tzv. preferovaných směrech, tj. shora dolů nebo zleva doprava. Informatika I: přednáška 2

  4. Příklad grafického vyjádření algoritmu Začátek Operace mod dává zbytek po celočíselném dělení R := M mod N M := N N := R ne N = 0 ano Hodnota největšího společného dělitele se nachází v proměnné M Konec Informatika I: přednáška 2

  5. Algoritmizace problému • Přímý postup: problém se známým algoritmem, triviální problém • Přeformulování problému: zjednodušení, zobecnění, ekvivalentní přeformulování • Rozklad problému na podproblémy: • konjunktivní: řešení problému se nalezne řešením všech podproblémů • disjunktivní: řešení problému se nalezne řešením pouze jednoho z podproblémů • repetiční: řešení se nalezne opakovaným řešením podproblémů (iterační rozklad) nebo téhož problému se zmenšující se dimenzí (rekurzivní rozklad) Informatika I: přednáška 2

  6. Příklady přeformulování problému Zjednodušující přeformulování Místo výrazu r 2 vyhodnocujeme výraz 3,14 ·r 2 Ekvivalentní přeformulování Soustavu n lineárních rovnic o n neznámých postupně transformujeme ekvivalentními úpravami (násobení rovnice nenulovým číslem, přičtení rovnice k jiné rovnici) na soustavu s jednotkovou maticí, což je triviální problém. Zobecňující přeformulování Místo problému nalezení kořenů rovnice 2x2 – 6x + 3 = 0 algoritmizujeme problém ax2 + bx + c = 0 Informatika I: přednáška 2

  7. Příklady rozkladu problému Konjunktivní rozklad Aritmetický průměr n čísel získáme postupným řešením těchto dvou podproblémů: a) Výpočet součtu čísel zadaných čísel. b) Podělení součtu hodnotou n. Disjunktivní rozklad Kořeny kvadratické rovnice získáme v závislosti na hodnotě diskriminantu řešením jednoho z těchto dvou podproblémů: a) Výpočet reálných kořenů. b) Výpočet komplexních kořenů. Informatika I: přednáška 2

  8. Příklady rozkladu problému Iterační rozklad (v kombinaci s konjunktivním) Výpočet součtu čísel x1 , x2 , … , xN : Konjunktivní rozklad: a) Vynulování proměnné S (S := 0) b) Iterační rozklad: pro I = 1, 2, … , N postupně sečítáme hodnoty S a xI a výsledek ukládáme do S (S := S + xI) Rekurzivní rozklad (v kombinaci s disjunktivním) Výpočet faktoriálu F přirozeného čísla N (F = N!): Disjunktivní rozklad: a) Je-li N = 0, pak F := 1 b) Je-li N> 0, pak F := N (N – 1)! … rekurzivní rozklad Informatika I: přednáška 2

  9. Základní řídicí struktury Řídicí struktury zajišťují organizaci výpočtu. Jakýkoli algoritmus lze napsat pomocí těchto základních struktur: • sekvence (odpovídá konjunktivnímu rozkladu) • větvení (odpovídá disjunktivnímu rozkladu) • iterace (odpovídá iteračnímu rozkladu) • s testem zahájení • s testem ukončení Charakteristický rys základních řídicích struktur: Mají jeden vstupní a jeden výstupní bod pro předání řízení. Informatika I: přednáška 2

  10. Sekvence Akce1; Akce2; Akce3 Jednotlivé akce v sekvenci jsou oddělovány středníkem. Pokud potřebujeme, aby sekvence navenek vystupovala jako jediná akce, musíme ji uzavřít do příkazových závorek begin a end. begin Akce1; Akce2; Akce3 end Akce1 Akce2 Akce3 Informatika I: přednáška 2

  11. Příklad sekvence Výměna obsahu proměnných X a Y: Pom := X Pom:=X; X:=Y; Y:=Pom X := Y Y := Pom Informatika I: přednáška 2

  12. Větvení a) • if Podmínkathen • Akce1else • Akce2 • Význam: • jestliže platí Podmínka, pak proveď Akci1, jinak proveď Akci2. ano Podmínka ne Akce1 Akce2 b) • if Podmínkathen • Akce • Význam: • jestliže platí Podmínka, pak • proveď Akci. ano Podmínka ne Akce Informatika I: přednáška 2

  13. Příklady větvení a) Určení maxima z čísel A a B: if A>B then Max:=A elseMax:=B ano A > B ne Max := A Max := B b) Náhrada hodnoty proměnné X její absolutní hodnotou: if X<0 then X:= –X ano X < 0 ne X := –X Informatika I: přednáška 2

  14. Iterace s testem zahájení • whilePodmínkado • Akce • Význam: • pokud platí Podmínka, • provádějAkci. • Akce ve struktuře while se nemusí • provést ani jednou (když podmínka není splněna hned napoprvé). • Akce musí měnit proměnné, na nichž • závisí podmínka, takovým způsobem, aby iterace skončila v konečném počtu kroků. • Provádí se pouze jedna akce. Má li se • provádět sekvence akcí, musí být uzavřena mezi begin a end. Podmínka ne ano Akce Informatika I: přednáška 2

  15. Příklad iterace s testem zahájení Výpočet faktoriálu F přirozeného čísla N: F:=1; whileN>0do begin F:=FN; N:=N-1 end F:=1 N>0 ne ano F:=F*N N:=N–1 Informatika I: přednáška 2

  16. Iterace s testem ukončení • repeat • Akce1; • Akce2 • until Podmínka • Význam: • opakujAkci1 a Akci2 • dokudneplatí Podmínka • Akce ve struktuře repeat se • provedou vždy alespoň jednou. Akce1 Akce2 ne Podmínka ano Informatika I: přednáška 2

  17. Příklad iterace s testem ukončení Výpočet největšího společného dělitele dvou celých kladných čísel M a N : repeat R:= M mod N; M:= N; N:= R until N=0 {Vysledek je v M} R := M mod N M := N N := R ne N = 0 ano Informatika I: přednáška 2

  18. Vztahy mezi strukturami while a repeat Algoritmus a1: Algoritmus a2: whileBdoAifBthen repeatAuntil not B Algoritmus b1: Algoritmus b2: repeatAuntilBA; while not BdoA Algoritmus a2 je ekvivalentní algoritmu a1. Algoritmus b2 je ekvivalentní algoritmu b1. Informatika I: přednáška 2

  19. Výpočet aritmetického průměru P z čísel X1, … , XN Začátek • Zápis v pseudo Pascalu: • S:=0; I:=1; • whileINdo • begin • S:=S+XI; • I:=I+1 • end; • P:=S/N • V Pascalu by se podmínka • cyklu a indexovaná proměnná zapsaly takto: • I<=N • X[I] S := 0 I := 1 ne I  N ano S := S + XI P := S / N I := I + 1 Konec Informatika I: přednáška 2

More Related