Vývojové diagramy

Download Report

Transcript Vývojové diagramy

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
2
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
3
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í
4
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.
2.
3.
4.
5.
Čtení: A,B,C
D ← B2 – 4*A*C
X1 ← (-B+sqrt(D))/(2*A)
X2 ← (-B-sqrt(D))/(2*A)
Tisk: X1,X2
Náprava?
1. test, zda je rovnice kvadratická (a≠0)
2. částečné řešení i pro imaginární kořeny
5
az2 + bz + c = 0
D = b2 – 4ac
• D >= 0
D<0
Z1,2=
x1 = -b/2a
x2 = x1
y = sqrt(-D)/2a
y=0
Tisk: x1 + i*y
Tisk: x2 - i*y
6
Příklad
?
7
Příklad
8
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
9
Příklad
10
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).
11
12
13
14
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
15
16
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í.
17
18
19
20
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
21
22
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.
23
24
Simulace algoritmu
N=7
3.0 5.0 8.0 2.0 8.0
X
XMax
I
N
3.0
2
7
8.0 3.0
25
Simulace algoritmu
N=7
3.0 5.0 8.0 2.0 8.0
X
XMax
I
N
5.0
3.0
2
7
8.0 3.0
26
Simulace algoritmu
N=7
3.0 5.0 8.0 2.0 8.0
X
XMax
I
N
5.0
3.0
2
7
5.0
3
7
8.0 3.0
27
Simulace algoritmu
N=7
3.0 5.0 8.0 2.0 8.0
X
XMax
I
N
5.0
3.0
2
7
8.0
5.0
3
7
8.0
4
7
8.0 3.0
28
Simulace algoritmu
N=7
3.0 5.0 8.0 2.0 8.0
X
XMax
I
N
5.0
3.0
2
7
8.0
5.0
3
7
2.0
8.0
4
7
8.0
8.0
5
7
8.0
8.0
6
7
3.0
8.0
7
7
8.0 3.0
29
• 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ý
30
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)
31
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
32
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)
33
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.
34
Příklad
Vstup:
N = 11
3, 5, 5, 8, 1, 8, 2, 5, 8, 1, 5
Jakou hodnotu má maximum?
35
Příklad
Vstup:
N = 11
3, 5, 5, 8, 1, 8, 2, 5, 8, 1, 5
Jakou hodnotu má maximum?
MAX = 8
36
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?
37
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
38
1
1
39
Modulární programování
• rozložit řešený problém na pokud možno
izolované podproblémy
1. Čtení vstupních údajů.
2. Hledání maximální hodnoty.
3. Hledání indexů prvků s maximální hodnotu.
40
41
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ů.
42
43
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é.
44
Předčasné opuštění cyklu
(skok z cyklu) - není v souladu
se zásadami strukturovaného
programování. Nepoužívat!!!
45
logická proměnná
Sh:Boolean
True (logická 1)
False (logická 0)
Po shodě stále zbytečně pokračujemě v cyklu.46
47