Mi a különbség a deklaratív és az imperatív tudás között?
Itt olvastam, de még mindig nem teljesen értem mi a különbség közöttük.
Főleg ezeket nem értem:
Deklaratív tudás
„Mi az, ami igaz?”
Állításokat tesz
Imperatív tudás
„Hogyan kell csinálni?”
Módszereket ad
Hogy értik, hogy állításokat tesz meg módszereket ad? Meg mi az mai igaz?
Köszönöm a válaszokat.
A deklaratív tudást leginkább ismeretnek, fogalmaknak lehetne levezni. Pl.:
- Definiál: Prímszámnak nevezzük azokat a természetes számokat, amelyek pontosan két osztójuk van. Vagy prímszámnak nevezünk minden 1-nél nagyobb természetes számot, ami csak önmagával és 1-el osztható maradék nélkül.
- Leír: A ló emlős állat, a magassága 150 cm-től 250 cm-ig terjedhet, négy lába van, farka, sörénye, stb…
Tehát ez a tudás meghatároz, leír, „fix”. De oké, tudjuk, hogy mit jelent, „mi az a” prímszám, de hogyan tudjuk megállapítani egy számról, hogy prím? Vagy hogyan tudjuk leírni az 1 és 100 közé eső prímszámokat? Ehhez nem deklaratív tudás kell. Az is kell nyilván, hogy tudjuk, hogy mi az a prím. Viszont kell egy „hogyan”, kell egy „algoritmus”, ami alapján ki tudjuk írni az 1 és 100 közé eső prímszámokat.
Az imperatív tudás pont ezt jelenti. Egy számról úgy tudod eldönteni, hogy prímszám-e, hogy optimális esetben megvizsgálod a 3 és a szám gyöke által vett zárt intervallumban az összes páratlan számot, hogy azzal elosztva a kérdéses prímjelöltet, a maradék nulla-e. Ha van olyan szám ebben az intervallumban, amivel osztva 0 a maradék, akkor a prímjelölt osztható ezzel a számmal és nem prím. Ha viszont nincs ilyen, akkor a prímjelölt számunk biztosan prím.
Ez nem definiálja, nem leírja a prímszámokat – hogy mi is az a prímszám –, hanem egy „receptet” ad arra, hogy hogyan állapítsd meg egy számról, hogy prím-e. (Nota bene vannak más receptek, pl. ott az Eratoszthenész szitája, ami nem deklarálta a prímszámok listáját, hanem módszert adott arra, hogy hogyan lehet azokat megkeresni.)
~ ~ ~
Programozás szempontjából mondjuk ha 8 faktoriálisát kell kiírni, akkor deklaratív megközelítésben:
print(40320);
Imperatív megközelítésben:
x = 1;
for ( i=2; i<=8 ;i++) x = x*i;
print(x);
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!