Yer Bilgisini Kullanan Bir Komut Oluşturma

Cenker Sisman tarafından tarihinde yayınlandı

Tanıdıklarınıza bu yazıyı önerin

media-20151009

Geliştiriciler için yararlı olabilecek bu örnek ile parametre olarak kullanıcının belirttiği yer bilgisine ihtiyaç olan bir komut oluşturalım. Ayrıca, eğer parametre girilmemiş ise o anki yer bilgisini alıp parametre olarak kullanabilsin.

Örneğin HAVA KAÇTA KARARIYOR isminde bir komut oluşturalım. Sonuç olarak bize o an bulunduğumuz şehrin akşam namazı vaktini versin. Eğer bir şehir soruyorsak ise örneğin ANKARADA HAVA KAÇTA KARARIYOR, o zaman Ankara nın akşam namazı vaktini versin. Yani parametre olarak il bilgine ihtiyacımız var . Eğer ili söylemezsek o anki konumun şehrini bulup sorgulamalı.

Önce komut girişi ekranına girelim http://ceyd-a.net/komutekle . Buradan kendi bilgilerimizle giriş yaptıktan sonra YENİ KOMUT oluşturalım.

Toplam 3 alanı dolduracağız SORU ŞABLONU, SORU KELİMELERİ ve CEVAP ALANI ve sonrasında Güncelle tuşuna basacağız.

 

Şimdi alanlara bakalım:

Parametreleri bildiğiniz gibi SORU ŞABLONU bölümüne çoğu geliştiricinin bileceği üzere Regex formatında giriyoruz.

 

(.*?)(de |da |te |ta |için )*hava kaçta kararıyor.*

 

Ankara için hava kaçta kararıyor, İstanbulda hava kaçta kararıyor, Samsun hava kaçta kararıyor, Rizede hava kaçta kararıyor gibi cümleler bu formata uyuyor ve buradaki şehir isimleri (.*?) ifadesi ile yani 1.grup parametresi ile örtüşüyor. O halde CEVAP alanımızda $1 parametresini kullanırsak bu yukarıdaki cümlelerdeki şehir ne ise cevaba o şehir yansıyacaktır.

 

SORU KELİMELERİ olarak

hava kaçta kararıyor,15

yazalım

CEVAP ALANINA ise

{!SET sehir={!IF $1== ?{!RET hangi şehirdeyim!}:$1!}!}{!RET {!GET sehir!} için akşam vakti!}

yazalım.

 

 

ÖRNEK İLE ANALİZ:

Şimdi kümeler içindeki ifadelerin ne anlama geldiğine örnek vererek kısaca bakalım. Ankarada hava kaçta kararıyor dediğimizi varsayalım. İçiçe kümelerde önce en alt kümenin işlendiğini biliyoruz. En alttaki küme

{!RET hangi şehirdeyim!}

bu ifade size bulunduğunuz şehri döner. Diyelim İstanbul’dasınız o zaman bu kümenin değeri İstanbul olacak ve CEVAP alanındaki ifade şu şekile derlenecek

{!SET sehir={!IF $1== ?İstanbul:$1!}!}{!RET {!GET sehir!} için akşam vakti!}

Dönüşen ifadenin yeni haline baktığımızda sonraki işlenecek küme ise IF alt kümesi:

{!IF $1== ?İstanbul:$1!}

Burada $1 parametresi boş olsaydı (YANİ Ankarada hava ne zaman kararıyor yerine şehir kullanmadan Hava ne zaman kararıyor deseydik)  o an bulunduğumuz şehir yani İstanbul değeri dönecekti.
Ancak Ankarada hava kaçta kararıyor dediğimiz için  $1 parametresi Ankara olacak  ve  bu kümenin değeri olarak Ankara dönecektir.

 

İfadenin yeni hali ise şu şekile dönüşüyor:

{!SET sehir=Ankara!}{!RET {!GET sehir!} için akşam vakti!}

Yorumlayıcı sistem bundan sonra {!SET sehir=Ankara!} yı işliyor. Bu da sehir değişkenine Ankara yı atıyor.

Tüm ifadenin yeni hali ise daha da basitleşiyor:

{!RET {!GET sehir!} için akşam vakti!}

Burada içte bir küme bulunmakta {!GET sehir!}  .Sistem bu kümeyi işliyor. sehir değişkenindeki değeri yani Ankara yı dönüyor. İfadenin yeni hali:

{!RET Ankara için akşam vakti!}

Artık sadece yorumlanacak bir küme bulunmakta. Sistem Ankara için akşam vakti komutunu çağırıyor ve namaz vaktini dönüyor.

 

Artık CEYD-A ya hava kaçta kararıyor dediğimizde bulunduğunuz ilin akşam vaktini, eğer şehir ismini sorarak hava kaçta kararıyor dediğimizde o şehrin akşam vaktini söyleyecektir.

 

Not: Oluşturulan komutlar bir sonraki CEYD-A yı açtığınız zaman devreye girer.


Cenker Sisman

1971 yılında doğan Cenker Sisman, Saint-Joseph lisesini bitirdi. Yıldız Teknik Üniversitesi’nde Bilgisayar Mühendisliği ve İstanbul Teknik Üniversitesi’nde aynı bölümün yüksek lisans eğitimlerini tamamladı. Savaş Köse ile beraber yazdığı ‘Parallel Implementation of The Hough Transformation’ çalışması SCI’99/ISAS’99 da yayınlandı. Yazdığı uzaktan bilgisayar kontrol uygulaması ‘Panda Future Connection’ Bimeks 1998 En İyi Yazılım – Mansiyon ödülünü aldı. Diğer programları olan WinPerfect, CleanDisk, VideoCapture, FTPExplorer, CardReader ve Multi-Email Sender uygulamaları zaman zaman yurtdışındaki medyalarda yayınlandı ve çeşitli otoriteler tarafından ödüller aldı.

1 yorum

bedirhan · 19 Ekim 2015 14:18 tarihinde

evet sonunda genensy yani skynet termınatorler yaklastı

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Bu sayfa 317 kez ziyaret edilmiştir