Kihagyás

7. gyakorlat

Szekvencia

Először az elsőt hatja végre és, ha az terminált, akkor hajtódik végre a második.

Gergó tipp: Húzzuk alá azt, ami után vált a program.

Mi az a szekvencia?

  • 2 programot egymás után végzünk el
  • Ha az első program végrehajtésa adott állapotból nem véges vagy hibásan terminál, akkor a második nem tudja folytatni a végrehajtást a végpontból
  • Az első program által generált végrehajtás egy lehetséges végrehajtása lesz a szekvenciának is
  • Csatlakozási pont: Az az állapot egy végrehajtási sorozatban, ahol az egyik progi terminál és a második progi elindul onnan
  • Fontos: nem kompozícióról van szó

Szekvencia jelölése

\((S_1; \; S_2)\)

Példa feladat

$(S_1; S_2) = \ { \ 1 \to <1,4,\underline{3},4>, 1 \to <1,2,\underline{4},fail>, 1 \to <1,2,\underline{4},5,1> \ 2 \to <2,2,\ldots>, 2 \to <2,1,4,\underline{6},4,3,2>, \ 3 \to <3,5,\underline{1},3,2>, 3 \to <3,5,\underline{1},2,4> \ 4 \to {4,5,\underline{3},4} \ 5 \to {5, 1, \text{fail}} \ 6 \to <6,3,1,\underline{5}> \ } $

Fontos:

\((S_1; S_2) \neq S_2 \circ S_1\)

\(p(S_1;S_2) \neq p(S_2) \circ p(S_1)\)

Elágazás

\(n\) db program, mindegyikhez egy feltétel (logikai függvény)

\(IF(\pi_1:S_1; \pi_2:S_2)\) - \(\pi_1\) feltételhet köti az \(S_1\) programot és \(\pi_2\) feltételhet köti az \(S_2\) programot

Elágazás példa

\(S_1 = \{1 \to <1,4,3>, 1 \to <1,2,4> \\ 2 \to <2,2,\ldots>, 2 \to <2,1,4,6> \\ 3 \to <3,5,1>, \\ 4 \to <4,5,3>, \\ 5 \to <5,1, fail>, \\ 6 \to <6,3,1,5>\}\)

\(S_2 = \{1 \to <1,3,2>, 1 \to <1,2,4>, \\ 2 \to <2,6>, \\ 3 \to <3,4>, \\ 4 \to <4, fail>, 4 \to <4,5,1>, \\ 5 \to <5>, \\ 6 \to <6,4,3,2>\}\)

Adjuk meg az \(IF(\pi_1:S_1, \pi_2:S_2)\) elágazást, ahol \([\pi_1]= \{1,2,4\}\), \([\pi_2]=\{1,3,4\}\)

Mi a helyzet, ha több, mint egy feltétel teljesül?

Nem lesz determinisztikus az elágazás, több "irány" lehetséges Mi a helyzet, ha egyik feltétel sem teljesül?

\(fail\)

\(\text{IF} (\pi_1: S_1, \; \pi_2: S_2) = \\ \{\)

\(1 \to <1,4,3>, 1 \to <1,3,2>, 1 \to <1,2,4>,\)

\(2 \to <2,2,\ldots>, 2 \to <2,1,4,6>,\)

\(3 \to <3, 4>,\)

\(4 \to <4, 5, 3>, 4 \to <4,fail>, 4 \to <4,5,1>,\)

\(5 \to <5,fail>,\)

\(6 \to <6,fail>\)

\(\}\)

Elágazás random kérdések

(Megjegyzés: A táblázatokat itt vegyük if-else struktogramnak, csak nincs jobb módszer megjeleníteni md-ben (per pillanat))

Ekvivalensek az alábbiak a \(\text{IF}(\pi_1: S_1, \pi_2: S_2)\) elágazással?

\(\pi_1\) \(\pi_2\)
\(S_1\) \(S_2\)
  1. \(\text{IF}(\pi_1:S_1, \lnot\pi_1\land\pi_2:S_2, \lnot\pi_1\land\lnot\pi_2:SKIP)\)

    \(\pi_1\) \(\lnot \pi_1 \land \pi_2\) \(\neg \pi_1 \land \neg \pi_2\)
    \(S_1\) \(S_2\) SKIP

    Nem azonos

  2. \(\text{IF}(\pi_1\land\lnot\pi_2:S_1, \lnot\pi_1\land\pi_2:S_2, \pi_1\land\pi_2:S_1\cup S_2, \lnot\pi_1\land\lnot\pi_2:ABORT)\)

    \(\pi_1 \land \lnot \pi_2\) \(\lnot\pi_1 \land \pi_2\) \(\pi_1\land\pi_2\) \(\lnot\pi_1\land\lnot\pi_2\)
    \(S_1\) \(S_2\) SKIP ABORT

    Azonos

  3. \(\text{IF}(\pi_1:S_1, \pi_2:S_2, \pi_1\land\pi_2:S_1\cup S_2)\)

    \(\pi_1\) \(\pi_2\) \(\pi_1 \land \pi_2\)
    \(S_1\) \(S_2\) \(S_1 \cup S_2\)

    Azonos

Ciklus

Adja meg a \(\text{DO}(\pi_0: S_0)\), ahol \(\pi\) olyan logikai függvény, hogy \([\pi_0] = \{1, 2, 3\}\)

Ciklus feladat

\(S_0 = \{\)

\(1 \to <1,2,3>, 1 \to <1,2,3, \ldots>,\)

\(2 \to <2>, 2 \to <2,4>,\)

\(3 \to <3,4,1>,\)

\(4 \to <4,3,2>\)

\(\}\)

\(\text{DO}(\pi_0:S_0) = \{\)

\(1 \to <1,(2,\underline{3},4,1)^{\infin}\ldots>\}\)

\(1 \to <1,(2,\underline{3},4,1)^*,2,3>\)

\(2 \to <\underline{2}, \underline{2}, \underline{2}, \ldots>\)

\(2 \to <(\underline{2})^*, 4>\)

\(3 \to <3,4,\underline{1},(2,\underline{3},4,\underline{1}^\infin)\ldots>\)

\(3 \to <3,4,\underline{1},(2,\underline{3},4,\underline{1}^*), 2, 3 \ldots>\)

\(4 \to <4>\)

\(\}\)

Új fogalmak

Előadás anyag

  • Szekvencia
  • Elágazás
  • Ciklus

TODO: Fogalomtár frissítése