You are on page 1of 21

ALGORTMA VE PROGRAMLAMAYA GR

BLM 3
Yalolu

PROGRAMLAMAYA GR
Bu blmde rencinin kolay anlamas asndan yle bir metot kullanlacaktr. nce bir basic deyiminin aklamas ve makinede kullanl ekli verilecek, ardndan ise o terimi ieren rnek ya da rnekler verilecektir. Daha sonra her yeni verilen deyim iin eski deyimleri de iine alan yeni rnekler verilecektir. Anlalmada kolaylk olmas iin verilen programn ekran kts da verilecektir. Verilen rnekleri denemeniz iin ncelikle Qbasic editrn kullanmanz gerekecektir. Bu editr kullanm ok basit bir text editrdr. Bunun iin iletim sisteminizdeki Qbasic.exe programnz altrmanz yeterlidir. (Ders notunda rnekler anlatlrken QB45 program kullanlacaktr.) AIKLAMA: Programlama mantnn kolay anlalmas asndan rnekler BASIC dilinin ilk versiyonlarndan olan GWBASIC mantna gre anlatlacaktr. Ancak ders notunda yer alan rnekleri QBASICde altrrken aynen yazldnda zaten alacaktr. Ancak program ierisinde GOTO vb deyimlerin nnde 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 iin kullanlr. Kullanl formundaki parantez eitlerinin anlamlar yledir: [ ] parantez mutlaka yazlmas gerekmeyen ifadeler iindir. ( ) parantez ise kendileri kullanlmas gereken parantezlerdir. < > ise genelde bir parantez ierisindeki birka ifadeyi birbirinden ayrmak iin kullanlr. imdi print ynergesinin bu deiik durumlarn rneklerle inceleyelim: a) Print deyimi nndeki " " isareti iindeki ifadeyi aynen yazar. RNEK: PRINT "Bilgisayar dersi ok kolay" Bu ifade program editrne yazlp RUN/START ilemi yapldnda ekrandaki grnt yledir:

20

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

Bilgisayar dersi ok kolay

Press any key to continue Bu kullan ekli iin dier rnek ise; nnde verilen aritmetiksel ilemleri yapar. RNEK: PRINT 2*1500/(2+SQR(16)) Bu ifade program editrne yazlp RUN/START ilemi yapldnda ekrandaki grnt yledir: 500

Press any key to continue b) PRINT yalnz bana yazldnda ekranda bir satr boluk brakr veya eer cursor herhangi bir satrn ortasnda ise o satr geip alt satrda satrba yaparak bekler. c) Birden fazla deiken arka arkaya yazdrlrken deiken aralar (,) veya (;) ile blnebilir. Eger (;) konularak blnrse: i ) Yazsal dizi deikenleri aralarnda boluk olmakszn birbiri ardna yazlr. ii ) Saysal deikenlerin arkasna bir boluk eklenerek yazlr. iii) Pozitif saylarn nne bir boluk eklenir.

21

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

RNEK:

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$

25 -35 60 ELEKTRKELEKTRONK ELEKTRK ELEKTRONK ELEKTRKELEKTRONK

ELEKTRKELEKTRONK

Pres any key to continue

Eer aray blmek iin (,) kullanlrsa; (,)'den sonra gelen deiken bir sonraki print blgesinin bandan itibaren yazlmaya balanr.Print blgesi nedir denilir ise; bilgisayar ekran (her bilgisayara gre deimekle birlikte genelde 8 yada 10 karakterlik) stunlar seklinde yazma blgelerine ayrlmtr. te bu blgelere Print Blgesi (veya Tab Blgesi) denir. Bu blgeler ekrana bakldnda grlmez. RNEK: Bu rnekte anlalr olmas iin ekrann zerinde tab blgeleri iaretlenmitir.

22

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

10 A$="DOKUZ EYLL" 20 B$="NVERSTES" 30 PRINT A$,B$

1.blge 2.blge 3.blge 4.blge 5.blge 6.blge 7.blge 8. ----------------------------------------------------------DOKUZ EYLL NVERSTES

Pres any key to continue

e) Verileri bulunduumuz satrn belli bir kolonundan itibaren yazdrmak istersek bu durumda print ynergesi TAB ynergesi ile birlikte kullanlr. f) Yazsal dizilerin arasndaki (+) toplama ilemi iki yazsal diziyi arka arkaya ekler. TAB: Kullanl Formu: TAB(say yada saysal deiken): Bu ynerge print ile birlikte kullanlr ve deiken deerinin cursorun o andaki bulunduu satrn kanc stunundan itibaren yazlacan belirler.Bu saynn x olduunu farz edelim; (x-1) adet stun getikten sonra x'inci stundan itibaren yazmaya balar. Burada dikkat edilmesi gereken husus bu rakam 255'den byk olamaz. Aslnda bilgisayar 255,e kadar size hata vermez; ancak normalde ekran boyunun 40 veya 80 karakterlik olduunu dnrsek zaten bu rakamlardan byk bir say verdiimizde ekrandaki grn bizim istediimiz satrda deil daha alt satrda olacaktr. Aadaki rnekte tab blgelerinin 10'ar karakter olduu farz edilmi ve anlalr olmas iin bu blgeler rakam ile ayrlmtr.

23

ALGORTMA VE PROGRAMLAMAYA GR RNEK: 10 A$="Mersin" : B$="Kltr" : C$="ve Sanat" 20 D$="enliine Hogeldiniz." 30 PRINT A$,B$;TAB(40)C$;D$

Yalolu

12345678901234567890123456789012345678901234567890123456789 -----------------------------------------------------------Mersin Kltr ve Sanat enliine Hogeldiniz. Ok

SONULARI YAZICIYA YAZDIRMAK


Bilgisayarda programlar icra edilirken her defasnda ekranla almak yeterli deildir. ou zaman sonularn kada yazlmas istenir. Bu ilem aynen print komutu gibi alr. LPRINT: Kullanl formu ve nndeki ifadelerin durumu PRINT ile ayndr. Tek fark ise PRINT ekrana yazmay salarken LPRINT yazcya yazdrmay salar. LPRINT nnde 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 ynerge 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 blmek gerekir. Eer Input ynergesinin beklediinden farkl sayda deiken girilirse dorusunu girmeniz iin 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.

24

ALGORTMA VE PROGRAMLAMAYA GR RNEK: 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 RNEK:

Yalolu

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"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"TEEKKR EDERZ"

RUN

Ka liralk alveri yaptnz?1000 Dostlar Manifatura Pozcu Vd. 1108 Mersin Orlon 1000 KDV= 100 TOPLAM= 1100 TEEKKR EDERZ Ok.

25

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

RNEK: Klavyeden girilen 10 saynn ortalamasn bulan ve yazan bir programn ak diyagramn iziniz, programn yapnz? BALA 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

Gir S1,S2,...,S10

TPLAM=S1+S2+...+S10

ORT=TPLAM/10

TPLAM ORT

DUR RNEK: Ak diyagram 4 nolu rnekte verilen elektrik devresini zen ve istenilenleri ekranda birimleri ile birlikte yazan bir program yapnz? ZM: 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"

26

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 ynergenin ilevi programn ileyii esnasnda goto satrna geldii anda bulunduu yerden GO TO ynergesinin nnde yazl numaral satra giderek programn almaya oradan devam etmesini salamaktr. Programn ierisinde kullanlabilecei gibi bilgisayara direkt olarak yazlarak kullanlabilir. Bylece daha nce yazlm bir program almaya en bandan deil de istediimiz bir yerinden balatmaya yarar. Program iinde kullanldnda dng yapmada byk numaral bir satrdan kk numaral satra tekrar tekrar gnderilerek kullanlabilir. Gnmz modern programclnda bu deyim neredeyse kalkmtr. Bu deyimin yerini fonksiyon yazlmlar ve dng komutlar almtr. Ancak bilgisayar programcl haricindeki blmlerde, 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 editr 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 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 dnerek yeni fii yazmak iin bekleyecektir. IF - THEN - ELSE: Kullanl Formu: IF <Mantksal ifade> THEN <Satr no veya ynerge>[ELSE <Satr numaras veya ynerge>]

gibi

27

ALGORTMA VE PROGRAMLAMAYA GR Kelime anlam olarak yapt ii yle aklamak mmkndr:

Yalolu

EER <..> ifadesi doru ise O ZAMAN <..> ilemini yap [DELSE <..> ilemini yap.] Yapt ilemi tam anlayabilmek iin ncelikle IF-THEN ksmn inceleyelim.Bu deyim bilgisayarn zekasn yani karlatrma yeteneini salar.IF deyiminin ardndan gelen deyim; deikenleri, yazsal dizileri, saylar ve mantksal operatrleri ierebilir. 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 ynergenin 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 geilerek 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 byk ise A, B, C hesaplamalar yaplr ve ilem ENDIF deyiminin ardndan devam eder. Eer F says 50 den byk deil ise A, B, C hesaplamalar yaplmadan ilem ENDIF deyiminin ardndan devam eder

28

ALGORTMA VE PROGRAMLAMAYA GR RNEK:

Yalolu

Ak diyagramn verdiimiz iki numaral sat fii rneinin programn yazalm.

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 "TEEKKR EDERZ" 130 GOTO 10

Program altrldnda: ?Kitap,1100 LKBAHAR MARKET POZCU Vd.1212. Mersin Kitap KDV= TOPLAM= TEEKKR EDERZ ? 1100 110 1100

29

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

RNEK: Ak diyagram konusunda verilen 3 numaral rnein programn yapalm.

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"TCCAR TCARET" 110 PRINT"MALTEPE Vd.1243 ANKARA" 120 PRINT"TEEKKR 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

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

30

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

RNEK: Bir rencinin geme kalma notunu hesaplayan bir program yapnz. Not hesaplama sistemi yledir:Finale girmek iin vize ortalamas 40'dan byk olmal.Vize ortalamasnn %40' ile final notunun %60'nn toplam 60 dan byk olursa ve final notu 50'den byk olursa ders baarlm olmaktadr. Deilse ayn sistem btnleme snav iin uygulanacaktr.

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"BTNLEME":GOTO 80 60 v40=vo*.4 : f60=f*.60 :gn=v40+f60 70 IF gn>60 THEN 110 80 INPUT "Btnleme 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

RNEK A) 1'den 500'e kadar olan saylarn toplamn ve ortalamasn bulan bir program yaznz? 10 20 30 40 50 60 70 80 n=0 n=n+1 tplam=tplam+n IF n< 500 THEN 20 rt=tplam/500 PRINT "1'den 500'e kadar olan saylarn" PRINT "TOPLAMI=";TAB(15)tplam PRINT "ORTALAMASI=";TAB(15)rt

RNEK B) Yukardaki rnekten faydalanarak alt ve st snr kullanc tarafndan belirlenen ve birer birer artan saylarn toplamn ve ortalamasn bulan bir program yaznz?

31

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

10 20 30 40 50 60 70 80

INPUT "Alt ve st snr giriniz";a, n=a-1 n=n+1 : s=s+1 : t=t+n IF n< THEN 30 rt=t/n PRINT a;"'dan ";;"'ye kadar olan saylarn;" PRINT "Toplam= ";t PRINT "Ortalamas=";rt

RNEK C) Ka tane olduu bilinmeyen pozitif saylarn toplam ve ortalamasn bulan program yaznz? Not=En son saydan sonra negatif bir say giriniz. 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."

RNEK D) Yukardaki rneklerden faydalanarak ortalamasn bulan bir program yaznz? 10 20 30 40 50 60 70

bir

rencinin

derslerinin

aritmetik

s=1 INPUT "notunuz";puan:tplam=tplam+puan INPUT "Baka dersiniz var m(E/H)";BD$ IF BD$="E" THEN s=s+1: GOTO 20 IF BD$ <> "H" THEN 30 rt=tplam/s PRINT s;"adet dersinizin ortalamas=";rt;"dr."

32

ALGORTMA VE PROGRAMLAMAYA GR FOR - NEXT DNGS : Kullanl Formu: FOR<deiken>=<balang> TO <biti> [STEP <artma says>] NEXT <deiken>

Yalolu

Bu ynerge deikenleri saya olarak kullanmamz salayan bir basic ynergesidir. Bu ynerge 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 iin rnek A ve B'ye bakmak yeterli olacaktr. Bu rneklerdeki n artlarn FOR-NEXT dngs ile yapmak daha kolay olacaktr. STEP<artma says> ifadesi kullanlmad zaman artma says +1 olarak ilem grecektir. 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 kk ise artma says pozitif, bunun tersi durumda ise artma says negatif olmaldr. Aksi taktirde sonsuz dng oluacaktr. Bir dier konu; eer i ie birden fazla dng ald ise dnglerin kapan ifadeleri olan next'ler de en ierdekinden dtakilere doru dngler kapatlmaldr. Bir dngnn kapatlmas iin o dng balatlrken kullanlan FOR deyiminin nndeki deiken ile NEXT deyiminin nndeki deiken ayn olmaldr. Bir dier husus dngnn balang ve biti saylar ayn olsa bile her dng en az bir defa ileme girer. Yani FOR i=1 TO 1 dngs 1 kez ileme girecektir. Bir programda bir adet FOR-NEXT dngs var ise NEXT'in nne deiken yazmaya gerek yoktur. Ancak birden fazla ve i ie alm dnglerde NEXT'in nne mutlaka hangi dngye ait olduunu bildiren deiken yazlmaldr. RNEK: A rneinde verilen; 1'den 500'e kadar olan saylarn toplam ve ortalamasn bulan program FOR-NEXT dngs ile yapalm:

33

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

10 20 30 40 50 60 70

FOR i=1 TO 500 tplam=tplam+i NEXT i rt=tplam/500 PRINT "1'den 500'e kadar olan saylarn" PRINT "Ortalamas =";rt PRINT "Toplam =";tplam

RUN 1'den 500'e kadar olan saylarn Ortalamas =250.5 Toplam =125250 RNEK: 50'den 1'e kadar olan saylarn toplamn bulunuz? Bu rnei iki ekilde yapmak mmkndr. Biz bu iki yolu da gstererek rencinin dng kavramn anlamasna yardmc olmaya alacaz. 10 REM DNG KNCMETODU METOD 20 FOR n=50n=50 TO 1 STEP -1 30 t=t+n 40 NEXT n=n-1n 50 PRINT"50'den 1'e kadar IF n=0 THEN 50 ELSE 30 olan saylarn toplam=";t 60 END 60 PRINT "50'den 1'e kadar saylarn toplam=";t 70 END

REM : Kullanl Formu : REM <Aklama ifadesi> Program asndan hibir nemi yoktur. Bu ynerge kullancdan ziyade programcy ilgilendirmektedir. REM deyimi nne programc hatrlamak istedii aklama 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?

34

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

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

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 gsteren 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 geici olarak durdurulmasnda kullanlr. END ile arasndaki fark ise STOP komutu ile program durdurulduunda en son ilem gren 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.

35

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

RNEK: Alt snr ve st snr dardan verilen tamsaylar dizisinin ift saylarn toplayan ve ortalamasn bulan bir program yaznz? 10 20 30 40 50 60 70 80 90 INPUT "ALT SINIRI ve ST SINIRI GRNZ";a, FOR i=a TO c=INT (i/2) : b=i/2 IF b=c THEN t=t+i :x=x+1 NEXT i rt = t/x PRINT a;"'den";;"'ye kadar olan ift saylarn" PRINT "Toplam =";t PRINT "Ortalamas =";rt

RNEK: Verilen iki saydan byn ve kn ayrt eden ve yazan bir program yaznz? 10 20 30 40 50 60 INPUT "iki say giriniz";s1,s2 IF s1>s2 THEN b=s1: k=s2 IF s1<s2 THEN k=s1: b=s2 PRINT "Verilen saylarn by PRINT "Verilen saylarn kg STOP

=";b =";k

RNEK: Taban yarap ve ykseklii verilen koninin hacmini bulan program yaznz? V=pi * r^2 * h / 3 10 20 30 40 50 60 70 INPUT "Koninin taban yarap ";r INPUT "Koninin ykseklii ";h pi=22/7 hacim=pi*r^2*h/3 PRINT "Taban yarap";r;"cm PRINT "ve ykseklii";h;"cm. olan koninin" PRINT "hacmi";hacim;"cm3'tr."

36

ALGORTMA VE PROGRAMLAMAYA GR

Yalolu

RNEK: Kenar lleri verilen genin evresini ve alann hesaplayan bir program yaznz? 10 20 30 40 INPUT "genin kenar lleri=";a,b,c evre=a+b+c : u=(a+b+c)/2 Alan= SQR(u*(u-a)*(u-b)*(u-c)) PRINT "ALAN=";Alan,"EVRE=";evre

LOCATE: Kullanl Formu: LOCATE (y,x) Bu deyim yazlacak olan yaznn ekran zerinde nereye yazlacan belirtir. Burada y says 25'den byk olamaz ve verinin hangi satra yazlacan belirtir. x says ise verinin yazlaca stunu belirler. Bu rakam ekrann yazma kabiliyetine gre 40 yada 80'den byk olamaz. SPC: Kullanl Formu: SPC(x) Bu deyim PRINT ile yaz yazlrken yazlan veriler arasnda boluk brakmaya yarar. RNEK: 12345678901234567890123456789012345678901234567890123456789 ----------------------------------------------------------- 10 a$="TRKYE" : b$="CUMHURYET" 20 LOCATE (8,30):PRINT a$;SPC(5);b$ RUN TRKYE CUMHURYET

37

ALGORTMA VE PROGRAMLAMAYA GR CHR$: Kullanl Formu: CHR$(saysal deiken)

Yalolu

Print ile birlikte kullanlr. Yazdrmalarda bazen yle sorunlar kar ki bunlar yazmakta zorlanrz. Mesela " " iareti yazdrmak istediimizde PRINT deyiminin nnde imdiye kadar rendiimiz metotlarla mmkn deildir. te bu gibi durumlarda CHR$ deyimi kullanlarak istediimiz (eer bilgisayarmzda o iaret mevcut ise) iaret veya ekli yazdrmamz mmkn olacaktr. Kullanl formundaki saysal ifade yerinde 255'den kk bir say kullanlmaldr. Kullanlan say yazmak istediimiz iaretin makine ierisindeki kodu olmaldr. Hangi rakamn sizin bilgisayarnzda hangi iareti simgelediini bilgisayarlarn kullanma klavuzunda bulmak mmkndr. ASC: Kullanl Formu: ASC(ifade) Bilgisayarlar ekrana yazabildikleri her iaret, harf ya da rakama karlk ilerinde 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 mmkndr. 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? 10 FOR i=32 TO 255 20 PRINT i;CHR$(i), 30 NEXT i

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)

38

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 iin %20, 30001-60000 iin %15 , 60001-100000 iin %10, 100000maa miktar iin %5 'dir. 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

GET (INKEY$) : Kullanl Formu: GET (Yazsal dizi deikeni) <Yazsal dizi deikeni>=INKEY$ Bu ynerge 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. Bylece kullancnn yanllkla baka bir tua basmas nlenmi olur. Bu programlarda 10 numaral satr bilgisayarn bir tua baslncaya kadar beklemesini salar. "" iaretleri arasnda hibir iaret olmamaldr.

39

ALGORTMA VE PROGRAMLAMAYA GR RNEK:

Yalolu

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$ iin ayr ayr yapnz? 5 REM RNEGN GET LE ZM 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 seiniz":GO TO 20 60 a=INT(RND(0)*6+1) : b=INT(6*RND(0)+1) 70 PRINT a,b 80 GOTO 10

5 REM RNEGIN INKEY$ LE ZM 10 PRINT "Zar atacaksanz E, atmayacaksanz H tuuna basn 20 a$=INKEY$ :IF a$="" THEN 20 30 IF a$="E" THEN 60 40 IF a$="H" THEN STOP 50 PRINT "E ya da H tuuna basnz" :GO TO 20 60 FOR i=1 TO 2 70 a(i)=INT(RND(0)*6+1) 80 PRINT a(i), 90 NEXT i 100 PRINT : GO TO 10

40

You might also like