İTMA VE PROGRAMLAMAYA GİRİŞ Ya ÖLÜM 3

21
20 PROGRAMLAMAYA GİRİŞ Bu bölümde öğrencinin kolay anlaması ısından şöyle bir metot kullanılacaktır. Önce bir basic deyiminin açıklaması ve makinede kullanılış şekli verilecek, ardından ise o terimi içeren örnek ya da örnekler verilecektir. Daha sonra her yeni verilen deyim için eski deyimleri de içine alan yeni örnekler verilecektir. Anlaşılmada kolaylık olması için verilen programın ekran çıktısı da verilecektir. Verilen örnekleri denemeniz için öncelikle Qbasic editörünü kullanmanız gerekecektir. Bu editör kullanımı çok basit bir text editördür. Bunun için işletim sisteminizdeki Qbasic.exe programınızı çalıştırmanız yeterlidir. (Ders notunda örnekler anlatılırken QB45 programı kullanılacaktır.) AÇIKLAMA: Programlama mantığının kolay anlaşılması ısından örnekler BASIC dilinin ilk versiyonlarından olan GWBASIC mantığına göre anlatılacaktır. Ancak ders notunda yer alan örnekleri QBASIC’de çalıştırırken aynen yazıldığında zaten çalışacaktır. Ancak program içerisinde GOTO vb deyimlerin önünde adres olarak satır numarası kullanılmamışsa , o programı satır numarası kullanmadan yazdığınızda yine çalışacaktır. Ek örneklerde satır numarası kullanılmamıştır. BASIC DEYİMLERİ PRINT: Kullanılış formu: PRINT [<Değişken>][(;/,)<Değişken>],... Ekran üzerinde yazı veya rakam vb. yazdırmak için kullanılır. Kullanılış formundaki parantez çeşitlerinin anlamları şöyledir: [ ] parantez mutlaka yazılması gerekmeyen ifadeler içindir. ( ) parantez ise kendileri kullanılması gereken parantezlerdir. < > ise genelde bir parantez içerisindeki birkaç ifadeyi birbirinden ayırmak için kullanılır. Şimdi print yönergesinin bu değişik durumlarını örneklerle inceleyelim: a) Print deyimi önündeki " " isareti içindeki ifadeyi aynen yazar. ÖRNEK: PRINT "Bilgisayar dersi çok kolay" Bu ifade program editörüne yazılıp RUN/START işlemi yapıldığında ekrandaki görüntü şöyledir: BÖLÜM 3

Transcript of İTMA VE PROGRAMLAMAYA GİRİŞ Ya ÖLÜM 3

Microsoft Word - PROGRAMLAMAYA GÝRÝÞ3.docALGORTMA VE PROGRAMLAMAYA GR Yalolu
PROGRAMLAMAYA GR Bu bölümde örencinin kolay anlamas açsndan öyle bir metot kullanlacaktr. Önce bir basic deyiminin açklamas ve makinede kullanl ekli verilecek, ardndan ise o terimi içeren örnek ya da örnekler verilecektir. Daha sonra her yeni verilen deyim için eski deyimleri de içine alan yeni örnekler verilecektir. Anlalmada kolaylk olmas için verilen programn ekran çkts da verilecektir.
Verilen örnekleri denemeniz için öncelikle Qbasic editörünü kullanmanz gerekecektir. Bu editör kullanm çok basit bir text editördür. Bunun için iletim sisteminizdeki Qbasic.exe programnz çaltrmanz yeterlidir. (Ders notunda örnekler anlatlrken QB45 program kullanlacaktr.)
AÇIKLAMA: Programlama mantnn kolay anlalmas açsndan örnekler BASIC dilinin ilk versiyonlarndan olan GWBASIC mantna göre anlatlacaktr. Ancak ders notunda yer alan örnekleri QBASIC’de çaltrrken aynen yazldnda zaten çalacaktr. Ancak program içerisinde GOTO vb deyimlerin önünde adres olarak satr numaras kullanlmamsa , o program satr numaras kullanmadan yazdnzda yine çalacaktr. Ek örneklerde satr numaras kullanlmamtr. BASIC DEYMLER PRINT: Kullanl formu: PRINT [<Deiken>][(;/,)<Deiken>],... Ekran üzerinde yaz veya rakam vb. yazdrmak için kullanlr. Kullanl formundaki parantez çeitlerinin anlamlar öyledir: [ ] parantez mutlaka yazlmas gerekmeyen ifadeler içindir. ( ) parantez ise kendileri kullanlmas gereken parantezlerdir. < > ise genelde bir parantez içerisindeki birkaç ifadeyi birbirinden ayrmak için kullanlr. imdi print yönergesinin bu deiik durumlarn örneklerle inceleyelim:
a) Print deyimi önündeki " " isareti içindeki ifadeyi aynen yazar. ÖRNEK: PRINT "Bilgisayar dersi çok kolay" Bu ifade program editörüne yazlp RUN/START ilemi yapldnda ekrandaki görüntü öyledir:
BÖLÜM 3
ALGORTMA VE PROGRAMLAMAYA GR Yalolu
Bu kullan ekli için dier örnek ise; önünde verilen aritmetiksel ilemleri yapar. ÖRNEK: PRINT 2*1500/(2+SQR(16)) Bu ifade program editörüne yazlp RUN/START ilemi yapldnda ekrandaki görüntü öyledir:
b) PRINT yalnz bana yazldnda ekranda bir satr boluk brakr veya eer cursor herhangi bir satrn ortasnda ise o satr geçip alt satrda satrba yaparak bekler.
c) Birden fazla deiken arka arkaya yazdrlrken deiken aralar (,) veya (;) ile
bölünebilir. Eger (;) konularak bölünürse: i ) Yazsal dizi deikenleri aralarnda boluk olmakszn birbiri ardna yazlr. ii ) Saysal deikenlerin arkasna bir boluk eklenerek yazlr. iii) Pozitif saylarn önüne bir boluk eklenir.
500 Press any key to continue
Bilgisayar dersi çok kolay Press any key to continue
22
Eer aray bölmek için (,) kullanlrsa; (,)'den sonra gelen deiken bir sonraki print bölgesinin bandan itibaren yazlmaya balanr.Print bölgesi nedir denilir ise; bilgisayar ekran (her bilgisayara göre deimekle birlikte genelde 8 yada 10 karakterlik) sütunlar seklinde yazma bölgelerine ayrlmtr. te bu bölgelere Print Bölgesi (veya Tab Bölgesi) denir. Bu bölgeler ekrana bakldnda görülmez. ÖRNEK: Bu örnekte anlalr olmas için ekrann üzerinde tab bölgeleri iaretlenmitir.
25 -35 60 ELEKTRKELEKTRONK ELEKTRKELEKTRONK ELEKTRK ELEKTRONK ELEKTRKELEKTRONK Pres any key to continue
A=25 B=60 C=A-B AD$="ELEKTRK" BD$="ELEKTRONK" :C$=AD$+BD$ PRINT A;C;B PRINT AD$;BD$ PRINT AD$,BD$ PRINT C$
23

e) Verileri bulunduumuz satrn belli bir kolonundan itibaren yazdrmak istersek bu durumda print yönergesi TAB yönergesi ile birlikte kullanlr.
f) Yazsal dizilerin arasndaki (+) toplama ilemi iki yazsal diziyi arka arkaya
ekler. TAB: Kullanl Formu: TAB(say yada saysal deiken): Bu yönerge print ile birlikte kullanlr ve deiken deerinin cursorun o andaki bulunduu satrn kaçnc sütunundan itibaren yazlacan belirler.Bu saynn x olduunu farz edelim; (x-1) adet sütun geçtikten sonra x'inci sütundan itibaren yazmaya balar. Burada dikkat edilmesi gereken husus bu rakam 255'den büyük olamaz. Aslnda bilgisayar 255,e kadar size hata vermez; ancak normalde ekran boyunun 40 veya 80 karakterlik olduunu düünürsek zaten bu rakamlardan büyük bir say verdiimizde ekrandaki görünü bizim istediimiz satrda deil daha alt satrda olacaktr. Aadaki örnekte tab bölgelerinin 10'ar karakter olduu farz edilmi ve anlalr olmas için bu bölgeler rakam ile ayrlmtr.
10 A$="DOKUZ EYLÜL" 20 B$="ÜNVERSTES" 30 PRINT A$,B$
1.bölge 2.bölge 3.bölge 4.bölge 5.bölge 6.bölge 7.bölge 8. ----------------------------------------------------------- DOKUZ EYLÜL ÜNVERSTES Pres any key to continue
24
SONUÇLARI YAZICIYA YAZDIRMAK Bilgisayarda programlar icra edilirken her defasnda ekranla çalmak yeterli deildir. Çou zaman sonuçlarn kada yazlmas istenir. Bu ilem aynen print komutu gibi çalr. LPRINT: Kullanl formu ve önündeki ifadelerin durumu PRINT ile ayndr. Tek fark ise PRINT ekrana yazmay salarken LPRINT yazcya yazdrmay salar. LPRINT önünde yazsal ve saysal deikenler, grafik karakterler, ASCII formunda verilen iaretler olabilir. Bu komutu kullanrken dikkat edilecek tek husus yazcnn her satra kaç karakter yazddr. INPUT : Kullanl Formu: INPUT ["uyari"]<degisken1>[<,><degisken2><,><degisken3>...] Bu yönerge bilgisayara programla çalan kiinin (kullancnn) bilgisayara klavyeden (veya bir dosyadan) bilgi girmesini salar. Eer uyar yazlm ise önce o uyar mesajn ekrana basar ve yanna (?) basar. Bundan sonra kullancnn istenilen veriyi girmesini bekler. Eer birden fazla veri girilmesi gerekiyorsa aralarn (,) ile bölmek gerekir. Eer Input yönergesinin beklediinden farkl sayda deiken girilirse dorusunu girmeniz için hata mesaj yazar ve dorusunun girilmesini bekler. Eer uyar mesaj yazlmamsa dorudan soru iareti (?) basar ve deikenin girilmesini bekler. Bir dier dikkat edilmesi gereken husus; eer bilgisayar saysal bir deiken bekliyor ise saysal;deilse yazsal bir deiken girilmelidir. Aksi taktirde tip uyumazl hatas (type mistmach error) verir ve doru deikenin girilmesini bekler.
10 A$="Mersin" : B$="Kültür" : C$="ve Sanat" 20 D$="enliine Hogeldiniz." 30 PRINT A$,B$;TAB(40)C$;D$
12345678901234567890123456789012345678901234567890123456789 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Mersin Kültür ve Sanat enliine Hogeldiniz. Ok
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: ÖRNEK: Daha önceden ak diyagram verilen 1 numaral sat fii örneinin programn yapnz. Ek bilgiler: Bilgisayar orlon satan bir i yerinin sat fiini yazsn.
10 INPUT "ADINIZ";AD$ 20 INPUT TEL 30 PRINT "ismi=";AD$ 40 PRINT "telefon numaras=";TEL --------------- RUN --------------- ADINIZ?MUHTEREM MUHTEMEL ?101011 ismi=MUHTEREM MUHTEMEL telefon numaras=101011 Ok
10 INPUT"Kaç liralk alveri yaptnz";fiyat 20 kdv=fiyat*100/10 30 tplam=fiyat+kdv 40 PRINT"Dostlar Manifatura" 50 PRINT"Pozcu Vd. 1108 Mersin":PRINT 60 PRINT"ORLON=";TAB(15)fiyat 70 PRINT"KDV=";TAB(16)kdv 80 PRINT"TOPLAM=";TAB(15)tplam 90 PRINT:PRINT"TEEKKÜR EDERZ" RUN Kaç liralk alveri yaptnz?1000 Dostlar Manifatura Pozcu Vd. 1108 Mersin Orlon 1000 KDV= 100 TOPLAM= 1100 TEEKKÜR EDERZ Ok.
26
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Klavyeden girilen 10 saynn ortalamasn bulan ve yazan bir programn ak diyagramn çiziniz, programn yapnz?
ÖRNEK: Ak diyagram 4 nolu örnekte verilen elektrik devresini çözen ve istenilenleri ekranda birimleri ile birlikte yazan bir program yapnz? ÇÖZÜM: 10 INPUT r1,r2,r3,r4,r5,E 20 Re1=r3*r5/(r3+r5) 30 Re2=Re1+r2+r4 40 Re=Re2*r1/(Re2+r1) 50 I=E/Re 60 P=I*E 70 PRINT "Gerilim=";TAB(15)E;"Volt" 80 PRINT "Akm=";TAB(15)I;"Amper" 90 PRINT "Güç=";TAB(15)P;"Watt" 100 PRINT "Toplam Direnç=";TAB(15)Re;"OHM"
BALA
DUR
10 INPUT"5 SAYI";s1,s2,s3,s4,s5 20 INPUT"5 SAYI";s6,s7,s8,s9,s10 30 T=s1+s2+s3+s4+s5+s6+s7+s8+s9+s10 40 Ort=T/10 50 PRINT"TOPLAM=",T 60 PRINT"ORTALAMA=",Ort RUN 5 SAYI?10,20,30,40,50 5 SAYI?60,70,80,90,100 TOPLAM= 550 ORTALAMA= 55 Ok
27
ALGORTMA VE PROGRAMLAMAYA GR Yalolu Eer burada direnç deerleri biliniyor ise 10 numaral satrdaki input terimi yerine r1=10000:r2=1500 ... gibi dorudan direnç deerleri verilebilir. GO TO : Kullanl Formu: GO TO <Satr numaras> Bu yönergenin ilevi programn ileyii esnasnda goto satrna geldii anda bulunduu yerden GO TO yönergesinin önünde yazl numaral satra giderek programn çalmaya oradan devam etmesini salamaktr. Programn içerisinde kullanlabilecei gibi bilgisayara direkt olarak yazlarak kullanlabilir. Böylece daha önce yazlm bir program çalmaya en bandan deil de istediimiz bir yerinden balatmaya yarar. Program içinde kullanldnda döngü yapmada büyük numaral bir satrdan küçük numaral satra tekrar tekrar gönderilerek kullanlabilir. Günümüz modern programclnda bu deyim neredeyse kalkmtr. Bu deyimin yerini fonksiyon yazlmlar ve döngü komutlar almtr. Ancak bilgisayar programcl haricindeki bölümlerde, programlama sanatnn ilk öretilmesi aamasnda yinede goto deyimini kullanarak mant daha basit hale getirip örenciye vermek yararl olabilir. Bu sebepledir ki ders notu yazlrken qbasic editörü kullanlmasna ramen satr numaras kullanlarak yazma devam edilmitir. Bu ders notundaki programlarn tamamnda komutlarda parametre olarak kullanlmayan satr numaralar yazlmadnda da programlar çalr. ÖRNEK: GOTO 100 veya 20 GOTO 500 gibi ÖRNEK: Daha önce yazm olduumuz sat fii programnda eer programn en sonuna; 100 GO TO 10 eklinde bir satr eklersek program durmayacak ve her fiin yazlndan sonra tekrar baa dönerek yeni fii yazmak için bekleyecektir. IF - THEN - ELSE: Kullanl Formu: IF <Mantksal ifade> THEN <Satr no veya yönerge>[ELSE <Satr numaras veya yönerge>]
28
ALGORTMA VE PROGRAMLAMAYA GR Yalolu Kelime anlam olarak yapt ii öyle açklamak mümkündür: EER <..> ifadesi doru ise O ZAMAN <..> ilemini yap [DELSE <..> ilemini yap.] Yapt ilemi tam anlayabilmek için öncelikle IF-THEN ksmn inceleyelim.Bu deyim bilgisayarn zekasn yani karlatrma yeteneini salar.IF deyiminin ardndan gelen deyim; deikenleri, yazsal dizileri, saylar ve mantksal operatörleri içerebilir. Eer burada verilen ifade doru ise THEN deyiminden sonra gelen ifade yerine getirilir. Eer IF deyiminden sonra gelen ifade doru deilse ve ELSE terimi kullanlmamsa bu yönergenin olduu satr ileme girmeden atlanr ve bir sonraki satrdaki ilem icra edilir. THEN deyiminin ardndan herhangi bir basic terimi gelebilecei gibi bir satr numaras da gelebilir. Satr numaras geldiinde bunun anlam; eer IF deyiminden sonra gelen ifade doru ise THEN deyiminden sonra verilen satr numarasna git ve ileme oradan devam et demektir.
Eer THEN deyiminden sonra birkaç tane ilem yaplacaksa THEN deyiminin ardndan alt satra geçilerek istenilen ilemler yaplr ve bu durunda ilemlerin bitiminden sonra ENDIF deyimi kullanlr.
Bu deyimlerden sadece IF-THEN ksm kullanlabilecei gibi bunlarn
ardndan ELSE ksm da eklenebilir. ELSE ifadesini, yine THEN ifadesinde olduu gibi bir satr numaras yada bir veya birkaç basic ifadesi takip edebilir. Hepsi beraber kullanldnda ise bilgisayara verdikleri emir u ekilde olacaktr: Eer IF deyiminden sonra gelen ifade doru ise THEN deyiminden sonra gelen ifadeyi, yada emri yerine getir; eer IF deyiminden sonra gelen ifade doru deil ise ELSE deyiminden sonra gelen ifadeyi yerine getir. ÖRNEK: 10 IF a=5 THEN PRINT "doru" ELSE 50 Bu örnein anlam Eer a=5 ise ekrana doru yaz, eer a=5 deilse o zaman 50 numaral satra git ve oradaki ilemi yerine getir. ÖRNEK: IF F>50 THEN A=(B+C9)*40/100 B=F*60/100 C=A+B ENDIF Bu örnekte de F says 50 den büyük ise A, B, C hesaplamalar yaplr ve ilem ENDIF deyiminin ardndan devam eder. Eer F says 50 den büyük deil ise A, B, C hesaplamalar yaplmadan ilem ENDIF deyiminin ardndan devam eder
29
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Ak diyagramn verdiimiz iki numaral sat fii örneinin programn yazalm. Program çaltrldnda:
?Kitap,1100 LKBAHAR MARKET POZCU Vd.1212. Mersin Kitap 1100 KDV= 110 TOPLAM= 1100 TEEKKÜR EDERZ ?
10 INPUT Cinsi$,fiyat 20 IF Cinsi$="Hrdavat" THEN KDV=fiyat*13/113 : GOTO 50 30 IF Cinsi$="Gda" THEN KDV=fiyat*3/103 : GO TO 50 40 KDV=fiyat*10/110 50 PRINT "LKBAHAR MARKET" 60 PRINT "POZCU Vd.1212. Mersin" 70 PRINT 80 PRINT Cinsi$; TAB(16) fiyat 90 PRINT "KDV=";TAB(17) KDV 100 PRINT "TOPLAM=" TAB(16) fiyat 110 PRINT 120 PRINT "TEEKKÜR EDERZ" 130 GOTO 10
30
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Ak diyagram konusunda verilen 3 numaral örnein programn yapalm. Ayn örnein 100. satra kadarki ksm öyle de yazlabilir.
10 INPUT"Alinan maln cinsi,fiyat";Cinsi$,fiyat 20 IF Cinsi$<> "Hrdavat" THEN 40 ELSE KDV=fiyat*13/113 30 GOTO 60 40 IF Cinsi$<>"Gda" THEN 50 ELSE KDV=fiyat*3/103:GOTO 60 50 KDV=fiyat*10/110 60 tplam=tplam+fiyat: vergi=vergi+KDV 70 INPUT "Baska mal aldnz m (E/H)";Seç$ 80 IF Seç$="E" THEN 10 90 IF Seç$<>"H" THEN 70
10 INPUT "Alnan maln cinsi,fiyat";Cinsi$,fiyat 20 IF Cinsi$="Hrdavat" THEN KDV=fiyat*13/113 :GOTO 50 30 IF Cinsi$="Gda" THEN KDV=fiyat*3/103 : GOTO 50 40 KDV=fiyat*10/110 50 tplam=tplam+fiyat 60 vergi=vergi+KDV 70 INPUT "Baska mal aldnz m(E/H)";Seç$ 80 IF Seç$="H" THEN 100 90 IF Seç$="E" THEN 10 ELSE 70 100 PRINT"TÜCCAR TCARET" 110 PRINT"MALTEPE Vd.1243 ANKARA" 120 PRINT"TEEKKÜR EDERZ" 130 PRINT 140 PRINT"Fiyat="; TAB(15) tplam 150 PRINT"KDV=" ;TAB(16) vergi 160 PRINT"TOPLAM=";TAB(15) tplam 170 tplam=0:vergi=0:GO TO 10
31
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Bir örencinin geçme kalma notunu hesaplayan bir program yapnz. Not hesaplama sistemi öyledir:Finale girmek için vize ortalamas 40'dan büyük olmal.Vize ortalamasnn %40' ile final notunun %60'nn toplam 60 dan büyük olursa ve final notu 50'den büyük olursa ders baarlm olmaktadr. Deilse ayn sistem bütünleme snav için uygulanacaktr.
ÖRNEK A) 1'den 500'e kadar olan saylarn toplamn ve ortalamasn bulan bir program yaznz?
ÖRNEK B) Yukardaki örnekten faydalanarak alt ve üst snr kullanc tarafndan belirlenen ve birer birer artan saylarn toplamn ve ortalamasn bulan bir program yaznz?
10 INPUT "vize 1,vize2";v1,v2 20 vo=(v1+v2)/2 30 IF vo<40 THEN PRINT"VZESZ" :GOTO 10 40 INPUT "final notu";f 50 IF f<50 THEN PRINT"BÜTÜNLEME":GOTO 80 60 v40=vo*.4 : f60=f*.60 :gn=v40+f60 70 IF gn>60 THEN 110 80 INPUT "Bütünleme notu";b 90 IF b<50 THEN 120 100 b60=b*.60 :gn=v40+b60 110 IF gn>60 THEN PRINT"BAARILI":PRINT "NOTU=";gn:GOTO10 120 PRINT"BAARISIZ" :GO TO 10
10 n=0 20 n=n+1 30 tplam=tplam+n 40 IF n< 500 THEN 20 50 rt=tplam/500 60 PRINT "1'den 500'e kadar olan saylarn" 70 PRINT "TOPLAMI=";TAB(15)tplam 80 PRINT "ORTALAMASI=";TAB(15)rt
32
ALGORTMA VE PROGRAMLAMAYA GR Yalolu
ÖRNEK C) Kaç tane olduu bilinmeyen pozitif saylarn toplam ve ortalamasn bulan program yaznz? Not=En son saydan sonra negatif bir say giriniz.
ÖRNEK D) Yukardaki örneklerden faydalanarak bir örencinin derslerinin aritmetik ortalamasn bulan bir program yaznz?
10 INPUT "Alt ve üst snr giriniz";a,ü 20 n=a-1 30 n=n+1 : s=s+1 : t=t+n 40 IF n<ü THEN 30 50 rt=t/n 60 PRINT a;"'dan ";ü;"'ye kadar olan saylarn;" 70 PRINT "Toplam= ";t 80 PRINT "Ortalamas=";rt
10 s=0 20 s=s+1 30 INPUT say 40 IF sayi<0 THEN 60 50 tplam=tplam+say :GOTO 20 60 s=s-1 70 rt=tplam/s 80 PRINT"Verilen saylar";s;"adettir ve ortalamalar";rt"; 90 PRINT"dir."
10 s=1 20 INPUT "notunuz";puan:tplam=tplam+puan 30 INPUT "Baka dersiniz var m(E/H)";BD$ 40 IF BD$="E" THEN s=s+1: GOTO 20 50 IF BD$ <> "H" THEN 30 60 rt=tplam/s 70 PRINT s;"adet dersinizin ortalamas=";rt;"dr."
33
ALGORTMA VE PROGRAMLAMAYA GR Yalolu FOR - NEXT DÖNGÜSÜ : Kullanl Formu: FOR<deiken>=<balangç> TO <biti> [STEP <artma says>] - - NEXT <deiken> Bu yönerge deikenleri sayaç olarak kullanmamz salayan bir basic yönergesidir. Bu yönerge verilen balangç deerinden biti deerine kadar belirtilen adm aralklar ile sayar. Burada deikenin bir sonraki adma artmasn (veya eksilmesini) belirten ifade NEXT ifadesidir. Bunun nerede kullanlabileceini anlayabilmek için örnek A ve B'ye bakmak yeterli olacaktr. Bu örneklerdeki n artlarn FOR-NEXT döngüsü ile yapmak daha kolay olacaktr. STEP<artma says> ifadesi kullanlmad zaman artma says +1 olarak ilem görecektir. Burada balangç ve biti deerleri ve artma saylar olarak ondalkl say veya tamsay kullanlabilir. Bu ifadeyi kullanrken baz hususlara dikkat etmek gerekir. Bunlardan birincisi eer balangç deeri biti deerinden küçük ise artma says pozitif, bunun tersi durumda ise artma says negatif olmaldr. Aksi taktirde sonsuz döngü oluacaktr. Bir dier konu; eer iç içe birden fazla döngü açld ise döngülerin kapan ifadeleri olan next'ler de en içerdekinden dtakilere doru döngüler kapatlmaldr. Bir döngünün kapatlmas için o döngü balatlrken kullanlan FOR deyiminin önündeki deiken ile NEXT deyiminin önündeki deiken ayn olmaldr. Bir dier husus döngünün balangç ve biti saylar ayn olsa bile her döngü en az bir defa ileme girer. Yani FOR i=1 TO 1 döngüsü 1 kez ileme girecektir. Bir programda bir adet FOR-NEXT döngüsü var ise NEXT'in önüne deiken yazmaya gerek yoktur. Ancak birden fazla ve iç içe açlm döngülerde NEXT'in önüne mutlaka hangi döngüye ait olduunu bildiren deiken yazlmaldr. ÖRNEK: A örneinde verilen; 1'den 500'e kadar olan saylarn toplam ve ortalamasn bulan program FOR-NEXT döngüsü ile yapalm:
34
ALGORTMA VE PROGRAMLAMAYA GR Yalolu
ÖRNEK: 50'den 1'e kadar olan saylarn toplamn bulunuz? Bu örnei iki ekilde yapmak mümkündür. Biz bu iki yolu da göstererek örencinin döngü kavramn anlamasna yardmc olmaya çalacaz.
REM : Kullanl Formu : REM <Açklama ifadesi> Program açsndan hiçbir önemi yoktur. Bu yönerge kullancdan ziyade programcy ilgilendirmektedir. REM deyimi önüne programc hatrlamak istedii açklama notlarn yazar. Program çaltnda bu notlar ekranda yazlmaz. Sadece eer programda bir hata çkarsa programc yazd hatrlatma notlarna bakarak hatay daha kolay bulacaktr. ÖRNEK: 0'dan 1000'e kadar olan çift saylarn toplamn bulan bir program yaznz?
10 REM KNC METOD 20 n=50 30 t=t+n 40 n=n-1 50 IF n=0 THEN 50 ELSE 30 60 PRINT "50'den 1'e kadar saylarn toplam=";t 70 END
10 REM DÖNGÜ METODU 20 FOR n=50 TO 1 STEP -1 30 t=t+n 40 NEXT n 50 PRINT"50'den 1'e kadar olan saylarn toplam=";t 60 END
10 FOR i=1 TO 500 20 tplam=tplam+i 30 NEXT i 40 rt=tplam/500 50 PRINT "1'den 500'e kadar olan saylarn" 60 PRINT "Ortalamas =";rt 70 PRINT "Toplam =";tplam RUN 1'den 500'e kadar olan saylarn Ortalamas =250.5 Toplam =125250
35
ALGORTMA VE PROGRAMLAMAYA GR Yalolu
END: Kullanl Formu: END Bu deyim genellikle programlarn sonunda yer alr ve ilevi programn çalmasn durdurmaktr. Her seferinde sonda yer alr diye bir art yoktur. Baz programlarda programn her hangi bir yerinde durdurulmas istenilebilir. te bu durumlarda END deyimi kullanlr. Eer programn en sonunda bu deyim kullanlmazsa program yine duracaktr ancak bu defasnda ekrana en son hangi satr ilediini gösteren bir not yazarak duracaktr. END ile arada bir yerde durdurulmu bir program CONT komutu ile çalmaya kald yerden devam ettirilebilir. STOP: Kullanl Formu: STOP Yapt ilem bakmndan END komutu ile ayndr. Programn geçici olarak durdurulmasnda kullanlr. END ile arasndaki fark ise STOP komutu ile program durdurulduunda en son ilem gören satr numaras ekrana yazlr. CONT komutu ile program kald yerden çalmaya devam ettirilebilir veya GO TO <satr numaras> komutu ile program bizim istediimiz yerden çalmaya devam ettirilebilir.
10 FOR i= 0 TO 1000 STEP 2 20 tplam=tplam+i 30 x=x+1 40 next i 50 rt=tplam/x 60 PRINT "0'dan 1000'e kadar olan çift saylarn" 70 PRINT "Toplam =";tplam 80 PRINT "Ortalamas =";rt 90 END
36
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Alt snr ve üst snr dardan verilen tamsaylar dizisinin çift saylarn toplayan ve ortalamasn bulan bir program yaznz? ÖRNEK: Verilen iki saydan büyüünü ve küçüünü ayrt eden ve yazan bir program yaznz?
ÖRNEK: Taban yarçap ve yükseklii verilen koninin hacmini bulan program yaznz? V=pi * r^2 * h / 3
10 INPUT "iki say giriniz";s1,s2 20 IF s1>s2 THEN b=s1: k=s2 30 IF s1<s2 THEN k=s1: b=s2 40 PRINT "Verilen saylarn büyüü =";b 50 PRINT "Verilen saylarn küçügü =";k 60 STOP
10 INPUT "ALT SINIRI ve ÜST SINIRI GRNZ";a,ü 20 FOR i=a TO ü 30 c=INT (i/2) : b=i/2 40 IF b=c THEN t=t+i :x=x+1 50 NEXT i 60 rt = t/x 70 PRINT a;"'den";ü;"'ye kadar olan çift saylarn" 80 PRINT "Toplam =";t 90 PRINT "Ortalamas =";rt
10 INPUT "Koninin taban yarçap ";r 20 INPUT "Koninin yükseklii ";h 30 pi=22/7 40 hacim=pi*r^2*h/3 50 PRINT "Taban yarçap";r;"cm 60 PRINT "ve yükseklii";h;"cm. olan koninin" 70 PRINT "hacmi";hacim;"cm3'tür."
37
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Kenar ölçüleri verilen üçgenin çevresini ve alann hesaplayan bir program yaznz? LOCATE: Kullanl Formu: LOCATE (y,x) Bu deyim yazlacak olan yaznn ekran üzerinde nereye yazlacan belirtir. Burada y says 25'den büyük olamaz ve verinin hangi satra yazlacan belirtir. x says ise verinin yazlaca sütunu belirler. Bu rakam ekrann yazma kabiliyetine göre 40 yada 80'den büyük olamaz. SPC: Kullanl Formu: SPC(x) Bu deyim PRINT ile yaz yazlrken yazlan veriler arasnda boluk brakmaya yarar. ÖRNEK: 12345678901234567890123456789012345678901234567890123456789 ----------------------------------------------------------- 10 a$="TÜRKYE" : b$="CUMHURYET" 20 LOCATE (8,30):PRINT a$;SPC(5);b$ RUN TÜRKYE CUMHURYET
10 INPUT "Üçgenin kenar ölçüleri=";a,b,c 20 Çevre=a+b+c : u=(a+b+c)/2 30 Alan= SQR(u*(u-a)*(u-b)*(u-c)) 40 PRINT "ALAN=";Alan,"ÇEVRE=";Çevre
38
ALGORTMA VE PROGRAMLAMAYA GR Yalolu CHR$: Kullanl Formu: CHR$(saysal deiken) Print ile birlikte kullanlr. Yazdrmalarda bazen öyle sorunlar çkar ki bunlar yazmakta zorlanrz. Mesela " " iareti yazdrmak istediimizde PRINT deyiminin önünde imdiye kadar örendiimiz metotlarla mümkün deildir. te bu gibi durumlarda CHR$ deyimi kullanlarak istediimiz (eer bilgisayarmzda o iaret mevcut ise) iaret veya ekli yazdrmamz mümkün olacaktr. Kullanl formundaki saysal ifade yerinde 255'den küçük bir say kullanlmaldr. Kullanlan say yazmak istediimiz iaretin makine içerisindeki kodu olmaldr. Hangi rakamn sizin bilgisayarnzda hangi iareti simgelediini bilgisayarlarn kullanma klavuzunda bulmak mümkündür. ASC: Kullanl Formu: ASC(ifade) Bilgisayarlar ekrana yazabildikleri her iaret, harf ya da rakama karlk içlerinde bir say ile onu simgelerler. te bu karlk sistemine ASC II kod sistemi denir. CHR$ ile yazdrmak istediiniz bir iaretin karl olan sayy bu deyimle örenmeniz mümkündür. Eer ifade yerinde tek bir harf yada rakam deil de bir dizi verilirse ASC deyimi verilen dizinin ilk karakterinin kod karln verecektir. ÖRNEK: 32 ile 255 arasndaki ASC II kod tablosunu yazan bir program yaznz? NOT: 0,dan 255'e kadar olan ASC II kod tablosu ders notlarna eklenmitir. ÖRNEK: A harfinin ASC II kodunu veren bir satrlk bir basic ifadesi yaznz? PRINT ASC(A)
10 FOR i=32 TO 255 20 PRINT i;CHR$(i), 30 NEXT i
39
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Bir i yerinde elemanlarn vergi iadeleri bilgisayarla kontrol ettirilmektedir. Bu ilemi önce fatura toplamnn kontrolü ve sonra vergi iadesi hesabnn kontrolü eklinde yapmaktadr.Bu ilemi yapabilecek bir program hazrlaynz. Vergi iade oranlar:0-30000 için %20, 30001-60000 için %15 , 60001-100000 için %10, 100000- maa miktar için %5 'dir. GET (INKEY$) : Kullanl Formu: GET (Yazsal dizi deikeni) <Yazsal dizi deikeni>=INKEY$ Bu yönerge baz bilgisayarlarda GET baz bilgisayarlarda ise INKEY$ olarak kullanlmaktadr. Yapt i INPUT gibidir; ancak bu komutla klavyeden yalnzca bir tek harf ya da deiken okunur ve bu deyimle bilgi girildiinde RETURN tuuna basmaya gerek yoktur. Özellikle evet yada hayr eklinde cevaplanmas istenen yerlerde kullanlr. Aada evet (E) yada hayr (H) cevabn kabul eden programlar verilmitir. Bu programlar E yada H harfleri haricinde cevap kabul etmemektedir. Böylece kullancnn yanllkla baka bir tua basmas önlenmi olur. Bu programlarda 10 numaral satr bilgisayarn bir tua baslncaya kadar beklemesini salar. "" iaretleri arasnda hiçbir iaret olmamaldr.
10 INPUT"Maa miktar=";maa 20 PRINT"Faturalarn üzerinde yazan TOPLAM deerini girin" 30 PRINT "En son faturadan sonra bir 0 rakam giriniz" 40 FOR i=1 TO 10000 50 INPUT "Fatura toplam deeri=";fm 60 fatt=fatt+fm 70 IF fm=0 THEN i=i-1:GOTO 90 80 NEXT i 90 PRINT "Fatura adedi =";i 100 PRINT "Fatura toplam =";fatt 110 IF fatt>maa THEN fatt=maa 120 IF fatt<30000 THEN vi=fatt*.20:GOTO 160 130 IF fatt<60000 THEN vi=4500+(fatt-30000)*.15:GOTO 160 140 IF fatt<100000 THEN vi=10500+(fatt-60000)*.1: GOTO 160 150 vi=14500+(fatt-100000)*0.05 160 PRINT"Maa miktar =";maa 170 PRINT "Vergi iadesi tutar =";vi
40
ALGORTMA VE PROGRAMLAMAYA GR Yalolu ÖRNEK: Bilgisayara 1 ile 6 arasnda iki say tutturulmakta ve bir zar gibi çalmas istenmektedir. Her zar atndan önce eer zar atlacaksa E, atlmayacaksa H tuuna baslmas istenmektedir.Bu ii yapan program GET ve INKEY$ için ayr ayr yapnz?
5 REM ÖRNEGN GET LE ÇÖZÜMÜ 10 PRINT "Zar atacakmsnz (E/H)" 20 GET a$ : IF a$="" THEN 20 30 IF a$="E" THEN 60 40 IF a$="H" THEN END 50 PRINT"E veya H tularndan birini seçiniz":GO TO 20 60 a=INT(RND(0)*6+1) : b=INT(6*RND(0)+1) 70 PRINT a,b 80 GOTO 10