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



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

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

Logika és informatikai alkalmazásai

Logika és informatikai alkalmazásai

Programok értelmezése

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

A Prolog nyelv és a logikai programozás áttekintése

Diszkrét matematika I.

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

Java II. I A Java programozási nyelv alapelemei

Programozott tananyag Prolog alkalmazások készítéséhez

Hatékony keresés a szemantikus világhálón

Programozási módszertan

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

A TANTÁRGY ADATLAPJA

1. gyakorlat

Java II. I A Java programozási nyelv alapelemei

A szemantikus világháló oktatása

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

Diszkrét matematika I.

Bevezetés a programozásba

Lineáris algebra (10A103)

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

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

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

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

Rekurzió. Dr. Iványi Péter

Feladatok a MATEMATIKA. standardleírás 3. szintjéhez

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Az informatika elméleti alapjai 2 elővizsga december 19.

Adatbázis rendszerek Info MÁTRIX

Komputeralgebra rendszerek

Logika és informatikai alkalmazásai

Bizonyítási módszerek ÉV ELEJI FELADATOK

Komputeralgebra rendszerek

Halmazok. A és B különbsége: A \ B. A és B metszete: A. A és B uniója: A

Adatstruktúrák, algoritmusok, objektumok

Deklaratív programozás

Kiterjesztések sek szemantikája

Algoritmusok, adatszerkezetek, objektumok

Szeminárium-Rekurziók

Algoritmusok helyességének bizonyítása. A Floyd-módszer

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

Válogatott fejezetek a logikai programozásból ASP. Answer Set Programming Kelemen Attila

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

Excel 2010 függvények

A logikai következmény

Programozási nyelvek 6. előadás

Matematika B/1. Tartalomjegyzék. 1. Célkit zések. 2. Általános követelmények. 3. Rövid leírás. 4. Oktatási módszer. Biró Zsolt. 1.

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

LOGIKA ÉS ÉRVELÉSTECHNIKA

Az informatika logikai alapjai

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

Objektumorientált Programozás III.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Programozás I gyakorlat

Bevezetés. Dr. Iványi Péter

S0-02 Típusmodellek (Programozás elmélet)

C programozási nyelv

Lineáris algebra (10A103)

Számonkérési formák a BME-n a Deklaratív programozás című tárgyban

Mikroökonómia NGB_AK005_1

Tájékoztató. Használható segédeszköz: -

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

Komputeralgebra Rendszerek

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

Logika és informatikai alkalmazásai

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Programozási technológia 1.

Megoldások III. osztály

A 27/2012 (VIII. 27.) NGM rendelet a 29/2016 (VIII.26) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján.

AZ INFORMATIKA LOGIKAI ALAPJAI

Érettségi vizsga 2014/2015

Diszkrét matematika 1. középszint

A TANTÁRGY ADATLAPJA

Programozás I gyakorlat

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

A programozás alapjai 1 Rekurzió

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

1.eredeti elképzelés 1.1

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

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.

Számítógép architektúra

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

Matematikai logika és halmazelmélet

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

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

A TANULÁST SEGÍTŐ ANYAGOK

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ás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Szkriptnyelvek. 1. UNIX shell

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Programozás Minta programterv a 1. házi feladathoz 1.

Érettségi eredmények 2005-től (Békéscsabai Andrássy Gyula Gimnázium és Kollégium)

és az instanceof operátor

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ó.

Occam 1. Készítette: Szabó Éva

Átírás:

Logikai programozás ADMINISZTRATÍV KÉRDÉSEK Bármilyen kérdéssel (akár tananyag, akár nem), örömmel, bánattal: achs.agnes@gmail.com (Ha két napon belül nem válaszolok, akkor kérek egy figyelmeztető levelet. ) Ha a kérdés a követelményrendszerre vonatkozik, akkor előbb ld. witch. (De ha mégsem érthető, akkor persze lehet írni.) BEVEZETÉS KÖVETELMÉNYRENDSZER FŐBB PONTOK Jót, s jól. Ebben áll a nagy titok. Ezt ha nem érted Néhány számszerű tudnivaló: Két zh Megajánlott jegy a két zh átlaga alapján: - 50% elégtelen 51-65% elégséges 66-82% közepes 83 - jó A jelesért vizsgázni kell. A tárgy csalóka, tanuljon! Csak akkor értesz valamit, ha be tudod programozni. Te magad és nem valaki más! Ha nem tudod beprogramozni, akkor csak úgy gondolod, hogy érted. NÉHÁNY BIZTATÓ SZÓ Gregory Chaitin 1

A TANULÁS MOTTÓJA: Akár azt hiszed, hogy képes vagy rá, akár azt, hogy nem, igazad lesz Henry Ford NYELV Lee Whorf szerint (a hopi indiánok nyelvét próbálta tanulmányozni) a nyelv több, mint a gondolatközlés eszköze. A nyelv valójában fontos szerepet játszik a gondolat megformálásában. Sőt, azt is mondhatjuk, hogy az ember oly módon érzékeli az őt körülvevő világot, ahogyan azt az anyanyelve már eleve beprogramozta számára. Hasonló a helyzet a programozási nyelvekkel is. NYELVEK A középkorban hátrányos helyzetben volt az a diák, aki nem tudott latinul ÉS görögül, mert nem tudta két különböző nézőpontból szemlélni a világot. (írja Patrick Winston cambridge-i professzor Ivan Bratko: Prolog című könyvének előszavában) Hasonló a helyzet a programozási nyelvekkel is. NYELVEK Hány nyelvet beszélnek a világon? kb.: 3 10 ezer között ebből írott nyelv kb.: 2-300 Brueghel: Bábel tornya 2

PROGRAMOZÁSI NYELVEK PROGRAMOZÁSI NYELVEK Kb. hány programozási nyelv lehet? Becslések szerint több, mint 4000. Ebből jóval kevesebb a szabványosított. PROGRAMOZÁSI NYELVEK Imperatív nyelvek: Hogyan oldjuk meg a feladatot a Turing gép modellen alapszik. Változó: egy memóriarekesz kap nevet és értéket. A program állapota: a változó nevek/értékek és az éppen végrehajtott utasítás. Program: állapotátmenetek sorozata. Imperatív program: állapotok és az őket módosító utasítások. Eljárás: állapotátmenetek bizonyos értelemben jellemző sorozata. Procedurális programozás: imperatív programozási eljárások együttese. PROGRAMOZÁSI NYELVEK Deklaratív nyelvek: Nem az a kérdés, hogy hogyan, hanem, hogy mi a megoldandó feladat. A feladat pontos megfogalmazásán van a hangsúly. Változó: egy érték kap nevet (mint a matematikai változó fogalma). A megoldás megkeresése a futtató környezet dolga. 3

EGY KIS TÖRTÉNELEM Prolog: Robert Kowalski ötlete Első Prolog megvalósítás: Alain Colmerauer 1972, Marseille-i egyetem Első magyar megvalósítás: Szeredi Péter 1975. Első fordítóprogram D.H.D Warren 1977, (DEC10, WAM, Warren Abstract Machine) 1981: japán 5. generációs elképzelések Magyar Prolog rendszerek: MPROLOG (Szeredi P. és társai), CS-Prolog (Futó Iván) Prolog ISO szabvány: 1995. (PROgramming in LOGic / PROgrammation en LOGique ) Egy logikai program axiómák (tények) és következtetési szabályok halmaza. A tények bizonyos ismereteket reprezentálnak, melyekből a szabályok segítségével következtethetünk újabb ismeretekre. A program kiértékelése ezen axiómák és szabályok következményeinek meghatározása. Az összes lehetséges következmény halmazát tekintjük a program jelentésének. A LOGIKAI PROGRAMOZÁS SÉMÁJA Axiómák (tények): igaznak tekintett állítások. Amiről állítunk valamit: TERM Amit állítunk: PREDIKÁTUM (prédikálni) Pl.: kék(ég) Egy Prolog program futási eredménye: yes vagy no (true vagy false). Másképp: színe(ég, kék) 4

Következtetési szabályok: HA feltétel 1 ÉS feltétel 2 ÉS feltétel n AKKOR következmény A következményen van a hangsúly, ezért a szabály: következmény HA feltétel 1 ÉS feltétel 2 ÉS feltétel n. Prolog szintaktikával: következmény :- feltétel 1, feltétel 2, feltétel n. Logikai háttér: Implikáció: A B. Horn klóz: A 1 A 2 A n B. Fordított sorrendben: B A 1 A 2 A n. Feladatok: Hogyan lehet megfogalmazni azt, hogy 1. olcsó a sör? a/ tényállításként b/ szabállyal (HF) 2. minden diák okos? A tárgyalandó Prolog: SWI-Prolog http://www.swi-prolog.org Szintaktikai szabályok: Minden mondat végén pont. (Adatbevitelkor is.) Nagy kezdőbetű: változó, kis kezdőbetű: konstans. FONTOS: A paraméter nélküli predikátumnál NINCS üres zárójel! Predikátumnév és zárójel között NEM LEHET szóköz! 5

PÉLDÁK MÉG EGY FONTOS MEGJEGYZÉS: A predikátumok korrekt jelölése: predikátumnév/argumentumszám Minden predikátum kis betűvel kezdődik!! 1. Feladat: Ünnepeljük meg az első Prolog órát, menjünk kocsmázni! Vigyázat, csak virtuálisan! Vagyis: tudjuk, hogy melyik diák milyen italt szeret. Azt is tudjuk, melyik kocsmában milyen italt árulnak. Kérdés: ki hova megy, ha mindenki olyan helyre jár, ahol mérnek olyan italt, amit ő szeret. Hogyan oldaná meg ugyanezt a feladatot C-ben (vagy C#-ban vagy Java-ban)? PÉLDÁK 2. Feladat: Valaki sertést, kecskét és juhot vásárolt, összesen 100 db-t, pontosan 100 aranyért. A sertés darabja 3 és fél arany, a kecskéé 1 és egyharmad, a juhoké fél arany. Hány darabot vett az egyes állatokból? 6