Commodore sayı 69, sayfa 23
Sayfanın metni

Sayfa 23

Yazılımla da Yapalım mı?

Elektronikte işlerin nasıl yürüdüğüne baktığımıza göre, sıra yazılıma geldi sanırım. 30 kutulu ikili sayıların 300 saatten önce kendini tekrarlamadığını söylemiştik. Eğer 30 kutulu ve her kutuda 0'dan 9'a kadar sayılar olan bir sistem kursaydık ve saniyede bin değer okuyabilseydik, bu sistem kendini tekrarlamaya başlamadan önce tam 36,533,877 yıl geçmesi gerekecekti. Yanlış okumadınız, otuzaltı milyon yıl dedim. Tabii ki hepimiz bu rastlantısal sayıları bilgisayarımızda yaratmak istiyoruz. Bilgisayarımızı yukarıda anlattığım kutu sistemini kullanması için programlamak oldukça kolay. Her kutucuğa bir bayt ayırırsak, kutular maksimum 255 değerini alabilir ki bu değer bizim ihtiyacımız olanın kat kat üzerindedir. Kutuları çalıştırmadan önce her birine gerekli aralıkta bir sayı vermemiz gerekmektedir. Eğer tüm kutuları sıfırla doldurursak her seferinde oldukça rastlantısal olan sıfır değerini alırız. Programı yaparken Şekil 2'de bulunan kutuları birbirine gerekli MOD'da eklemeyi unutmayın. Bu yazılım kutularının gerçekten çalışması için şöyle bir mantık yürütmeliyiz: İlk olarak gerekli kutuları toplarız ve bu toplamanın değerini geçici bir yere yazarız. Daha sonra en son kutudan bir öncekini en son kutuya alıp, bu şekilde aşağı doğru inerek her kutunun değerini bir sonrakine yazarız. Son olarak da geçici yerde sakladığımız değeri ilk kutuya yazarsak bir tur tamamlamış oluruz. Herhangi bir kutudaki değeri çıktı olarak kullanabilirsiniz ama her okuyuşunuzda aynı kutuyu kullanmaya özen gösterin.

Şekil-2: Maksimum sayıda rastlantısal sayı elde etmek için birbirine eklenmesi gereken kutular bunlardır.

Programlarımız da Var

1. programımız (RND1) 21 kutulu, MOD 10'da çalışan bir makine dili program. Programı kullanmadan önce bu 21 kutuyu 10'dan küçük değerlerle doldurmayı unutmayın. Program 2 ise program 1'i belleğe yükleyen, daha sonra da çalışmasını size gösteren bir BASIC programı. Bu programı çalıştırdığınızda ilk olarak 21 basamaklı bir sayı girmeniz istenir. Daha sonra bu basamaklar kullanılarak üretilen tesadüfi sayılar ekrana yazılırlar. RND1 aslında bu tür bir uygulamayı yazmanın ne kadar kolay olduğunu anlatmak için yapılmış bir programdır. Program 3, yani RND2 kutuların 16'sını doldurmuştur ve yalnızca iki beşini size sorar. Daha sonra ilk sayı üretilmeden önce

2560 kere kutu kaydırılır ve bu sayede 'orijinal sayıların ortadan kaybolması sağlanır. Programı ilk kullandığınızda $2341'den çalıştırın, daha sonra $234A'ya sıçrayarak yeni rastlantısal sayınızı elde edin. Program 4, program 2'nin yaptığının aynısını program 3 için yapan bir BA-SIC programıdır. Bu iki program aynı şekilde çalışır ve 0-9 arası bir değer verir çıktı olarak. Eğer istediğiniz sayının basamak sayısı 1'den fazlaysa belli ku-

Klavyeyle gezinmek için ← ve → tuşları.