Programozás nyelvek a közoktatásban 1. előadás

Hasonló dokumentumok
Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Logikai programozás ADMINISZTRATÍV KÉRDÉSEK KÖVETELMÉNYRENDSZER FŐBB PONTOK NÉHÁNY BIZTATÓ SZÓ

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Mi is volt ez? és hogy is volt ez?

Programozás nyelvek a közoktatásban 2. előadás

Programozási nyelvek 6. előadás

Felmentések. Ha valaki tanár szakos, akkor mivel neki elvileg a hálóban nincs logika rész, felmentést kaphat a logika gyakorlat és vizsga alól.

Osztályozóvizsga követelményei

Algoritmizálás, adatmodellezés tanítása 6. előadás

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Programok értelmezése

Felmentések. Logika (1. gyakorlat) 0-adrendű szintaktika 2009/10 II. félév 1 / 21

Logika es sz am ıt aselm elet I. r esz Logika M asodik el oad as 1/26

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

Rekurzió. Dr. Iványi Péter

2. Ítéletkalkulus szintaxisa

Komputeralgebra Rendszerek

Számítógépes döntéstámogatás. Genetikus algoritmusok

Diszkrét matematika I.

Diszkrét matematika I.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Logikai ágensek. Mesterséges intelligencia március 21.

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Webprogramozás szakkör

A Prolog logikai alapjai, az SLD-rezolúció

ALGEBRAI KIFEJEZÉSEK, EGYENLETEK

29. Visszalépéses keresés 1.

BASH script programozás II. Vezérlési szerkezetek

A félév során előkerülő témakörök

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Dr. Jelasity Márk. Mesterséges Intelligencia I. Előadás Jegyzet (2008. október 6) Készítette: Filkus Dominik Martin

3. Az ítéletlogika szemantikája

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás nyelvek 3 3. előadás

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Vezérlési szerkezetek

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Java II. I A Java programozási nyelv alapelemei

Egyenletek, egyenlőtlenségek VII.

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

Trigonometria Megoldások. 1) Oldja meg a következő egyenletet a valós számok halmazán! (12 pont) Megoldás:

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Java II. I A Java programozási nyelv alapelemei

Kaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest január 6.

Informatikus informatikus Térinformatikus Informatikus T 1/9

Kijelentéslogika, ítéletkalkulus

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

Helyi tanterv Német nyelvű matematika érettségi előkészítő. 11. évfolyam

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Algoritmusok. Hogyan csináljam?

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Matematikai programok

Matematika tanmenet (A) az HHT-Arany János Tehetségfejleszt Program el készít -gazdagító évfolyama számára

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

2. Visszalépéses keresés

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Logika és informatikai alkalmazásai

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

Matematikai logika NULLADRENDŰ LOGIKA

AZ INFORMATIKA LOGIKAI ALAPJAI

Adatstruktúrák, algoritmusok, objektumok

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

1. Logikailag ekvivalens

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Deklaratív programozás

IV. Matematika Konferencia Műszaki Kiadó

Számelmélet, műveletek, egyenletek, algebrai kifejezések, egyéb

Elsőrendű logika. Mesterséges intelligencia március 28.

Követelmény a 6. évfolyamon félévkor matematikából

Magyarok: Bereczki Ilona, Kalmár László, Neumann, Péter Rózsa, Pásztorné Varga Katalin, Urbán János, Lovász László

2. Logika gyakorlat Függvények és a teljes indukció

6. BASH programozás I.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

2019/02/11 10:01 1/10 Logika

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Komputeralgebra rendszerek

LOGIKA. Magyarok: Bereczki Ilona, Kalmár László, Neumann, Péter Rózsa, Pásztorné Varga Katalin, Urbán János, Lovász László.

Programozási nyelvek (ADA)

Programozás alapjai (ANSI C)

A logikai következmény

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

V. Kétszemélyes játékok

Komputeralgebra rendszerek

Programozási módszertan. Mohó algoritmusok

Olvasás-szövegértés fejlesztése. Ötletek saját gyakorlatból, az OFI újgenerációs olvasókönyvéhez kapcsolódva (1.osztály)

SZLÁVI PÉTER: A PROLOG NYELV FELDOLGOZÁSA (I. RÉSZ)

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100).

Bevezetés az informatikába

Átírás:

Programozás nyelvek a közoktatásban 1. előadás

Alapelve Prolog Programozás a matematikai logika segítségével Egy logikai program logikai állítások halmaza Egy logikai program futása egy következtetési folyamat, azaz a logikai formula kiértékelése Azt kell megmondani, hogy mit akarunk megoldani (a hogyannal nem kell törődni) 2/17

Története Prolog 1972 Marseille (PROgramming in LOGic) 1975 NIM IGÜSZI 1978 PROLOG fordító 1981 A japán 5. generációs projekt a logikai programozást választja 1982 MPROLOG, TPROLOG 1985 TC PROLOG 198x Turbo PROLOG 1984 mikroprolog 3/17

Története Prolog 1986 Prolog szabványosítás kezdete 1987 89 Új logikai programozási nyelvek (CLP, Gödel stb.) 1989 CS PROLOG 1990 SICStus Prolog A legfontosabb Prolog megvalósítások: SWI Prolog: http://www.swi-prolog.org/ SICStus Prolog: http://www.sics.se/sicstus GNU Prolog: http://pauillac.inria.fr/~diaz/gnu- prolog/ 4/17

A Prolog program elemei Tények = azonosan igaz formulák Példa: szülője(andrás,anna). szülője(andrás,andrea). szülője(anna,antal). Egy hagyományos értelemben vett eljárás azon tények összessége, amelyek neve és paraméterszáma azonos. 5/17

A Prolog program elemei Szabályok (következtetési szabályok) Példa: nagyszülője(x,y) ha szülője(x,z) és szülője(z,y). szülője(x,y) ha anyja(x,y) vagy apja(x,y). A szabályokban az és, illetve a vagy műveletek nem szimmetrikusak! 6/17

A Prolog program elemei Kérdések a program utasításai (tények, szabályok) között keressünk a kérdésnek megfelelő(ke)t! Példa: szülője(andrás,anna)? igaz szülője(anna,melinda)? hamis szülője(andrás,x)? igaz, ha X=anna (X=andrea) szülője(x,antal)? igaz, ha X=anna szülője(x,y)? igaz ha X=andrás és Y=anna (+ további megoldások) Megfelelő = a szabad paraméterek behelyettesítendők, a kötöttek egyezzenek meg mintaillesztés! 7/17

A kérdések megválaszolásához a tények és szabályok között keresünk a leírás sorrendjében a kérdéssel összeilleszthetőt! Összeilleszthető (egyesíthető), ha a nevük és paraméterszámuk azonos, az értékkel rendelkező paramétereik azonosak, a szabad (még ki nem töltött) változó paramétereiket pedig behelyettesítjük, hogy egyformák legyenek. 8/17

Ha egy tény (vagy szabály) nem feleltethető meg a kérdésnek, akkor a sorrendben következővel folytatjuk. Ha megfeleltethető, akkor megkapjuk, hogy milyen változó-paraméter beállítással felelnek meg egymásnak. Ezután megtörténhet az összes megoldás megkeresése is. 9/17

Példa: nagyszülője(andrás,antal)? szülője(andrás,z) és szülője(z,antal)? 1. szülője(andrás,z)? igaz, ha Z=anna 2. szülője(anna,antal)? igaz nagyszülője(andrás,antal)? igaz Kérdés: mi történne, ha a tényeket más sorrendben tárolnánk? szülője(andrás,andrea). szülője(andrás,anna). szülője(anna,antal). 10/17

Példa: nagyszülője(andrás,antal)? szülője(andrás,z) és szülője(z,antal)? 1. szülője(andrás,z)? igaz, ha Z=andrea 2. szülője(andrea,antal)? hamis 1. újra: szülője(andrás,z)? igaz, ha Z=anna 2. szülője(anna,antal)? igaz nagyszülője(anna,antal)? igaz Megoldási stratégia: visszalépéses keresés 11/17

Írásmód: Kulcsszavas Írásjeles ha if :- és and, vagy or ; 12/17

Alternatívák másképp: szülője(x,y) ha anyja(x,y) vagy apja(x,y). szülője(x,y) ha anyja(x,y). szülője(x,y) ha apja(x,y). Értelmezés: akkor megy a vagy jobboldalára, ha a baloldalra nem kapott megoldást; akkor megy a második szabályra, ha az elsőre nem kapott megoldást; 13/17

Ciklus helyett rekurzív formula: őse(x,y) ha szülője(x,y) vagy szülője(x,z) és őse(z,y).. Ha egy paraméter értékére nincs szükségünk: szülő(x) ha szülője(x,_). Ha valamiből csak egy megoldás kell: egyszülő(x) ha szülő(x) és!. A vágás(!) értelmezése: előre haladva azonosan igaz; visszafelé haladva hamissal fejezi be a szabályt. 14/17

Ciklus helyett rekurzív formula: őse(x,y) ha szülője(x,y) vagy szülője(x,z) és őse(z,y). Ha egy paraméter értékére nincs szükségünk: szülő(x) ha szülője(x,_). Ha valamiből csak egy megoldás kell: egyszülő(x) ha szülő(x) és!. A vágás(!) értelmezése: előre haladva azonosan igaz; visszafelé haladva hamissal fejezi be a szabályt. 15/17

A! egyéb használata: hiányzó feltételek pótlása: absz(x,y) ha X>=0 és X=Y vagy Y=-X. Kérdések: absz(5,5)? igaz absz(-5,5)? igaz absz(5,-5)? igaz????? Probléma: ha a második feltételrész hamis, akkor is a vagy túloldalára megy. Helyes megoldás lehet: absz(x,y) ha X>=0 és! és X=Y vagy Y=-X. 16/17

Programozás nyelvek a közoktatásban 1. előadás vége