Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

Yapay Zeka Programlama Dilleri ve PROLOG

clock Aralık 8, 2009 17:17 by author Volkan Atasever

Yapay zeka programlama dillerinin en ünlüleri LISP ve PROLOG’tur. Bu bağlamda PROLOG yapay zeka programlama dili incelenecektir. PROLOG, yapay zeka içeren sistemler yaratmamızı sağlar. Günlük sıradan cümleleri belli bir yapıda kabul edip bunların sonuçlarına varabiliriz. Standart programlama dillerinden çok farklı yapıya sahiptir.

Bir prolog programı;

 

  male(james1).

  male(charles1).

  male(charles2).

  male(james2).

  male(george1).

 

  female(catherine).

  female(elizabeth).

  female(sophia).

 

  parent(charles1, james1).

  parent(elizabeth, james1).

  parent(charles2, charles1).

  parent(catherine, charles1).

  parent(james2, charles1).

  parent(sophia, elizabeth).

  parent(george1, sophia).

 

Sorgulamalarımızı nasıl yapmamız gerekiyor? Bunları burada formülize ediyoruz.      George I, Charles I’in ailesimidir ?               Query: parent(charles1, george1).      Charles I’in ailesi kimdir?              Query: parent(charles1,X).      Charles I’in çocuğu kimdir?              Query: parent(X,charles1).

 

Aile yapımız inputlara göre şöyle olmaktadır;

 
                              James I
                                 |
                                 |
                +----------------+-----------------+
                |                                  |
             Charles I                          Elizabeth
                |                                  |
                |                                  |
     +----------+------------+                     |
     |          |            |                     |
 Catherine   Charles II   James II               Sophia
                                                   |
                                                   |
                                                   |
                                                George I

 

 

Bu sorguları elimizdeki inputlar oranında daha da fazlalaştırabiliriz.

Düşünsenize bir database’inizin elinizde olduğunu ve bu tür sorgulamaları database üzerinden yapabildiğinizi! Veritabanının çok geniş içeriklerde veri içerdiğini ve bu verileri çok hızla işleyebildiğimiz PROLOG diliyle sorgulama yapmamız bize avanatj kazandırabilmektedir.

 

.NET Ortamında PROLOG: PROLOG.NET Projesi!!!

.NET ortamına aktarılmaya çalışan ve .NET Framwork altyapısıyla birlikte PROLOG Programlama dilinin çalışması için bir proje sürmekte kişisel imkanlarla yürütülen bu projenin ismi PROLOG.NET. En son release tarihi 2006 yıllarına geldiği için rafa kalkmış bir proje diyebiliriz. Projenin sayfasını ziyaret etmek için: http://prolog.hodroj.net/downloads.html

Bu kadar olumsuzluklara rağmen süregelen .NET ortamına geçirme çalışmaları ve farklı projelerde mevcut.

Bunlardan bazıları;

P# adı altında .NET ortamı için prolog

Prolog for .net developers adı altındada çalımalar mevcuttur.

 

Kaynaklar:

http://www.cs.toronto.edu/~hojjat/384f06/simple-prolog-examples.html

 

 



PCWORLD Aralık Sayısındaki Yazı Dizim - Mobil Programlama

clock Kasım 29, 2009 11:48 by author Volkan Atasever

Dünyanın en çok satan bilgisayar dergisi PCWORLD'de aralık ayından itibaren mobil programlama isminde bir yazı dizisine başladım. Aralık ayından itibaren Mobil Cihazların Devrimi ve Programlama konsepti altında hazırladığım yazı dizisini okuyabilirsiniz. Gerçekten çok kaliteli olan PCWORLD dergisinde yazmak benim için oldukça keyifli.

Konu Başlığım: Mobil Programlama - Windows Mobile işletim sistemleri üstünde programlamayı anlatan yeni yazı dizim.



Visual Studio 2010 Beta 2 ve Mobil Uygulama Geliştirmek

clock Kasım 21, 2009 02:14 by author Volkan Atasever

Visual Studio 2010 Beta 2 does not support Smart Device Development.

Visual Studio 2010 beta 2 ile şu anda windows mobile uygulamaları içeren yazılımlar geliştirememekteyiz. Sanırım güzel süprizler product çıktığında bizi bekliyor. Windows mobile 7'nin ekran görüntüleri dolaşmaya başladı ve Visual Studio Beta 2 bundan çok daha önce sunulmuştu. Sistem alt yapısında biraz değişiklikler yapılacağı hissi vermekte.



Office Mobile 2010 Beta

clock Kasım 21, 2009 02:05 by author Volkan Atasever

Office Mobile 2010, PDC 2009 da duyuruldu. Gerçekten oldukça gelişmiş özellikleri ile beraber mobil cihazlarda da diğer bilgisayarlar gibi tüm işlemlerimizi gerçekleştirebilmekteyiz. Tek farkı daha hafif ve daha taşınabilir.

 

Office mobile 2010 ile beraber gelen word mobile, excel mobile gibi office uygulamasının temellerini oluşturan yazılımlar dışında sharepoint workspace mobile yazılımıda beraberinde gelmiş bulunmakta. Sharepoint 2007 ile yapılan sıçrayış sharepoint 2010’un beta sürümlerinde kendini çok daha gelişmiş ve sağlam bir yapıyla pekiştirmişti. Sharepoint’in bir uzantısının da windows mobile işletim sistemi kullanan, office mobil 2010 ile gelen yazılımda görebilmekteyiz.

Excel Mobil viewer, powerpoint viewer ve diğer göstericiler daha amaca yönelik hizmet vermekte.

Ekran görüntüleri:

Imajlar: The official blog of the Microsoft Office product development group http://blogs.technet.com/office2010



Bifid Şifreleme (İki Boyutlu Şifreleme)

clock Kasım 11, 2009 03:22 by author Volkan Atasever

 

 

Bifid şifreleme de, 5x5 bir matris alınır,  satır ve sütunlar numaralandırılır. Bu matris bizim rasgele oluşturacağımız matristir. 5x5 olabileceği gibi,7x7 veya 8x8 gibi orantılı büyüklüklerde matris oluşturabiliriz.

Mesajı sabit sayıda harf içeren parçalara ayrılır, daha sonra her harfin altına satır ve kolon numaraları yazılır. Bu sayede matrisimizde satır ve sütun rakamlarını kullanmış oluruz. Gruplamalar matrisin satır veya sütun büyüklüğü kadardır.

ve daha sonra her grup içinde kalarak sayıları sırasıyla 11555 14535 52453 33435 . . . şeklinde okuyup ikili rakamlardan oluşan 11 55 51 45 35 52 . . . şeklindeki parçalara ayrılır. Ve bu parçaların tablodaki harf karşılıkları bize gizli bir mesaj verecektir.

Şifrelenmiş rakamımız bu sayede elimize geçmiş olacaktır.

Bu şifreleme için kullandığım arayüz aşağıdadır. Konsol uygulaması olarak sade bir arayüz kullandım.


   class Program

    {

        static void Main(string[] args)

        {

            string d;

            do{

            Bifid bfd = new Bifid();

           

            Console.WriteLine("\nBifid Şifreleme");

            Console.WriteLine("Açmak için 1");

            Console.WriteLine("Şifreleme için 2");

            Console.WriteLine("Çıkmak için 5");

            d=Console.ReadLine();

            if(d=="1"){

                string msj;

                string don;

                Console.WriteLine("Decrypt yapılacak mesajı girin");

                msj = Console.ReadLine();

                don=bfd.EncryptDecrypt(msj, false);

                Console.Write(don);

            }

            else if(d=="2"){

                string msj;

                string don;

                Console.WriteLine("Encrypt yapılacak mesajı girin");

                msj = Console.ReadLine();

                don = bfd.EncryptDecrypt(msj, true);

                Console.WriteLine(don);

            }

            else if(d=="5")

                break;

            else

            Console.WriteLine("Lütfen seçim yağınız çıkış için 5");

          

            }while(d!="5");

        }

    }

Bifid Algoritması için bifid şifreleme sınıfım;

public class Bifid

    {

        string[,] KeyMatrix = new string[5, 5];

 

        public Bifid()

        {

            BuildKeyMatrix();

        }

 

        private void BuildKeyMatrix()

        {

            int k = 65;

            for (int i = 0; i < 5; i++)

            {

                for (int j = 0; j < 5; j++)

                {

                    if (k == 74) { k++; } // j’yi alma  (j ascii = 64)

                    KeyMatrix[i, j] = ((char)k).ToString();

                    k++;

                }

            }

        }

 

        public string EncryptDecrypt(string Text, bool Encrypt)

        {

            int k = 0;

            string CharofMessage = string.Empty;

            StringBuilder sb1 = new StringBuilder();

            StringBuilder sb2 = new StringBuilder();

            StringBuilder sbOut = new StringBuilder();

            bool HasGotChar = false;

 

            while (k < Text.Length)

            {

                CharofMessage = Text.Substring(k, 1);

                for (int i = 0; i < 5; i++)

                {

                    for (int j = 0; j < 5; j++)

                    {

                        if (string.Compare(KeyMatrix[i, j], CharofMessage, true) == 0)

                        {

                            sb1.Append(i.ToString());

                            if (Encrypt)

                                sb2.Append(j.ToString());

                            else

                                sb1.Append(j.ToString());

                            HasGotChar = true;

                            break;

                        }

                    }

                    if (HasGotChar)

                    {

                        HasGotChar = false;

                        break;

                    }

                }

                k++;

            }

 

            k = 0;

 

            if (Encrypt)

            {

                sb1.Append(sb2.ToString());

                while (k < sb1.Length)

                {

                    sbOut.Append(KeyMatrix[Convert.ToInt32(sb1[k].ToString()), Convert.ToInt32(sb1[k + 1].ToString())]);

                    k += 2;

                }

            }

            else

            {

                int SplitNum = (sb1.Length) / 2;

                while (k < SplitNum)

                {

                    sbOut.Append(KeyMatrix[Convert.ToInt32(sb1[k].ToString()), Convert.ToInt32(sb1[k + SplitNum].ToString())]);

                    k++;

                }

            }

 

            return sbOut.ToString();

        }

    }

 

Bu sınıfta üç temel işlem gerçekleşmektedir. 5x5 boyutundaki matrisin oluşumu. Mesajın şifrelenmesi ve mesajın çözülmesi.

 

 

Kaynaklar:

[1] Öğr. Gör. Erdal Güvenoğlu’ nun Bilgi Sistemleri ve Güvenliği Ders notları

[2]http://programmingpraxis.com/2009/10/13/bifid-cipher/



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Kurucu&Genel Müdür/S4G
Bilgisayar Mühendisi
Eğitmen ve Danışman
Teknoloji Yazarı

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve bir çok kategoride yazılarım...

     

Yazılım Kitaplarım

   

Şiir Kitaplarım

Ulusal Yayınlar ve Programlar

 

Sosyal Ağlarım

 

 

 

 

Retro Bilgisayar Dergimiz

Türkçe Retro Bilgisayar dergimiz haziran 2016'da ilk sayısını çıkardı.  Sizde katkıda bulunmak isterseniz bana mail atmanız yeterli. Dergimiz PDF formatında ve tamamen ücretsizdir. Software4Galaxy imtiyaz sahibidir. S4G sitesinden veya facebook sayfasından dergilere ulaşabilirsiniz.

Üye Olduğum Dernek ve Organizasyonlar

 

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2019

Sign In

Yazılım