Informatika I 2. přednáška

Slides:



Advertisements
Podobné prezentace
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Advertisements

Práce s vektory a maticemi
Pascal - větvení.
Algoritmizace Vývojové diagramy.
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
ALGO – Algoritmizace 6. cvičení
Programování 01 Algoritmizace.
ALGO – Algoritmizace 1. cvičení
Alg51 Rozklad problému na podproblémy Postupný návrh programu rozkladem problému na podproblémy –zadaný problém rozložíme na podproblémy –pro řešení podproblémů.
Úplné kvadratické rovnice
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Algoritmy I Cvičení č. 3.
Lineární rovnice se dvěma neznámými
Lineární algebra.
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
Jazyk vývojových diagramů
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
C – strukturované příkazy
ALGO – Algoritmizace 2. cvičení
UŽITÍ LOMENÝCH VÝRAZŮ ROVNICE S NEZNÁMOU VE JMENOVATELI
Jazyk vývojových diagramů
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Výrazy.
Informatika I 4. přednáška
Výpočet kořenů kvadratické rovnice
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Pascal - cykly.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Algoritmizace a programování Vývojové diagramy - 03
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í.
doc. RNDr. Zdeněk Botek, CSc.
Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů.
Grafický zápis algoritmů (vývojové diagramy) Test na trojúhelník (trojúhelníková nerovnost) Maximum ze tří čísel s použitím pomocné proměnné Pravoúhlý.
Základy ALgoritmizace 6. cvičení. Program cvičení Kontrolní bod 1 zakončení grafického zápisu algoritmů - vývojových diagramů –identifikátory a proměnné.
Mgr. Martin Krajíc matematika 1.ročník rovnice a nerovnice
polynom proměnné x f = anxn + an-1xn-1 + ……. + a0
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
KVADRATICKÉ NEROVNICE
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 – if Mgr. Lenka Švancarová.
Informatika I 2. přednáška
Pascal – strukturované příkazy
Repetitorium z matematiky Podzim 2012 Ivana Medková
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
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.
Pascal - větvení.
(řešení pomocí diskriminantu)
Algoritmizace a programování Algoritmy 4 – Vývojové diagramy (cykly)
Algoritmizace a programování Algoritmy 2 – Vývojové diagramy (sekvence)
Inf Cykly ve vývojových diagramech
Repetitorium z matematiky Podzim 2012 Ivana Medková
3. LINEÁRNÍ ROVNICE A NEROVNICE
Vytváření dokumentace algoritmů
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.
© Copyright Radim Štefan
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
CYKLUS S PODMÍNKOU NA ZAČÁTKU (se vstupní podmínkou)
Podprogramy.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Definiční obory. Množiny řešení. Intervaly.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Informatika I 2. přednáška RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz

Informatika I: přednáška 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

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

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

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

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

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

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

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

Informatika I: přednáška 2 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 end Akce1 Akce2 Akce3 Informatika I: přednáška 2

Informatika I: přednáška 2 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

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

Informatika I: přednáška 2 Příklady větvení a) Určení maxima z čísel A a B : if A>B then Max:=A else Max:=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

Iterace s testem zahájení while Podmínka do Akce Význam: pokud platí Podmínka, prováděj Akci. 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

Příklad iterace s testem zahájení Výpočet faktoriálu F přirozeného čísla N : F:=1; while N>0 do 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

Iterace s testem ukončení repeat Akce1; Akce2 until Podmínka Význam: opakuj Akci1 a Akci2 dokud neplatí 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

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

Vztahy mezi strukturami while a repeat Algoritmus a1: Algoritmus a2: while B do A if B then repeat A until not B Algoritmus b1: Algoritmus b2: repeat A until B A; while not B do A Algoritmus a2 je ekvivalentní algoritmu a1. Algoritmus b2 je ekvivalentní algoritmu b1. Informatika I: přednáška 2

Výpočet aritmetického průměru P z čísel X1, … , XN Začátek Zápis v pseudo Pascalu: S:=0; I:=1; while IN do 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 I  N ne ano S := S + XI P := S / N I := I + 1 Konec Informatika I: přednáška 2