Yer Bilgisini Kullanan Bir Komut Oluşturma

× Kendi komut kurgularınızı CEYD dili desteği ile kod yazarak veya sürükle-bırak-yap-boz şeklinde kod yazmadan blok tasarımı oluşturarak geliştirebilirsiniz.

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 https://kodla.ceyd-a.com. 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.

1 Cevap

  1. bedirhan dedi ki:

    evet sonunda genensy yani skynet termınatorler yaklastı

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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