Bu sayfadaki yazılar
Sayfanın metni
Sayfa 16
— — 1
4115/0710)
9 1 0 1 Konu
Konu 2-evet Konu 3-hayır Konu Konu 5-evet Konu 6evet
2. Byte
Basıc ve Makine
Kodunda Özdeş Arama
SYS (veya JSR) ile 'BEGIN' yordamını çağırma, bulunan kaydın numarasını sicildeki (register) değer olarak geri
Konu 7-hayır” döndürecektir. Eğer bu değer sıfır ise bulunan başka kayıt yok demektir. İlk
ŞEKİL 3: Konular veya diğer evet-hayır türü veriler ayrı bitler biçiminde
kodlanabilir. kayıt bulunduktan sonra arama SYS Konu 9-evet (veya JSR) ile “DECPT” yordamı çağ- | rılarak devam ettirilebilir. "BEGİN" ANAHTAR'ı BUFFER'a yerleştir. POİNTER'ı (gösterge) BİR SONRAKİ BÜŞ KAYIT No'ya ayarla. "DECPT" POİNTER'ı bir eksilt. Sıfır ise RETURN dön). Program 1 BASIC ilet id TİNKER PROGRAM 8: 20 FOR TO LENM-İ 0000 * 1) | BASIC ve KODUNDA 'İçerik Arama Prograrm i'deki yordama benemektedir. IF THEN RETURM IF "DECPT" *BEGİN" ANAHTAR'ı BUFFER'a SA MEST yerleştir. BİR SONRAKİ MAKİNE KODU ile: BOŞ KAYIT na'ya ayarla "DECPT" FOİNTER'ı bir Sıfır ize R İRN POİNTER*LEN'i REGİSTER'a aktar. ÖFFSET'i REGIİSTER'a &kle BASIC ile! LOY #8 120 "CONT"LDA <(REİSTER),Y 20 FOR & TO LEN-İ BE "END" 30 CMP dü IF ENE "DECFT" THEN RETURN IRY SA CPY #LEN BCC Nez: dizin sözcük uzunluğu, dizin sözcüğün adrezi. 0d aaa
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 17
MAKİNE DİLİ ile:
POİNTER CFFSET'i LOY #E "CONT"LOA EÜR #£FF EOR XKBUFFER),Y INY CPY
#LEN "CONT"
Nat
OFFSET sözcük
Sıfırıncı ve LEN'i aktar. ekle.
uzunluğu dizin sözcüğün adresi
Girişin Planlanması
Tartışılan bir başka teknik, kayıt biçimine göre bir dizin dosyası yaratmaktır. Örneğin:
Yazar Konu Başlık
Yıl Yazar Dizin
(KAYIT 2)
İlk kaydınızı girdikten sonra-yazar, konu, başlık, yıl- o kaydın sonunda dizin dosyası yaratmak için birkaç byte ayrılabilir. Burada bitmap kullanmak aramayı kolaylaştırmak bakımından yararlı olur. Her alan için dizinde bir byte kullanırsanız her alan için 256 olasılığınız olur. Bu da genellikle yeter de artar. Daha evvel incelediğimiz örneği ele alırsak 1000 0000 biçiminde bir bit yerleşimi, konunun bilgisayar üzerinde olduğunu gösterir. İkili tabandaki 1000 0000 sayısının tam sayıdaki karşılığı 128 olduğundan bunu karşılaştırmak için AND işlemini kullanabilirsiniz. Örneğin konu alanı için KO değişkenini seçtiğinizi düşünelim. Uygun bir satır şu şekilde olur:
IF KO AND 128 THEN GOTO N
N ekrana ya da printer'a yazdırmak için bir komutun bulunduğu satır olarak düşünebilir. AND işlemini kullanırken, bilgisayar her biti kontrol eder. KO içindeki değer, 1000 0000, 128 ile karşılaştırı-
1000 0000 (KO) 1000 0000 (128)
1000 0000 (sonuç)
Boolean doğruluk tablosu bu karşılaştırma işleminin sonucunu “doğru”
olarak saptar ve aramanız amacına ulaşır. Bazı durumlarda dizinlerken (indeks), istediğiniz konuların toplam sayısına bağlı olarak ikili sistemdeki eşdeğerlere değişik adlar vermek daha pratik olabilir.
E- 18 B-2 Cz4 Gz64
O zaman satırımız şu biçimi alır: IF KO AND H THEN N
Daha özel bir konuyu ele alalım, eğitimde bilgisayarın rolü gibi. Eğitim konusunu ikili sistemde bir sayı verelim: 0100 0000 (tam sayı olarak 64). Bilgisayar konusu da 1000 0000 (128) idi. Bilgisayar ve eğitimle ilgili bir kitap da o zaman 1100 0000 (192) olurdu. Bu durumda araştırma satırımızı şöyle oluşturmamız gerekli:
IF KO AND 192 THEN N
Bu yöntemi kullanırken, dizinlemeyi oluşturmada çok dikkatli olmanız gerektiği açıktır. Hangi dizinleme yöntemini kullanırsanız kullanın dikkatli olmalısınız, araştırma hızınız ve doğruluk buna bağlıdır. Bitmapping metodunu kullanmamayı tercih ederseniz, bir şeye dikkat etmeniz gereklidir: Dizinleme dosya-
Sistemin Girdi (Input) Problemleri
Şimdi biraz da girdi ile ilgili sorunlara bakalım. Kullanılması kolay bir sistem istiyorsunuz. Bu, kullanıcıya neler olup bittiği hakkında ipucu vermekle olur. Bunun bir yolu ekranda en üst satırın, programın ne yaptığını ya da ne beklediğini belirtmek üzere ayrılmasıdır. Programın kullanımının kolaylaştırılmasında diğer bir önemli husus da ekran formatını mantıklı ve anlaşılması kolay yapmaktır. Yeni kayıtları girerken, programı bozmadan düzenleme, silme, değiştirme olanakları sağlanmalıdır. C64 gibi bazı bilgisayarlar virgül içeren bir dizi girdisiyle baş edemezler. Bu tür bilgisayarların işletim sistemi sınırlandırıcıları bir girdi olarak yorumlar. Ancak yayın adlarını girerken de virgüller önemlidir. Bu da sözü geçen bilgisayarlarda virgülde kesmek zorunda kalmadan dizileri yerleştirmenin bir yolunu bulmamız gerektiği anlamına gelir. Bunu yapmanın çeşitli yolları vardır. GET komutunu kullanarak diziyi byte byte oluşturmak mümkündür. Bu çeşit problemler başlangıçta çözümlenmelidir. Veriler girilirken küçük olan sorunlar daha sonra büyüyebilir. Virgül yerine başka bir şey koymak zorunda kalmak insanı çok uğraştırabilir. Girdilere ilişkin bilinmesi gereken bir şey de programın, her girdinin disketteki kayıt sayısını ve dizindeki dosyasını bilmesi gerektiğidir. Yeni bir kayıt girildiğinde disketteki sonraki boş yere gitmelidir. Yeni kaydın dizinleme sözcükleri uygun dizinleme dosyalarının sonuna konmalıdır. Bu bilgilenmeyi korumanın yolu gelecek kayıt numarasını işaret eden bir sicil (register) koymaktır. Yeni bir kaydın girilmesiyle sicil bir kez artar. Dizinleme dosyalarını saklarken (SAVE), bu sicili de SAVE etmeniz gerekir. Eğer sicil dizin dosyalarınıza bitişikse hepsini birden kurtarabilirsiniz.