Vezérlési szerkezetek¶
Matematikai kondíciók¶
| Művelet | Jelölés | Operátor |
|---|---|---|
| (szigorúan) Nagyobb | \(>\) | > |
| Nagyobb egyenlő | \(\geq\) | >= |
| Kisebb | \(<\) | < |
| Kisebb egyenlő | \(\leq\) | <= |
| Pontosan egyenlő | \(=\) | == |
| Nem egyenlő | \(\neq\) | != |
Matematikai kondíciók igazságértéke¶
A matematikai kondíciók az általánosságban vett matematikai műveleteket jelentik. Ezek a műveletek minden esetben kiértékelődnek és egy igazságértéket fognak felvenni.
Vegyünk pár példát:
| Állítás | Kiértékelés | Eredmény |
|---|---|---|
| \(5 > 3\) | Az 5 nagyobb mint a 3? | Igen, ez igaz. |
| \(5 < 3\) | Az 5 kisebb mint a 3? | Nem, ez hamis. |
| \(3 \geq 3\) | A 3 nagyobb vagy egyenlő mint 3? | Igen, ez igaz. |
| \(3 > 3\) | A 3 nagyobb mint a 3? | Nem, ez hamis. |
Matematikai kondíciók folyamatábrája¶
graph TD;
subgraph Általános kondíció
A1[Kondíció vizsgálata] --> B1{Igaz?};
B1 -->|Igen| C1[Kiértékelés: True];
B1 -->|Nem| D1[Kiértékelés: False];
end
subgraph Konkrét példa
A2[5 > 3] --> B2{Igaz?};
B2 -->|Igen| C2[Kiértékelés: True];
B2 -->|Nem| D2[Kiértékelés: False];
end
style C2 fill:#8f8,stroke:#333,stroke-width:2px;
Feltételezes vezérlés¶
Ha állítás¶
Feltétel szabása az if szóval történik, amely egy logikailak kiértékelhető állítást tartalmaz. A matematikai kondíciók eredménye logikai igaz vagy logikai hamis lesz.
A fenti példa esetében a print csak akkor fog lefutni ha az állítás értéke igaz, tehát x szigorúan nagyobb mint 30.
Folyamatábra¶
graph LR;
Start([Start]) --> A["x = 30"];
A --> B{"x > 30"};
B -->|Igaz| C["print(x nagyobb mint 30)"];
B -->|Hamis| D["print nem fut le"];
C --> End([End]);
D --> End([End]);
graph TD;
Start([Start]) --> A["x = 30"];
A --> B{"x > 30"};
B -->|Igaz| C["print(x nagyobb mint 30)"];
B -->|Hamis| D["print nem fut le"];
C --> End([End]);
D --> End([End]);
Vagy ha állítás¶
A vagy ha állítás előtt mindenképpen szükséges egy ha állítás.
Folyamatábra¶
graph LR;
Start([Start]) --> A["x = 33"];
A --> B{"x > 30?"};
B -->|Igen| C["print('x nagyobb mint 30')"] --> End([End]);
B -->|Nem| D{"x == 30?"};
D -->|Igen| E["print('x egyenlő 30-cal')"] --> End;
D -->|Nem| F["nem fut le semmi"] --> End;
graph TD;
Start([Start]) --> A["x = 33"];
A --> B{"x > 30?"};
B -->|Igen| C["print('x nagyobb mint 30')"] --> End([End]);
B -->|Nem| D{"x == 30?"};
D -->|Igen| E["print('x egyenlő 30-cal')"] --> End;
D -->|Nem| F["nem fut le semmi"] --> End;
Vagy ha minden más esetben¶
A vagy minden más esetben akkor fog lefutni ha a fenti feltételek közül egyetlen egy sem teljesült.
Folyamatábra¶
graph LR;
Start([Start]) --> A["x = 33"];
A --> B{"x > 30?"};
B -->|Igen| C["print('x nagyobb mint 30')"] --> End([End]);
B -->|Nem| D{"x == 30?"};
D -->|Igen| E["print('x egyenlő 30-cal')"] --> End;
D -->|Nem| F["print('minden más: x nem nagyobb mint 30 és x nem egyenlő 30-cal')"] --> End;
graph TD;
Start([Start]) --> A["x = 33"];
A --> B{"x > 30?"};
B -->|Igen| C["print('x nagyobb mint 30')"] --> End([End]);
B -->|Nem| D{"x == 30?"};
D -->|Igen| E["print('x egyenlő 30-cal')"] --> End;
D -->|Nem| F["print('minden más: x nem nagyobb mint 30 és x nem egyenlő 30-cal')"] --> End;
Konnektívák¶
A logikai feladatok megoldásához a Boole-algebrát használjuk, amely lehetőséget ad arra, hogy a logikai kapcsolatokat matematikai úton kezeljük.
Kételemű Boole-algebra felvehető értékek:
0 = False
1 = True
| Ítéletkalkulus | Halmazelmélet |
|---|---|
| és ^ | metszet |
| vagy v | unió |
| nem not | komplementer |
ÉS konnektíva¶
Abban az esetben ha kettő vagy több feltételnek egyszerre kell teljesülnie, akkor ÉS kötöszót használunk. Az ÉS csak akkor teljesül ha a bal oldal és jobb oldal is igaz.
Magyarázat
A következő kifejezést vizsgáljuk meg: \(a < 10 \quad \text{and} \quad a > 0\)
Ez egy logikai kifejezés, amely két feltételből áll.
Bal oldal: \(a < 10\): Az \(a\) értéke kisebb, mint \(10\).
Behelyettesítve az \(a\) változó értékével, azaz \(5\)-tel: \(a < 10 = 5 < 10 \Rightarrow \text{True}\).
Jobb oldal: \(a > 0\): Az \(a\) értéke nagyobb, mint \(0\).
Behelyettesítve az \(a\) változó értékével, azaz \(5\)-tel: \(a > 0 = 5 > 0 \Rightarrow \text{True}\).
Kiértékelés:
\(\text{True} \quad \text{and} \quad \text{True} \quad = \quad \text{True}\)
VAGY konnektíva¶
Abban az esetben, ha kettő vagy több feltétel közül legalább az egyiknek kell teljesülnie, akkor VAGY kötöszót használunk. Az VAGY csak teljesül ha a bal oldal vagy a jobb oldal bármely tagja igaz.
Magyarázat
A következő kifejezést vizsgáljuk meg: \(a < 10 \quad \text{or} \quad a > 20\)
Ez egy logikai kifejezés, amely két feltételből áll.
Bal oldal: \(a < 10\): Az \(a\) értéke kisebb, mint \(10\).
Behelyettesítve az \(a\) változó értékével, azaz \(5\)-tel: \(5 < 10 \Rightarrow \text{True}\).
Jobb oldal: \(a > 20\): Az \(a\) értéke nagyobb, mint \(20\).
Behelyettesítve az \(a\) változó értékével, azaz \(5\)-tel: \(5 > 20 \Rightarrow \text{False}\).
Kiértékelés:
\(\text{True} \quad \text{or} \quad \text{False} \quad = \quad \text{True}\)
Igazságtábla¶
Az igazságtábla egy táblázat, amelyben a logikai műveletek eredményeit mutatja be.
Ezekben az esetekben az A szerepét egy konkrét állítás veszi fel (pl. a < 10), míg a B szerepét egy másik állítás (pl. a > 20).
| A | B | AND | OR | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| A | B | AND | OR | XOR |
|---|---|---|---|---|
| False | False | False | False | False |
| False | True | False | True | True |
| True | False | False | True | True |
| True | True | True | True | False |
Igazságtábla Pythonban¶
A fentiekben bemutatott táblázatot bármikor leellenőrizhetjük Pythonban is.
Ehhez válasszu ki az A és B értékeit, majd próbáljuk ki az alábbi kóddal!