1 Haziran 1986 Tarihli Commodore Gazetesi Sayfa 24

1 Haziran 1986 tarihli Commodore Gazetesi Sayfa 24
Metin içeriği (otomatik olarak oluşturulmuştur)

Biliyorsunuz, COMMODORE 64 için program yazarken, NEXT komutunun arkasında yer alan değişken adı ya- zılmasa da oluyor. Bir de bunu dene- yelim, bakalım ne olacak? 50 NEXT Böylece elde ettiğimiz TEST12'nin za- manı, 41 saniye ile TEST141'e »9.09 ve TEST4'e de 90.43 fark atıyor. Eh ar- tık iyice hızlandı. Acaba biraz da- ha?... Ama önce yeni kurallarımız: ll DİKKAT 5 !! * Döngüleri kurarken, IF...THEN yeri- ne FOR...NEXT komutunu kullanmak avantaj sağlayacaktır. * NEXT komutunun arkasından ge- len değişken adı yazılmadığında, programın hızı artacaktır. Şimdiye kadar programı hep hızlan- dırdık, biraz da yavaşlatalım. TEST13'ü verildiği gibi yazın. Burada programı biraz süslemek, biraz da açıklayıcı ha- le getirmek için REM komultları kattık. Ölçüm sonucunda da göreceğiniz gi- bi, programımız 1.2 saniye ile 420 ya- vaşladı (TEST12'ye göre). Eğer bu REM komutlarını ve diğer komutlar arasında bulunan ve prog- ramın okunaklılığını artıran boşlukları ortadan kaldırırsak, dökümünü verdi- ğimiz TEST14'ü elde ederiz. Çalışma zamanı olarak ölçeceğimiz 1 saniye, sanki bize “Aferin, iyi ettiniz!” der gi- bi, di mi? Artık son adıma geldik. TEST1'in ala- bileceği son hızı şimdi göreceksiniz. Her şeyi tek satırda toparlayacağız. Ama bunun için COMMODORE 64 el- kitabında belirtilen komut kısaltma yöntemlerine ihtiyacınız var. Biz gene de bir özetleyelim: PRINT için ? işareti, CHRS için C ve SHIİFT-H, FOR için F ve SHİFT-O, NEXT için N ve SHİFT-E, POKE için P ve SHIFT-O. Artık TEST15'i yaratabiliriz: 10 TIS — “000000“:PRİNT CHRS(4147):FORZ - 1TO 374:PRİNT“A”;:NEXT: POKE214, 18:PRINT: PRINTTI/60 “SANİYE”: END Elde ettiğimiz 0.96 saniye ile TEST414- den 94 ve TEST1'den de 490.8/1 hızlı bir program elde ettik. Düşünün 10.45 saniyeden 0.96'ya inebildik. Hani COMMODORE 64 yavaştı? lll DİKKAT 6 !!! *REM komutları ve komutlar arasın- da boşlukları olmayan programlar daha hızlı çalışır. * Satır sayısını azaltmak amacıyla, bir satıra sığdığı kadar emir koymak da hız sağlayacaktır. Ancak, bu son kuralların programın okunurluluğunu da tamamen orta- dan kaldırdığını unutmayın lütfen! Başta, makina dile yok demiştik. Ama gene de, deminden beri uğraş- tığımız şeyi, yani 374 tane A yazma İşi- ni yapan bir makina dili Programının da süresini ölçelim dedik. Hadi şimdi de TEST16'yı yazıp çalıştırın. Sonuç 0.083 saniye ile TEST4*e 499.20 fark!!! Fazla söze gerek yok... Bundan sonra, BASIC'in değişik yön- lerini inceleyeceğiz. Örneğin, iki sayıyı 300 kere birbiriyle çarpalım. Bunun için önce TEST17'yi yazın. Çalıştırıp, za- manı ölçmeye kalkıştığınızda lütfen sabırlı olun: 13.083 saniye. Kamlum- bağalar kıskanacak? Ufak bir numara yapalım. İki sayının yerini değiştirelim. Şu ufak değişiklik- le TEST18'i hazırlayın: 40 A-0.123456789*3 Zamanı ölçtüğümüzde, gerçekten de bir hızlanma görüyoruz. 12.683 sa- niye ile az ama gene de 43.05'lik bir hızlanma. Tıpkı 15643 *5'in hesaplan- masının 5* 15643'ün hesaplanmasın- dan daha kolay olması gibi. Haydi, minicik bir değişiklik daha yapalım. Ondalık noktasından önce gelen sıfır rakamını atalım (TEST 19). 40 A-.123456789*3 12.483 saniye ile TEST17'den X4.58 daha hızlı olduk. !! DİKKAT 7 !!! * Bir çarpma işlemi sırasında, daha uzun olan sayının İlk sayı olarak yazıl- ması gerekir. * Sıfır sayısı yerine sadece ondalık nokta koymak daha fazla hız sağla- yacaktır (A—0 yerine A— .). Ayrıca, on- dalıklı sayılarda -1 ile 1 arasındaki de- ğerleri yazarken, ondalık noktasından önce gelen sıfır rakamı yazılmamalı- Bir de daha önceden öğrendiğimiz, değişken metodunu uygulayarak TEST20'yi elde edelim: 25 B-.123456789:C-3 40 A-zB'C Göreceğiniz gibi, aniden 488.53'- lük bir hızlanma ile 1.5 saniyeye ge- leceğiz. Nasıl ama?! Şimdi de aynı programı, bilgisaya- rımızın üslü sayıları hesaplamaktaki hı- zını görmek için kullanclım. Verdiğimiz TEST21'i yazın ve çalıştırın. Göreceği- niz gibi, 4'ün kübünü 300 kere almak bize 10.53 saniyeye patlıyor.

Bu sayıdan diğer sayfalar: