Konuşur gibi Türkçe Kod #10: Tırnak

in tr •  6 years ago  (edited)


##1. Bölüm: Türkçe kod yazma.

##2. Bölüm: TAR-Python ayarları.

##3. Bölüm: Kendi .tr uzantımız.

##4. Bölüm: Dil üretmek = KARAKTER yorumlayıcısı yazmak.

##5. Bölüm: Donanım-Yazılım kesişimi = sürücüler.

##6. Bölüm: Kendi YAZ'ımız.

##7. Bölüm: Tüm harfleri bir değişkene atama.

##8. Bölüm: Kendi komutumuz.

##9. Bölüm: YAZ'ma şekilleri + Teknoloji Oteli


Son yazıda sadece kod yazmak değil farklı kararlar da almak gerekiyordu. İster istemez diğer dillerdeki YAZ'ma şekillerine yeniden baktım.

Mesela, Basic'te Merhaba Dünya şöyle yazılıyormuş:

PRINT "Hello, world!"​

Ataların lisanında ;) ise şöyle
#include
int main(void){
puts("Hello, world!");
}

Daha genç versiyonu C++ şöyle
#include
int main(){
std::cout << "Hello, world!
";
return 0;}

more+

Görüleceği üzere aynı kaynaktan beslenen iki dil için bile yazım farkları var. Üstelik sadece int main gibi hazırlıklık kısımları değil, direk YAZ işlemini yapan kısımlarda da farklılık var.
puts ya da std::cout <<

Web ile birlikte zirve yapan JavaScript'te ise document.write('Hello, world!'); şeklinde.

Her birinde faklı bir şekil söz konusu. Son örnek olarak Logo'da tırnak yerine köşeli parantez kullanılmış: print [Hello, world!]

Buradaki TIRNAK yerine Köşeli parantez kullanımı; önceki yazıda @kagantrky 'in da katkılarıyla incelediğimiz durumlar için cesaret verdi. Bir dilde ekrana çıktı almak için puts kullanmak gerektiğini öğrenmek zorundayken bir başka dilde aynı işlem için [ köşeli parantez gerektiğini bilmek/öğrenmek zorundayız.

E madem, yeni bir dil için bazı yeni şeyleri öğrenmek zorunlu o halde TAR için de yeni şeyler pek ala söz konusu olabilir ;)


İsterseniz önce normal yoldan bakalım.

Yani yaz "Merhaba Dünya" şeklinde bir yazım için TIRNAKLARI ve ebetteki arasında METİNİ tespit etmemiz lazım.

A' a! Yeni bir sorunumuz var.


İlk tırnak da ikinci tırnak da aynı şekilde: "

O halde

  • TIRNAK ile İLK karşılaştığımız anda bunun bilgisini bir yerde tutmamız lazım
  • Ve hemen içindeki harfleri bir CÜMLE olarak birleştirmemiz lazım
  • CÜMLEYE eklemeye devam etmeli
  • Ta ki İKİNCİ TIRNAK karşısına çıkana kadar
  • Her tırnak ile karşılaşmada bunun HANGİ TIRNAK olduğu bilgisini güncellememiz lazım
Tabiki bir de BOŞLUK var. " Bir şeyin kıymetini yokluğunda anladığımız gibi YAZ'ın bittiğini sonbaharın/BOŞLUK'un gelmesinden anlıyoruz ki YAZ tek başına bir kelime olabilsin. Ama aynı zamanda YAZ'da sonra SADECE bir boşluk HEMEN ardından TIRNAK şartı koşmak da gıcık edici olabilir. Bununlabirliktebilgisayarınkelimeleriayırtetmesi için boşlukgörmeihtiyacıolmayabilir; ) Bu yüzden boşluğu yok edebiliriz // Boşluğu yok etmek.. felsefik bi şey gibi durdu :)

TIRNAK hangi tırnak bilgisini tutmak için tırnak adında
ve tırnakların arasındaki metini oluşturup saklamak için cumle adın da değişkenler atayalım.
son/kapanış bir tırnağı görmüş ve şimdi karşında çıkanı ilk/başlama tırnağı kabul etmesi için tırnak="son" yapalım.


Daha sakin bir görünüm için bazı printleri etkisiz hale getirelim.

şimdi
y
ya
yaz
yaz "
yaz "M

akışı içinden YAZ ve TIRNAK için oltamızı atalım ;)


dikkat edilmesi ve anlaşılması gereken kritik noktalardan birisi de

40 ve 46. satırlarda gördüğümüz komut="" ataması, komut sürekli elimizde tuttuğumuz ve içine baktığımız bir değişken olduğu için HER KOMUT ya da işlemeden üzerinden geçtiğimiz HER KARAKTER sonrası mevcut içeriğini yokluğa eşitliyoruz. //Bi felsefik söz daha :)

 


Görsel


Posted from my blog with SteemPress :

https://murattatar.xyz/konusur-gibi-turkce-kod-10-tirnak/

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  ·  6 years ago (edited)

Why not in English

Because, I want to coding with our native language.
For exp, I want write this code:
Yaz "Merhaba"
not this:
Response.write("Merhaba")

YAZ mean = Print in Turkish

boşluk birden fazlaysa algılayacak mı?

Her bir karakteri sırayla okuduğu için

Boşluk denk geldiğinde yok edecek.

Bununlabirliktebilgisayarınkelimeleriayırtetmesi için boşlukgörmeihtiyacıolmayabilir; ) Bu yüzden boşluğu yok edebiliriz // Boşluğu yok etmek.. felsefik bi şey gibi durdu :)

Dolaylısıyla boşluk sayısı önemli olmayacak ;)

Sonraki aşamada alt satıra geçme durumunda satır sonu \n için de benzer işlem gerekecek gibi.