A "mit?" kérdésre adott válasz egy probléma kapcsán
A "hogyan" kérdésre adott válasz egy probléma kapcsán
Egyfajta deklaratív leírása egy programnak Miből, mit? - állapottér - bemenő/kimenő adatok - előfeltétel - amit tudunk a bemenetről - utófeltétel - az eredmény kiszámítási szabálya (amit tudunk az eredményről) legyen **teljes** és **részletes**
- tervrajz - térképjelzés - anatómiai ábra - ...
- recept - IKEA útmutató - útvonalterv - ...
Egy probléma megoldására szeretnénk megtanítani/megkérni: tetszőleges $x$-re, számolja ki $ \sqrt{x} $-et úgy, hogy csak osztani, szorozni, meg összeadni tud
Amit az előfeltétel megenged az állapottéren belül, azt az utófeltételnek kezelnie kell Pl: - Válassza ki két szám közül azt amelyiknek több prím osztója van - több különböző vagy több összesen? - mi van ha ugyanannyi? - Válassza ki egy számsorból azt az 5 számot ami legjobban eltér az átlagtól - mi van ha nincs 5 szám a számsorban? - mi van ha minden szám ugyanaz? - Sakktáblán szereplő állásról döntse el hogy matt-e. - mi van ha mindkét fél sakkban van? - lehet 11 királynő valakinél?
A program főzzön rántottát: - Á: (konyha) - Ef: ( ) - Uf: (ha a konyha alkalmas ennek elkészítésére, a konyhában legyen egy finom rántotta) vagy: - Á: (serpenyő, főzőlap, 3 tojás, olaj, só, fakanál, tányér) - Ef: (a serpenyő, tányér és fakanál tiszta, a tojás nem romlott, a főzőlap képes a serpenyőt 200 Celsius fokra felmelegíteni) - Uf: (a tojások összekeverve kerültek a 200 fokos serpenyőbe az olaj után, több mint 4 de kevesebb mint 10 percet töltöttek ott, ebből 20 másodpercnél többet nem álltak kavarás nélkül, végül megsózva kikerültek a tányérra)
Valós számok halmazán megoldható másodfokú egyneletet oldjon meg a program, ami $ax^2+bx+c=0$ formában van megadva - Á: $(a,b,c,x_1,x_2 \in \mathbb{R})$ <!-- .element: class="fragment" data-fragment-index="1" --> - Ef: $(a \neq 0 \land b^2-4ac \geq 0)$ <!-- .element: class="fragment" data-fragment-index="2" --> - Uf: $ (x_1 = \frac{-b + \sqrt{b^2-4ac}}{2a} \land x_2 = \frac{-b - \sqrt{b^2-4ac}}{2a})$ <!-- .element: class="fragment" data-fragment-index="3" -->
Egy probléma **megoldását** **Mi** oldja meg a problémát? Az hagyján hogy hogyan...
Le tudjuk írni hogy mit várunk el. - teljesen - részletesen
- $\mathbb{B}$ a logikai értékek halmaza. - $l \in \mathbb{B}$ azt jelenti hogy $l$ egy logikai változó - $P: \mathbb{R} \to \mathbb{B}$ pedig azt, hogy $P$ egy valós számból logikai értékbe képző függvény (más néven predikátum) - $\mathbb{N}^n$ a $n$ elemű tömböket jelöli amikben $\mathbb{N}$ típusú elemek vannak - $v \in \mathbb{N}^n$ azt jelenti, hogy $v$ egy $n$ elemszámú tömb és mindegyik elem természetes szám, amiket lehet $(v_1,v_2 ... v_n)$-el jelölni - Ha az előző módon kikötöttük micsoda $v$, használhatjuk az $x \in v$ jelölést arra, hogy $v$ egyik eleme $x$ (ez ugye nem alap, mivel $\in$ egy halmazművelet és $v$ nem egy halmaz hanem tömb, de most megengedjük)