1 Aralık 1987 Tarihli Commodore Gazetesi Sayfa 54

1 Aralık 1987 tarihli Commodore Gazetesi Sayfa 54
Metin içeriği (otomatik olarak oluşturulmuştur)

rafından yaptırıldıgını bılıyoruz Bu yüzden, bunlar üze- rinde fazla durmayacı Bunların dışında sayısal bir parametre alan ve aritme- tik bir hesabın sonucu olan bir çıktı üreten komutlar şun- lardır: ROUND :X.Y :X (gerçek bir sayıyı yuvarlar) Örnekler: ROUND 3.7 RESULT: 4 ROUND 3.4 RESULT: 3 INTEGER :X.Y :X (gerçek bir sayının tamsayılı kısmı- nı verir) Örnekler: INTEGER 3.7 RESULT: 3 INTEGER 3.4 RESULT: 3 OUOTIENT :X:Y IİNTEGER (:X/:Y) (İki gerçek sayı- nın bölümünün tamsayılı kısmını verir) Örnekler: OUOTIENT 7 2 RESULT: 3 OUOTIENT 1 2 RESULT: 0 Burada dikkat edilmesi gereken bir nokta, OUOTIENT7'ın girdilerini önce ROUND işlemine tabi tuttuğudur. Örnek: OUOTIENT 7. 2 3.4 RESULT: 2 ÇUOTIENT 7.2 3.6 RESULT: 1 REMAINDER (İki tamsayının bölumunden kalanı verir) Örnekler: REMAIİNDER 7 2 RESULT: REMAINDER'”ın parametreleri olarak gerçek (onda- lıklı) sayılar verilirse, aynen OUOTIENT'da olduğu gi- bi, bunlar da ROUND edilir. SORT (Karekök) Örnekler: SORT 160 RESULT: 12.6491 SORT 16 RESULT: 4 Aritmetik komutlar arasında bir de trigonometrik fonksiyonları sayabiliriz: SIN ve COS, SIN 0, çıktı ola- rak 0, COS O çıktı olarak | verir. Tesadüfler Dosyası Son olarak da, özellikle karmaşık işlemler yazarken di- ğer bütün aritmetik komutların çıktılarına sık sık başvur- mak zorunda kalacakları bir çift aritmetik komutu gö- relim. Bu ikisi birarada bir rastlantısal sayı üretici ola- rak çalışır. Bunlardan birincisi RANDOM komutudur ve girdi ola- rak tamsayılı bir parametre gerektirir. RANDOM :X, çık- tı olarak 0 ila X-1 arasında yeralan bir rastlantısal sayı verir. Peki, RANDOM komutu bu işi gördüğüne göre, rast- lantısal sayı üreticisi olarak ikinci bir komuta niçin ihti- yacımız olsun? Bu sorunun ayrıntılı cevabını Commodore Dergisi'nin X. sayısında yeralan Rastlantısal Sayılar ya- zısında bulabilirsiniz. Burada şu kadarını söylemekle ye- tinelim: Diyelim ki, O ila 9 arasında bir rastlantısal sayı üreteceğiz. Bunu yapmak için bilgisayar bir “çekirdek”' sa- yıdan yararlanır ve bunun üzerinde belli işlemler yapa- rak çeşitli sayılar üretir. Bu “çekirdek”' sabittir. Dolayı- sıyla, iki ayrı seansta, arada Logo programını kapatıp yeniden çalıştırdıysanız, verdiğiniz RANDOM komutla- rı aynı sayı dizilerinin üretilmesine yolaçacaktır. Bu ise rastlantıdan beklediğimiz şeye ters düşen bir durum. Bunu önlemek için rastlantısal sayı üretirken kullanı- lan çekirdeğe doğrudan doğruya müdahale etmemiz ge- rekir. İşte RANDOMİIZE komutu bunu yapmamızı sağ- lar. Komut yalnız başına da, bir parametre ile de kullanı- labilir. Yalnız başına kullanıldığında çekirdeğin kendisi rastlantısal olarak tayin edilir. Bir parametre kullandı- ğınızda ise, çekirdeği siz belirlemiş olursunuz. Bir para- metre ile birlikte kullanılırken RANDOMİIZE komutu- nun parantez içine alınması gerekir. (RANDOMIİIZE 28) gibi. Şimdi RANDOMIZE komutunun işlevini bir örnek üzerinde görelim. Bu örnekte üstüste bir dizi rastlantısal sayı çağıracağız ve aynı çağrıları birkaç kez tekrarlama- mız gerekecek. Bu yüzden, ben kolaylık olsun diye şöyle bir işlem yazdım: TO RAST REPEAT 4 |PRINT RANDOM 10| REPEAT 4 |PRINT RANDOM 7| REPEAT 3 |PRINT RANDOM $)| END Buradaki sayılar önemli değil, isterseniz değiştirebilirsi- niz. Önemli olan, RANDOM komutunu aynı paramet- relerle ve aynı sıra içinde birkaç kere üstüste çağırmak. Şimdi herhangi bir parametre kullanarak RANDOML- ZE komutunu verin. Ben (RANDOMİIZE 28) komutu- nu kullandım ve RAST işlemini çalıştırdığımda şu sonu- cu elde ettim: 91791041163 2. Şimdi yapmamız gere- ken herhangi bir başka parametre ile RANDOMIİIZE ko- mutunu tekrar vermek. Bunun üzerine RAST komutu- nu verdiğinizde başka bir sayı dizi elde ettiğinizi görecek- siniz. Ama şimdi tekrar (RANDOMİIZE 28) komutunu verip RAST”ı çalıştırırsam yine ilk onbir sayı olarak, ilk baştaki aynı onbir sayıyı elde ediyorum: 91791041 6 3 2. Çünkü belli bir çekirdekten üretilen rastlantısal sa- yılar hep aynı sıra içinde üretilirler. Artık, geçtiğimiz sayıda vaad ettiğimiz, LOGO dilinin bütün aritmetik işlemlerinin sayımına geçiyoruz: Hatırlayacaksınız, geçtiğimiz sayıda, renkli güneş çiz- menin iki yolu var, demiştik. Kolay ve dolambaçlı olan- dan kasdettiğimiz, bu bölümün başında gördüğümüz ve koşullu komutlarla, LOGO'nun dönüşlülük özelliğinden yararlanan çözümdü. İkinci çözümünse daha çok şey bil- meyi gerektirdiğini söylerken kasdettiğimiz RANDOM komutu idi. Artık yeni bir GUNES işlemini, dönüşlülü- ğe ve koşullu komutlara hiç başvurmadan, şöyle yazabi- liriz: TO GUNES3 REPEAT 72/PC RANDOM 16 DORTGEN RT 5| ND Bu işlemde, 72 tekrarın her birinde, RANDOM fonk- siyonu, 0 ila 15 arasında bir sayı üretecek (unutmayın, RANDOM X, Oila X-I arasında bir rastlantısal sayı üre- tiyor) ve PC değişkenine aktaracaktır. GUNES3'ün GUNES”?'ye kolaylığından başka bir üstünlüğü daha var. GUNES?'de renk değerlerini biz birer birer artırdığımız için, renklerin değişmesi hep aynı sırayı izleyecektir. Oysa, GUNES3'te renk değerleri rastlantısal olarak üretildiği için, sonuçtaki şeklimiz çok daha alaca olacaktır. Daha hatasız sayılarda buluşmak ümidiyle, bu ay da bu kadar. Hoşçakalın. V| 35

Bu sayıdan diğer sayfalar: