Bu sayıdan itibaren yeni bir bilgisayar diline başlıyoruz... Logo Öğreniyoruz
İF SAY sayı önce Logo dilini tanıtmış, özelliklerinden kısaca bahsetmiştik. Bu dizide ise, adım adım Logo'yla neler yapılabileceğini ve nasıl yapılabileceğini yani Logo'ca düşünmeyi, iletişim kurmayı öğreneceğiz. Önce Logo'nun ABC'sinden, turtle grafiklerinden başlıyoruz. Kaplumbağa anlamına gelen turtle, pek benzemese de tabanı biraz daha kalın bir üçgenle temsil edilmektedir. Bu sevimli dostumuzu ekranda dilediğimizce gezdirerek grafikler çizdirebiliriz. Önce onu görelim:
SHOW TURTLE
İşte ekranın ortasında tepesi yukarıya dönük duruyor. Bu BAŞLANGIÇ pozisyonudur. Nerede olursa olsun “HOME” dediğimizde, bu konuma dönecektir. Bu durumda tepesinin baktığı açı yani yukarısı 0 derece kabul edilir. Şimdi biraz gezinelim.
FORWARD 20 Bizim tosbağa arkasında bir iz bırakıp öne yani ekranın yukarısına doğru yirmi adım attı. Logo'da uzunluklar bir piksel'den oluşan adımlarla ifade edilir ve turtle ilerlerken kuyruğu ile arkasında bir iz bırakır. Çizmeden ilerletmek için kuyruğunu kaldırması gerekir:
PENUP
FORWARD 20
PENDOWN
FORWARD 20
Şimdi biraz çevirelim:
LEFT 90
Gördüğünüz gibi turtle'ın kafası 90 derece sola döndü. LEFT açı ve
| bak sana göstereyim ...
RIGHT açı komutlarıyla turtle'ın gidiş-dönüş yönünü bulunduğu duruma göre istediğimiz açıya çevirebiliriz.
FORWARD 20
İşte bir öncekine dik bir çizgi çizdirdik.
DRAW
Bütün ekran silindi ve bizimki başlangıçtaki konumuna döndü. Bu, açılıştaki çizim işlemine başlangıç komutudur. Şimdiye kadar öğrendiklerimizle bir kare çizdirebiliriz.
FORWARD 50
LEFT 90
FORWARD 50
LEFT 90
FORWARD 50
LEFT 90
FORWARD 50
Bir kare için bu kadar uğraşılır mı? Bizim turtle böyle tekrarlanan komutları daha kolay da anlayabilir.
REPEAT 4 (FORWARD 50
LEFT 90)
yukarıdakiyle aynı işi görecektir. Tekrar tekrar yapılacak işlemleri bir liste haline getirebilir ve yukarıdaki gibi köşeli parantezler içine alarak istediğimiz sayıda yineletebiliriz. Logo işlemleri, nesneleri hep liste olarak görür. FORWARD, LEFT, REPEAT gibi sözcükler Logo'da önceden tanımlanmış, Logo'nun bildiği sözcüklerdir. Biz de ona var olanlardan yararlanarak yenilerini öğretebilir, hatta kendi öğrettiklerimizi başkalarını tanımlamada kullanabiliriz; Logo'da gerçek anlamda program yoktur, tıpkı bizdeki gibi kavramlar ve bunları simgeleyen sözcükler vardır. Şimdi KARE'yi görelim.
TO KARE
Ve ortam değişti birden. Koyu renkli bir zeminde TO KARE yazısı yukarıda olmak üzere ekran silindi. Altta ise
EDIT: CTRL-C TO DEFINE, CTRL-G TO ABORT yazısı çıktı. Bu, yeni sözcükler tanımlamada kullanacağımız yazılım modu'dur. Şimdi karenin nasıl çizileceğini tanımlayalım:
REPEAT 4 (FORWARD 50
LEFT 90)
Tanımlama bittikten sonra yaptığımızı Logo'nun tanıması için Control ve C tuşlarına aynı anda basalım.
KARE DEFINED
Logo KARE sözcüğünü dağarcığına kattığını belirtti. Bundan sonra,
KARE
yazarak istediğimiz an kare çizdire-
biliriz.
LEFT 20
KARE
Turtle'ın bu konumuna göre eğri bir kare elde ettik.
REPEAT 18 (LEFT 20 KARE|
Turtle her seferinde 20 derece dönerek on sekiz kare çizdi. Bu arada dikkatinizi çekti mi bilmem, dönüş açısıyla tekrarlama sayılarının çarpımı hep 360 oluyor (kare için 4 x 90, şimdiki için 18). Bu tüm kapalı şekiller için geçerlidir. Tüm poligonlar için geçerli olan kural: Dönme açısı = 360/kenar sayısı'dır. Tanımlarken
REPEAT kenar sayısı (LEFT 360/
kenar sayısı FORWARD adım)
şeklinde ifade edebiliriz. Buna göre üçgen
TO ÜÇGEN
REPEAT 3 (LEFT 120
FORWARD 50)
END
olabilir. Beşgen, altıgen ve diğerleri
için tanımlamayı siz yapın.
Şimdi KARE'yi biraz geliştirelim.
EDIT KARE
Tekrar yazılım moduna geçtik. Şimdi imleci TO KARE satırının sonuna getirelim ve arada bir boşluk bırakmaya dikkat ederek aşağıdakileri aynı satıra ekleyelim (sonda RETURN'e basmadan):
:KENAR
yazdıktan sonra, REPEAT 4(FORWARD 50 LEFT 90) satırına gelip cursor ve delete tuşlarıyla 50'yi silip yerine :KENAR yazalım. Bitince aşağıdaki gibi olacaktır:
REPEAT :KENAR
LEFT 90)
Şimdi yaptığımız değişiklikleri Logo'ya anlatmak için Control ve C tuşlarına basıp çıkalım.
KARE yazdığımızda Logo bize, KARE NEEDS MORE INPUTS diye cevap verecektir. Yani daha veri vermemiz gerektiğini söylemektedir.
KARE 70
Yaptığımız kare biraz daha büyüdü. Yeni tanımladığımız bu sözcükle istediğimiz büyüklükte kare çizdirebiliriz. Logo, sözcüğün ardından gelen sayıyı :KENAR nesnesine atamakta ve bu değeri işlem içinde kullanmaktadır.
TO ŞEKİL :KENAR
REPEAT 18 (KARE :KENAR
LEFT 20)
END
Bu tanımlandıktan sonra ŞEKİL 50 diyerek şekil çizdirebiliriz. Böylece daha önce öğrettiğimiz bir sözcüğü kullanarak yeni bir sözcük tanımlamış olduk. Logo tanımladığımız her sözcüğü kendisinin önceden bildiklerinden farksız görür. Bunun anlamı tanımladıklarınızı da var olanlar gibi kullanabilmenizdir.
TO ŞEKİLİ :KENAR
REPEAT I8|KARE :KENAR
LEFT 20 MAKE”KENAR
:KENAR * 5)
END
Bu yeni tanımlamada MAKE sözcüğü ile KENAR nesnesinin taşıdığı değeri her seferinde artırarak şekil çizdirebiliriz. Dikkat edilecek konu bir nesneye değer atfedileceği zaman " işaretiyle bunun yeni bir değer olduğunu belirtmemiz gerektiğidir.
Var olan değerini kullanırken ise nesnenin adından önce : işaretini koyarız. Logo'da değişkenler tek tiptir, yani sayısal ya da başka tür değişkenler yoktur ve bunlar nesne adını alırlar. Nasıl KARE sözcüğünü yapılacak bir dizi işlemi içeren listeyi ifade etmek için kullanıyorsak, KENAR nesnesini de ona bağlı bir değeri ifade etmek için kullanıyoruz. Okula gitmek bizim için her sabah yaptığımız bir eylemdir. Harçlık ise parasal bir değeri ifade eder ve aldığımız miktara göre zihnimizde canlanan, ismi aynı kalmasına rağmen, değişir. Gördüğümüz gibi Logo aslında bizim zihnimizin çalışmasına benzer ilkelerle çalışır. Bu nedenle BASIC gibi diğer programlama dillerinin mantığını Logo'yu öğrenirken bir kenara bırakmak, doğrudan kendimiz gibi düşünmek zorundayız. Şimdiye kadar yaptıklarımızı kaydetmek için disket sürücüsüne formatlanmış bir disket koyup SAVE "CALISMA yazalım. Bu şekilde yaptığımız tüm çalışmalar kaydedildi.
CATALOG yazdığımızda, CALISMA.LOGO adını görebiliriz. Kaydettiğimiz, çalışma alanındaki tüm çalışmaları içeren bir listedir. Başka bir zaman bunları kullanmak için,
READ "CALISMA dememiz gerekir. PRINTOUT dersek çalışma alanımızda var olan tanımlamaların bir listesini görebiliriz. Şimdi GOODBYE diyerek çalışmayı bitirelim. Bu şekilde çalışma alanı tamamen silinip, Logo ilk açıldığı ana geri döner. Hoşça kalın...