61150 ailsüa gı17A giisa gı aa gizad aiızia giz2d gız3a oizda aız5a aiızsa gızr7a gızsa gizsea aı30d 01318 giızaa gzaada gaediıa 1ğağa 180818 iğaz2a 10030 10âdü 1casğa 18868 100F7Aa 1008ü iaa9a 106188 18118 1ğ182a 10130 10140 15888 15018 15020 15030 150468 15050 15068 U$F-zTI$ <azi; IF RCsA THEN PRIİNT "HATA2":END <8d6> FÖR Ysi1i TÜ YUSZFOR #-1 TÜ KLJ <832> IF <İS<ACK,YI AND A<X,YIS<MİS) THEN ACA,YOS2SLICIK,Y,O)S6E7 <213> NEST #:NEKT <i77> PRİNT "<CLR><2DOWN><S5SPACE >PROBLEMİ N COZUMU" <193> PRIİINT "<4SPACE ) sssasassessazezazazi <9049) PRINT "GECEN ZAMAN <SAAT,DAKIKA,SAN IYE): ";USF <di7> PRIİNT "<2D0LN><5SPACE>BASLANGIC SEK LI" <160> PRIİINT "<4SPACE ssasaaasssassasaz! <iga> PRINT :PRİIİNT <186> Is1:GOSUB 2008 <ai2> PRIİINT #PRIİNT <206> PRIİNT "<SSPACE>COZULMUS SEKLİ" <öz2i1> PRIİINT "<4SPACE ssasazsazsassazaz! <163> PRINT :PRINT <238> Is-2:6ĞGO0SUB 2000 <üz24> END <i21> FOR YeYUt*1 TÜ © STEP -1:FOR X-8 Tü W*1 <254;> PRIİNT CHRS$S<C<X,Y,I))3ENEKT #PRİIİNT : NEKT #RETURN <1Gi> GOSUÜUB 1508d <154> IF DA-s5 THEN RC-İ:RETURN <225> IF DA-zG THEN RC-zG:RETURN <is2> IF DAs1 THEN X-DXCDİAREYEDYLDIYERK A, YOESP:GOTO 1fddad <G14> SACSP)EKISYLSP)EY <150> SP-SP*1:M5-sPp <iza> ASDKCDI KI YEDYLDI*YEARALCK,YIESP <083> GOSUB ifdada <idâ> SP-SP-1 <844> IF RÜsi THEN RETURN <i75> FOR Ysz1 TO YUSFOR X-1 TO XUJ <a7a> IF CACA,YO-SP*1) THEN A<LK,YISasa <8064> NEKT :NEXT <817> KESKCSP)iYEASYISP) <179> GÜT0 18808 <198> DAs-0:D0D-8 <113> FOR Dszi1i TO 4 <2ia> IF A<KADALDI,YADYLDI)-252 THEN DA-S5 1D-sS5:GOTO 15048 <243> İIF A<LA*DACDI,YADYLDİI)-255 THEN DA-D A*1:DD-0D <0039> NEXT <a2i2) D-DD <176> RETURN <130> mesi açısından programı BASIC'te yazacağız. Fakat makine dili bilenle- riniz bu programın makine dilinde ya- zılmaya daha uygun olduğunu anla- yacaklardır. Mesela makine dilinde ana işlem ünitesinin yığınını kullan- mak oldukça uygun olurdu. Fakat BASIC'te böyle bir olanağımız olma- dığı için, suni bir yığın oluşturmak zo- rundayı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çere- cek ve programımız daha kolay anla- şılır. olacaktır. Programın dileyen kimse tarafın- dan makine diline çevrilebileceğini dü- şünerek veri yapımızda kullanacağı- mız kodlamayı I Byte'a sığacak biçim- de seçtim. Aslında bu şart mı? Hayır hiç de değil. Kodlama yapıl- ması eninde sonunda gerekli bir olay- dır; fakat esnek ve değiştirilebilir bir detaydan başka bir şey değildir. Prog- ramın birçok bölümünün uygun ve ra- hat bir biçimde çalışmasını sağlar (ay- nı veri yapısını aynı şekilde değerlen- dirme zorunluluğu). Bir bakıma prog- ramın kendi içinde oluşturulmuş bir standarttır. Fadlamamız e O uj 250 ezi 253 şöyledir! Kullanılmıyor. Birinci seviye İkinci seviye Üçüncü seviye Çıkmaz yol Çözüm yolu Hedef <(E:!End) Başlangıç <SiStart) Dolu nokta Boş nokta Çt) — Görüldüğü gibi kodlamamız seviye- lerin bir'den başlayıp 249'a kadar git- mesine izin veriyor. (249 yetecek mi diyenlerin merakını giderelim: Yaptı- ğim denemelerde 17'nci seviyeyi geçen pek olmadı.) Yaptıklarımızı derleyip toparlamak için rekursif altprogramımızın akış di- yagramını çizelim. Böylece programın yapacağı iş daha rahat görünür. 25