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

Benzer belgeler
Sorguların Çalışması. Kurallar. ?-anne(ayse,ahmet). ?-anne(ayse,ahmet). Geriye Doğru İz Sürme

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Uygulamalı Yapay Zeka. Dr. Uğur YÜZGEÇ Ders 2: Prolog Giriş

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Lambda İfadeleri (Lambda Expressions)

AVRASYA UNIVERSITY. Dersin Verildiği Düzey Ön Lisans (X ) Lisans ( ) Yüksek Lisans( ) Doktora( )

1 PROGRAMLAMAYA GİRİŞ

Veri Yapıları ve Algoritmalar

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

PASCAL PROGRAMLAMA DİLİ YAPISI

HSancak Nesne Tabanlı Programlama I Ders Notları

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

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

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6


1. PROGRAMLAMAYA GİRİŞ

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

Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Algoritmalar ve Programlama. Algoritma

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

ALGORİTMA VE PROGRAMLAMA I DERS#1

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

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

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Bilgisayar Programlama MATLAB

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

Bölüm 7. İfadeler ve atamalar ISBN

İÇ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

ALGORİTMA VE PROGRAMLAMA I

HSancak Nesne Tabanlı Programlama I Ders Notları

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

Nesne Yönelimli Programlama

Programlama Dili Prensipleri. Lab Notları 8 ve 9

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Oracle Database 11g: Introduction to SQL

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 1202

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

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

ı ı ıı Üİİİ Ü ı ı ı ı ı ı ü ı ü

Ü Ğ Ğ ç ç ç ö ö ö ö ç ç ç Ç Ş

Ğ Ğ Ö

Ğ Ö Ğ Ö Ş

Ç Ü

ğ

Ğ Ğ Ü ş ç ş Ç ş ö ş ç ö Ö ş

ö Ö ğ

Ü Ü Ğ Ü Ğ Ü «Ğ Ğ» Ü

Ğ ç ğ ç ç ğ ç ğ ç ç ğ ç ğ ğ ç ç ğ ç ç ğ ç ç ç ğ ç ç ğ ç ç ç İ ğ ğ ğ ç ğ ğ ç ğ ğ ğ ğ ğ ç ç ç ç ğ ç ğ ç ç ğ ğ ç ç ç ğ ğ ç ğ ğ ç ç ç ç İ ğ ç ğ ç ğ ç ç ğ

ç Ğ ç ç ğ ç ç ğ ç ç ç ç ğ ç Ç ğ ç ç ç ğ ç ç ğ ç ç ç ç ç ç ç ğ Ü Ğ Ö ğ ç ğ Ö ğ ğ ğ

ö ü ü ö ö ü ö ü ü ğ ö ç ü Ç ğ ç ç ö ü ç ü ö Ş ğ üç ğ ç ü ö ç ç ç ç ğ ç ü ü ç ö ç ü ç ü ö ğ ç ç ö ç ğ ğ ç ç ö ç ö ü ğ ü Ş Ü Ü ö

ö Ş Ç ö ö ö ö ö Ö ö Ö ö Ç ö ö ö Ö Ğ Ğ

Ş Ğ ş Ğ İ Ğ İ ş ş Ü Ü Ş Ü İ ş ş ş

Ğ Ö Ğ

Ş ö ö ö ö ö

ğ Ü ğ ğ ğ ğ ğ ğ ğ İ ğ ğ ğ İ ğ ğ ğ ğ ğ ğ

Ç ö ö ö ö

ç ç ç Ş ç ç ç Ş ç

Ç Ç Ç Ş İ ğ ğ ğ Ç Ş İ ğ Ç ğ ğ ğ Ç ğ Ş ğ ğ ğ Ç ğ Ş ğ ğ ğ ğ İ ğ İ İ ğ ğ ğ ğ ğ ğ ğ ğ ğ

Ğ Ö Ö Ö Ö Ö Ö Ö Ö

ö ö Ü Ğ Ş Ğ Ş Ğ Ğ ö ö ö ö Ğ

ç ç ç ç ç

Ğ Ğ» Ş Ş Ğ Ş Ç

Ş Ç Ç

İĞİ ğ ş. ğ ş ğ ğ ğ Ş İ. ş ş. ş ğ ğ. ş ş ğ ş ş ş. ğ ş ş İ İ İ. ş ş

İ Ö Ç İ İ İ

Ğ Ö

Ü Ü»

Ü Ö Ü Ğ Ğ Ğ Ğ

Ş Ş Ö Ö Ü Ö Ö»

ö Ç ş ş ö ç ç ş ş ö ö ö Ç ö ş ş ö

Ğ Ğ Ğ

İ İ Ğ İ İ Ş İ Ö Ş Ş

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Algoritma ve Akış Diyagramları

Transkript:

Prolog Programlarının özellikleri: PROgrammig in LOGic Semboller üzerinde çalışma Problemlerin çözümünü tanımlama yerine çıkarım yapma Doğal ğ dille düşünülen ş şeylerin y kodlanması kolay Gerçekler ve kurallardan oluşur. Büyük küçük harfe duyarlıdır. Sabitler için Küçük harfler Değişkenler için Büyük harfler Program çıktıları çok sade Prolog da olmayanlar For döngüleri Repeat While döngüleri IF..THEN yapısı Goto komutu Diziler Yukarıdakiler öz yinelemeli fonksiyonlarla sağlanır Dekleratif Programlama Prolog Dekleratif programlama dili Prosedürel programlamada bilgisayara adım adım ne yapması gerektiğini kodlarız. (Ör: C, Pascal, Java vs.) Dekleratif programlamada bir durum tanımlanır. Bu tanıma göre yorumlayıcı yada derleyici bir çözüm üretir. Prolog bir cümlenin doğru / yanlış olduğunu cümle içinde değişken(ler) varsa cümlenin doğru olması için o değişken(ler)in değer(ler)inin ne olması gerektiğini söyler. 1 2 SWI-Prolog Örnek : Aile Ağacı http://www.swi-prolog.org prolog.org adresinden temin edilebilir. 3 4 1

İlişkileri gerçek(fact)lerle tanımlama Ahmet, Can ın ebeveynidir gerçeğinin prolog da ifadesi : ebeveyn(ahmet,can). ebeveyn: ilişkinin ismi ahmet ve can: ilişkinin argümanları Örnek : Aile Ağacı ebeveyn(ali,fatma). ebeveyn(esra,ercan). ebeveyn(ali,fatih). ebeveyn(esra,asli). ebeveyn(ali,ahmet). ebeveyn(ahmet,can). ebeveyn(eda,can). ebeveyn(ayse,fatma). ebeveyn(ahmet,nur). ebeveyn(ayse,fatih). ebeveyn(eda,nur). ebeveyn(ayse,ahmet). ebeveyn(nur,hasan). ebeveyn(fatma,volkan). ebeveyn(bulent,hasan). ebeveyn(serdar,volkan). ebeveyn(nur,huseyin). ebeveyn(bulent,huseyin). ebeveyn(fatih,ercan). ebeveyn(fatih,asli). 5 6 İlişkileri sorgulamak-1 Fatih, Ercan ın ebeveyni mi??- ebeveyn(fatih, ercan). Prolog un cevabı: true Ahmet, Ercan ın ebeveyni mi? :?- ebeveyn(ahmet,ercan). Prolog un cevabı: false İlişkileri sorgulamak-2 Nur un ebeveyni kimdir??- ebeveyn(x, nur). Prolog un cevabı : X = ahmet X = eda Ali nin çocukları kimlerdir??- ebeveyn(ali, Y). Prolog un cevabı : Y = fatma ; Y = fatih ; Y = ahmet. 7 8 2

İlişkileri sorgulamak-3 Kimler kimlerin çocuğudur??- ebeveyn (X, Y)... Çözümler listesini yarıda kesmek için enter İlişkileri sorgulamak-4 Birden çok şartlı sorgular. AND operatörü nur un un ebeveyni ahmet çocuğu hasan mıdır??- ebeveyn(ahmet,nur),ebeveyn(nur,hasan). ebeveyni ayse, çocuğu volkan olan kimdir??- ebeveyn(ayse,x),ebeveyn(x,volkan). 9 10 İlişkileri sorgulamak-5 Birden çok şartlı sorgular. NOT operatörü ali, hasan ın ebeveyni değildir??- not(ebeveyn(ali,hasan)). ebeveyni ali, olup, çocuğu can olmayan bülent midir??- ebeveyn(ali,bulent),not(ebeveyn(bulent,can)). false. ebeveyni ali, olup, çocuğu can olmayan kimdir??- ebeveyn(ali,x),not(ebeveyn(x,can)). İlişkileri sorgulamak-6 Birden çok şartlı sorgular. OR operatörü ahmet, volkan yada nur un un ebeveyni midir??- ebeveyn(ahmet,volkan);ebeveyn(ahmet,nur). volkan yada ercan ın ebeveynleri kimlerdir??- ebeveyn(x,volkan);ebeveyn(x,ercan). X = serdar ; X = esra ; 11 12 3

İlişkileri sorgulamak-7 Birden çok şartlı sorgular. Bir kişi aranıyor. Aranan bu kişinin özellikleri. ali nin çocuğudur. nur un ebeveyni değildir. aranan kişi fatma değildir. Bu kişi kimdir? İlişkileri sorgulamak-8 hasan ın ebeveyninin ebeveyni kimlerdir??- ebeveyn(x,hasan),ebeveyn(y,x). X = nur, Y = ahmet ; X = nur, Y = eda ;?- ebeveyn(ali,x),not(ebeveyn(x,nur)),not(x=fatma). 13 14 İlişkileri sorgulamak-9 Aranan kişinin özellikleri ya yada ayse nin çocuğudur. hüseyin in ebeveyninin ebeveyni değildir. hasan ın ebeveynidir. Aranan kişinin özellikleri ya yada Ödev hüseyin in ebeveyninin ebeveynidir. ayse nin çocuğudur. fatma nın çocuğudur.?-ebeveyn(ayse,y),not((ebeveyn(x,huseyin),ebeveyn(y,x))); ebeveyn(y,hasan). Y = fatma ; Y = fatih ; Y = nur ; Y = bulent ; 15 16 4

Kural oluşturmak Ahmet in annesi kimdir. Bilgi tabanımızda anne yada baba diye bir ilişki tanımlı değil. Anne ilişkisi için bir kural yazılabilir. anne(x,y):-ebeveyn(x,y),kadin(x). baba(x,y):-ebeveyn(x,y),erkek(x).?- anne(y,ahmet). Y=ayse. 17 5