Jazyk vývojových diagramů
Vývojový diagram grafický způsob zápisu algoritmů k zápisu jednotlivých příkazů jsou použity značky, které se spojují spojnicemi
Značky zpracování - zápis příkazů přiřazení rozhodování/větvení - zápis podmínky vstup/výstup - zápis příkazu čtení/tisku příprava - pro zápis cyklů nebo pro zápis záhlaví procedur
Značky předem definovaná činnost - představuje jinde rozpracovanou činnost, např. obecnou proceduru spojka mezní značka - zahájení/ukončení činnosti poznámka - k zápisu poznámky vedle značky, dále bude používána i pro zápis deklarací
Příklad Vyjádřete algoritmus, podle kterého se pro zadaná reálná čísla a, b, c vypočtou kořeny rovnice a·x2+ b·x + c = 0 , je-li kvadratická. 1. Čtení: A,B,C 2. D ← B2 – 4*A*C 3. X1 ← (-B+sqrt(D))/(2*A) 4. X2 ← (-B-sqrt(D))/(2*A) 5. Tisk: X1,X2 Náprava? test, zda je rovnice kvadratická (a≠0) částečné řešení i pro imaginární kořeny
az2 + bz + c = 0 D = b2 – 4ac D >= 0 D < 0 x1 = -b/2a y = 0 x2 = x1 y = sqrt(-D)/2a Tisk: x1 + i*y Tisk: x2 - i*y Z1,2=
Příklad ?
Příklad
Deklarace proměnných v Delphi začíná klíčovým slovem var (variable) Real - identifikátor pro typ reálných proměnných Integer - identifikátor pro typ celočíselných proměnných
Příklad
Příklad Vyjádřete algoritmus pro nalezení největší hodnoty, která se vyskytuje mezi třemi zadanými čísly, jež jsou z intervalu (-1000, 1000).
prohození hodnot v proměnných A a B, využitím pomocné proměnné P Příklad Vyjádřete algoritmus pro seřazení tří zadaných čísel podle velikosti od „nejmenšího“ po „největší“ . prohození hodnot v proměnných A a B, využitím pomocné proměnné P
Příklad Vyjádřete algoritmus pro výpočet součtu 20 reálných čísel dodávaných ze vstupního zařízení.
Cyklus Základní typy (konečných) cyklů : cyklus se známým počtem opakování cyklus s neznámým počtem opakování = cyklus řízený podmínkou
Příklad Vstupní údaje tvoří nejprve přirozené číslo N z intervalu <2, 1000> a dále posloupnost N reálných čísel. Vyjádřete algoritmus pro nalezení největší hodnoty z hodnot prvků posloupnosti.
Simulace algoritmu N=7 3.0 5.0 8.0 2.0 8.0 8.0 3.0 X XMax I N 3.0 2 7
Simulace algoritmu N=7 3.0 5.0 8.0 2.0 8.0 8.0 3.0 X XMax I N 5.0 3.0
Simulace algoritmu N=7 3.0 5.0 8.0 2.0 8.0 8.0 3.0 X XMax I N 5.0 3.0
Simulace algoritmu N=7 3.0 5.0 8.0 2.0 8.0 8.0 3.0 X XMax I N 5.0 3.0 4
Simulace algoritmu N=7 3.0 5.0 8.0 2.0 8.0 8.0 3.0 X XMax I N 5.0 3.0 4 5 6
Strukturovaný údaj je skupina údajů s určitou charakteristickou skladbou (s určitým uspořádáním). homogenní (všechny jeho složky jsou stejného typu) nehomogenní statický (nemění počet složek během své existence) dynamický
Pole homogenní statický strukturovaný údaj složky = prvky pole se rozlišují pomocí indexů všechny prvky jednoho pole mají stejnou dimenzi (počet indexů) indexy mají pevný rozsah nejmenší hodnota (dolní mez indexu) největší hodnota (horní mez indexu)
Statická deklarace pole pro popis mezí indexů užity konstanty umožňuje vymezení pole ještě před zahájením vlastní práce podle programu
Dynamická deklarace pole meze indexů pole popsány pomocí proměnné rozsah pole závisí na hodnotě proměnné v okamžiku vymezení pole (což musí být vždy až po zahájení práce podle programu)
Příklad Vstupní údaje tvoří nejprve přirozené číslo N z intervalu <2, 1000> a dále posloupnost N reálných čísel. Vyjádřete algoritmus pro nalezení indexů všech míst výskytu maxima posloupnosti.
Příklad Vstup: N = 11 3, 5, 5, 8, 1, 8, 2, 5, 8, 1, 5 Jakou hodnotu má maximum?
Příklad Vstup: N = 11 3, 5, 5, 8, 1, 8, 2, 5, 8, 1, 5 Jakou hodnotu má maximum? MAX = 8
Příklad Vstup: N = 11 3, 5, 5, 8, 1, 8, 2, 5, 8, 1, 5 Na jakých pozicích se nachází maxima?
Příklad Vstup: N = 11 3, 5, 5, 8, 1, 8, 2, 5, 8, 1, 5 Na jakých pozicích se nachází maxima? 4, 6, 9
1 1
Modulární programování rozložit řešený problém na pokud možno izolované podproblémy Čtení vstupních údajů. Hledání maximální hodnoty. Hledání indexů prvků s maximální hodnotu.
Příklad Vstupní údaje tvoří posloupnost reálných čísel, která jsou z intervalu (-100, 100), a dále pak číslo větší než 1000 (indikace konce načítání). Vyjádřete algoritmus pro nalezení počtu prvků posloupnosti větších než aritmetický průměr. Řešte za předpokladu, že posloupnost má méně než 600 prvků.
Vstupní údaje tvoří přirozené číslo N a dále posloupnost N celých kladných čísel. Vyjádřete algoritmus, podle kterého se zjistí, zda jsou v posloupnosti alespoň dva prvky stejné.
Předčasné opuštění cyklu (skok z cyklu) - není v souladu se zásadami strukturovaného programování. Nepoužívat!!!
Po shodě stále zbytečně pokračujemě v cyklu. logická proměnná Sh:Boolean True (logická 1) False (logická 0) Po shodě stále zbytečně pokračujemě v cyklu.