kategória | ||||||||||
|
||||||||||
|
||
Programgráf. Valódi program, strukturált program fogalma. Strukturált és nemstrukturált alapformák. Böhm-Jacopini tétele.
Valódi program: olyan gyengén öf. irányított gráf, amely:
véges számú nem zérus bemenő éllel és kijövő éllel rendelkezik
csp.-jai prédikátum csp.-ok és fv.csp.-ok és gyűjtő csp.-ok.
csp.-on át vezet legalább egy bemenő éllel kezdődő és kijövő éllel végződő út
Példa Nem valódi pr.:
Azt a pr.-ot, melynek gráfja lebontható az önmagában álló ir. élre, struktúrált pr.-nak nevezzük.
Struktúrált programozás
1., if p then f else g - I-T-E (p,f,g)
g
545f59f 545f59f 545f59f 545f59f 545f59f ha
p akkor f
p ¯ 545f59f 545f59f 545f59f 545f59f kül. g
545f59f 545f59f 545f59f p 545f59f 545f59f ha vége
f
f g 545f59f
2., while p do f - W-D(p,f)
545f59f p 545f59f 545f59f p 545f59f 545f59f ciklus amíg p
f
545f59f 545f59f 545f59f 545f59f 545f59f 545f59f f
545f59f 545f59f 545f59f 545f59f 545f59f ciklus vége
545f59f f 545f59f 545f59f 545f59f
3., begin f g end - B(f,g)
f f g
545f59f 545f59f 545f59f 545f59f 545f59f f
g
545f59f 545f59f 545f59f 545f59f 545f59f g
Definíció: Egy pr. gráf lebontása az az eljárás, melynek során a fenti 3 alapszerkezet valamelyikét egy fv.csp.-tal helyettesítjük, és ezt addig folytatjuk, amíg lehetséges.
Egy fv.csp.-ot tartalmazó gráf önmagában álló ir. él.
Példa
545f59f p2
f2
p1
W-D(p2,
f2)
p1
I-T-E(p1,
f1, W-D(p2, f2))
Definíció: Azt a pr.-ot, melynek gráfja lebontható az önmagában álló ir. élre, struktúrált pr.-nak nevezzük.
Megjegyzés: Lehet a do f while p - DU(p,f) formát is struktúrált alapformának tekinteni.
f
f
545f59f 545f59f p
545f59f 545f59f 545f59f 545f59f 545f59f p
f
545f59f ciklus
545f59f f
545f59f amíg p
Példa
h h
545f59f nem strukt. 545f59f 545f59f strukt.
545f59f q 545f59f 545f59f 545f59f q
545f59f p 545f59f 545f59f 545f59f p
f g
Nem strukturáltság jellemzői
Tétel: Egy pr. nem struktúrált Û részgráfjaként előfordul nem struktúrált alapforma.
Tétel: A nem struktúrált pr. a nem struktúrált alapformák közül legalább 2-t tartalmaz.
Nem struktúrált alapformák:
több kilépő élű ciklus 545f59f 545f59f több belépő élű ciklus
több kilépő élű döntés 545f59f 545f59f több belépő élű döntés
(Böhm-Jacopini)
valódi pr.-hoz vele ekvivalens struktúrált program.
Bizonyítás: (vázlat)
1. Lemma: Adott egy pr. gráf:
élek száma: n
pred.csp.: p
gyűjtő csp.: g
fv.csp.: j
Ekkor: n = 3p j + 1 és p g
Ui.: Csp.-ba mutató élek száma:
fv.csp.-ba: j 545f59f Összesen:
pred.csp.-ba: p 545f59f j p + 2g +1 = n
gyűjtő csp.-ba:2g 545f59f 545f59f kimenő él
Csoportból kimutató élek:
fv.csp.-ba: j 545f59f Összesen:
pred.csp.-ba: 2p j p g +1 = n
gyűjtő csp.-ba: g 545f59f 545f59f bemenő él
Þ j p + 2g j p g
545f59f g = p 545f59f 545f59f n=3p j
2. Lemma: Egy pr. struktúrált Û felírható B(g,h) , vagy I-T-E(p,g,h) , vagy W-D(p,g) alakban, ahol p predikátum, g,h struktúrált pr., vagy fv., vagy üres pr.
Ui.: Egyszerű meggondolással látható a pr. lebontásánál mutatott módszerrel.
Bizonyítás: (tétel) Konstruktív
Belátjuk: valódi pr. felírható B(g,h), I-T-E(p,g,h), W-D(p,g) alakban, ahol g,h valódi pr.-ok és gráfjukban az élek száma kisebb, mint ez eredeti pr. éleinek száma.
Találat: 1687