Mükemmel Uyku Planlayıcısı
CEYD-A’ ya yeni bir kurgu geliştirelim. Ona rahat uyumak istediğinizi söylediğinizde, uyanacağınız saate göre size en uygun yatma saatlerini söylesin.
İyi bir gece uykusu erken yatmaktan daha fazlasıdır – aynı zamanda doğru zamanda uyanmakla da ilgilidir. Uyku Hesaplayıcı, vücudun doğal ritimlerine dayalı bir formül kullanarak, kalkmak veya uyumak için en iyi zamanı hesaplar. https://www.hillarys.co.uk/static/sleep-calculator/ alınarak oluşturulmuştur.
Daha iyi anlatabilmek için adım adım ilerleyelim: https://kodla.ceyd-a.com sitesinde yeni bir komut oluşturalım ve cevap alanına aşağıdakileri yazalım. Soru kelimesi test79 gibi denemelerimiz için kullanacağımız bir kelime olsun. Daha sonra bu kelimeyi değiştireceğiz. Önceliğimiz cevap alanının istediğimiz gibi çalışması.
Yukardaki kodu yazıp dene tuşuna bastığımızda bize vereceği sonuç ekranda yansıyacaktır. Bu şekilde adım adım ilerleyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
SORU test79 CEVAP {!SET hedefsaat=08 35!} {!SET hedefsaat={!RET rconvertdate {!GET hedefsaat!},HH mm,HH:mm!}!} {!SET length={!RET strlength $hedefsaat!}!} {!IF $length!=5??{!SET hedefsaat={!RET rconvertdate {!GET hedefsaat!},HH,HH:mm!}!}::!} {!SET saat08:30=23:16;00:46;02:16;03:46!} {!SET uyanmasaati=!} {!SET onerisaatleri=!} {!IF $hedefsaat>=08:30&&$hedefsaat<09:40??{!SET uyanmasaati=08:30!}{!SET onerisaatleri={!GET saat08:30!}!}::!} {!RET cmdsplit ;,dizi,$onerisaatleri!} {!IF $uyanmasaati==?? Saat {!GET $hedefsaat!} de uyursan {!RET cmdaddhour {!GET $hedefsaat!},8!} saatine kadar uyumanı tavsiye ederim. 8 saatlik uyuma idealdir. :: Saat {!GET uyanmasaati!} de uyanmalısın. Mükemmel uyku için şu saatleri öneririm:<br> {!FOR $i=0,$staArraySize {!GET dizi[{!GET $i!}]!}<br> {!SET $i+=1!} !} {!RET cmdshowreference https://www.gzt.com/infografik/jurnalist/kacta-uyumali-561!} !} |
Şimdi yukardaki kurguyu güncelleyelim. Bir ara verip yeni bir komut oluşturalım. Kurgunun içinde kullanacağımız bir saat öteleme fonksiyonuna ihtiyaç olacaktır. Yani, istenen saatten 8 saat öncesini bize söylemesi gereken bir kısım olacak. Tabloda uygun bir saat yok ise biz 8 saat öncesini hesaplayıp uyuma saatini bulacağız. İlk denemeler şu şekilde:
Bu kurgunun ismini cmdaddhour olarak adlandıracağız. Şablonu ise: cmdaddhour ({PAR1}),({PAR2}) olacak. İlk parametre başlangıç saati, ikinci parametre ise kaç saat sonrasını belirten sayı olacak. Örneğin cmdaddhour 15:01,2 yazdığımızda bize 17:01 değerini dönecek. Başka deyişle CEYD dili ile CEYD dili için yeni fonksiyonlar oluşturuyoruz. Kendi dili ile kendini geliştiren bir dil. Bu kurgunun son hali şu şekildedir.
1 2 3 4 5 6 7 8 9 10 11 12 |
SORU cmdaddhour,25.0| SABLON cmdaddhour ({PAR1}),({PAR2})$ CEVAP {!SET hour=$2!} {!SET sourcetime=$1!} {!SET todayformatted={!RET rconvertdate {!RET bugün günlerden ne!},dd MMM yyyy,yyyy-MM-dd!}!} {!SET milliseconds={!RET convertdatetominutes {!GET todayformatted!} {!RET cmdtrim {!GET sourcetime!}!}:00!}!} {!SET seconds={!EVAL {!GET milliseconds!} / 1000 + 10800 + {!GET $hour!}*60*60!}!} {!SET staTargetTime={!RET rconvertdate {!GET seconds!},ss,yyyy-MM-dd HH:mm!}!} {!SET staTargetHour={!RET rconvertdate {!GET seconds!},ss,HH:mm!}!} {!GET staTargetHour!} ÖRNEK cmdaddhour (SAAT),(EKLENECEK SAAT): Belirtilen saate eklenecek saat kadar ekleme yapar. |
Bir deneme yapalım: saat 16:02 ‘nin 9 saat sonrasını bulalım. Oluşturulan bu kurgu onaylanınca tüm kullanıcıların kullanabileceği hale gelir ama kurgunun içindeki kodu değiştiremezler. Değiştirmek ihtiyacı olursa aynı isimde başka bir kurgu oluşturabilirler. Bunu mühendislikte kullanılan terim olan kara kutu (black box) gibi düşünebiliriz.
1 2 3 |
{!RET cmdaddhour 19:30,7!} |
Şimdi ilk kurgumuza dönelim. test79 kurgusunun ilk satırını denemek için {!SET hedefsaat=09 55!} olarak değiştirip güncelleyelim. 09 55 için tablo değeri olmadığı için 8 saat sonrasını hesaplayan kurgu devreye girecektir.
https://beta.ceyd-a.com sitesinden veya CEYD-A uygulamasından aşağıdakileri deneyebiliriz:
Denemeler olumlu. O zaman kurgunun son halini aşağıdaki gibi değiştirelim. Soru Kelimesi , Şablonu değiştirip, Cevap kodunu da son haline getirelim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
SORU uyu%,25.0|uyku%,25.0| SABLON {ANY}(rahat|huzurlu|iyi|güzel|mükemmel){ANY}(uyku|uyumak){ANY}istiyorum{ANY}$ CEVAP {!RET cmdaskandfollow Saat kaçta uyanmak istiyorsun?,'{!SET hedefsaat=$8!} {!SET hedefsaat={!RET rconvertdate {!GET hedefsaat!},HH mm,HH:mm!}!} {!SET length={!RET strlength $hedefsaat!}!} {!IF $length!=5??{!SET hedefsaat={!RET rconvertdate {!GET hedefsaat!},HH,HH:mm!}!}::!} {!SET saat06:00=20:46;22:16;23:46;01:16!} {!SET saat06:30=21:16;22:46;00:16;01:46!} {!SET saat07:00=21:46;23:16;00:46;02:16!} {!SET saat07:10=21:56;23:26;00:56;02:26!} {!SET saat07:30=22:16;23:46;01:16;02:46!} {!SET saat07:45=22:31;00:01;01:31;03:01!} {!SET saat08:00=22:46;00:16;01:46;03:16!} {!SET saat08:30=23:16;00:46;02:16;03:46!} {!SET saat09:40=00:26;01:56;03:26;04:56!} {!SET saat12:00=02:46;04:16;05:46;07:16!} {!SET uyanmasaati=!} {!SET onerisaatleri=!} {!IF $hedefsaat>=06:00&&$hedefsaat<06:30??{!SET uyanmasaati=06:00!}{!SET onerisaatleri={!GET saat06:00!}!}::!} {!IF $hedefsaat>=06:30&&$hedefsaat<07:00??{!SET uyanmasaati=06:30!}{!SET onerisaatleri={!GET saat06:30!}!}::!} {!IF $hedefsaat>=07:00&&$hedefsaat<07:10??{!SET uyanmasaati=07:00!}{!SET onerisaatleri={!GET saat07:00!}!}::!} {!IF $hedefsaat>=07:10&&$hedefsaat<07:30??{!SET uyanmasaati=07:10!}{!SET onerisaatleri={!GET saat07:10!}!}::!} {!IF $hedefsaat>=07:30&&$hedefsaat<07:45??{!SET uyanmasaati=07:30!}{!SET onerisaatleri={!GET saat07:30!}!}::!} {!IF $hedefsaat>=07:45&&$hedefsaat<08:00??{!SET uyanmasaati=07:45!}{!SET onerisaatleri={!GET saat07:45!}!}::!} {!IF $hedefsaat>=08:00&&$hedefsaat<08:30??{!SET uyanmasaati=08:00!}{!SET onerisaatleri={!GET saat08:00!}!}::!} {!IF $hedefsaat>=08:30&&$hedefsaat<09:40??{!SET uyanmasaati=08:30!}{!SET onerisaatleri={!GET saat08:30!}!}::!} {!IF $hedefsaat>=09:40&&$hedefsaat<12:00??{!SET uyanmasaati=09:40!}{!SET onerisaatleri={!GET saat09:40!}!}::!} {!IF $hedefsaat>=12:00&&$hedefsaat<12:30??{!SET uyanmasaati=12:00!}{!SET onerisaatleri={!GET saat12:00!}!}::!} {!RET cmdsplit ;,dizi,$onerisaatleri!} {!IF $uyanmasaati==?? Saat {!RET cmdaddhour {!GET $hedefsaat!},-8!} de yatarsan {!GET $hedefsaat!} saatine kadar uyumanı tavsiye ederim. 8 saatlik uyuma idealdir. :: Saat {!GET uyanmasaati!} de uyanmalısın. Mükemmel uyku için şu saatleri öneririm:<br> {!FOR $i=0,$staArraySize {!GET dizi[{!GET $i!}]!}<br> {!SET $i+=1!} !} {!RET cmdshowreference https://www.gzt.com/infografik/jurnalist/kacta-uyumali-561!} !}'!} ORNEK iyi uyumak istiyorum: CEYD-A biyolojik saat hesaplarına göre ne zaman uyumanız gerektiğini hesaplar. |