BASIC READY. 100 REM VERİ KAYITLARI 110 DİM AS(8),BS(8) 120 FOR1-1 TO 8&:READ ASID:NEXT 130 DATA “AD', “SOYAD", “DTARIH”, “SOKAK”, “SEMT', “SEHİR”, “SUREKLİ/GECİCİ”, G i 140'PRIİNT “İd'; PRİNT TAB(10); “VERİ KAYITLARI':PRIİNT TABC0); z 150 FOR 1-1 TO &8:PRİNT ÇASI); . CİNPUT BS0): NEX READY. Kısa ama karışık: BASIC'de veri soruşturması. LOGO TO S :X :ORD : REPEAD 4 ICIZ :X :ORD SAGA :X) END END TO CIZ :X:0ORD IF :ORD - 1 THEN FORM :X STOP CIZ :X:ORD — 1 SAĞA :X CIZ :X:ORD — 1 SOLA :X CIZ :X:ORD — 1i SAĞA :X CIZ :X: ORD — 1 ND TO FORM :X REPEAT 2 IFORWARD :X LEFT 451 FORWARD :X END TO SOLA :X LEFT 45 FORWARD :X LEFT 45 END TO SAĞGA :X program dosya; type tarih - record gün: ay: yıl: end; adres -record ad: sokak: case denk: true: PASCAL İaği; İzel2; 1890..2000; stringi80l; stringl80l; tarih; 1000..8999; stringl80l; stringl80l; boolean of (geçici: real); C false; end; var düzeltici: adres; sahte; stringl80l; begin writeln ( bilgi girisi ); writeln ( ——— İ; with duzeltici do begin write (ad.......... readiIn (ad); end; end. “Sierpinski-eğrisi 'ne ilişkin LOGO programı dört adet alt-rutine (SAĞA, SÜ ORM, CIZ) ve bir adet ana yordama sahip (5). 10 Buna tekabül eden Pascal programının uzun olduğu açık, ama ilk bakışta kavranması da çok daha kolay. başvurmuş olana gerekli bilgiyi veri- yor, bu bilgiyi alan da kendi tanıdı- ğına bunu aktarıyor, o da öbürüne, tâ ki dostunuzun sormuş olduğu şey kendisine ulaşıncaya kadar. Recursion mekanizması en basit durumda böyle işlemektedir. Ama örneğin bir kitabın çözümlenmesi sözkonusu olduğunda karmaşık du- rumlar ortaya çıkabiliyor. Kitap ön- ce bölümlere, bölümler cümlelere, her bir cümle dilbilgisel kategorilere, her kategori alt-kategorilere, her alt- kategori kelimelere, her kelime hece- lere ve her hece de harflere ayrıştırı- liyor. Ayrıştırma süreçlerinin hepsi birbirine benzemektedir. Ama bir ay- rıştırma işlemi her zaman ânında ta- mamlanmamakta, muhtemelen de bir sonraki evrenin çözümlenmesine bağımlı kalmaktadır. LOGĞGO'nun somut diline çevrildi- ğinde bunun anlamı şudur: En basit rekürsif fonksiyon -belki de okul dö- nemlerinden hatırlayacağınız- faktö- riyel işlemdir. Bu işlem, sayının ar- dından gelen bir ünlem işaretiyle ifa- de edilmektedir: 3!-1x2x3-6. Ancak, rekursif olarak bu fonksiyon şöyle tanımlanmaktadır: N sayısının faktöriyeli, ilkin N-1'in bulunması ve bunun da N sayısı ile çarpılması yo- luyla hesaplanmaktadır. Bunun içinse tabil önce (N-1)! sayısının bilinmesi gerekmektedir ki, bu da (N-2)den çı- karılmaktadır... vb. Ta ki N-1'e ulaşıncaya kadar. Çünkü matematik- çiler 1'in faktöriyel değerinin | oldu- ğunu saptamışlardır: 1! - 1. LOGO'da ise bu şöyle ifade edil- mektedir: N THEN OUTPUT | OP ELSE OUTPUT: N*FAK (: N-1) Bu formülü şöyle açıklayabiliriz: Burada **N” N'in değeridir. “OUT- PUT” ise bir şeyin geri verileceğini göstermektedir. Çünkü her LOGO- yordamı tek bir görevi yerine getirir. Bu görevi dolaysız olarak yerine ge- tiremediği takdirde, komutu bir alt- programa iletir. Bu alt-program söz- konusu komutun yordam tanımını te- min eder ve sorunu çözmeye çalışır. Eğer başarılı olamazsa, o da tıpkı bir önceki gibi yaparak komutu bir alt- alt-programa aktarır. Bu işlem, ko- mut vericilerinden biri istediği sonu- cu alıncaya kadar böylece sürüp gi- der. Bu durumda sonuç bir önceki komut vericiye iletilir (OUTPUT ta- limatı aracılığıyla). Bu da bir kez da- ha görevini yerine getirmeyi dener.