Bu sayfadaki yazılar
Sayfanın metni
Sayfa 78
Üç adet alt programımız var. Bunlardan kaç, saati okuyor; akrep, akrebi silip yeni yerine yazıyor; yel, ise aynı işlemi yelkovanla yapıyor. Alt programlar kullanmanın yararı burada açık. Ben akrep ve yelkovanı düz çizgi olarak çektim. Ancak program zaten dakikada bir çalışıyor. Dolayısı ile çok detaylı birer ibre çizmek mümkün. Yeni bir ibre kullanmak için yapmanız gereken sadece bu kısmı değiştirmek olacak.
Alt programlarda açıyı hesaplarken kullandığım a değerinin hesabı biraz karmaşık gelebilir. Bunun sebebi açıların saat 3'te 0 olup saat yönünün tersine artması. Biraz matematik ve biraz deneme yanılma sorunlarımızı hallediyor. Belki sonuç karmaşık gözükebilir ancak, çok basit adımlarla ulaşılabiliyor.
WINDOW komutu ile pencerenin genişliğini okuma ve tüm hesapları bu değerlere göre yapma insanı oldukça rahatlatıyor. Alt programları yazmadan doğrudan programın arasına bölümleri eklemek programı yazarken daha kolay. Ancak değişiklikleri zorlaştırıyor. İnsanın bazen kendini kontrol edip ilerde rahatlamak için önceden biraz sıkıntı çekmesini öğrenmesi gerekiyor. Her neyse umarım hoşumuza gider. Şimdi değinmek istediğim konu, dergiye gelen mektuplarda sıkça sorulan bir konu: Amiga Basic ile dosya açmak. Hemen program dökümleri vermek yerine biraz konu üzerinde konuşalım. Dosya açmak nerede işinize yarar? İlk olarak hafızadaki bir bilgiyi (Örneğin kendi yazdığınız yazı programı ile hazırlanmış olan bir yazıyı) diskete aktarıp saklamak veya diskette bulunan bir dosyayı (Örneğin Deluxe Paint ile çizilmiş bir resmi) hafızaya almak ve kullanmak için dosya işlemleri gerekir. Bu tür işlemler için kullanılan dosyalara İngilizcede SEQUENTIAL (sıralı) denir. Sıralı denmesinin sebebi buradaki bilgiyi yazdığınız sıra ile geri alabilmeniz. Bunun yanısıra özellikle adres defterleri, telefon defterleri gibi benzer formatta birçok bilgiyi (100 adet telefon numarası gibi) saklayabilmek için RANDOM ACCESS (Rasgele erişim) adı verilen bir dosyalama çeşidi mevcut. Bu dosyalama çeşidi sözü edilen uygulamalarda çok gereklidir ve sıkça kullanılır. İlk olarak her bir bilginin nelerden oluşacağı belirlenir (FIELD). Örnek olarak bir telefon defteri 10 karakter isimden, 20 karakter soy isminden ve 11 karakter numaradan oluşsun. Bilgisayar böylece bu düzende bilgileri diskete yazıp okuyabilecek hale gelir. Buraya kadar çok özel bir şey yok. İşte şimdi bu dosyalama türünün güzelliği ortaya çıkıyor. Bilgisayar her kaydettiğiniz bilgi paketini bir numara ile tanıyor (Kayıt numarası). Bilgiyi bu numara ile kaydedebiliyor ve okuyabiliyorsunuz. Kısaca 100 telefon numarası olan bir dosyadan numarasını bildiğiniz takdirde istediğinizi hemen bulabiliyorsunuz. Yani tüm 100 numarayı okumadan hemen TAK diye istediğiniz numaraya erişebiliyorsunuz. İşin teorisi bu.
Gelelim pratiğe, ilk olarak dosya açma işlemi var. Burada ilk olarak bir dosya numarası kavramı ortaya çıkıyor. Aynı anda birçok dosyayı okuma ve yazma şansınız var. Dolayısı ile açık olan dosyaları birbirinden ayırt edebilmek için birer numara veriyorsunuz. Dahası açacağınız dosya ismi giriliyor ve en kötüsü ise dosya türü belirleniyor. Sıralı (Sequential) dosyalar açmak en zoru burada bir de yazmak için mi (OUTPUT), okumak için mi (INPUT) yoksa eklemek için mi (APPEND) dosya açtığınızı belirtiyorsunuz. Bir diğer önemli olay açılan bir dosyayı MUTLAKA K A P A T I N ! ! yoksa yaptığınız değişiklikler kaydolmaz.
Artık konuyu biliyorsunuz, şu emirleri el kitabınızdan veya dergi açıklamalarından yararlanarak incelemeniz tavsiye edilir: OPEN, CLOSE, FIELD, INPUT#, LINE INPUT#, GET, PUT, PRINT#, WRITE#. Artık daha çok şey biliyorsunuz, şimdi bazı sorunlarla tanışmanın tam sırası. Sequential dosyalar hiç sorun yaratmaz.
REM RAM:Deneme isimli dosyayı yarat, dosya numarası 1
Pi= 3.1415 OPEN "RAM:Deneme" FOR OUTPUT AS 1 FOR F= 0 TO 90 step .2 A = SIN((F*pi)/180) d$= STR$ (A)
PRINT #1,"SINUS ",F, " = ",d$ NEXTF CLOSE 1
Program size hemencecik RAM: a deneme isimli bir dosya açarak 0'dan 90'a kadar olan açıların sinüsünü yazacak. Size kalan (Varsa) bu dosyayı bir Printer'a aktarmak. (Printer'a bastırmak için bu yolu kullanmak zorunda değiliz.) Her ne ise. Açıkça görülüyor ki bu dosyalar fazla sorunlu değil. Gelelim birçoklarının takıldığı telefon defterlerine. Etrafta birçok örnek telefon defteri programı görmek mümkün. Ne var ki bu defterinizin basit bir telefon defterinden kullanışlı olmasını istiyorsanız bazı sorunlarla karşılaşacaksınız. İlk sorun disket okuma hızından kaynaklanıyor. Amiga dosyayı disketten okuyana dek çok kıymetli zaman kayboluyor. Bunu engellemenin en basit yolu gereken dosyaları RAM:'da tutmak. Hafıza sorunları ile karşılaşmıyorsak sorunlarımızı bir süre için dindirecek bir çözüm. Tabii ki çakılmalara ve resetlere karşı korumak için RAD: tavsiye edebilirim. (Özellikle VI.3 kullananlar). Ancak yapılan değişikliklerin eninde sonunda diskete aktarılması gerekecektir.
Tüm bunlar tamam kendinize bir defter hazırladınız ve defterde tam 500 adet isim var. Siz de tuttunuz F. Kağan Gürkaynak beyefendinin telefon numarası ne imiş diye merak ettiniz. İşte en büyük sorun burada başlıyor. RANDOM ACCESS adı verilen rasgele erişimli dosyalar eğer kayıt numarası biliniyorsa o kaydı doğrudan okumanızı sağlayacaktır. Yani benim kayıt numaramı bilmiyorsanız tüm kayıtları teker teker okuyarak girilen isimle aranan ismi karşılaştırmak ve doğru ismi aramak zorundasınız. Sizi temin ederim ki hiç verimli bir yöntem değil. Eğer dosyalarınız alfabe sırasına göre dizilmiş olsa aramanız belki biraz daha kolay olurdu. Bu düşüncenin ne kadar iyi bir çözüm olduğunu düşünmeden önce 500 adet ismi dizmenin ne kadar külfetli bir iş olduğunu düşünün. Kısaca eğer kayıt numarasını herhangi bir şekilde bilemiyorsak Rasgele erişimli dosyalar çok yararlı olmuyorlar. (Sakın aklınıza her kayıt yaptığınız adamın ismini ve kayıt numarasını bir deftere yazma fikri gelmesin.)
Gelecek yazımızda nispeten kullanışlı bir telefon defteri tasarlayacak ve yazacağız. Umarım anlattıklarımın yararını görüyorsunuzdur. (İletişim 0'da) Gelecek sayıda görüşmek üzere.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 79
Yop! yop! Virüsler iş başına! Hazırsanız bu ay full hızla başlayalım. Size dergiden bazı haberler vermek istiyorum.
¬ Derginin metalci yazan Sayın GÖK-MEN BAYIN, Haliç tersanesinin hurdalığından sekiz ton demir çalarken yakalandı. Olay sonrası kendisi ile konuşma fırsatı bulduğumuz GÖKMEN şunları söyledi:
- Valla kötü bir niyetim yoktu. IAN GILLAN'nın konserinde takmak için biraz aksesuara ihtiyacım vardı. Ben de burada ilginç şeyler buldum aldım. Sahibi olduğunu bilseydim almazdım.
GÖKMEN'in aldığı demirler arasında üç tane gemi çapası, iki tane eski boğaz hattı vapuru ve Kadıköy tarafında batan INDEPENTENTA tankerinin gövde kısmı da bulunuyor.
Dergimizin Acayip baba pilotlarından
(kendilerine göre! Heheh selam BOYZ!) KAĞAN ve AĞAN biraderlerinin yükseklik korkularının olduğunu biliyor muydunuz? Ya bu iki pilotun aslında fanatik shoot'em up oyuncuları olduklarını? Yakında dergide shoot'em up'çılar HA-MAMI diye bir köşe açacaklar. Bizden söylemesi!
¬ Kendisine gelen telefon faturalarını görünce deliren OBITUARY, kendisine geldi. Aklı başına gelen OBİ benim burada kaç tane işim var? Saat kaçtı mı? Peder yine evlatlarına ne demiş gibi sorular sorduktan sonra uçağa atlar atlamaz KAN ADA'dan TÜRKİYE'ye geldi! Telefon faturalarını tekrar kağıt yapılmak üzere SEKA'ya veren OBİ, oldukça iyi para kazandı. Boğazda villa alan OBİ, benim BEBEK'te bir arkadaşım vardı dedi. Bu işte iyi para olduğunu gören OBİ, çingenlerle anlaşarak kağıt toplama ekipi kurdu. Ekibin ismi büyük olasılıkla ENDLESS PIRACY olacak.
¬ Çiçeği burnunda yazarlardan SÜHA, bana niye benimle ilgili haberler yazmıyorsun, dedi. Kendisi kaşındığı için yakında SÜHA ile ilgili haberleri burada görebilirsiniz.
¬ Evet bu arada komik resim yarışması devam ediyor. Niye kendinizin resmini burada basmıyorsunuz diye soran okurlara yakında bir süprizim olabilir.
¬ Galiba şimdilik bu kadar, gelecek ay tekrar görüşmek üzere hoşçakalın. Byeee!