Prolog da Veri Türleri. Prolog la 4.Hafta. Atom lar (2) Atom lar (1)



Benzer belgeler
YZM 3217 YAPAY ZEKA DERS#7: PROLOG DİLİ

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

YZM 3217 YAPAY ZEKA DERS#7: PROLOG DİLİ

Internet Programming II

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

PASCAL PROGRAMLAMA DİLİ YAPISI

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

C Programlama Dilininin Basit Yapıları

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

Excel Formüller ve Fonksiyonlar. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Regular Expressions Version 0.1

Microsoft Excel 2007 DERS-3 FONKSİYONLAR MANTIKSAL FONKSİYONLAR

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

BÖLÜM 3 OPERAT A ÖRLER

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Dr. Fatih AY Tel: fatihay@fatihay.net

Mantıksal Kontrol ve Döngü Komutları

idea rsbasic KOMUTLARI

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İnternet Programcılığı Dersi 2.Dönem Ders Notu

İl İlçe uygulaması. : Seçilen ile ait ilçeleri listeleyen program. //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız.

Android Ders Notları

Çok tablolu sorgulamalar

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

Veri Tipleri. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Koşullu Önermeler (if else)

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

MS Excel. Excel Microsoft Office in bir parçasını oluşturur. Office 2007, Office 2010, Office 2013, Office 2016

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Nesne Tabanlı Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

C Konsol Giriş Çıkış Fonksiyonları

İçerik. Prolog la 5.Hafta. soru. Hedef Birleştirme Hasta mı? Geçen Hafta Hedef Birleştirme Çıkarımlar.

Nesne Yönelimli Programlama

ALGORİTMA VE PROGRAMLAMA I

Print Komutu ile Değişkenleri Yazdırmak

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

24 Kasım 2011 / Perşembe

PHP 2. Hafta. PHP de Kod Akışı. Algoritmik Düşünebilmek.

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Bölüm 10: PHP ile Veritabanı Uygulamaları

GOLDMESAJ SMS API DÖKÜMANI

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

3. Metin ve Görünüm Etiketleri


Nesne Tabanlı Programlama

Dış Kurum Entegrasyonları TURKPOS API. Yardım Dokümanı

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Eln 1001 Bilgisayar Programlama I

BAĞIMSIZ DEĞERLENDİRİCİ BAŞVURU SİSTEMİ

VERİTABANI Veritabanı Sorgulama

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Matematiksel Operatörler

Programlama Dillerinde Kullanılan Veri Tipleri

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

JAVASCRIPT JAVASCRIPT DİLİ

Bilgisayar Programlama MATLAB

KAYITLAR BÖLÜM Giriş

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

C PROGRAMLAMA DİLİNE GİRİŞ

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Program Kodlamaya Geçiş

program uc_hata implicit none integer : x(5),i

C Dersleri Bölüm 3 : Program akışı

Dekleratif Programlama. Örnek : Aile Ağacı. SWI-Prolog. Prolog Dekleratif programlama dili

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Bilgisayar Programlama

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

TEMEL KAVRAMLAR Test -1

MATLAB/Değişkene Değer Atamak

MODÜL BİLGİ SAYFASI KODU :

Algoritmalar ve Programlama. Algoritma

<html> <head> <title>sayfa Başlığı</title> </head> <body> Bu benim ilk sayfam <b>bu metin koyu</b> </body> </html>

FORMÜL ADI (FONKSİYON) FORMÜLÜN YAZILIŞI YAPTIĞI İŞLEMİN AÇIKLAMASI

/*int sayi1, sayi2,toplam=0;

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Transkript:

Prolog da Veri Türleri Prolog la 4.Hafta Prolog bir veri türünü onun şeklinden tanır. Prolog herhangi bir veri tanımına ihtiyaç duymaz. 2 Atom lar (1) Atom lar aşağıdakilerde oluşan string lerdir. Büyük harf Küçük harf Rakam Özel karakterler A, B,, Z a, b,, z 0, 1,, 9 + - * / < > = :. & _ ~ 3 Atom lar (2) Atom lar 3 farklı şekilde oluşturulabilir: 1. Harf, rakam ve altçizgi( _ ) den oluşan küçük harfle başlayan string ler ile: anna nil x25 x_25ab x_ x y alpha_beta_procedure miss_jones sarah_jones 4 1

Atom lar (3) 2. Özel karakterlerden oluşan string ler ile: <---> ======>.:. ::= Özel anlamı olan stirng ler kullanılmamalı: :- Atom lar (4) 3. Tek tırnak ( ) arasına alınan karakterler ile: Tom South_America Sarah Jones Büyük harfle başlayan Atom lar oluşturmak için kullanılabilir. Değişkenlerden bu şekilde ayrılabilirler. 5 6 Sayı lar Değişken ler (1) Prolog da iki tür sayı kullanılabilir Tamsayılar (integer) 1 0-97 1313 En büyük ve en küçük sayı prolog derleyicisine bağlıdır. Ondalıklı sayılar (real) 3.14 100.2-0.0035 Genelde tamsayılar kullanılır. Ondalıklı sayılar pek fazla kullanılmaz topla(x,y,z): topla(x,y,z):-z Z is X+Y.?- topla(2,0.3,c). C C = 2.3 ; No?- topla(200,0.0003,c). C C = 200.0 ; No 7 Değişkenler; harf, rakam ve altçizgi( _ ) den oluşan büyük harfle yada altçizgi ile başlayan string lerdir: X Result Object2 Participant_list ShoppingList _x23 _23 8 2

Değişken ler (2) Anonim değişken : isimlendirilmemiş değişkenlerdir. Sadece altçizgi ile ifade edilirler: hasachild(x) :- parent(x, Y). hasachild(x) :- parent(x, _). Her altçizgi karakteri yeni bir anonim değişkeni ifade eder. somebody_has_a_child :- parent(_, _). %r1 Anonim değişkenlerin değerleri çıkış olarak verilmez.?- parent(ali,y). : ali in çocuğu var mı? Ve varsa çocuklarının isimleri nedir??- parent(ali,_). : sadece ali in çocuğu var mı? Değişken ve Atom ların Alanları (Scope) Bir değişkenin değeri bir cümlecik içinde sabittir. Bir atomun değeri tüm program boyunca sabittir 9 10 Aşırı Yükleme Ve, veya ; (1) Aynı isimli farklı ilişkiler / functor olabilir: point(1, 1), point(1, 1, 1), point(1, 1, 1, 1), +(X,Y,Z):-Z is X+Y. +(X,Y,Z,F):-F is X+Y+Z. P :- Q; R. P doğrudur Eğer Q doğruysa veya R doğruysa?- +(200,0.03,7.2,G). G = 207.23 23 ; No?- +(200,0.03,G). G = 200.03 ; No 11 Aynı ifadeyi aşağıdaki ş ğ şekilde de yazabiliriz: P :- Q. P :- R. 12 3

Ve, veya ; (2) Ve, veya dan daha yüksek önceliklidir. Aşağıdaki iki ifade aynı sonucu verir: P :- Q, R; S, T, U. P :- (Q, R); (S, T, U). Aynı ifadeyi aşağıdaki şekilde de yazabiliriz: P :- Q, R. P :- S, T, U. Hedefleri Birleştirme araba(chrysler,130000,3,kirmizi,12000). araba(ford,90000,4,gri,25000). araba(ferrari,30000,5,siyah,30000). kamyon(mercedes,10000,2,mavi,20000). kamyon(ford,50000,8,sari,28000). kamyon(volvo,35000,2,siyah,35000). arac(marka,kilometresi,yas,renk,fiyat):- araba(marka,kilometresi,yas,renk,fiyat); i k t) kamyon(marka,kilometresi,yas,renk,fiyat). 13 14 Fiyatı 25000 den az olan araçlar:?- arac(marka,kilometre,yasi,renk,fiyat),fiyat<25000. Marka = chrysler KiloMetre = 130000 Yasi = 3 Renk = kirmizi Fiyat = 12000 ; Marka = mercedes KiloMetre = 10000 Yasi = 2 Renk = mavi Fiyat = 20000 ; No 15 oyuncu(ahmet,10). oyuncu(mehmet,12). oyuncu(ali,10). oyuncu(huseyin,10). 10 yaşındaki çocuklar arasında oynanabilecek maçlar nelerdir? Turnuva Sayı ve string ler arası Karşılaştırma : == eşit \== eşit değil?- oyuncu(b,10),oyuncu(b2,10),b\==b2. B B = ahmet B2 = ali ; B B = ahmet B2 = huseyin ; B B = ali B2 = ahmet ; B B = ali B2 = huseyin ; B B = huseyin B2 = ahmet ; B B = huseyin B2 = ali ; No 16 4

Prolog da Problem Çözme bir çıkarım örneği -1 Ali okula gittiğinde öğlen yemeğini kantinde yer. Ali eve gittiğinde ğ öğlen ğ yemeğini ğ mutfakta yer. Ali sınıfta kitap okudu. Bilgileri verilip ali öğlen yemeğini nerede yedi? sorusuna cevap veren bir kodu yazalım. Burada bilinmesi gerekenler. Birisi bir yerde bulunmuşsa oraya gitmiştir. Birisi bir yere gitmişse ş ve o yeri içine alan yere de gitmiştir. Sınıf okulun içindedir. Oda evin içindedir. 17 18 Kodda cümleler bir çıkarım örneği-2 vardir(yüklem,özne,belirtilinesne,dolaylıtümlec,cümleno) yapısında tutulmuştur. kapsar(oda,ev). kapsar(sinif,okul). if k vardir(oku,ali,kitap,sinif,12). vardir2(git,m,_,yer,_):-vardir(_,m,_,yer,_). % M Yer'de bulunmuşsa -> M Yer'e gitmiştir vardir2(f,m,b,yer1,i):-kapsar(yer2,yer1),vardir2(f,m,b,yer2,i). % M Yer2'de birşey yapmissa ve Yer2 yer1'i kapsiyorsa -> M Yer1'de de ayni seyi yapmistir vardir2(yer,ali,oglenyemegi,mutfak,_):-vardir2(git,ali,_,ev,_). % ali eve gitmisse i -> oglenyemegini i mutfakta yer. vardir2(yer,ali,oglenyemegi,kantin,_):-vardir2(git,ali,_,okul,_). % ali okula gitmisse -> oglenyemegini kantinde yer. bir çıkarım örneği-3?- vardir2(yer,ali,oglenyemegi,nerede,_). Nerede = kantin; No; Burada sistem; alinin sınıfta bulunduğunu görüp okulda bulunduğu bilgisini edinmiş. Okulda bulunduğuna göre okula gitmiştir çıkarımını yapmış. Okulda gittiğine göre yemeğini de kantinde yemiştir sonucuna ulaşmıştır. vardir(oku,ali,kitap,sinif,12). ali kitap Cümlesi yerine vardir(oku,ali,kitap,oda,12). Cümlesi olsaydı sistemin cevabı mutfak olacaktır. vardir ilişkisi gerçek cümle(bilgi)leri, vardir2 ilişkisi türetilen cümle(bilgi)leri ifade etmektedir. 19 20 5

Özet Atom ve değişken kavramları ve, veya nın kullanımı Hedefleri Birleştirme Prolog da kuralların yerlerini ve cümleciklerin yerlerini değiştirmenin programın çalışmasına etkisi Doğal ğ dille yazılmış bir yazıyı, prologla l ifade etme Ödev Ali- lokanta hikayesine benzer 3 hikayeyi doğal dilinizle tanımlayın. (18. slayttaki gibi) Bu hikayeyi Prologda ifade etmek için gereken yapınızı (kural, ilişki vs.) kurun. (19. slayt) Oluşturacağınız 3 hikaye veritabanı için sorgulamalarınızı yapın. (20. slayt) Her hikayede en az 3 cümle yer almalıdır. Cümlelerden en az ikisi kural olmalıdır. Ödevler en fazla iki kişi olarak yapılacaktır. Son Teslim tarihi: 15.4.2013 Teslim şekli: derslersonmez@gmail.com adresine (prolog odev2-ogrenci no) formatında olmalıdır. 21 22 Kaynaklar PROLOG Programming for Artificial Intelligence, Bratko, I., 3rd Edition, Addison-Wesley, 2001 Tacettin Ayar, Prolog Ders Notları 23 6