Bu sayfadaki yazılar
Sayfanın metni
Sayfa 24
PROGRAM ADI :
68130
gazan Bazda
Ba25a
Bıasa
01138 B11408
RECURSTON
REM öle Ae KOİ OKKA OAK REM * * REM &* MAZE SOLYING * REM * RECURSİYE VERSİON * REM * (C) 2.10.1986 THURSDAY * REM * BY AYHAN KALAYLIOGLU * REM * * REM ak olak ak
GOSUB 800
4SPACE >- PRINT RINT FOR TO " #NEXT INT PRINT TO *
"4" FOR Yz2 TO YU-L1:PRINT FOR TO
3PRİNT PRINT TO "4 "33NEXT "Ex"
FOR TO " INT PRİNT :PRİNT PRINT "RUN 1880“ END END KUS 10: YUZ 10:RETURN GOSUB Sad DIM FOR Isi TO 4:READ DATA -1,0,0,1,1,0,0,-1 FOR TO YUY*L:FOR X-00 TO XT :NEKT FOR TO TO IF CDzi9 THEN IF THEN IF THEN IF ACX,YIs254 THEN Y;2)-43 NEXT IF Ss0 OR E-zâ THEN PRİNT D YEYS GOSUB
:PR
"HATAL":EN
<154) <159> <asa> <a245> <a58>
<1s2>
<a26>
<148>
<088> <aa2a> <a51> <246>
<1sa> <1a7> <isa> <168> <113> <aa2a5> <a57>
<129>
Klavyeyle gezinmek için ← ve → tuşları.
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.