You are on page 1of 66

DERS NOTLARI

Ders Ad : Algoritma ve Programlamaya Giri

Ksa Ders zeti Bu dersin I. Blmnde Programlama ile ilgili kavramlar problem zme yntemleri Algoritma, ak diyagramlar anlatlp dier blmlerde ise problemlerin zmlerinin bir dil (Pascal) kullanlarak zlmesi iin gereken komutlar anlatlmtr.

Dersin Hedefleri Bu ders sonunda renciler, programlama mant, problemlere zm yaklam, bir dil kullanarak program yazma gibi becerileri kazanacaktr. Ayrca Pascal programlama dilinin komutlarn ve bu dilde programlar gelitirmeyi reneceklerdir.

Dersin lenmesi Bu ders haftada 4 saat olup 3 saat teorik 1 saat uygulamadan olumaktadr. Teorik derslerde konular snfta anlatlp uygulama saatinde ise bilgisayar laboratuarlarnda uygulama yaplacaktr.

Snav ve derse devam Bu ders iin bir vize ve bir final olmak zere toplam iki teorik snav yaplmaktadr. Ortalama hesaplanrken Vizenin %40 finalin %60 alnmaktadr. Derse her renci %70 orannda devam etmek zorundadr. Yani 14 haftalk eitim dneminde her renci en az 10 hafta derslere katlmak zorundadr.

Algoritma ve Programlamaya Giri

r. Gr. Mustafa AKSU

1. BLGSAYAR PROGRAMLAMAYA GR
nsanlar her zaman dnr ve problem zerler. Birok problem, az ya da hi dnlmeden zlebilir. Her gn evden karken ne giyilmelidir? Bunun iin muhtemelen pencereden darya baklr. Hava yamurlu ise mevsim gereklerine gre giyinmenin yani sra darya karken bir de semsiye alnmas gerekir. Hava gneli ve scak ise o takdirde daha ince giyinilerek darya klr. Bylece problemin zm kendiliinden oluturulan bir kararla salanr. Yukardaki basit rnekte yaplan is, nce problemin belirlenmesi ve sonra problemin tanmndan yola karak zm iin deiik alternatiflerin deerlendirilmesidir. Bilgisayar programlamas srasnda izlenebilecek birok yol ve yntem vardr. Bilgisayar programcsnn probleme ilikin zm ortaya karabilmesi iin problem zm ile ilgili bilgileri bilmesi gerekir. Bilgisayar programlamasnda genel olarak belirli kalp ve kurallara uyulur. Bir bilgisayar yazlmnn oluturulmas srasnda aada sralanan ana admlara uyulur. * * * * * Problemin tanm zm ynteminin belirlenmesi Programn kodlanmas Programn alr duruma getirilmesi Belgeleme ve gncelletirme

Problemin tanm: Problemin normal yaz diliyle tanmlanmas ilemlerini kapsamaktadr. Problem zmne ilikin iyi bir program yapabilmek iin, problemin iyi bir ekilde tanmlanmas gerekir. zm Ynteminin Belirlenmesi: Bu admda zmn genel yaklam, temel giri/klar belirlenir ve problem zm adim adm program akis diyagramlaryla gsterilir. Programn kodlanmas: Program ayrntl olarak tanmlanp zm yollar aka belirtildikten sonra program kodlama almalarna balanabilir. Programn bastan sona yapsal bir dzende hazrlanmas ve uygun bir programlama dili seilmesi seim ileminin ilk aamasn oluturur. Programn alr Hale Getirilmesi: Programn kodlanmas srasnda yaplan imla hatalar, kodlama ve mantk hatalarnn giderilmesi ilemlerini kapsar. yi bir bilgisayar programnn doruluundan emin olmak iin defalarca test edilmi olmas gerekmektedir. Belgeleme ve gncelletirme: Oluturulan bir yazlm, sadece o yazlm gelitiren kiilerin kullanabilmesi gibi bir kstlamann nne gemek iin ayrntl referanslar hazrlanmal ve programla ilgili bilgiler verilmelidir. Bir yazlmda, o yazlm kullanan kii veya kurulularn yeni gereksinimleri ve deien koullar nedeniyle deiiklikler yaplmas gerekli olabilir. Bu deiikliklere gncelleme adi verilir. yi bir programda bulunmas gereken zellikler arasnda gncelleebilme n sralarda yer almaktadr.

Algoritma ve Programlamaya Giri

r. Gr. Mustafa AKSU

ekil 1.1. Yazlm oluturma evrelerini ematik olarak zetlemektedir.

ekil 1.1 Yazlm oluturma evreleri

1.1. Bilgisayar Programcl


Nedir bu bilgisayar programcl? Evet birok kii bilgisayar programclarnn ne ile uratn bilir fakat nasl urap neler yaptn pek bilmez... nce bilgisayar dnyasnda ska kullanlan bir kelimeden bahsedelim yazlm. Yazlm (software) kelimesi bilgisayar programlama dilleriyle oluturulan dokmanlar, dosyalar ifade eder. Yani bilgisayarnzda Algoritma ve Programlamaya Giri 3 r. Gr. Mustafa AKSU

iletilmek, altrlmak zere tasarmlanm dosyalar yazlm kapsamna girer. Yazlm programlama dilleri ile tasarlanr ve yazlr. Programlama dilleri, bilgisayarnzn donanmn (ekran kart,ses kart,modem...) sizin en rahat biimde kullanabileceiniz dzeye getirmeye alr. Yani bilgisayarn o souk 1010110 gibi rakamlarn sizin zevkle kullandnz programlara, iletim sistemlerine, oyunlara evirir. rnein kullanlmakta olan Windows iletim sistemi onbinlerce sayfadan, milyonlarca bilgisayar kodunun bir araya gelmesinden oluur. te iin tm zorluu, o kodlarn arasnda dolaan, hata mesajlarn gnlerce o kodlar gzden geirerek arayan, sandalye tepesinde saatlerce ayn ekrana bakarak ilgin grntler sergileyen programclarn zerindedir... Bilgisayar programclar iini zevkle yapan ve iini bir hobi edinmi insanlardan oluur. Aksi halde youn konsantrasyon ve sabr isteyen bu ii yapmak ar zorlar. Programlama dilleri kendi aralarnda snflara ayrlmlardr. nsann en zor renebilecei, anlayabilecei yani 1100101 gibi makina kodlarna yakn diller en alt seviyeli programlama dilleri, insann en kolay anlayp kullanabilecei ve insan diline yakn zellikler gsteren diller ise en yksek seviyeli programlama dilleridir. imdi bu snflandrmaya rnekler verelim; 1 ) ok yksek seviyeli diller: VisualBasic, Acces, Foxpro... 2 ) Yksek seviyeli diller: Pascal,Basic,Fortran... 3 ) Orta seviyeli diller: C,C++,ADA... 4 ) Dk seviyeli diller: Assembly... 5 ) Makina dilleri: Bilgisayarn alma dilleri 1 ve 0'lardan oluur... Bu dillerin kullanld alanlara rnek verirsek; 1 2 3 4 ) ) ) ) Bilim ve Mhendislikte: Pascal,C,C++,Fortran... Veritaban Programclnda: Dbase,Acces,Foxpro,Sql... Yapay Zeka Kullanmnda: Prolog,Lisp... Sistem Programclnda: C,C++ ve sembolik makina dilleri...

Bir bilgisayar program nasl yazlr? Bir yazlm deiik dillerle oluturulabilir fakat izlenen yntemler genelde birbirine benzer. rnein Algoritma... Algoritma, elimizdeki sorunun zmne gidebilmek iin tasarlanan yollar, yntemlerdir. rnein bir arkadanza daha nce gitmedii bir yerdeki bir postaneyi tarif edeceksiniz. Bunun iin anlatmda genelden zele giden bir yol izlersiniz. nce gidecei semti sonra caddeyi sonra postanenin olduu yn tarif eder son olarak da kolay bulmas iin postanenin evresindeki gze batan zelliklerden bahsedersiniz. te bu yaptklarnz bir algoritmadr. Ve amacnz arkadanza postaneyi bu algoritma yardmyla tarif etmektir... Bilgisayar programlama dilleri de programclkta bunun gibi yntemler kullanarak zme gider. Algoritmann uzunluu kullanlan programlama dilinin seviyesi ve problemin karmakl ile doru orantldr. Yaplan algoritma ve tasarmdan sonra yazlm aamasna gelinir ve bu aamada yaplacak programn kullanm mr, programn kullanm dzeyi ve hangi amala kullanlaca gibi sorularn cevaplarna baklarak programlama dili seilir. Dil seimi baz kriterlere gre yaplmaktadr, rnein ksa srmesi ve grsel tasarm iermesi, veritaban iletiimi youn kullanlmas gereken bir program yapmamz gerekiyor olsun. Bu durumda Assembly dili ile yola ktmzda bahsedilen proje birka kiilik deneyimli bir programc grubu ile birka yl alr. C ile iki programc ayn ii drt ayda VisualBasic veya Delphi ile bir programc bahsedilen ii bir iki aya yakn bir srede yapabilir. Baka bir adan rnek verirsek rnein bir ekran kart programlamamz gerekiyor ve bu kartn driver'n ( srcsn ) biz yazacaz. Bu durumda bu ii VB veya Delphi ile yapmamz imkanszdr, kullanmamz gereken diller ncelikle Assembly ve C/C++ olmaldr. Evet, programlama dillerinin kendi alanlar vardr ve her dil kendi alannda kullanld srece baarl ve etkili kullanlm olur. Buraya kadar anlatlan zetlersek: Bir bilgisayar program yazmak iin belli aamalar vardr ve bu aamalar geildiinde kodlamaya balanabilir.

Algoritma ve Programlamaya Giri

r. Gr. Mustafa AKSU

Bunlar: 1 ) Analiz 2 ) Algoritma 3 ) Dil Seimi 4 ) Kodlama

Analiz ile gerekletirilmek istenen proje tasarmlanr ve parametreleri aratrlr. Algoritma ile admlar tayin edilir. Dil seimi ile en uygun programlama dili seilir. Ve kodlamaya balanr.

1.1.1 Problem zme ve Algoritmalar


1.1 Problem zme Problem zmede, soruna hemen girimek yerine, dikkatli ve sistematik yaklam ilke olmaldr. Problem iyice anlalmal ve mmkn olduu kadar kk paralara ayrlmaldr. Descartesin "Discourse on Method" isimli kitabnda problem zme teknikleri u 4 madde ile zetlenir; 1. Doruluu kesin olarak kantlanmadka, hibir eyi doru olarak kabul etmeyin; tahmin ve nyarglardan kann. 2. Karlatnz her gl mmkn olduu kadar ok paraya bln. 3. Dzenli bir biimde dnn; anlalmas en kolay olan eylerle balayp yava yava daha zor ve karmak olanlara doru ilerleyiniz. 4. Olaya baknz ok genel, hazrladnz ayrntl liste ise hibir eyi darda brakmayacak kadar kusursuz ve eksiksiz olsun.

1.2 Algoritmalar Ksaca algoritma belirli bir grevi yerine getiren sonlu saydaki ilemler dizisidir. Geni anlamda ise algoritma, verilen herhangi bir sorunun zmne ulamak iin uygulanmas gerekli admlarn hi bir yoruma yer vermeksizin ak, dzenli ve sral bir ekilde sz ve yaz ile ifadesidir. Algoritmay oluturan admlar zellikle basit ve ak olarak sralandrlmaldr. M.S. 9.yy da ranl Musaolu Horzumlu Mehmet (Alharezmi adn araplar takmtr) problemlerin zm iin genel kurallar oluturdu. Algoritma Alharezmi'nin Latince okunuu. Her algoritma aadaki kriterleri salamaldr. 1. Girdi: Sfr veya daha fazla deer dardan verilmeli. 2. kt: En azndan bir deer retilmeli. 3. Aklk: Her ilem (komut) ak olmal ve farkl anlamlar iermemeli. 4. Sonluluk: Her trl olaslk iin algoritma sonlu admda bitmeli. 5. Etkinlik: Her komut kiinin kalem ve kat ile yrtebilecei kadar basit olmaldr. Not: Bir program iin 4. zellik geerli deil. iletim sistemleri gibi program sonsuza dek alrlar .

1.1. PROGRAM YAZMA SREC


Problemin farkna varmak, Problemi analiz etmek, zm yollar dnmek, yi zm yollar seip algoritma oluturmak, Ak diyagram izmek, Uygun bir dilde kodlamak, Program test etmek, 5 r. Gr. Mustafa AKSU

Algoritma ve Programlamaya Giri

Program datmak.

Program : Belirli bir problemi zmek iin bir bilgisayar dili kullanlarak yazlm deyimler dizisi. Bir problemi bilgisayar ile zmek iin gelitireceimiz programn yazmnda izleyeceimiz admlar: i) Problemin ne olduunu kavra. zm iin gereksinimleri belirle. ii) Problemin girdilerini, ktlarn ve dier kstlama ve gereksinimleri belirle ( bilgilerin giri ve k biimlerinin nasl olacana kadar). iii) Problemin zmn veren algoritmay yaz. iv) Algoritmay bir programla dili ile yaz. v) Programn doru alp almadn test et. Bu testi deiik veriler (girdiler) iin tekrarla. Algoritmik zm yntemlerine ilk rnei gnlk yaantmzdan verelim. rnek 1: rneimiz bir insanin evden kp ise giderken izleyecei yolu ve iyerine giriinde ilk yapacaklarn adm adm tanmlamaktadr. zm 1: Evden darya k Otobs durana yr Durakta gidecein yndeki otobs bekle Otobsn geldiinde otobse bin Biletini bilet kumbarasna at necein yere yaknlatnda arkaya yr neceini belirten ikaz lambasna bas Otobs durunca in yerine doru yr Is yeri giri kapsndan ieriye gir Mesai arkadalarnla selamla Is giysini giy sini yapmaya basla. Yukardaki rnekte grld gibi, evden ise gidite yaplabilecek ilemler adm adm srasyla, ksa ve ak olarak tanmlanmaya allmtr. Yukardaki algoritma kiinin otobs karma olasl dnlmeden oluturulmutur. Kii duraa geldiinde binecei otobs karm ise algoritmamz aadaki ekilde deitirilebilir. zm 2: Evden darya k Otobs durana yr Otobsn saati gemi? Durakta gidecein yndeki bir sonraki otobs bekle Bir sonraki otobs gelene kadar 4. adimi uygula Otobsn geldiinde otobse bin Biletini bilet kumbarasna at necein yere yaknlatnda arkaya yr neceini belirten ikaz lambasna bas Otobs durunca in yerine doru yr Is yeri giri kapsndan ieriye gir Mesai arkadalarnla selamla Is giysini giy sini yapmaya basla. Her iki rnekte grld gibi sorunu zme gtrebilmek iin gerekli olan admlar sral ve ak bir biimde belirlenmitir. Algoritmann herhangi bir admndaki kk bir yanllk doru zme ulamay engelleyebilir. Bu nedenle algoritma hazrlandktan sonra dikkatle incelenmeli ve varsa admlardaki yanllklar dzeltilmelidir. Algoritma ve Programlamaya Giri 6 r. Gr. Mustafa AKSU

Programlamann temeli olan algoritma hazrlanmasnda dikkat ekici bir nokta, ayni sorunu zmek iin hazrlanabilecek olas algoritma ayisinin birden ok olmasdr. Baka deyile, bir sorunun zm iin birbirinden farkl birden fazla sayda algoritma hazrlanabilir. Bu da gsteriyor ki herhangi bir problemin zm iin birbirinden farkl yzlerce bilgisayar program yazlabilir. Bir bilgisayar program iin hazrlanacak olan algoritma da ayni ekilde zm yolunu bilmeyen bir kiiye, zme ulamak iin neler yapmas gerektii anlatlyormu gibi hazrlanmal ve eksik bir nokta brakmakszn gerekli tm admlar ak ve dzenli olarak iermelidir. zm iin kullanlacak bilgilerin nereden alnaca, nerede saklanaca ve zmn program kullancsna nasl ulatrlaca algoritma admlar arasnda belirtilmelidir.

Aada deiik ilemlere ilikin algoritma rnekleri verilmitir. rnek 2: ki sayy toplamak iin gerekli programa ait algoritmann oluturulmas. Algoritma: 1. 2. 3. 4. 5. Birinci sayy gir kinci sayy gir ki saynn toplamn yap Toplamn deerini yaz Bitir.

Bu tam bir algoritmadr. Szcklerin ortaya karaca yanl anlamalarn ortadan kaldrmak amacyla semboller ve matematik dilini gerektiren baz ksaltmalar kullanmak daha uygun olacaktr. Bir algoritma yazlrken su metot izlenmelidir: Programda kullanlacak elemanlar temsil etmek zere uygun isimler Veya deikenler se. Baz isimlere balang deeri olarak zmn gerektirdii uygun deerler ver. Gerekirse programa girilecek verileri dzenle. Cebirsel notasyon ve kararlar kullanarak aritmetik ilemleri gerekletir. ks dzenle. Bitir. Yukarda iki saynn toplanmas iin oluturduumuz algoritmay bu yeni gereksinimlere uyarak yeniden yazalm. Toplam adi iin Z, Birinci say iin X, kinci say iin Y deerleri kullanlrsa;

Algoritma: 1. 2. 3. 4. 5. X deerini gir Y deerini gir Z ? X+Y Z' yi yaz Bitir.

Grld zere bu ekilde bir algoritma ile zm yolunu izlemek daha kolaydr. Bundan sonra verilen rneklerde bu tip algoritma kullanlacaktr.

Algoritma ve Programlamaya Giri

r. Gr. Mustafa AKSU

rnek 3: ki saynn ortalamasn bulan programa ait algoritmann oluturulmas Algoritma: 1. 2. 3. 4. 5. 6. X deerini gir Y deerini gir Z ? X+Y Ort? Z/2 Ort deerini yaz Bitir.

Bu rnekte Ort deeri ile iki saynn ortalamas temsil edilmitir.

rnek 4: Be saynn toplamn ve ortalamasn veren programa ait algoritmann oluturulmas Toplam adi iin Ortalama adi iin Girilen saylar iin Arttrma iin Top Ort X Saya kullanlrsa

Algoritma: 1. Top ? 0, Saya ? 0 2. X'i gir 3. Top? Top+X 4. Saya ? Saya +1 5. Eer Saya <5 ise A2'ye git 6. Ort? Top/5 7. Top ve Ort deerlerini yaz 8. Bitir.

rnek 5: Kenar uzunluklar verilen dikdrtgenin alan hesabn yapan programa ait algoritmann hazrlanmas. Kenar uzunluklar negatif olarak girildii durumda veri girii tekrarlanacaktr. Dikdrtgenin ksa kenar : a Dikdrtgenin uzun kenar : b Dikdrtgenin alan: Alan

Algoritma: 1. a deerini gir 2. a<0 ise 1. adimi tekrarla 3. b deerini gir 4. b<0 ise 3. adimi tekrarla 5. Alan ? a*b 6. Alan deerini yaz 7. Bitir.

Algoritma ve Programlamaya Giri

r. Gr. Mustafa AKSU

rnek 6: apraz dviz kuru hesabi yapan programn algoritmasnn oluturulmas. Bu algoritmann oluumunda veriler; 1 Amerikan dolarnn TL karl, hesaplanacak $ miktar, k ise verilen $'in TL karl olacaktr. Dolarn deeri :Doldeg Girilen Dolar miktar :Dolar TL karl :Tlkar

Algoritma: 1. 2. 3. 4. 5. 6. 7. Doldeg'i gir Doldeg<0 ise 1. adimi tekrarla Dolar'i gir Dolar<0 ise 3.adimi tekrarla Tlkar? Doldeg*Dolar Tlkar deerini yaz Bitir

rnek 7: Verilen bir saynn faktriyelini hesaplayan programn algoritmasnn oluturulmas saynn faktriyeli :Fak Faktriyel deikeni :X Faktriyeli hesaplanacak sayi :Y Algoritma: 1. Fak? 1, X? 0 2. Y'i gir 3. Y<0 ise 2. adimi tekrarla 4. X? X+1 5. Fak? Fak*X 6. X<Y ise 4. adma geri dn 7. Fak deerini yaz 8. Bitir. Bu algoritmada 1. admda X 'e 0 ve Fak deikenine 1 deeri atanyor. 2. admda Y deeri giriliyor ve 3. admda Y deerinin 0 dan kk bir deer olup olmad denetlenerek, sonuca gre gerekli komut veriliyor. 4. admda X'in deeri 1 arttrlyor ve 5. admda X iin Fak deeri hesaplanyor. 6. admda X in deerinin faktriyeli hesaplanacak saydan kk olmas durumunda 4. admdan itibaren ilemlerin tekrarlanmas komutu veriliyor, X' in deerinin Yiye eit olmas durumunda ilemler tamamlanarak hesaplanan deerin yazdrlmas ileminden sonra programn almas sona ermektedir.

1.1.2 Ak Diyagramlar
Gelitirilecek olan yazlmn genel yapsnn ematik gsterimine akis diyagram adi verilir. Akis diyagramlar, yazlm oluturacak program paralarn ve bu paralarn birbirleri ile olan ilikilerini belirler. Bir bilgisayar programnn oluturulmasnda akis diyagramlarnn hazrlanmas, algoritma oluturma aamasndan sonra gelmektedir. Bilgisayar programnn oluturulmas srasnda algoritma aamas atlanarak, dorudan akis diyagramlarnn hazrlanmasna balanabilir. Programlama tekniinde nemli lde yol alm kiiler bu aamay da atlayarak direkt olarak programn yazmna geebilirler. Akis diyagramlarnn algoritmadan fark, admlarn simgeler seklinde kutular iinde yazlm olmas ve admlar arasndaki ilikilerin (i ak) oklar ile gsterilmesidir. Algoritma ve Programlamaya Giri 9 r. Gr. Mustafa AKSU

Akis diyagramlarnda kullanlan semboller, anlamlar ve kullan amalar aadaki tabloda verilmitir. Tablo 1. Ak diyagramlarnda kullanlan temel semboller ve anlamlar

Akis diyagramnn balang ve biti yerlerini gsterir. Balang simgesinden k oku vardr. Biti simgesinde giri oku vardr.

Dardan veri girii. Veri okutma ilemleri iin.

Aritmetik kullanlr.

ilemler

ve

deiik

atama ilemlerinin temsil edilmesi iin

Kontrol ve karar verme ilemlerini temsil eder.

Oklar Diyagramn akis ynn gsterir.

Belgeye, yazcya, ekrana kt iin kullanlr.

Bu sembolleri daha da oaltmak mmkn fakat temel olarak ak diyagramlarnda bu ekiller kullanlacaktr. Ayrntl bir akis diyagram, yazlm oluturan ilemleri ve ilikilerini en kk detayna kadar belirler. Bir bilgisayar programnn gelitirilmesinde kullanlan programlama dili ne olursa olsun bu programlarn akis diyagramlarnda genel olarak yalnz basit mantksal yap kullanlr. Bu mantksal yaplardan en basiti sral yapdr(ekil 1.2). Sral yap, hazrlanacak programdaki her ilemin mantk srasna gre nerede yer almas gerektiini vurgular. Bu yap sona erinceye kadar ikinci bir ilem balayamaz.

Algoritma ve Programlamaya Giri

10

r. Gr. Mustafa AKSU

Mantksal yaplardan ikincisi Karar Verme yapsdr (ekil 1.3). Programlama srasnda If...Then... Else yaps ile tanyacamz bu mantksal yaplar, birden fazla sral yap seeneini kapsayan modllerde, hangi artlarda hangi sral yapnn seileceini belirler.

nc mantksal yap eidini tekrarl yaplar (ekil 1.4) oluturmaktadr. Bu yaplara Pascal programlama dilinde For (ekil 1.4), While ve Repeat..Until yaps adi da verilir. artlara gre deiik ilem gruplarnn yaplmasn salar. Bu yap yukarda sz edilen iki yapnn eitli kombinezonlarn tekrarlanmasndan olumutur. Sz konusu deiik yap, deiik kombinezonlarda kullanlarak istenilen ilevleri yerine getirecek programlar hazrlanabilir. Programlarn bu basit yap ile snrlandrlmas program modllerinin daha kolay tasarlanmasn salar.

ekil 1.4. Tekrarl yaplar

Algoritma ve Programlamaya Giri

11

r. Gr. Mustafa AKSU

1.1.3. Akis diyagram rnekleri


Bu blmde, szl veya yazl olarak oluturduumuz algoritmann programa dntrlmesi srasnda programn alma srasn da gsteren akis diyagramlaryla ilgili rnekler aada verilmitir. rnek 1: Dardan girilen bir sayy okuyup bu sayy tekrar yazdran programn ak emasn iziniz. Bala

Sayy oku

Sayy Yazdr

Bitir rnek 2: Dardan girilen iki sayy toplayp sonucu ekrana yazdran programn ak emasn iziniz.

Bala

X,Y oku

Toplam=X+Y

Toplam Yazdr

Bitir

Algoritma ve Programlamaya Giri

12

r. Gr. Mustafa AKSU

rnek 3: Dardan girilen iki sayy toplayp bunlarn ortalamasn bulup toplam ve ortalama sonucunu ekrana yazdran programn ak emasn iziniz.

Bala

X,Y oku

Toplam=X+Y Ort=toplam/2

Toplam ve ortu Yazdr

Bitir

Algoritma ve Programlamaya Giri

13

r. Gr. Mustafa AKSU

rnek 4: 1'den 100'e kadar olan saylarn toplamlarn ve ortalamalarn veren programn ak diyagramn iziniz.

Bala

Ortalama , Toplam yazdr

Bitir

Algoritma ve Programlamaya Giri

14

r. Gr. Mustafa AKSU

rnek 5: Dardan girilen N saysnn faktriyelini hesaplayan programn ak diyagramn iziniz.

Algoritma ve Programlamaya Giri

15

r. Gr. Mustafa AKSU

Soru : Bir sayy dardan okuyup tekrar ekrana yazdran problemi yntemle de (Ak diyagram, Algoritma, Pascal) znz.

Algoritma

Ak Diyagram

Pascal Kodu

Var 1. Bala 2. A saysn oku 3. Sayy yazdr readln (A); 4. Bitir. writeln(Girdiginiz say = , A); readln; end. A:integer; Begin write (Bir say girin);

Algoritma ve Programlamaya Giri

16

r. Gr. Mustafa AKSU

Soru: Dardan iki say okuyup bunlar toplayarak sonucu ekrana yazdran problemi znz.

Algoritma

Ak Diyagram

Pascal Kodu

Var 1. Bala X,Y,Toplam:integer; 2. X,Y saysn oku 3. Toplam= X+Y al 4. Toplam yazdr 5. Bitir. writeln(Saylarn Toplam = , toplam); readln; end. Begin write (ki say girin); readln (X,Y); toplam:=X+Y;

Algoritma ve Programlamaya Giri

17

r. Gr. Mustafa AKSU

Soru: Dardan iki say okuyup bunlarn aritmetik ortalamasn bulun problemin zm.

Algoritma

Ak Diyagram

Pascal Kodu

Var 1. Bala 2. X,Y saysn oku 3. Toplam= X+Y al 4. ort=toplam / 2 al 5. Toplam ve ortu yazdr ort:=toplam / 2; 6. Bitir. writeln(Saylarn Toplam = , toplam); writeln(Saylarn Ortalamas = , ort); readln; end. X,Y,Toplam:integer; Ort:real; Begin write (ki say girin); readln (X,Y); toplam:=X+Y;

Algoritma ve Programlamaya Giri

18

r. Gr. Mustafa AKSU

Soru: Dardan bir say okuyup bu saynn faktriyelini hesaplayan problemin zm.

Algoritma

Ak Diyagram

Pascal Kodu

1. Bala 2. sayac=0, Faktor=1 al 3. Bir say oku (N)

Var N,sayac:integer; Faktor:longint; Begin write (Bir say girin);

4. sayac=sayac+1 al 5. faktor=faktor*sayac 6. Eer sayac < N ise 4. adma git 7. Faktoru yazdr 8. Bitir.

readln (N); for sayac:=1 to N do faktor:=faktor*sayac ; writeln(Faktriyel = , faktor); readln; end.

Algoritma ve Programlamaya Giri

19

r. Gr. Mustafa AKSU

Soru: 0-100 aralndaki ift saylar toplayp ekrana yazdran problemin zm

Algoritma

Ak Diyagram

Pascal Kodu

1. Bala 2. i=0, top=0 al 3. top:=top+i al 4. i:=i+2 al ; 5. Eer i>=100 ise 6. adma deilse 3. adma git 6. top deerini yaz 7. Bitir.

var i,top:integer; begin top:=0; for i:=1 to 100 do begin if (i mod 2=0) then top:=top+i; end; writeln(sayilarin toplami = ',top); readln; end.

Algoritma ve Programlamaya Giri

20

r. Gr. Mustafa AKSU

2. PASCAL PROGRAMLAMA DL YAPISI


2.1. Giri
Bir Pascal program en genel anlamda ayr ksmdan olumutur. Bu ksmlar bulunmalar gereken sraya gre aada verilmitir. Program Bal; {stee bal} Tanmlama Blou; Begin cra Blou; {Yaplacak lemler} End. Programlarn asl icra blm son blmdr. Yukarda icra blou olarak gsterilen bu blm, Pascal komut cmlelerinden oluur. ICRA blou, "BEGIN" ile balar "END." ile sona erer. Her program blou birden fazla "END" ierebilir. Ancak bu end deyimleri program iinde bulunan deiik bloklarn sonunu gstermek iin kullanlr ve hi birinin sonunda "." iareti bulunmaz. "." iareti sadece ana programn sonunu gstermek amacyla kullanlabilir. Ana programn sonu haricindeki dier "END" deyimlerinin sonunda ";" iareti kullanlr. {Deiken sabit varsa}

rnek Bir Program:


Program Ilk; Const b =10; Var a : integer; c : real; Begin Write ('a saysn giriniz : '); Readln(a); c := a + b; Writeln('a + b = ' , c); Program Bal, sonuna ; konulur. Sabit say tanmlama blm b sabitinin deeri 10 dur. Deiken tanmlama blm a says tam saydr. c says ondalkl saydr. Ana program balad. Ekrana ' ... ' arasndakileri yaz. a deikenini (klavyeden) gir. Alt satra ge. (ln) a deikeni ile b sabitini topla, c'ye ata. '...' iindekileri yaz, sonucunu yaz (c'yi), alt satra ge. Klavyeden herhangi bir karakter oku (Program altrldnda sonucu (c) ekranda bekletmek iindir. (yazlmasa da olur). Son satrdan bir onceki satra ; yazlmasa da olur. Program sonu (Her Begin'in bir End'i vardr.Programn sonundaki End'in sonuna nokta isareti konulur.

Readln

End.

Algoritma ve Programlamaya Giri

21

r. Gr. Mustafa AKSU

Program Bal: Bir Pascal programnn ilk ksm, kullanlmas programcnn seimine bal olan "program bal'dr. Program bal, programa bir isim vermek iin kullanlr ve program isimlerinde ngiliz alfabesinde bulunmayan Trke karakterler kullanlmamaldr. Programa uzun isimler verilebilir ancak szckler arasnda boluk bulunmamaldr. Tanmlama Blou: Pascal programnn bu blmnde program icra blounda kullanlan sabitler ve deikenlerin isimleri ve bunlarn ne tr sabit/deiken olduu bildirilir. Bu blok Pascal program ierisinde mutlaka belirtilmelidir. rnek olarak, aada deiik veri tiplerindeki deikenlerin bir tanmlama blounda nasl tanmlanabilecei gsterilmitir.

Tanm ABS A B C F H J KL

Veri Tipi
:REAL; :STRING; :INTEGER; :LONGINT; :SHORTINT ; :BOOLEAN; :BYTE; :WORD;

2.2. zel Semboller ve Pascal Szckleri 2.2.1 zel Semboller


Bir Pascal programnda kullanlabilecek zel semboller A'dan Z'ye byk ve a'dan z'ye kk ngiliz alfabesi harfleri, 0-9 aras rakamlardr. Pascal programlama dilinde kullanlan dier baz semboller ve anlamlar aada tanmlanmtr.

Herhangi deiken ve sabitlerin karlatrlmasnda kullanlr. Bu iaret iine diziye ait indis numaras yazlr. Veri okunmas, yazlmas, yazlacak/okunacak bilgilerin balang ve bitilerinde kullanlr. ndisli deiken eleman tanm ayrc. ; Pascal komut ve deyimlerini birbirinden ayrmak iin kullanlrlar. ' (Tek Trnak) Alfasaysal bilgilerin tanmlanmasnda kullanlr. Bilgilerin balang ve bitilerinde kullanlmaktadr. , Deiken tanmlarnda, okunacak yada yazdrlacak bilgiler arasnda ayra olarak kullanlr. : Bilgi karakter yap tipi tanmlamalarnda ve saysal bilgilerin k formatlarnda kullanlr. . Bir gruba bal bir alt grup veya bir kayt saha ismi tanmlarnda elemanlandrma iareti olarak, sabit bilgilerdeki rakamlarn ondalk iareti olarak ve Pascal programlarnn sonunu belirlemek amacyla kullanlr. := aretin solundaki deere sandaki bilgiyi atama ilemini yapar. { } Aklama ifadelerinin balang ve bitimlerinde kullanlr. (* *) Aklama ifadelerinin balang ve bitimlerinde kullanlr. >, <, = [ ] ( )

2.2.2 Pascal Szckleri


Turbo Pascalda kendi ilevleri dnda kullanlamayacak olan szckler vardr. Bu szckler ayrlm szckler olarak tanmlanmakta olup programc tarafndan yeniden tanmlanamaz, bir deiken ismi olarak kullanlamaz veya deitirilemezler. Bu szcklerin isimleri aada verilmitir:

Algoritma ve Programlamaya Giri

22

r. Gr. Mustafa AKSU

And
Case

Asm
Const

Div End
Goto Inline

Do
File

Array Constructor Downto

For
Implementation Label

Begin Destruct Else Function

If
Interface

on Mod
Object Program

Nil Or
Record

Not
Packed Repeat String Unit While

Of
Procedure

Set
Then Until With

Shr
Type

Shl To
Uses

Var

Xor

2.3. Deiken veya Sabitlerin Tanmlanmas


Var Blou: Pascalda deiken tanmlamak iin VAR blou kullanlr. Bu blokta bir deiken tanmlamak iin nce deikenin ad, sonra : (iki nokta stste) ve son olarak da deikenin tipi belirtilir. Ayn tipte olan deikenleri virglle ayrarak bir defada da tanmlayabilirsiniz. Deiken Tanmlamalarna rnekler: Var Yas : shortint; BOY : byte; SAYI : integer; kisisayisi : integer; BuyukSayi : longint; Para : real; Pi : real; Sayac : word; Nufus : single; sayi2 : double; araLIK : extended; SaYI3 : comp; Yeni : byte; harf : char; Sayi : integer; isim, Soyisim : string; Var blou baka bir bloun balamas ile biter. Programnzn daha okunakl olmas iin : leri alt alta getirmeye zen gsterebilirsiniz. Unutmayn ki iyi bir programc kodunun okunurluundan belli olur. Const Blou: Pascalda sabit tanmlar CONST blounda yaplr. Sabitlerin zellii program ierisinde deerlerinin deitirilememesidir. Bir sabitin tanmlanmas iin nce sabitin ad, sonra = ve sabit deeri yazlr.

Algoritma ve Programlamaya Giri

23

r. Gr. Mustafa AKSU

Sabit Tanmlamalarna rnekler : Const Pi = 3.14; Pi_Sayisi = 3.1415; Bu_yil = 1999; Tarih = '29/10/11999'; isLEMciler = '+ - * /'; iSim = 'Kenan'; SOYAD = 'DEMR'; YAS =20; Mesaj = 'Devam etmek iin bir tua basnz... '; Avagadro_Sayisi = 6.02E23; Cosinus_45_derece = 0.7071067; TelefonNumarasi = '3434343'; Katsayi = 100; buyuk_mu = false; dogru = true; arti = ' + '; yanlis = 'false'; Bu blokta yaplabilecek dier bir tanm ise deikenlere tipi ile birlikte ilk deer verilmesidir. Bunun iin nce deikeninizin adn yazyorsunuz sonra : koyup tipini belirliyorsunuz ve ilk deer vermek iin = yazp ilk deerini veriyorsunuz. rnek: Const Sayac : byte = 0;
Pascal programlama dilinde icra blou iinde kullanlan deikenler VAR tanm blou iinde, sabitler ise CONST blou iinde tanmlanr. rnein A,B deerleri deiken ve C deeri sabit ise bu deerlerin programn tanm bloklarnda ifade edilmesi aadaki ekilde olacaktr.

VAR A,B:REAL; CONST C=12:INTEGER; Burada, VAR'dan sonra gelen REAL ifadesi A ve B deikenlerinin gerel say veri tipinde olduunu belirtirken CONST'dan sonra gelen INTEGER ifadesi C saysnn integer veri tipi olduunu belirtmektedir.

Deikenlere Deer Atama Pascalda dier programlama dillerinden farkl olarak deer atamas yaplrken ":=" (iki nokta st ste ve eittir iaret ikilisi kullanlr). Yani sayi diye bir integer tipindeki deikene 20 deerini atamak istediimizde yapmamz gerekenler yle olacaktr. rnek: Var sayi : integer; { sayi adnda integer tipinde bir deiken tanmladk } ...

Algoritma ve Programlamaya Giri

24

r. Gr. Mustafa AKSU

sayi := 20; (* sayi deikenine 20 deerini atadk *) sayi := sayi + 1; (* sayi deikeninin deerini 1 arttrdk *) ... Pascalda deikenlere deer atarken iki nokta stst ve eittir birlikte kullanlr. Eittir tek bana kullanldnda karlatrma operatr olarak grev yapar.

Deiken veya sabit tanmlarken unlara dikkat etmek gerekmektedir: 1. Bir deiken veya sabit A..Z veya a..z arasndaki harflerle yada _ (alt izgi) ile balar. ADRES, isim, _faktor gibi. 2. Deiken veya sabitlerde ilk karakter rakam olamaz. Var 1a, 23B : integer gibi. {Bu tanmlama yanl} a1, B23 : integer gibi. {Bu tanmlama doru} 3. Deiken birden fazla kelimeden oluuyorsa kelimeler arasna alt izgi ( _ ) karekteri konulmaldr. Var dairenin_alani : real; 4. Deiken ierisinde sadece Trk alfabesinde (,,,,,,,,,,,) karakterler kullanlamaz. Var maa, snf: integer ; {Tanmlamas yanl} 5. Deiken ierisinde noktalama iaretleri (, . ; ? / { [ ( ) , karlatrma operatrleri ( <,> =), boluk kullanlamaz. Var snfn.mevcudu: integer; {Tanmlamas yanl} 6. Tanmlanan deiken veya sabit programlama dilinin komutlar olamaz. rnek: Var Read, file : integer ; {Kullanmlar yanl} Not: integer ; {Kullanm yanl} 7. Tanmlanan deiken kullanlacak tipe ve kullanm amacna uygun tanmlanmaldr. olup ngiliz alfabesinde olmayan

Programlara Aklama Eklenmesi Program yazm srasnda kodlarmza ok sk ekleme ve karmalar yaparz bunlar bazen programlar iinden klmaz hale getirebilir, bunu engellemek iin Pascalda programlara aklama satrlar ekleyebilirsiniz. Aklama satrlar eklemeniz ileride programda yaptnz deiiklikleri ve program akn kolayca hatrlamanz ve programnz inceleyen dier

Algoritma ve Programlamaya Giri

25

r. Gr. Mustafa AKSU

kiilerin program kolayca anlamalarn salayacaktr. Pascalda aklama satr yazm iin {,} sembolleri veya (*,*) ikilileri kullanlr bunlar aklamann nerede balayp nerede bittiklerini belirtir. Programn derlenmesi esnasnda bu satrlar derleyici tarafndan gzard edilir, yani derlenmi kodda aklama satrlar yer almaz. Aklamalar birinci tipte { ile balar } ile biter. kinci tipte ise (* ile balar ve *) ile biter. Programlarnzda aklama satrlarna ska yer vermeniz hem sizin hem de program inceleyen dier kiilerin program rahat anlamalarn salayacaktr. rnek: Var sayi:integer; {sayi deikeni ka kiinin adn gireceimizi saymak iin kullanld. Bu bir aklama satrdr ve derleyici tarafndan gzard edilir} adi:string[20]; (* Bu da bir aklama satrdr ve bu satr da derleyici tarafndan gzard edilir*) Pascalda deiken tanmlamalarnn ve kod satrlarnn sonuna noktal virgl geldii halde aklama satrlarnn sonuna noktal virgl gelmediine zellikle dikkat edin.

2.4. Pascalda Veri Tipleri


Pascal programlama dilinde kullanlan deiik veri tiplerinin tanmlar ve geerli olduu alanlar aada tanmlanmtr.

2.4.1 Tamsay veri tipleri 2.4.1.1. Integer Tipi Veriler


Integer tipindeki veriler tamsaylardan olumulardr ve kayar nokta iermezler. Turbo Pascal'daki integer tipteki tamsaylar -32768 ile +32767 arasnda snrlandrlmladr.

2.4.1.2. Word Tipi Veriler


Word Tipi veriler, 0-65535 arasndaki tamsaylardan olumulardr.

2.4.1.3. Shortint Tipi Veriler


-128 ile +127 arasndaki tamsaylardan olumulardr.

2.4.1.4. Byte Tipi Veriler


Byte tipi veriler iaret ve desimal nokta iermeyen 0-255 arasndaki deerlerden oluan tamsaylardr. Programda, 0-255 arasndaki tamsaylar iin deiken veya sabitlerin Byte tipi olarak tanmlanmas bellekten tasarruf salar.

2.4.1.5. Comp Tip Veriler


Comp tip veriler ok uzun tamsaylarn tanmlanmas iin kullanlr. Comp veri tipi ile 19-20 basamakl saylar ifade edilir. Tanm aral; -263...263

2.4.1.5. Longint Tipi Veriler


-2147483648 ile +2147483647 arasnda grev yaparlar ve tamsaylarn menzil olarak en

Algoritma ve Programlamaya Giri

26

r. Gr. Mustafa AKSU

kapsamlsdr.

2.4.2. Ondalkl Deiken Tipleri 2.4.2.1 Real Tip Veriler


Real tip veriler desimal nokta ieren ve sl formda ifade edilebilen gerel saylardr. s ifadesi olarak "E" harfi kullanlmaktadr. Kullanmlar ile ilgili rnekler aada verilmitir. Tanm aral;2.9E-39..1.7E38 'dir. Bellekte 6 byte yer kaplar.

-2.3454 123.11223344
-2.45E+12 2.45E+12

1.123123E-12
Olaan koullarda bir programlama hatas sz konusu deilse veya ok byk saylar ile allmyor ise REAL tip saylarla almada bir sorun ile karlamayz. Kiisel bilgisayarlarn mikro ilemcileri 80x86 olarak isimlendirilir. Bu ilemci ailesinin ykn hafifletmek iin 80x87 olarak bilinen matematik ilemcisi kullanlr. Pascalda bu ilemci ile kullanlmak zere drt tip tanmlanmtr. Bunlar; Single, Double, Extended ve Comp 'tur.

2.4.2.2 Single Tip Veriler


Single tip veriler, 1.5E-45...3.4E38 say kmesi aralnda tanmlanabilir. Bellekte 4 byte yer kaplar.

2.4.2.3. Double Tip Veriler


Double tip veriler, 5.0E-45...3.4E38 say kmesi aralnda tanmlanabilir. kaplar. Bellekte 8 byte yer

2.4.2.4. Extended Tip Veriler


Extended tip veriler, 3.4E-4932...1.1E4932 say 10 byte yer kaplar. kmesi aralnda tanmlanabilir. Bellekte

80x87 snfndaki veri tiplerinin kullanlabilmesi iin programn en bana {$N+} derleyici komutu verilmelidir. Bilgisayarda matematik ilemci yok ise {$E+} matematik ilemci emlasyonu da bu satra eklenir. Gnmzn Pentium tabanl bilgisayarlarnda matematik ilemci bulunduundan, matematik ilemcili bilgisayarlarda emlasyon direktifini kullanmaya gerek yoktur.

2.4.3. String (Metin veya karakter) veri Tipleri 2.4.3.1. Char Tipi Veriler
Char tipi veriler, ASCII karakter kmesinin 256 adet elemanndan oluurlar. Char tipi veriler bir sabit olarak ele alndndan ' ' ierisinde yazlr.

Algoritma ve Programlamaya Giri

27

r. Gr. Mustafa AKSU

2.4.3.2. String Tipi Veriler


Bu tip veriler, karakter kmesi eklinde olup ' ' ierisinde yazlrlar. A:STRING[5]; B:STRING[16]; Burada A isimli karakter kmesi maksimum 5 karakterden, B isimli karakter dizisi ise maksimum 16 karakterden olumaktadr. Bu bilgiler ile ilk Pascal programmz yazabiliriz. Var mesaj:string[7]; BEGIN mesaj :='merhaba' ; Write('Sayn bilgisayar kullancs ',mesaj); END. Programmzn altrlmasyla ekran grnts aadaki gibi olacaktr. Sayn bilgisayar kullancs merhaba

rnek : Klavyeden vize ve final notu girildiinde o rencinin not ortalamasn bulan program yaznz?

var vize,final:shortint; begin write('vizeyi giriniz'); readln(vize); write('finali giriniz'); readln(final); write('ortalama',vize*0.4+final*0.6); readln; end.

2.4.4. Boolean (Doru , Yanl) Tipi Veriler


Mantksal ifadeler olarak da isimlendirilebilen Boolean tipi veriler sadece iki deerden oluurlar. Bunlar "FALSE" ve "TRUE" dir. Durum: Boolean; Hata: Boolean;

Algoritma ve Programlamaya Giri

28

r. Gr. Mustafa AKSU

3. OPERATRLER
3.1. Aritmetik Operatrler
Aritmetik operatrler drt ilem iin kullandmz (toplama, kartma, arpma ve blme) +, -, / ve * 'dan olumaktadrlar. Tam ve reel saylarn aritmetik ilemleri iin kullanlan operatrlere ilikin liste aadaki tabloda verilmitir.

"+","-" ve "*" ilemlerinde ilem yaplan say cinsi reel ise sonu ta reel'dir. lem yaplan saylar tamsay ise sonuta tamsaydr. "/" ileminde ise sonu her zaman reel saydr. Operatr Ad + * / Div mod toplama karma arpma blme(Reel) blme(Tamsay) kalan Anlam Sol ve sadaki deerleri birbirine ekler. Soldaki deerden sadaki deerleri karr. Sol ve sadaki deerleri birbiri ile arpar. Soldaki deeri sadaki deere bler. Soldaki deeri sadaki deere bler. Soldaki deerin soldaki deere blnmesinden kalan

Sk sk kullandmz bu operatrlerin yannda iki saynn blmnden kalan veren MOD, iki tamsaynn blmnn sonucunda tamsay reten DIV programlarmzda sk kullandmz aritmetik operatrlerdir.

3.1.1 Div Operatr


ki tamsaynn blmnn tamsay ksmn verir. 123/4=30.75 123 div 4=30

3.1.2 Mod Operatr


Tamsay tipindeki operandlarn blmn yapar ve sonucun kalan ksmn bir tamsay deer olarak retir. 123/4=30.75 123 mod 4 =3

'/' operatr operand olarak kullanlan deerlerin tipi ya da blmn sonu deeri ne olursa olsun real tipte sonu retir. Bu nedenle bir blmn sonucunun bir tamsay deikene direkt olarak aktarlmas sz konusu deildir.

Mod ve Div ilemlerinin sonular her zaman tamsaydr. 4 div 12 = 0, 12 div 4 = 3, 13 div 4 = 3 16 div 4 = 4 3 mod 2 = 3, 5 mod 2 = 1, 4 mod 2 = 0 4 mod 0 = (tanmsz)

3.2. likisel Operatrler


Dier programlama dillerinde de olduu zere, Pascal programlama dilinde iki veya daha fazla operand arasndaki ilikilerin aratrlmasn yapan ilikisel operatrler, toplu olarak aadaki tabloda verilmitir.

Operatr

Ad

Anlam

Algoritma ve Programlamaya Giri

29

r. Gr. Mustafa AKSU

= <> < > <= >=

Eit Eit deil Kk Byk Kk yada eit Byk yada eit

Sol ve sadaki deerler birbirlerine eitse Sol ve sadaki deerler birbirlerine eit deilse Soldaki deer sadaki deerden kkse Soldaki deer sadaki deerden bykse Soldaki deer sadaki deere eit yada kkse Soldaki deer sadaki deere eit yada bykse

3.3. Aritmetik lemlerde lem ncelik Sralar


ncelik Sras 1 2 3 4 5 6 7 8 9 10 Aritmetik lem ve bantl tanmlar
iaretli saysal bilgiler Parantez iindeki ilemler Aritmetik fonksiyonlar s alma arpma ve Blme DIV tam sayya blme deyimi MOD (Blme ileminde kalan bulma ilemi) Toplama ve karma Mantksal iliki ifadeleri (=, >,<,) Balant ifadeleri (not,and,or,xor)

lem nceliinde Baz Kurallar: Ayn ncelik srasna sahip ilemlerde hangisi nce tanmlanm ise nce onun ilemi gerekletirilir. lem ncelik sras kk olan bir aritmetik ilemin nce yaplmas isteniyorsa parantez iine alnmaldr. ie birden fazla parantez kullanlmas durumunda, ilem ncelik sras daima en iteki paranteze ait ileminindir.

3.4. Matematiksel Formller


Normal olarak elle yazlan formllerin bir bilgisayar programna yazm iin belirli baz kurallar vardr. Matematiksel ifadelerin bilgisayarn anlayaca ekilde yazm srasnda dikkat edilecek nemli bir nokta, matematik operatrleri arasndaki ilem nceliine dikkat edilmesidir. Aada verilen cebirsel ifadelerin Pascal programlama dilinde yazmlarn inceleyiniz.

Cebirsel fade b -4.a.c (b -4.a.c) x+y -----x-y


2 1/2 2

Pascal'da Yazm Biimi b*b-4*a*c sqrt(b*b-4*a*b) (x + y) / (x - y)

Algoritma ve Programlamaya Giri

30

r. Gr. Mustafa AKSU

Yukardaki rnekte ilem sras; 1. Z'nin karekk alnr 2. 1 no.lu ilem 2 sabiti ile arplr 3. (2-x) deeri hesaplanr 4. 2 no.lu iten elde edilen sonu 3 no.lu ilemin sonucuna blnr.

============================================ Konu Sonu alma Sorular


Soru 1. Aada verilen kurallarna gre yaznz. matematiksel eitlikleri Pascal programlama dili

Soru 2. Bir rencinin 1. Yazl, 2.yazl ve szl notlarnn ortalamasn hesaplayan program yaznz. Soru 3. Bir dik gende Hipotens hesaplayan program yaznz.

Algoritma ve Programlamaya Giri

31

r. Gr. Mustafa AKSU

4. GR/IKI DEYMLER
4.1. Giri
Giri/k deyimleri bilgisayarn ana bellei ile evre aygtlar arasnda bilgi transferi yaparlar. Herhangi bir evre aygtndan (klavye gibi) bir verinin bellee okutulmas veya ana bellek zerindeki bir verinin evre aygtlara (Ekrana) gnderilmesi giri/k deyimleri ile gerekletirilir. Genellikle giri k deyimi olarak aada tanmlanan deyimler kullanlmaktadr.

4.2 Read-Readln
Pascal 'da okuma ilemi iin kullanlan komutlar READ ve READLN olup genel kullanm yaps u ekildedir; Read(A1,A2,A3,...,An); Readln(A1,A2,A3,...,An); Read ile Readln arasndaki fark: Read, okuma ilemi tamamlandktan sonra ayn satrda kalnmasn, Readln ise yeni bir satra gelinmesini salar. Bir Pascal program ierisinde bu iki komutun kullanm aadaki program parasnda verilmitir. Var s,a,n:real; begin Read(s,a,n); end. Okunacak deerlerin dzeni;

12.45

43.543

62.12

Ayn deerleri Readln ile okutturmak istersek; Var s,a,n:real; begin Readln(s,a,n) ; end.

Okunacak deerlerin dzeni yukardaki okuma dzeni ile ayn olabilecei gibi her deer ayr bir satrda verilebilir, her hangi satrlarda verilebilir, rnek olarak s, a ve n deerleri aadaki okuma dzeninde okutturulmutur.

12.45 43.543 62.12

Algoritma ve Programlamaya Giri

32

r. Gr. Mustafa AKSU

4.3. Write-Writeln
Pascal programlama dilinde yazma ilemi iin WRITE ve kullanlmaktadr. Bu komutlarn genel kullanm yaps u ekildedir; Write(A1,A2,A3,...,An) Writeln(A1,A2,A3,...,An) ki kullanm ekli arasndaki fark, Read ile Readln arasndaki fark gibidir. fadeler Write ile yazdrldktan sonra kursr ayn satrda bekleyecektir, Writeln ile yazdrlmas durumunda ise kursr bir sonraki satra geecektir. Var s,a,n:integer; begin s:=3; a:=9; n:=5; Write(s); Write(a); Write(n); end. Programn altrlmasyla elde edilen sonu; 395 olacaktr. WRITELN komutlar

Ayn deikenleri Writeln ile yazdrdmzda; Var s,a,n:integer;


begin

s:=3; a:=9; n:=5; Writeln(s); Writeln(a); Writeln(n);


end.

3 9 5 kts elde edilecektir.

Algoritma ve Programlamaya Giri

33

r. Gr. Mustafa AKSU

4.4. Yazm in Format Belirleme


Write ve Writeln deyimi ile yaplan bilgi klarn dzenlemek iin yazm formatlar kullanlr. Write yada WriteLn komutlaryla ekrana "510.4542" gibi reel bir say yazdrlmak istendiinde, ekranda 5.1045420000E+02 gibi karmak bir deer grlr. Bu deeri anlalr bir ekle dntrmek iin bir yazm format belirtilmesi gerekir. rnek: var a:real; begin a:=510.4542; write(a:6:2); end. Bu rnekte ekrana "510.45" eklinde bir say yazar. Buradaki 6 nokta da dahil saynn karakter uzunluunu, 2 ise virglden sonraki ksmn uzunluunu ifade eder Yazdrlmak istenilen deerin tipine bal olarak iki farkl yazm format kullanlr. 1. Yazm Format (X:n) :Tam say veya karakter tabanl deerleri ekrana formatl yazdrrken bu format kullanlr. Bu formata gre yazdrlmak istenilen X deeri n karakterlik alanda saa dayal olarak yazlr. X deerini oluturan dijit veya karakterin uzunluu n saysndan kk ise, aradaki fark kadar sol tarafta boluk braklr. X deerinin uzunluu n saysna eit veya byk ise yazdrma ilemi format belirtilmemi gibi gerekletirilir. rnek: Const i:integer=567; b:boolean=True; c:char='b'; h:string[6]='Pascal'; begin Writeln(123456789'); Writeln; Writeln(i:9); Writeln(b:9); Writeln(c:9); Writeln(h:9); Writeln(i:2); Writeln(h:5); end.
2. Yazm Format (X:n:k) : Bu yazm format real saylar zerinde almaktadr. Bu yazm formatyla reel saylar ssz notasyonda yazdrlr. Yazdrlacak X real deeri n karakterlik alanda saa dayal olarak ssz yazdrlr, k ise n karakterin sonundaki kesirli ksm gstermektedir. rnein A deeri, A:7:2 eklinde yazdrlmak istenirse; program real say iin 7 karakterlik yer ayrr. Bu alann son iki hanesi ondalkl ksm iin sondan 3. hanesi ise desimal nokta iin kullanlr. Saynn tamsay ksm ayrlan alann uzunluundan kk ise, aradaki fark kadar sol tarafta boluk braklr. Yazdrlacak saynn tam say ksm bu alana smyor ise, tamsay iin ayrlan alann uzunluu yazdrlan saynn tamsay alan uzunluuna eit byklkte kabul edilir. Kesirli ksm ayrlan alandan daha kk ise aradaki fark kadar sa tarafa 0 dijiti ilave edilir. Kesirli ksm alana smyorsa yuvarlatlarak yazlr.

Algoritma ve Programlamaya Giri

34

r. Gr. Mustafa AKSU

Yazm srasnda kesirli alann yazlmas istenmiyorsa k saysnn "0" yazlmas gerekir. k saysnn sfr olmas desimal noktann yok olmasn salar.

Bu anlattmz yazm formatlarn bir tablo halinde zetleyecek olursak:

Tip integer

Yazm Format Deiken : n

Aklama Integer tipindeki bir deikenin adnn arkasna n gibi saysal bir deer yazlrsa bu n karakterlik bir saha iinde bu saynn saa doru dayal bir ekilde yazlmasn salar. Real tipinde bir deikenin adnn arkasna n ve k gibi saysal deerler yazlrsa bunlar n karakterlik alan iinde ondalk ksm noktadan sonra m tane karakter iermek zere saa dayal olarak yazdrlr. String tipindeki bir deikenin adnn arkasna n gibi saysal bir deer yazlrsa bu n karakterlik bir saha iinde bu karakter dizisinin saa doru dayal bir ekilde yazlmasn salar.

Real String Char

Deiken:n:k

Deiken:n

eklinde olur. rnek: Const a:real=123.127927; begin Writeln('123456789); Writeln('*********');; Writeln(a:9:4); Writeln(a:9:3); Writeln(a:9:2); Writeln(a:9:0); Writeln(a:7:2); Writeln(a:6:2); Writeln(a:5:2); Writeln(a:0:0); end. Programn almasyla elde edilen sonu aada verilmitir. Program sonucuna gre sondan 2. ve 3. satrlarn ayn olduuna dikkat ediniz.
123456789 ********* 123.1279 123.128 123.13 123 123.13 123.13 123.13 123

Algoritma ve Programlamaya Giri

35

r. Gr. Mustafa AKSU

5. Karlatrma Komutlar
Pascalda genel olarak kullanlan karlatrma deyimleri unlardr: IF..THEN..ELSE CASE..OF

5.1. If...Then...Else
Eerisedeilse (If..then..else) Karar yaps : Program yazarken en ok yaplan ilerin banda elinizdeki verilere bakarak bir karar vermek ve programn akn bu karara gre ynlendirmek gelir. yi programda gerekli yerlerde doru ve etkili karar yaplar oluturmak ok nemlidir. nk bir programda en yava ileyen komutlardan birisi karlatrma komutlardr. Pascalda en ok kullanlan karlatrma ve kontrol komutu If..then..else dir. If deyiminden sonra yaplacak karlatrmann sonucu doru (True) ise then deyiminden sonraki blok iler. Eer karlatrmann sonucu yanl (False) ise bu sefer de else deyiminden sonraki blok iler. Else deyimi seimlik bir deyimdir. Yani isterseniz, ya da gerekmezse bu ksm kullanmayabilirsiniz. Bu durumda eer karlatrma sonucu yanl ise program bir sonraki komutla akna devam eder. Genel kullanm kalb u ekildedir: if (art) then Yaplmas istenen ilem veya ilemler Else Yaplmas istenen ilem veya ilemler Eer else kullanacaksanz else den nceki satrda noktal virgl kullanmamalsnz. ... If then begin komutlar end; [ else begin komutlar end;] if veya Elseden sonra 1den fazla komut veya ilem varsa begin end blou kullanlmaldr.

Algoritma ve Programlamaya Giri

36

r. Gr. Mustafa AKSU

Eer koul doru ise lem 1'i ve lem 2'yi yap deilse ilem3' ve ilem4 yap. Pascal'da yazm: if Koul Then Begin lem1; lem2; End Else begin lem3; lem4; End;

Eer isterseniz i ie if kullanmaya devam edebilirsiniz. Bu olduka karmak bir yap oluturabilir ancak baz durumlarda bylesi uygulamalar zaruri olur.

rnek: Girilen bir saynn tek veya ift olduunu bulan program.
Var a : Integer; Begin Write('Bir say giriniz: '); Readln(a); If (a mod 2 = 1) Then Writeln ('Girdiiniz Say Tekdir') Else Writeln ('Girdiiniz Say ifttir'); Readln; End.

rnek: Girilen saydan en byn bulan program.


Var a, b, c, EnBuyuk : Integer; Begin Write(' Say giriniz: '); Readln(a, b, c); If (a>=b) and (a>=c) Then EnBuyuk:=a Else If (b>=a) and (b>=c) Then EnBuyuk:=b Else EnBuyuk := c; Writeln('En Byk Say = ', EnBuyuk);

Algoritma ve Programlamaya Giri

37

r. Gr. Mustafa AKSU

Readln; End.

rnek : Girilen bir saynn pozitif veya negatif olduunu syleyen program.
Var Sayi : integer; begin write(Bir say girin : ); readln(Sayi); if Sayi < 0 then writeln(Sayi negatiftir) else writeln(Sayi Pozitiftir); end.

rnek: Bir rencinin vize ve final notunu okuyup ortalamasn vizenin % 40 ve finalin
%60 n alarak hesaplayp ortalama 60dan byk veya eitse geti deilse kald yazan progarm yaznz. var vize,final:integer; ort:real; begin write('Vize notunu girin'); readln(vize); write('Final notunu girin'); readln(final); ort:=(vize*0.4+final*0.6); if (ort >= 60) then Writeln('Ortalama =',ort:6:2,' Gecti') else Writeln('Ortalama =',ort:6:2,' Kaldi'); readln; end.

Algoritma ve Programlamaya Giri

38

r. Gr. Mustafa AKSU

rnek: 1-100 aralndaki tek saylar toplayan program yaznz.


var i,toplam:integer; begin toplam:=0; for i:=1 to 100 do begin if (i mod 2=1) then toplam:=toplam+i; end; writeln('tek saylarin toplam = ',toplam); readln; end.

rnek: Dardan girilen rastgele 10 tane saydan ka tane tek ve ift var ayrca tekleri ayr iftleri ayr toplayan program yaznz.
var i,tek,cif,tektop,ciftop,sayi:integer; begin tek:=0;cif:=0;tektop:=0;ciftop:=0; for i:=1 to 10 do begin write(i,'. sayiyi giriniz : ');readln(sayi); if sayi mod 2=0 then begin cif:=cif+1; ciftop:=ciftop+sayi; end else begin tek:=tek+1; tektop:=tektop+sayi; end; end; writeln(tek,' Adet tek say girdiniz bunlarn toplam = ',tektop); writeln(cif,' Adet cift say girdiniz bunlarn toplam = ',ciftop); readln; end.

Algoritma ve Programlamaya Giri

39

r. Gr. Mustafa AKSU

rnek : rencinin Vize ve final notundan ortalamasn hesaplayp geti veya kald yazan program. Var Not1, Not2 : Integer; Ortalama: Real; Begin Write('Not 1i giriniz : '); Readln(Not1); Write('Not 2i giriniz : '); Readln(Not2); If (Not1 >=0) and (Not1<=100) and (Not2 >=0) and (Not2<=100) Then Begin Ortalama := (Not1+Not2)/2; If Ortalama >= 50 Then Writeln('Getiniz Ortalamanz = ', Ortalama:4:2) Else Writeln('Kaldnz Ortalamanz = ', Ortalama:4:2); End Else Writeln('Yanl giri yaptnz...'); Readln End.

============================================ Konu Sonu alma Sorular


Soru 1. Vergi iadesini hesaplayan program yaznz. ( Emekli ayl alanlar iin: 0-180 milyon aras %10, 180-360 milyon aras %20, 360-600 milyon aras %12, 600 milyon zeri % 5) Soru 2. kenar girilen bir genin ekenar-eitkenar-ikiz kenar olup olmadn bulan program yaznz. Soru 3. ki saynn Ortak Blenlerinin En Byn (OBEB) ve Ortak Katlarnn En Kn (OKEK=A'B/OBEB) bulan program yaznz. Soru 4. saynn en kn bulan program yaznz. Soru 5. 4 ilem yapan basit bir hesap makinesi program yaznz. Soru 6. Bir saynn tek mi ift mi olduunu bulan program yaznz. Soru 7. y=x2+ax+c denklemin kklerini bulan program yaznz.

Algoritma ve Programlamaya Giri

40

r. Gr. Mustafa AKSU

5.2. case...of
Bir nceki konuda bahsedilen kontrol deyimi if..then..else genellikle az sayda olan karlatrmalarda kullanlr. Ama eer yaplan karlatrma ok karmaksa o zaman bu deyimi kullanmak olduka zor olur ve ok fazla miktarda mantk hatalar bulunur. Bunu engellemek iin blok if deyimi diyebileceimiz Case yapsn kullanrz. Case yapsnda karlatrmann yaplaca deikenin alabilecei deerler gre eitli ilemleri toplu olarak yapabiliriz. Casein genel kullanm yledir: case degiken of durum-1 : ilem(ler); ... durum-n : ilem(ler); end;

Veya

case deiken of durum-1 : ilem(ler); ... durum-n : ilem(ler); else ilem(ler) end; Durum dediimiz yerlerde bir yada daha fazla, virglle ayrlm, sabitler veya aralklar olabilir. Mesela : case Ch of 'A'..'Z', 'a'..'z' : WriteLn('Harf'); '0'..'9' : WriteLn('Rakam'); '+', '-', '*', '/' : WriteLn('Operator'); else WriteLn('zel karakter'); End;

Algoritma ve Programlamaya Giri

41

r. Gr. Mustafa AKSU

Else ksm ise tamamen seimliktir. stemezseniz kullanmayabilirsiniz. imdi bir soruyu hem if-then else deyimi ile hem de case-of deyimi ile zp farklar zorluklar grelim. Soru: Balang deeri I=500 olan I says; dardan girilen say 0dan byk ve 128den kkse I deikenine 1 eklesin, 128..256 arasnda ise Iya 10 eklesin, 256dan bykse Iya 100 eklesin. Ayn zamanda eer bu say 0dan kk ve 127den bykse Idan 1 eksiltsin, -127..-255 arasndaysa 10 eksiltsin ve 255den de kkse Idan 100 eksiltsin.

ifli zm
Var I : integer = 500; Sayi : integer; Begin Write(Bir say girin : ); Readln(Sayi); If (sayi > 0) and (sayi < 128) then I := I+1; If (sayi >= 128) and (sayi <= 256) then I := I+10; If (sayi > 256) then I := I+100; If (sayi < 0) and (sayi > -127) then I := I-1; If (sayi <= -127) and (sayi >= -255) then I := I-10; If (sayi < -255) then I := I-100; Writeln(lem sonucu I da kalan= , I); End. Bir if deyimi iin olduka karmak olan bu rnei bir de case-of ile zelim.

Case-oflu zm
Var I : integer = 500; Sayi : integer; Begin

Algoritma ve Programlamaya Giri

42

r. Gr. Mustafa AKSU

Write('Bir sayi girin : '); readln(Sayi); case Sayi of 1..127: 128..255: I:= I + 1; I := I + 10 ;

256..32767 : I := I + 100; -127..0 : -255..-128 : I := I - 1; I := I - 10;

-32768..-256 : I := I - 100; end; writeln('Islem sonunda I deeri =',I); end. rnek: Aada kiinin ya girildiinde, yana uygun mesajlar veren bir Pascal program verilmitir. Var yas:integer; Begin Write(Yanz Giriniz :); ReadLn(YAS); CASE yas OF 0..5:Writeln(Yanz 0-5 arasnda); 6..15:Writeln(Yanz 5-15 arasnda); 16..35:Writeln(Yanz 15-35 arasnda); 36..50:Writeln(Yanz 35-50 arasnda); 51..85:Writeln(Yanz 50-85 arasnda); else Writeln(ok Yaayn); end; Readln; End. rnek: Girilen rakam notunu harf notuna dntren program yaznz. Var rnot:integer; Begin write('Rakam notunu Giriniz'); readln(rnot); case rnot of 0..29:write('Notunuz FF');

Algoritma ve Programlamaya Giri

43

r. Gr. Mustafa AKSU

30..39:write('Notunuz FD'); 40..46:write('Notunuz DD'); 47..53:write('Notunuz DC'); 54..63:write('Notunuz CC'); 64..73:write('Notunuz CB'); 74..81:write('Notunuz BB'); 82..88:write('Notunuz BA'); 89..100:write('Notunuz AA'); else write('Yanl Not'); end; readln; end. rnek : Dardan iki say ve ilem okuyup ileme gre sonucu hesaplayp yazdran program yaznz. var x,y:integer; a:char; sonuc: real; begin writeln('1.sayy giriniz..');readln(x); writeln('2.sayy giriniz...');readln(y); writeln('ilem seciniz....');readln(a); case a of '+':sonuc:=x+y; '-':sonuc:=x-y; '/':sonuc:=x/y; '*':sonuc:=x*y; else write('yanl ilem yaptnz'); end; write('ilemim sonucu:',sonuc:4:2); readln; end.

============================================ Konu Sonu alma Sorular


Soru 1 : Yln aylarn rakam olarak girdiimizde bu ayn hangi mevsimde olduunu

ekrana yazan program yaznz. Soru 2 : Bir - Milyar arasndaki girilen bir saynn ka basamakl olduunu ekrana yazdran pascal programn yaznz.

Algoritma ve Programlamaya Giri

44

r. Gr. Mustafa AKSU

6. DNG (TEKRARLAMA) DEYMLER


6.1 Giri
Bu blmde program ierisinde belirli bloklarn herhangi bir arta bal olarak veya arttan bamsz bir ekilde ardk olarak altrlmas iin kullanlan deyimler zerinde durulacaktr. Bu tekrarlama deyimleri FOR-DO, REPEAT-UNTIL, WHILE-DO eklindedir.

6.2 For-Do
For deyimi, bir program parasnn herhangi bir boolean artna bal olmakszn belirlenen sayda st ste altrlmas iin kullanlr. For deyiminin genel kullanm ekilleri aada verilmitir.

1.

FOR Dng Deikeni:=Dng Balangc to dng sonu do Begin Yaplacak ilemler End;

Bu kullanm eklinde balang deeri biti deerinden kk olmak zorundadr. TO ifadesiyle balangtan bitie kadar artarak tekrar yaplacan, DO ifadesi de tanmlanan ilemlerin tekrarlanacan bildirir.

2.

FOR Dng Deikeni := Dng_Balangc DOWNTO Dng_sonu DO Begin Yaplacak ilemler End;

For deyiminin bu kullanm eklinde balang deeri biti deerinden daima byk olup DOWNTO ifadesi de dng deikeninin tekrarlama ileminde azalacan belirtir. DO ifadesi ise belirtilen ilemlerin dng saysnca tekrarlanacan bildirir. Pascal dilinde dier programlama dillerinden farkl olarak balang deerinden son deere artlar/azalmalar birer birer olmaktadr. Aadaki rnek programlar inceleyiniz. rnek : Dardan girilen bir saynn karesini kpn %18ini ve faktriyelini hesaplayan program yaznz. var i,say,kare,kup,fak:integer; yuzde:real; begin write('Sayi giriniz'); readln(say); kare:=say*say; kup:=say*kare;

Algoritma ve Programlamaya Giri

45

r. Gr. Mustafa AKSU

yuzde:=say*0.18; fak:=1; for i:=1 to say do fak:=fak*i; writeln('Sayi Karesi Kubu Yuzdesi Faktoriyeli'); write(' ',say,' ',kare,' readln; end. rnek : Bir den girilen N saysna kadarki tam saylar toplayan pascal programn yaznz Var i, N, Toplam : Integer; Begin Write('Son sayy gir: '); Readln (N); Toplam := 0; For i := 1 To N Do Toplam := Toplam + i; Writeln('1den Ne kadar saylarn toplam = ', Toplam); Readln; End. rnek: Dardan girilen bir ismi yine dardan girilen bir say kadar yazan program yaznz. var i,x:integer; isim:string[20]; begin write('isim girin : '); readln(isim); write('isminiz kac defa yazlsn : '); readln(x); for i:=1 to x do writeln(isim); readln; end. ',kup,' ',yuzde:4:2,' ',fak);

Algoritma ve Programlamaya Giri

46

r. Gr. Mustafa AKSU

rnek : Dardan iki say okuyup 1. sayy taban 2. sayy s kabul ederek s alma ilemini
yapan program yaznz. var us,taban,sonuc:integer; i:integer; begin write('taban ve ussu girin..:'); readln(taban,us); sonuc:=1; for i:= 1 to us do sonuc:=sonuc*taban; write('sonuc......:',sonuc); readln; end.

rnek : 1-100 arasndaki ift saylar toplayan program.


var i,toplam:integer; begin toplam:=0; for i:=1 to 100 do begin if (i mod 2=0) then toplam:=toplam+i; end; writeln('1-100 arasi cift sayilarin toplami = ',toplam); readln; end.

rnek: Dardan okunan 10 tane rast gele saydan kann negatif kann pozitif
olduunu ve pozitifleri kendi arasnda negatifleri kendi arasnda toplayp sonular ekrana yazan program yaznz. var i,poz,neg,poztop,negtop,sayi:integer; begin poz:=0;neg:=0; poztop:=0;negtop:=0;

Algoritma ve Programlamaya Giri

47

r. Gr. Mustafa AKSU

for i:=1 to 10 do begin write(i,'. sayiyi giriniz : '); readln(sayi); if sayi<0 then begin neg:=neg+1; negtop:=negtop+sayi; end else begin poz:=poz+1; poztop:=poztop+sayi; end; end; writeln(neg,' Adet negatif sayi girdiniz bunlarin toplami = ',negtop); writeln(poz,' Adet pozitif sayi girdiniz bunlarin toplami = ',poztop); readln; end.

6.3 Repeat-Until
Bir program blounun belli bir art salanncaya kadar st ste altrlmasn salayan REPEAT deyiminin genel formu aadaki ekildedir. Repeat Program Satrlar Until (Boolean art) Burada repeat, tekrar etme anlamnda olup, tekrar etmesine UNTIL deyimindeki art (boolean ifadesi) salanncaya kadar devam eder. Bu deyim program satrlar blmne herhangi bir ey yazlmakszn kullanlabilir. Bu dngnn en byk avantaj belirli bir say ile snrlandrlmam olmasdr. Boolean ifadesindeki art salanncaya kadar ilemlere devam edilmektedir. Dikkat edilirse art cmlesinin ald deer ne olursa olsun program blou bir kez almaktadr.

rnek : sminizi dardan okunan bir say kadar yazdran program yaznz.
Var x,i:integer; begin write('Sayi girin'); readln(x);

Algoritma ve Programlamaya Giri

48

r. Gr. Mustafa AKSU

i:=0; repeat i:=i+1; writeln('M.AKSU'); until i=x; readln; end.

rnek : Dardan girilen bir ismi yine dardan girilen bir say kadar yazan program yaznz.
Var x,i:integer; s:string; begin write('isim Girin'); readln(s); write('Sayi girin'); readln(x); i:=0; repeat i:=i+1; writeln(s); until i=x; readln; end.

rnek : 0-100 aralndaki tek saylar toplayan program.


Var ttop,i:integer; begin i:=1; ttop:=0; repeat ttop:=ttop+i; i:=i+2; until i>=100; writeln(ttop); readln; end.

Algoritma ve Programlamaya Giri

49

r. Gr. Mustafa AKSU

rnek : Dardan okunan 10 tane rastgele sayy toplayp bunlarn ortalamasn


hesaplayarak sonular ekrana yazan program yaznz.

Var x,i:integer; top:longint; ort:real; begin top:=0; i:=0; repeat i:=i+1; write(i,'. Sayiyi girin'); readln(x); top:=top+x until i=10; ort:=top/i; writeln(i,' adet sayinin toplami',top); writeln(i,' adet sayinin ortalamasi',ort:5:2); readln; end.

6.4 While-Do
Bir program blounun belli bir art saland srece st ste icrasn salayan WHILE deyiminin genel yazl ekli aadadr. While <art cmlesi> Do BLOK {Yaplacak ilemler} Do kelimesini takip eden blok WHILE deyimi tarafndan dngye sokulacak komut cmlelerini kapsar. Komut cmlesi says birden fazla ise, bu bloun BEGIN...END deyimleri arasna alnmas zorunludur. WHILE ile REPEAT arasndaki fark; Repeat dngs art cmlesi yanl olduu srece, While dngs ise art cmlesi doru olduu srece devam etmesidir. REPEAT dngsnde art sonda kontrol edildii iin doruda olsa yanlta olsa en az bir defa ilem yaplr. WHILE da ise art dngye girmeden kontrol edildii iin yanlsa hi ilem yaplmaz.

rnek : sminizi dardan okunan bir say kadar yazdran program yaznz.
Var x,i:integer; begin write('Sayi girin'); readln(x);

Algoritma ve Programlamaya Giri

50

r. Gr. Mustafa AKSU

i:=0; while i<10 do begin i:=i+1; writeln('isminiz'); end; readln; end.

rnek : Dardan girilen bir ismi yine dardan girilen bir say kadar yazan program yaznz.
Var x,i:integer; s:string; begin write('isim Girin'); readln(s); write('Sayi girin'); readln(x); i:=0; while i<x do begin i:=i+1; writeln(s); end; readln; end.

rnek : 0-100 aralndaki ift saylar toplayan program.


Var ctop,i:integer; begin i:=0; ctop:=0; while i<=100 do begin ctop:=ctop+i; i:=i+2; end; writeln(ctop); readln; end.

Algoritma ve Programlamaya Giri

51

r. Gr. Mustafa AKSU

rnek : Dardan okunan 10 tane rastgele sayy toplayp bunlarn ortalamasn


hesaplayarak sonular ekrana yazan program yaznz. Var x,i:integer; top:longint; ort:real; begin top:=0; i:=0; while i<=10 do begin i:=i+1; write(i,'. Sayiyi girin'); readln(x); top:=top+x end; ort:=top/i; writeln(i,' adet sayinin toplami',top); writeln(i,' adet sayinin ortalamasi',ort:5:2); readln; end.

6.5. Blok ve Dnglerin Krlmas


Dnglerin almas srasnda belirli koullarn salanmas durumunda dngnn sona ermesini isteyebiliriz. Bunun iin BREAK, CONTINUE, EXIT, HALT Pascal deyimlerinden yararlanmaktayz.

Break
Turbo Pascal 7.0 programlama dilinde bir dngy krarak sona erdirmek amacyla kullanlr. Program iinde BREAK deyimiyle karlaldnda iinde bulunduu dngden sonraki program satrnn iler hale getirir. BREAK komutu FOR-DO, REPEAT-UNTIL ve WHILE-DO dnglerinin iinde kullanlabilir. Konunun daha iyi anlalabilmesi iin aadaki rnei inceleyiniz. rnek Programda i ve j gibi iki saynn arpm yaplmaktadr. i=j olduu durumda iteki dng BREAK deyimi ile krlmakta ve i 'nin deeri bir st deere arttrlarak programn almasna devam edilmektedir.

Continue
Fortran programlama dilinde olduu gibi tekrarlama evrimini yeniden balatr. Programc, bilgi girilerinde kullancnn saysal olmayan bir giri yapacan varsayarak nlem almak amacyla tekrarlama ilemlerini yeniden balatmak iin CONTINUE komutu kullanlr. Bu deyim PASCAL 7.0 ' da geerlidir.

Algoritma ve Programlamaya Giri

52

r. Gr. Mustafa AKSU

Exit
Program ilem bloklarnda tanmlanan herhangi bir koulun gereklemesi halinde program blounun akn durdurur.

Halt
Programn kararlatrlan bir yerinde durdurulmasn salar. ENTER tuuna basldktan sonra varsa HALT komutundan sonra tanmlanan program satrlar altrlr.

============================================ Konu Sonu alma Sorular


Soru 1: Sadece toplama ilemi kullanarak girilen iki sayy arpan program yaznz. Soru 2: Dardan rast gele 10 tane say okuyup bunlardan kann tek kann ift olduunu ve tekleri kendi iftleri de kendi arasnda toplayp sonular ekrana yazan program yaznz. Soru 3: Bir dik genin iki dik kenar dardan giriliyor. Bu girilen deerlere gre genin evresini ve alann bulan program yaznz.

Algoritma ve Programlamaya Giri

53

r. Gr. Mustafa AKSU

7. Pascalda baz standart Prosedr ve Fonksiyonlar


Pascaln kendi zerinde tanmlanm hazr prosedr ve fonksiyonlar vardr. Bunlarn bazlar saysal bazlar da stringler zerinde ilem yapmaktadr. Bunlarn arasnda Concat, Upcase, Length; abs, sqr, sqrt, round, random gibi birok standart function veya procedure bulunmaktadr.

Length
Length fonksiyonu bir karakter dizisinin uzunluunu hesaplamak amacyla kullanlr. Hesaplama srasnda karakter dizisi arasnda boluklar var ise bunlar da bir karakter olarak kabul edecektir. rnek: var s:string[40]; begin s:='Bilgisayar Teknolojisi ve Programlama'; WriteLn('Uzunluk = ', Length(s)); end. Programn kts: Uzunluk = 37 eklinde olacaktr.

Concat
Bilgilerin birbirlerine eklenmelerini salayan, alfa saysal fonksiyondur. Ekleme ilemleri CONCAT fonksiyonu ile veya alfa saysal bilgiler arasna + iareti konarak salanr. Concat fonksiyonu ile istenilen sayda string birbiri ardna eklenebilir. CONCAT fonksiyonunun kullanm aadaki rnek programda verilmitir. rnek: var x1,x2,x3,x4:String[20]; x5,x6:String[50]; begin x1:='Bahkesir'; x2:='Mhendislii'; x3:='Universitesi ';x4:='Endstri'; x5:=Concat(x1,x3,x4,x2); Writeln('4 szcn CONCAT ile birletirilmesi'); Writeln(x5); x5:=x1+x3+x4+x2; Writeln('4 szcn Writeln(X5); end. + ile birletirilmesi');

Algoritma ve Programlamaya Giri

54

r. Gr. Mustafa AKSU

rnek* : 10luk tabandaki bir sayy dier tabanlara dntren program. var x,i,taban:integer; gecici,digertaban:string; begin write('Onluk tabanda Say Griniz'); readln(x); write('Taban Giriniz'); readln(taban); digertaban:=''; while x>taban do begin Str(x mod taban,gecici); digertaban:=digertaban+gecici; x:=x div taban; end; STR(x,gecici); digertaban:=digertaban+gecici; for i:=length(digertaban) downto 1 do write(digertaban[i]); readln(x); end.

* Biraz zor bir rnektir. Anlalmyorsa zerinde ok durulmamal. Upcase


Pascal 'da okunan veya karlatrlmas yaplan iki karakter dizisinde yazlan harflerin byk veya kk oluu nemlidir. Upcase fonksiyonu kk harfleri byk harfe evirir. Parametre olarak verilen karakterlerin alfabetik olmamas durumunda herhangi bir ilem yaplmaz. rnek: var s : string; i : Integer; begin Write('Bir Karakter Dizisi Giriniz:'); ReadLn(s); for i := 1 to Length(s) do s[i] := UpCase(s[i]); WriteLn('KARAKTER DZS BUYUK HARFE DNT Readln; end. Aada ise baz saysal fonksiyonlar anlatlmtr. ',s);

Algoritma ve Programlamaya Giri

55

r. Gr. Mustafa AKSU

Abs
Herhangi bir saysal sabit veya deikenin mutlak (iaretsiz) deerini verir. rnek: var r: Real; i: Integer; begin r := Abs(-4.3); i := Abs(-157); Writeln(r:4:l,i:8); end.

Sqr
Verilen bir parametrenin karesini verir. Genel kullanm ekli; Kare:=sqr(sayi);

Sqrt
Verilen bir parametrenin karekkn verir. Genel kullanm ekli; Karekok:=sqrt(sayi); rnek: var say: real; begin Write('Karesi alnacak sayy giriniz ='); Readln(say); Writeln(say:10:2,' in Karesi ', Sqr(say):10:2); Writeln(say:10:2,' nn karekk',Sqrt(say):10:2); end.

Round
Gerel saylarn kurala uygun bir ekilde yuvarlatr ve yuvarlatlm tamsay olarak verir. Elde edilen yuvarlatlm say yine real tipte saklanr. rnek: begin Writeln(1.499, , Round(1.499),' a yuvarlatld'); Writeln(1.5', ,Round(1.5),' a yuvarlatld'); Writeln(1.499, ,Round(-1.499),' a yuvarlatld'); Writeln(-1.5,' ',Round(-1.5),' a yuvarlatld'); end.

Algoritma ve Programlamaya Giri

56

r. Gr. Mustafa AKSU

Random
Rastgele bir say retir. retilen rastgele say 0 ile random ile belirtilen say aralnda olmaktadr. rnek: Var x:integer; begin Randomize; x:= Random(99); Writeln (Rastgele retilen sayi =,x); end.

============================================ Konu Sonu alma Sorular


Soru 1 : Bilgisayarda bir tahmin oyunu yazlacaktr. Oyun yledir bilgisayar rastgele bir say retecek kullanc bu retilen sayy bilmeye alacak. Kullanc kendi tahminlerini girdike bilgisayar kullancy kk say girdiniz , byk say girdiniz, Bildiniz eklinde uyaracak. Sonuta kullanc sayy ka tahminde bilmise ekrana yazlacak. Soru 2 : Dardan girilen bir metni tersten byterek yazdran program yaznz.

Algoritma ve Programlamaya Giri

57

r. Gr. Mustafa AKSU

8. DZLER
Bir dizi, ayn tipteki elemanlarn yan yana sralan ile elde edilen bir bilgi kmesidir. Matematikte kullanlan doal saylar (1,2,3,..), reel saylar aslnda birer dizidir. Ayrca yln aylar (Ocak, ubat, Mart, ) haftann gnleri de birer dizidir.

eklinde tanmlanan bir X vektr tek boyutlu bir dizi,

eklinde tanmlanan bir A matrisi iki boyutlu bir dizidir.

Pascalda Dizi Kullanm


Hangi programlama dilini kullanyor olursanz olun deiken tanmlamann mant ayndr. Saklanacak bilginin tipine gre bir tip seilir buna bir isim verilir ve hafzada bu deiken iin bellek ayrlr. Her deiken iin durum ayndr. Pascalda bu ilemi Var blounda yapyoruz. Peki ayn zelliklere sahip birden fazla deikene ihtiya duyarsak ne olacak. Mesela bir retmen dnn. Deiik saylarda rencisi olan snflara girsin ve bu rencilerin notlarn bilgisayarda tutmaya alsn. Eer dizi deikenleri kullanmay bilmiyorsa en kalabalk snfndaki renci says kadar deiken tanmlayacak sonra da her rencinin notunu kendi deikenine ayr ayr atamak zorunda kalacaktr. Oysa bunu halletmenin daha kolay bir yolu var. Dizileri kullanmak. Dizilerin en nemli zellii ayn tipteki ve birbiri ile alakal verileri toplu olarak tanmlamaya yaramasdr. Bu durumda rneimizdeki retmen en kalabalk snfndaki renci says kadar eleman olan bir tek dizi deikeni tanmlar ve bilgileri bir dng ierisinde indis kullanarak dizinin uygun yerine yerletirir. Bu iki durumu bir tablo iinde gsterelim.

Algoritma ve Programlamaya Giri

58

r. Gr. Mustafa AKSU

Dizi kullanmayan retmen Var OgrenciNotu1 := integer; OgrenciNotu2 := integer; OgrenciNotu3 := integer; ... ... OgrenciNotu30 := integer; Begin Write(1.Ogrencinin notu = ); Readln(OgrenciNotu1); Write(2.Ogrencinin notu = ); Readln(OgrenciNotu2); ... ... write(30.Ogrencinin notu = ); readln(OgrenciNotu30); end. Artk dizi kullanmann avantajlarn biliyoruz. Bize ayn bilgilere kolay erimemizi salyor. sterseniz artk bir dizi bakabiliriz. Dizileri VAR blounda tanmlayabileceimiz tanmlayabiliriz. Eer TYPE blounu kullanrsak tanmlam deiken tipi olarak kullanabiliriz. deiken_ismi : array [boyut_bykl] of dizi_tipi Boyut bykl herhangi bir standart veri tipinde olabilir. Eer ok boyutlu bir dizi ise bunlar birbirinden virgllerle ayrlr. Dizi tipinde ise istediimiz herhangi bir tipi kullanabiliriz. Yani hem standart tipleri hem TYPE blounda tanmladmz kendi tiplerimizi kullanabiliriz. Dizinin elemanlarna keli parantez ierisinde verilen indis numaras ile eriiriz. rnek tanmlamalar : Var IntList : array[1..100] of integer; {nteger tipinde bir boyutlu dizi} CharData : array['A'..'Z'] of Byte; {Char tipinde bir boyutlu dizi} Eer dizilerimiz ok boyutlu olacaksa Matris : array[0..9, 0..9] of real; {real tipinde 2 boyutlu dizi} MyStrArr : array[1..10] of Str20; {Yukarda tanmladm Str20 tipinde 10 elemanl dizi} KupData : array[1..20,1..20,1..20] of Word {Word tipinde 3 boyutlu dizi} Bir ok bilim dalnda eitli niceliklerin matematiksel gsterimi iin yaygn olarak kullanlan vektr ve matrislerle ilgili bir program yapacamz dnelim. Her Xi (i=1,2,...n) ve Aij(i=1,2,..n, j=1,2,..n) eleman iin basit tipte bir deiken kullanacak olursak
karlaacamz gl grrz. rnein 10 bileenli bir vektr iin 10 basit tip deiken kullanlmas gerekirken, 10x10 boyutlarndaki matris iin 100 basit tip deiken kullanlmas gerekmektedir. Bizim iin gerekli olan, ayn tipte elemanlardan oluan bir veri kmesini tek bir deiken ismi kullanarak, kme iindeki yeri ile eriilmesini salayacak veri yapsdr. Diziler, kullanm amacna gre tek veya ok boyutlu olabilir. Elemanlandrlm dizi

Dizi kullanan retmen Var OgrenciNotu : array[1..30] of integer; i: integer; Begin for i := 1 to 30 do begin write(i,'.Ogrencinin notu = '); readln(OgrenciNotu[i]); end; End.

trden ve birbiri ile ilikili tanmnn nasl yapldna gibi, Type blounda da olduumuz yeni tipi direkt

Algoritma ve Programlamaya Giri

59

r. Gr. Mustafa AKSU

deikenlerinin boyut durumu ARRAY ifadesiyle keli parantez iinde yaplan tanmlamalarla belirtilir. Dizi karakter tipi "OF tip tanm" ifadesi ile mutlaka verilmelidir. PASCAL programlama dilinde diziler, TYPE, VAR veya CONST tanm bloklarndan birinde tantlr. leme alnmalar ilemlerin alma durumlarna gre bir dng ile gerekletirilir. Tm elemanlar ilk elemandan balayarak ileme alnacaksa FOR dngs, herhangi bir arta bal olarak tekrar edilecekse WHILE veya REPEAT dngleri ile kullanlr.

7.1. Dizilerin Tantlmas


Bir dizinin tanm deiik ekillerde yaplabilmektedir. Bunlar aada ksaca zetlenmitir.

7.1.1. Dizilerin Type Blounda Tantlmas


Dizilerin type blounda tantlmas ileminde rnein; Tek boyutlu ve 30 elemanl Endstri Mhendislii 1. Snf rencilerinin numaralarnn programa tantm:

TYPE Numara=ARRAY [1..30] of string[10]; VAR ogr:NUMARA;


eklinde yaplabilir. rnee dikkat edilirse NUMARA ad verilen bir dizi TYPE tanm blounda tantlm VAR tanm blounda ise bu dizinin OGR ad altnda deiken tipte olduu belirtilmitir. Ayn ekilde tek boyutlu ve 30 elemanl Endstri Mhendislii 1. Snf rencilerinin isimlerin programa tantm ise:

TYPE isimler=ARRAY [1..30] of String[25]; VAR Ogrisim:Isimler;


eklindedir.

7.1.2 Dizilerin VAR Blounda Tanmlanmas


Bir dizi dier deikenlerde olduu gibi Var tanm blounda da tantlabilir. Bunun iin dizinin boyutu belirtildikten sonra diziyi oluturan elemanlarn hangi tipte olduu belirtilmelidir. Aadaki ifadeleri inceleyiniz. VAR X1:ARRAY [1..10] of Real; k2:ARRAY [1..35] of nteger;

7.1.3 Dizilerin CONST (Sabit Bilgiler) Blounda Tanmlanmas

Algoritma ve Programlamaya Giri

60

r. Gr. Mustafa AKSU

Bir dizi dier sabitlerde olduu gibi CONST tanm blounda da tantlabilir. Aadaki rnek program inceleyiniz. rnek: Program yeni_rnek; Const Aylar:Array[1..12] of string[7]= ('Ocak',ubat,Mart',Nisan, Mays','Haziran', 'Temmuz', 'Austos','Eyll,'Ekim',Kasm', 'Aralk'); var k: integer ; begin Write ('kanc ay:'); Readln(k); Writeln('Aranan Ay ad :',Aylar[k]); end.

7.2 Tek Boyutlu Diziler


Tek boyutlu diziler aada grlen genel formda ifade edilebilirler. Deiken = ARRAY [Balang deeri..Biti Deeri] OF tip tanm; rnek: Var Dizi1: array [1..20] of string[25] ; Dizi2: array [1..20] of integer; Buradaki ARRAY ve OF szckleri Pascal'n anahtar szckleridir. Balang deeri ve Biti Deeri ise saylabilir zellikte deerlerdir. Tip tanm ise hangi tip verileri ierdiini belirtmektedir. Diziler deiik ekillerde tanmlanabilir. Bunlar ileride aklanmtr. rnek: Dardan okunan 10 tane sayy bir dizide saklayarak bunlarn toplamn ve ortalamasn bulan program yaznz. var sayi:array[1..10]of integer; i,top:integer; ort:real; begin top:=0; for i:=1 to 10 do begin write(i,'. Sayy giriniz'); readln(sayi[i]); top:=top+sayi[i]; end; ort:=top/10; writeln('Saylarn Toplami :', top);

Algoritma ve Programlamaya Giri

61

r. Gr. Mustafa AKSU

writeln('Saylarn Ortalamasi :', ort:4:2); readln; end. rnek: Aada verilen program tek boyutlu bir dizinin elamanlarn sondan baa doru tersine evirmektedir. program ters_cevirme; var dizi,tersdizi:array[1..10] of integer; i: integer ; begin for i:=1 to 10 do begin write('Dizinin ',i,'. elemann giriniz = '); readln(dizi[i]); end; for i:=10 downto 1 do tersdizi[10-i+1]:=dizi[i]; for i:=l to 10 do writeln(tersdizi[i]); end. rnek: 10 tane renciye ait ad,soyad,numara, vize ve final notlarn dardan okuyup bu rencilerin ortalamalarn ort:=vize*0.4+final*0.6 forml ile hesaplayp eer rencilerin ortalamas 60 dan byk veya eitse geti deilse kald yazan program yaznz. var Isim,no,soyad:Array[1..10] Of string [25]; vize,final:array[1..10] of byte; i:integer; ort:real; sonuc:string [10]; begin for i:=1 to 10 do begin writeln('isim giriniz');readln(Isim[i]); writeln('soyad giriniz');readln(soyad[i]); writeln('noyu giriniz'); readln(no[i]); writeln('finali giriniz');readln(final[i]); writeln('1.vizeyi giriniz');readln(vize[i]);

Algoritma ve Programlamaya Giri

62

r. Gr. Mustafa AKSU

end; writeln(' isim Soyad No Vize Final Ortalam Durum'); writeln('===================================='); for I:= 1 TO 10 DO begin write(isim[i],' ',soyad[i],' ',no[i],' ', vize[i],' ',final[i]); ort:=(vize[i]*0.4)+(final[i]*0.6); If ort>=60 then sonuc:='geti' else sonuc:='kald'; writeln(' ',ort:4:2, ' ',sonuc); end; readln; end.

7.3 ok Boyutlu Diziler


ndisli deikenler iki boyutlu veya daha fazla olduunda boyut durumu, keli parantez iinde eleman tanmlar arasnda virgl verilerek belirtilir. Matematikte kullanlan matrisler iki boyutlu dizilere en gzel rnektir. Var Dizi deikeni : array [1..n,1..n,,1..n] of tip ad rnein;ki boyutlu ve 32 elemanl dizi ad verilen indisli deikenin programa tantm; Var dizi:ARRAY[ 1..4,1..8] of Real; eklinde yaplabilmektedir. Ayn ekilde; boyutlu ve 64 elemanl dizi1 ad verilen indisli deikenin programa tantm; Var dizi1:ARRAY[1..4,1..8,1..2] OF Real;
eklinde yaplabilmektedir. B isimli iki boyutlu bu dizinin bellekteki yerleme durumu aadaki gibi olacaktr. 1 1 2 3 2 3 4 B(1,4) B(2,4) B(3,4) B(4,3) 5 B(1,5) B(2,7) B(3,7) B(4,7) 6 B(1,6) B(2,6) B(3,6) B(4,6) 7 B(1,7) B(2,7) B(3,7) B(4,7) 8 B(1,8) B(2,8) B(3,8) B(4,8)

B(1,1) B(2,1) B(3,1) B(4,1)

B(1,2) B(2,2) B(3,2) B(4,2)

B(1,3) B(2,3) B(3,3) B(4,3)

Algoritma ve Programlamaya Giri

63

r. Gr. Mustafa AKSU

rnek: arpm tablosu programn yaznz. Var i,j: integer; dizi: array[1..10,1..10] of integer; begin for i:=1to10 do begin for j:=1 to 10 do begin dizi[i,j]:=i*j; Write(Dizi[i,j]:4); End; Writeln; End; end. rnek: 3*3lk bir matrisi tanmlayp deerlerini dardan okutup bu matrisi ekrana matris grnmnde yaznz. var matris:array[1..3,1..3] of integer; i,j:integer; begin for i:=1 to 3 do for j:=1 to 3 do begin write(i,' .satir ',j,' .sutun elemani :'); readln(matris[i,j]); end; for i:=1 to 3 do begin for j:=1 to 3 do begin write(mat[i,j],' ' ); end; writeln; end; readln; end.

Algoritma ve Programlamaya Giri

64

r. Gr. Mustafa AKSU

rnek: 3*3lk iki matrisi deerlerini dardan okuyup bu matrisleri toplayarak ekrana matris grnmnde yazan program yaznz. var mata,matb,matc:array[1..3,1..3] of integer; i,j:integer; begin for i:=1 to 3 do for j:=1 to 3 do begin begin write(i,' .satir ',j,' .sutun elemani :'); readln(mata[i,j]); end; begin write(i,' .satir ',j,' .sutun elemani :'); readln(matb[i,j]); end; end; for i:=1 to 3 do for j:=1 to 3 do matc[i,j]:=mata[i,j]+ matb[i,j]; for i:=1 to 3 do begin for j:=1 to 3 do begin write(matc[i,j],' ' ); end; writeln; end; readln; end. Soru: 4*4lk bir matrisin asl kegeni zerindeki elemanlarn sfr ( 0 ) yapan program yaznz. Cevap: var mat:array[1..4,1..4] of integer; i,j:integer;

Algoritma ve Programlamaya Giri

65

r. Gr. Mustafa AKSU

begin for i:=1 to 4 do for j:=1 to 4 do begin write(i,' .satir ',j,' .sutun elemani :'); readln(mat[i,j]); if ( i=j ) then mat[i,j]:=0; end; for i:=1 to 4 do begin for j:=1 to 4 do begin write(mat[i,j],' '); end; writeln; end; readln; end.

============================================ Konu Sonu alma Sorular


Soru 1 : Dardan 3*3lk iki matris okuyup bunlarn farkn (karma) bularak sonucu matris grnmnde ekrana yazan program yaznz. Soru 2 : Dardan okunan 4*4 lk bir matrisin negatif elemanlar varsa bu elemanlar pozitif yapan matrisi yaznz.

Algoritma ve Programlamaya Giri

66

r. Gr. Mustafa AKSU

You might also like