Commodore sayı 10, sayfa 25
Sayfanın metni

Sayfa 25

01150 01160 IF THEN PRİNT "HATA2" SEND O1170 FOR TO YUZFOR X-1 TO <a3a> IF AND THEN <a213> 01190 NEXT <177> PRİNT "<CLR><2DOWN><SSPACE N COZUMU" <193> PRINT "<4SPACE PRINT "GECEN ZAMAN <SAAT,DAKIKA,SAN ©1230 SEK LI" <160> B1240 "<4SPACE> <1aa> O1250 :PRİNT <186> I-1:GOSUB 2000 ©1270 PRİNT :PRİNT <aa6> 01280 PRINT "<SSPACE>COZULMUS SEKLİ" 01290 PRINT "<4SPACE > <163> 01300 PRİNT :PRİNT <238> 01310 2000 <a24> 01320 END FOR TO © STEP TO KUHL <254> 82010 PRİNT 3PRIİNT NEXT #:RETURN <181)> 10000 GOSUB 15000 <154> 100186 IF DA THEN RC-1:RETURN <aa5> 10020 IF DAzA THEN <162> 10030 IF DA THEN YEDYLDI *YEAC X,YI-SP:GOTO 10040 <150> 10050 SP-SP*1:MS-sP 10060 <083> GOSUB <144> 10080 SP-SP-i 10090 IF THEN RETURN <175> 18100 FOR TO YUZFOR TO XU <a7a> 10110 IF THEN <064> 10120 NEXT :NEXT 10130 <179> 10140 GOTO 10008 <198> 15000 <113> 15010 FOR Dsi TO 4 15020 IF THEN DA-5 15040 <a49> 15030 IF THEN DA-D 15040 NEXT <2182) 15050 D-DD <176> 15060 RETURN <130>

mesi açısından programı BASIC'te yazacağız. Fakat makine dili bilenleriniz bu programın makine dilinde yazılmaya daha uygun olduğunu anlayacaklardır. Mesela makine dilinde ana işlem ünitesinin yığınını kullanmak oldukça uygun olurdu. Fakat BASIC'te böyle bir olanağımız olmadığı için, suni bir yığın oluşturmak z0rundayız. Fakat bu göründüğü kadar kötü değil. Geri dönüş adresleriyle BASIC dilinin kendisi uğraşacağı için bizim yığınımız sadece bilgileri içerecek ve programımız daha kolay anlaşılır olacaktır. Programın dileyen kimse tarafından makine diline çevrilebileceğini düşünerek veri yapımızda kullanacağımız kodlamayı | Byte'a sığacak biçimde seçtim. Aslında bu şart mı?

Hayır hiç de değil. Kodlama yapılması eninde sonunda gerekli bir olaydır; fakat esnek ve değiştirilebilir bir detaydan başka bir şey değildir. Programın birçok bölümünün uygun ve rahat bir biçimde çalışmasını sağlar (aynı veri yapısını aynı şekilde değerlendirme zorunluluğu). Bir bakıma programın kendi içinde oluşturulmuş bir standarttır.

Kadlamamız şöyledir:

© Kullanılmıyor. 1 Birinci seviye B İkinci seviye 32 Üçün seviye

250 Çıkmaz yal 2851 Çözüm yolu

252 Hedef (E:End) 2853 Başlangıç

254 Dolu nokta (4) 255 Boş nokta

Görüldüğü gibi kodlamamız seviyelerin 1'den başlayıp 249'a kadar gitmesine izin veriyor. (249 yetecek mi diyenlerin merakını giderelim: Yaptığımız denemelerde 17'nci seviyeyi geçen pek olmadı.) Yaptıklarımızı derleyip toparlamak için rekursif altprogramımızın akış diyagramını çizelim. Böylece programın yapacağı iş daha rahat görünür.

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