You are on page 1of 38

Programlamaya Giri

ve Algoritmalar Ders
Notlar

Revizyon ve Bask Bilgisi


69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

indekiler
indekiler...................................................................................................................................2
Genel Programlama Bilgisi.........................................................................................................3
Tanmlar......................................................................................................................................5
Bilgisayar Nedir?................................................................................................................5
Bilgisayar Organizasyonu?.................................................................................................5
Bilgisayarn Tarihesi..........................................................................................................6
Bilgisayar Trleri................................................................................................................7
Problem Nedir?...................................................................................................................7
Problem zm.................................................................................................................7
Program Nedir?...................................................................................................................8
Programlama Nedir?...........................................................................................................8
Algoritma Nedir?................................................................................................................8
Ak izgesi Nedir?............................................................................................................8
Programlama Dili Nedir?....................................................................................................8
Derleyici Nedir?..................................................................................................................9
Yorumlayc Nedir?.............................................................................................................9
Yazlm Gelitirme....................................................................................................................10
Hata Yakalama ve Ayklama.....................................................................................................13
Algoritmalar..............................................................................................................................15
Ak izgeleri...........................................................................................................................18
Aritmetik ve Mantksal ifadeler................................................................................................21
Aritmetik fadeler..................................................................................................................21
Aritmetik Operatr............................................................................................................21
Aritmetik Operand............................................................................................................22
Deer Aktarma deyimi......................................................................................................22
Mantksal ifadeler.................................................................................................................22
Karlatrma Operatr....................................................................................................22
Mantksal Operatr...........................................................................................................22
Deiken ve Dizi Tanmlama....................................................................................................24
Sabit Nedir?...........................................................................................................................24
Tam Say Sabitleri.............................................................................................................24
Kesirli Say Sabitleri.........................................................................................................24
Dizgi Sabitleri...................................................................................................................24
Deiken Nedir?....................................................................................................................24
Dizi Nedir? ...........................................................................................................................24
Algoritma altrma.................................................................................................................26
Say Sistemleri..........................................................................................................................27
Tabandan Tabana evrim......................................................................................................27
kili Say isteminden onlu say sistemine evrim..............................................................27
Onlu Say isteminden ikili say sistemine evrim.............................................................27
Dier Say Sistemleri........................................................................................................28
Veri leme................................................................................................................................29
Algoritma rnekleri ve Sorular................................................................................................30

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Genel Programlama Bilgisi


Bir Programcnn Program yazabilmesi iin yapmas gereken almalar ve
bilmesi gereken n bilgilere ihtiyac vardr. nk bir problemin bilgisayar
ortamnda zlmesi maalesef hazrlksz olarak ve hzl bir ekilde
gerekleemez. Her eyden nce programlama bir sretir ve programn
yazlp bitmesi ile bitmez ounlukla programn yaad sre ierisinde
deiik ekillerde devam eder.
Bu nedenle Program yazlmadan veya problem zlmeye balamadan
nce baz admlar salam atmak gerekir. Bir ok zaman bu admlar
raporlarla belgelendirilir. nk yazlmn yaam dngs boyunca bu
raporlara veya balang admlarna ihtiya duyulabilir.
Bunu salayabilmek ve salam temelli programlar yazabilmek iin mutlaka
n almalar kat zerinde gerekletirilir ve elde edilen donelere gre
program yazlr.
Ancak programlamaya yeni iseniz hemen program yazmanz olduka zor
olacaktr. ncelikle programlama mantn ve problem zme n sezisini
edinmeniz gerekecek. te bu ders notlar siz rencilerin bu sezgiyi
kazanmanz ve bu mant oluturmanz salayacak bilgiler sunmaktadr.
Ne var ki bu ders notu sadece temel bilgileri verir. Bahsettiimiz mantk ve
sezgiler program yazdka geliir. Bir ok kii tarafndan programlama
yeteneinin tanr vergisi olduu sylense bile (ki gerekte dorudur) bu
yetenei edinmek resim yapma yeteneini edinmekten ya da gzel
sanatlara kar bir yetenei edinmekten ok daha kolaydr.
Bu ders notlar her trl programlama dilinden bamsz olarak
hazrlanmaya allmtr. Gerekli grld yerlerde dillere ait detay veya
farkllk bilgileri verilmitir. Ancak esas olan Programlama dilinin zerinde
temel programlama mantna sahip olmanzdr. nk bu sizin
Programlamac sfatnz iin temel tekil edecek bilgiler sunmaktadr.
Programlama dilleri zaman ierisinde gelimi, deimi, kaybolmu veya
yenileri kmtr. Bu nedenle programlama bilginizi asla bir programlama
diline bal tutmayn. Eer Programlama mantnz ve n sezileriniz
olduka iyi gelimise, Algoritmalar kolay kurup alglayabiliyorsanz, ok
karmak sorunlar zerinde fikir yrtp zm retebiliyorsanz bildiiniz
programlama dilinin fazlaca bir nemi kalmamaktadr. nk ounlukla 12 hafta gibi bir srede bir programlama dilini orta dzeyde renebilirsiniz.
En dorusu da tabii ki her derde zm olabilecek temel bir programlama
dilini ok iyi bir ekilde renip her zme uyarlayabilmeniz. Ancak
nemli olan Programlama mantn iyi kapm olmanz.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Dikkat ettiyseniz Programlama dilinde alternatiflerden bahsettik ancak


Programlamann alternatifi bulunmamaktadr. Yani bir program yazlacaksa
mutlaka programlamann kurallarna gre yazlmaldr.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Tanmlar
Bu ders notlarnn daha iyi anlalabilmesi iin u tanm ve kavramlarn
bilinmesinde fayda bulunmaktadr.

Bilgisayar Nedir?
Verileri leyerek zet bilgiler ekline sokabilen, bu veri ve bilgileri yksek
kapasitelerde saklayp baka ortamlara iletebilen elektronik cihazlardr.
Bu ilemleri yaparken ok yksek hzlarda ve bkmadan-usanmadan
tekrarl olarak ayn ileri yapan bir cihazdr.
Ancak tek bana bir Bilgisayar donanm bu ileri gerekletirecek
durumda deildir. Bu ilemler donanm tarafndan yaplsa da asl i
yazlmlar tarafndan gerekletirilmektedir.

Ancak Yukardaki izimde grlen her bir admn gerekletiren yazlmdr.

Bilgisayar Organizasyonu?
Bir Elektronik Bilgisayar yukar ekildeki gibi temel birimlere sahiptir. Bu
ekilde bir nceki konuda bahsettiimiz giri, k ilemleri, veri ileme ve
veri saklama ilemleri gerekletirilir.

Giri Birimi

Klavye, Fare, mikrofon, kamera vb. cihazlardan biri


veya daha fazlasndan oluur. Veri ve komutlarn
bilgisayara yollanmasn salar.
Veri, komut ve programlarn sakland donanmlar
temsil eder.

Bellek Birimi

Ana Bellek ounlukla RAM olarak anlr ve SIMM gibi


donanmlarla belirlenir.
Yan veya kincil bellek ise Floppy ve sabit diskleri
ifade eder ve bilgilerin daha kalc saklanmasn
salayan alanlar temsil eder.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Aritmetik-Mantk
Birimi

Denetim Birimi

Bilgisayardaki tm Aritmetik ve Mantksal ilemlerin


yapld birimdir. Tm ilemleri yapan ana birimdir.
C
P
U

k Birimi

Bilgisayar programnn almasn denetleyen,


programda yaplan hesaplamalara gre hangi ilerin
yaplacana karar veren birimdir. Makine diline
evrilmi bir programda komutlar teker teker ve
srayla Ana ilem birimine getirip yorumlar ve
sonuta komutu altrr.
Bilgisayar ortamnda oluan verilerin d ortama
verilmesini salayan birimlerdir. Ekran, yazc gibi
birimlerdir.

Bir Programc genel olarak bu birimlerin hangilerinin ne ie yaradn ve


neleri temsil ettiini bilmelidir. zellikle Aritmetik-Mantk ilem birimi ve
Denetim birimi Bir bilgisayarn beynini oluturduu iin nasl davrandn
iyi bilmek zorundadr.

Bilgisayarn Tarihesi
Bu konuda ok deiik ve eitli kaynaklar bulmak mmkn olabilir ancak
yle basit bir kronolojik sra gemek mmkndr
M.. 500

Abaks

1642

Pascaln Mekanik Toplama Makinesi

1827

Babbage'in karma makinesi

1941

kili>kili Mekanik Hesaplayc (Zuse)

1944

Ondalk Elektromekanik Hesaplayc (Aiken)

1945-54

lk Kuak Vakum Tpler ve nlar

1955-64

kinci Kuak Tranzistrler ve Manyetik Bellekler

1965-71

nc Kuak Tmleik Devreler

1971-90

Drdnc Kuak VLSI Devreler

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

1982

IBM Pc & MS-DOS

1984

MAC

1990lar

Paralel lemciler, Yapay Zeka, nternet ve WWW

Bilgisayar Trleri
Bilgisayarlar kullanm amalarna gre byklk ve kapasite bakmnda u
ekilde snflandrlabilirler.

Sper Bilgisayarlar
Mainframe tipi Bilgisayarlar
Workstation tipi Bilgisayarlar ( stasyonlar)
Mikro Bilgisayarlar
Kiisel Bilgisayarlar

Problem Nedir?
Bir ilemin, otomasyonun yada bilimsel hesaplamann bilgisayarla
zlmesi fikrinin ortaya kmasna problem denir. Bu tip fikirlerde
insanlarn bu sorunlar beyinle zmeleri ya imkanszdr ya da ok zor ve
zaman alcdr. Bu tip bir sorunu bilgisayarla zebilme fikrinin ortaya
kmas bir bilgisayar probleminin ortaya kmasna neden olmutur.
Bazen de bir iletme veya ynetimin otomasyonunu salamak amac ile bu
tip problemler tanmlanr.

Problem zm
Problemi zebilmek iin ncelikle sorunun ok net olarak programc
tarafndan anlalm olmas gerekir. Tm ihtiyalar ve istekler
belirlenmelidir. Gerekiyorsa bu ilem iin birebir grmeler planlanmal ve
bu grmeler gerekletirilmelidir.
Problemin zmne ilikin zihinsel altrmalar yaplr. Bu altrmalarn
Bilgisayar zmne yakn olmas hedeflenmelidir. Bir sorunun tabii ki
birden fazla zm olabilir. Bu durumda bilgisayar ile en uygun zm
seilmelidir. nk bazen pratik zmler bilgisayarlar iin uygun
olmayabilir.
Oluturulan zm Algoritma dediimiz admlarla ifade edilmelidir.
Bu algoritmann daha anlalabilir olmas iin Ak izgesi oluturulmaldr.
Uygun bir programlama dili seilmeli ve oluturulan algoritma ve ak
izgesi bu programlama dili aracl ile bilgisayar ortamna aktarlmaldr.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Oluturulan program bir takm verilerle ve mmknse gerek ortamnda


test edilir. Oluabilecek sorunlar ilgili ksmlar tekrar gzden geirilerek
dzeltilir. Bu admlar defalarca gerekletirilmek zorunda kalnabilir.

Program Nedir?
Problem zm ksmnda anlatlan admlar uygulandktan sonra ortaya
kan ve sorunumuzu bilgisayar ortamnda zen rne Program denir.
Baz durumlarda bu rne yazlm denebilir.

Programlama Nedir?
Problem zmnde anlatlan admlarn tmne birden programlama
denilebilir. Ancak gerekte ilk paragrafta anlatlan ksm ounlukla sistem
analizi veya sistem zmleme olarak anlatlr. Dier admlar Programlama
diye tanmlanabilir. Ancak Son paragrafta anlatlan adma ksaca test
aamas da denir.
ounlukla ok iyi tanmlanm bir sorunun zmne dair admlar ile
zmn oluturulup bunun bir programlama dili ile bilgisayar ortamna
aktarlmas Programlama diye adlandrlabilir.

Algoritma Nedir?
Bir sorunu zebilmek iin gerekli olan sral mantksal admlarn tmne
denir. Doal dille yazlabilecei iin fazlaca formal deildir. Bir algoritma
iin aadaki ifadelerin mutlaka dorulanmas gereklidir.

Her adm son derece belirleyici olmaldr. Hi bir ey ansa bal


olmamaldr.
Belirli bir sayda adm sonunda algoritma sonlanmaldr.
Algoritmalar karlalabilecek tm ihtimalleri ele alabilecek kadar
genel olmaldr.

Ak izgesi Nedir?
Bir algoritmann daha grsel gsterimidir. izgiler, Drtgen, daire vb.
geometrik ekillerle algoritmann gsterilmesini salar. Doal dille
yazlmad iin daha formal olduu dnlebilir.

Programlama Dili Nedir?


Bir Problemin Algoritmik zmnn Bilgisayara anlatlmasn salayan,
son derece sk-skya kurallar bulunan kurallar dizisidir.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Derleyici Nedir?
Bir programlama dili ile bilgisayara aktarlan programn bilgisayarn
anlayabilecei Makine Diline evirmeyi salayan ve yazlan programda sz
dizim hatalarnn olup olmadn bulan olup olmadn bulan yazlmlardr.
Her Programlama dili iin bir derleyici olmas gerekmektedir.

Yorumlayc Nedir?
Derleyici gibi alan ancak yazlm programlar o anda Makine diline
eviren yazlmlardr. Bu tr bir yazlmda Programn Makine dili ile
oluturulmu ksm bilgisayarda tutulmaz. Programn her altrlmasnda
her adm iin Makine dili karlklar oluturulur ve altrlr.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Yazlm Gelitirme
Yazlm Gelitirilirken Bir Programc ve Yazlm Gurubunun takip edecei
admlar u ekildedir.

Bu izgeden anlalaca gibi admlardan birinde bir sorunla karlalrsa


bu sorunu zebilmek iin bir nceki adma geri dnmek gerekecektir. Bu
geri dn bazen bir ka adm olabilir.
69/17.10.2007 01:51:28 PM

10

Programlamaya Giri ve Algoritmalar Ders Notlar

Sistem Analizi : Sorunun zlebilmesi iin tamamen anlalmasn


salayan almalardr.
Tasarm : steklerle ilgili olarak belirlenen bir takm zmlerin
tanmlanmasdr.
Programlama Stili : Her yiidin yourt yiyii farkldr. Ayn ekilde her
programc programndaki mant farkl kurar bu her programcnn kendine
zgn bir stili var anlamna gelir. Ancak bunun yannda Her programcnn
programn sal bakmndan dikkat etmesi gereken eyler vardr. rnein
kodlar ak olmaldr. Kullanlan deikenler kullanldklar amac anlatr
tarzda isimlendirilmelidir. Program ii dokmantasyona mutlaka nem
verilmelidir.
Algoritma : zmn admlarla ifade edilmesidir.
Ak izgesi : Algoritmann ekillerle ifade edilmesidir.
Programlama Dili Seimi : zmn netlemesinden sonra yaplacak
ilemleri kolay bir ekilde bilgisayar ortamna aktaracak dilin seilmesidir.
nemli olan bu dilin zelliklerinin programc tarafndan iyi bilinmesidir.
Programn Yazlmas : Seilen Programlama dilinin kurallar kullanlarak
program yazlmaya balanr. bu amala ounlukla sade bir metin editr
kullanlr. Baz durumlarda Syntax highlighting denilen bir zellie sahip
olan daha akll editrler de kullanlabilir. Bazen de editr ile Programlama
dilinin derleyicisinin, balaycsnn hatta hata ayklaycsnn i ie
bulunduu IDE (Integrated Development Environment) denilen trde
derleyiciler kullanlr.
Derleme : Programlama Dili ile yazlm programn yazm hatalarnn olup
olmadnn kontrol edilmesini ve ara kod olarak Obje kodun retilmesini
salama admdr.
Balama : Derlenmi ara kod dier ktphane ve para programlarla
birletirilerek Makine dilinde programn oluturulmas admdr. Ancak baz
IDE ortamlarda ve derleyicilerde Derleme ve Balama bir btndr ve
beraberce halledilirler. Programcnn ayrca bir balama ilemi yapmas
gerekmez ilemi yapmas gerekmez.
altrma : Oluturulan Makine dili Programnn altrlmas admdr.
Yukardaki admlarn hepsi yolunda gittiyse program sorunsuz olarak
alabilmelidir.
Test : Programn Mantksal olarak test edilmesini salar ve ierik olarak
her ihtimal iin doru sonular retip retmediini kontrol etmenizi salar.

69/17.10.2007 01:51:28 PM

11

Programlamaya Giri ve Algoritmalar Ders Notlar

Yaam Dngsnn Salanmas : Yukardaki Ak izgesi dikkat


edilirse aslnda bir dngdr. Hatta test aamasnda sorun kmazsa bile
Sorunun tanmnda yani ihtiyalarda baz deiiklikler olursa admlar
batan aa tekrar incelenmek zorunda kalnr. Bu izgeye bir Yazlmmn
Yaam Dngs de denilebilir. Bu izimde Yazlmn Bakm sreci gz
nne alnmamtr.

69/17.10.2007 01:51:28 PM

12

Programlamaya Giri ve Algoritmalar Ders Notlar

Hata Yakalama ve Ayklama

Bir Programn bilgisayar banda geen gelitirme sreci yukardaki gibidir.


Bu izimde krmz-turuncu renkle gsterilen ksmlar hata durumlarn
gstermektedir.
Syntax Error : Yazlan programda programlama dili kurallarna aykr bir
takm ifadelerden dolay karlalabilecek hatalardr. Dzeltilmesi son
derece basit hatalardr. Hatann bulunduu satr derleyici tarafndan rapor
edilir. Hatta baz derleyiciler hatann ne olduunu ve nasl dzeltilmesi
gerektiini dahi bildirebilirler. Bazen Syntax Error tipi hatalar Balama
zamannda da ortaya kabilir.
Eer bir derlemede Syntax Error alnd ise obje kod retilememitir
demektir.
Soru: Bir Derleyici hatann nasl dzeltileceini bildirebildiine
gre kendisi niin dzeltmemektedir?
Run-time Error : Programn altrlmas srasnda karlalan hatalardr.
Programcnn ele almad bir takm aykr durumlar ortaya ktnda
programn iletim sistemi tarafndan kesilmesi ile ortaya kar. Bu tip
hatalarda hata mesaj ounlukla alan iletim sisteminin dili ile verilir.
Eer bu tip hatalar kullanc ele almsa, program programcnn verecei
mesajlarla ve uygun ekilde sonlandrlabilir.
Bu tip hatalarn nerelerde ve hangi artlarda ortaya kabileceini bazen
kestirmek zor olabilir. ounlukla iletim sistemi ve donanm kaynaklar
ile ilgili sorunlarda bu tip hatalar ortaya kar demitik. rnein olamayan
bir dosya amaya almak, var olan bir dosyann zerine yazmaya
almak, olmayan bir bellek kaynandan bellek ayrtmaya almak,
olmayan bir donanma ulamaya almak vs. vs. vs.
Logical Error : Karlaabileceiniz en tehlikeli hatadr. Programlama
mantnda bir takm eylerin yanl dnlmesinden kaynaklanr. Hata
test aamasnda ortaya kar. Hesaplanmas gereken veya bulunmas

69/17.10.2007 01:51:28 PM

13

Programlamaya Giri ve Algoritmalar Ders Notlar

gereken deerlerin eksik veya yanl hesaplanmas ile tespit edilir. Bu


sorunun giderilebilmesi iin Tasarm hatta zmleme aamasna geri
dnlmesi gerekebilir. Bazen bu hatann nereden kaynaklandn
bulabilmek ok zor olmaktadr.
Bug : Logical Error diyebileceimiz Mantksal hatalara verilen adlar bug
yani bcek diye de tanmlanm olabilir. Bu tip hatalar eer ok net deil
ve zamanla ortaya kabiliyor ise veya nedeni ok net olarak
anlalamamsa bug diye adlandrlr. Gerek serbest yazlm gerek ticari
yazlmlarn tmnde bug dediimiz mantksal hatalar bulunur. nk
hatasz program yazabilmek ok zordur. lk seferde yazlan bir programn
tamamen hatasz olmasn beklemek son derece hataldr. Gnmzde en
mehur yazlm firmalar bile yazlmlarnda bug olduunu kabul eder ve
zaman zaman bu buglar giderebilmek iin ya yazlmlarna yama yazlm
retirler yada o yazlmn yeni bir versiyonunu piyasaya srerler.
Debug : Mantksal hatalar giderebilmek ve yazlmdaki bug'lar bulabilmek
iin yaplan ilemin addr. Genellikle yazlan programn adm adm ve
denetim altnda altrlmasdr. Programn her admnda ilgili deikenlerin
hangi deere sahip olduunu grmeyi salar. ve anormal bir durumu daha
kolay izleyip bulmanz salar. Bu ilemi gerekletirebilmek iin baz IDE
ortamlarnda debugger dediimiz yardmc komut veya yaz

69/17.10.2007 01:51:28 PM

14

Programlamaya Giri ve Algoritmalar Ders Notlar

Algoritmalar
Bir bilgisayar program aslnda sra dzensel olarak tanmlanm bir dizi
komuttan baka bir ey deildir. Bu adan bizim yazmaya alacamz
programda bir dizi komut yani eylem topluluudur. Her programda bu
eylemler yazldklar srada gerekletirilir veya altrlrlar. Aslnda bizim
gnlk hayattaki yaant tarzmz dahi dzenli olarak bir takm ilemlerin
sra ile yaplmas eklindedir. Yani bir i yapabilmek iin bir takm alt i
veya olaylar pe pee gerekletiririz.
Algoritmann tanmn daha nce vermitik burada bu tanm tekrar etmek
faydal olacaktr. Bir sorunu zebilmek iin gerekli olan sral
mantksal admlarn tmne algoritma denir. Bir algoritmadan
beklenen bir takm zellikler olduunu da yine daha nceki tanmlar
blmnde bahsetmitik. Biz imdi mmkn olduu kadar bu tanm ve
zelliklerden yola karak rneklerle bir ka algoritma vermeye alacaz.
ncelikle bir ev hanmnn pasta yapmak istediini varsayalm. Bu pastann
yaplabilmesi iin gerekli bir takm ilemler ve alt admlar bellidir. bir ev
hanm da sra ile bu admlar uygulayarak bu pastay yapar. yle ki:
1.
2.
3.
4.
5.
6.
7.
8.

Pastann yapm iin gerekli malzemeleri hazrla


Ya bir kaba koy
ekeri ayn kaba yan zerine koy
Ya ve ekeri rp
Karmn zerine yumurtay kr
Tekrar rp
Kvama geldi mi diye kontrol et
a. Kvaml ise 9. adma devam et
b. Deilse 6. adma dn.
9. Karma un koy
10.Karma vanilya, kabartma tozu vb. koy
11.Karm Kvama gelinceye kadar rp
12.Pastay Kek kalbna koy
13.Yeteri kadar snan frna pastay koy
14.Piimi diye kontrol et
15.
a. Pimi ise 16. adma devam et
b. Deilse 14. adma dn
16.Keki frndan kart
17.Frn kapat
18.Kekin kapat
19.Kekin soumasn bekle
20.Keki servis edebilirsin.

69/17.10.2007 01:51:28 PM

15

Programlamaya Giri ve Algoritmalar Ders Notlar

Bu algoritma gnlk hayattan bir rnek. Gerekte biz her iimizi algoritmik
olarak yaparz ancak bunu farkna varmayz. Yukardaki algoritmay
inceleyecek olursak bir kekin yaplmas iin gerekli tm admlar sra ile yer
alm durumda. Geri algoritma anlatacamz konularn daha iyi
anlalabilmesi iin biraz farkl ele alnmtr ama gerek bir Pasta yapm
aamasn ierir. Bu algoritma ve dier tm algoritmalar iin bilmemiz
gereken baz konular bulunmaktadr:
Her adm son derece belirleyici olmaldr. Hi bir ey ansa bal
olmamaldr.
Belirli bir sayda adm sonunda algoritma sonlanmaldr.
Algoritmalar karlalabilecek tm ihtimalleri ele alabilecek kadar genel
olmaldr.
Algoritmada algoritmann genel ileyiini etkileyebilecek hi bir belirsizlik
olmamaldr. (Bu rnekte yle bir belirsizlik var. Bir frnn yeteri kadar sna
bilmesi hangi koula baldr, bu frn ne zaman alm olmaldr ve ka
dereceye ayarlanm olmaldr. gibi...)
Algoritmada baz admlar yer deitirebilir . Ancak bir ok admn kesinlikle
yer deitiremeyeceini bilmeliyiz. Yanl sradaki admlar algoritmann
yanl almasna neden olacaktr. (9 ve 10. adm deitirilebilir. 2-3.
admlar yer admlar yer deitirebilir.) Ancak 13-16. admlar kesinlikle yer
deitiremezler.
Peki Bilgisayarda zlecek bir sorunu nasl algoritma ile ifade ederiz?
Bunun iin ncelikle bir sorun tanmlayalm. Balang ta basit olmas iin
yle bir problem zerinde dnelim: Bilgisayara verilecek iki sayy
toplayp sonucu ekrana yazacak bir program iin algoritma gelitirmek
isteyelim. Sorun son derece basit ancak sistem tasarmnn net
yaplabilmesi iin sorun hakknda anlalamayan tm belirsiz noktalar
akla kavuturulmaldr. rnein saylar bilgisayara nereden verilecek,
Klavye, Dosya veya belki baka bir ortam. Bu ve buna benzer soru ve
tereddtleriniz varsa sorun sahibine bunlar sormal ve sistem analizi
yapmalsnz.
Sonra bulacamz zm algoritma haline dntrebiliriz.
1.
2.
3.
4.
5.

BALA
A saysn oku
B saysn oku
TOPLAM=A + B ilemini yap
TOPLAM deerini ekrana yaz

6. SON

69/17.10.2007 01:51:28 PM

16

Programlamaya Giri ve Algoritmalar Ders Notlar

Biraz daha karmak bir sorun yle olsun: Klavyeden girilecek iki saydan
byk olanndan kk olann karp sonucu ekrana yazacak program iin
bir algoritma gelitiriniz.
A.
B.
C.
D.

BALA
A saysn oku
B saysn oku
Eer A byktr B SONUC=A-B
Deilse SONUC=B-A
E. SONUC deerini ekrana yaz
F. SON
Gerekte bir algoritma genellikle ana blmden oluur. Bunlar :
Algoritmann giri ve ilk ilemlerinin yapld blm
Dngsel bir blmn olduu kesim. Bu blm iterasyonlarla
bir ilemin srekli tekrar edilerek sonuca ulamay salayan
blmdr.
Son ilemlerin yapld blmdr. Bu blm elde edilen
sonularn ekrana yazlmasn salayan blmdr.

rnein birden Klavyeden girilen bir n deerine kadar saylar toplayan ve


sonucu ekrana yazan bir algoritmay gelitirelim.
1.
2.
3.
4.
5.
6.
7.

BALA
N OKU
T=0
X=1
T=T+X
X=X+1
EER X<=N SE 5. ADIMA GT

8. T YAZ
Bu algoritmalar olduka basit algoritmalar olup algoritma kavramnn
yerlemesini salayan rneklerdir.

69/17.10.2007 01:51:28 PM

17

Programlamaya Giri ve Algoritmalar Ders Notlar

Ak izgeleri
Bir algoritmann ekillerle grsel gsterimidir. Dikkat edildiyse algoritma
doal dille yazld iin herkes tarafndan anlalamayabilir ya da
istenmese de baka anlamlar karlabilir. Ancak ak izgelerinde her bir
ekil standart bir anlam tad iin farkl yorumlanp anlalamamas
mmkn deildir. Bir algoritmann ifade edilebilmesi iin kullanlan ekiller
ve anlamlar unlardr:

Bir algoritmann balad konumu


gstermektedir. Tek kl bir ekildir.

Bir algoritmann bittii konumu gstermektedir.


Tek girili bir ekildir.

Bir algoritmada aritmetik ilem yaplmasn


salayan ekildir. Bu drtgen kutu ierisine
yaplmak istenen ilem yazlr. Tek girili ve tek
kl bir ekildir.

Algoritmada bir bilginin ekrana yazlaca


konumu gsteren ekildir. Ekrana yazlacak ifade
ya da deiken bu ekil ierisine yazlr.

Bir algoritmada baka bir yerde tanmlanm


bloun yerletii konumu gsteren ekildir. Kutu
ierisine bloun ad yazlabilir.

Klavyeden Bilgisayara bilgi girilecek konumu


belirten ekildir. Girilecek bilginin hangi
deikene okunacan kutu ierisine
yazabilirsiniz.

69/17.10.2007 01:51:28 PM

18

Programlamaya Giri ve Algoritmalar Ders Notlar

Giri k komutunun kullanlaca yeri belirler


ve kutu ierisine hangi deikeni ve OKU mam
YAZ m yaplacan belirtmeniz gerekir

Bilginin Yazcya yazlaca konumu gsteren


ekildir.

Bir algoritmann birden fazla alana yaylmas


durumunda balant noktalarn gsteren
ekildir. Tek girili veya tek kl olarak
kullanlrlar.
Bir ilemin belli bir sayda veya belli bir koul
doru olduu srece tekrar edilmesini salayan
dng komutunu gsteren ekildir. Bu dngde
altgen ierisine ya koul yada dngnn
balang, adm ve sonlanma deerlerini
belirtebilirsiniz. DNG olarak belirlenen blokta
da tekrar edilmek istenen komutlar yer
almaktadr.

Bir algoritmada bir kararn verilmesini ve bu


karara gre iki seenekten birinin uygulanmasn
salayan ekildir. burada ekenar drtgen
ierisine kontrol edilecek mantksal koul yazlr.
Program ak srasnda koulun doru olmas
durumunda "Evet" yazlan ksma Yanl olmas
durumunda "Hayr" yazlan ksma saplr. Tek
girili ve ift kl bir ekildir.

Programn bittii yer ya da yerleri gsteren bir


ekildir.

69/17.10.2007 01:51:28 PM

19

BALA
Programlamaya Giri ve Algoritmalar Ders Notlar

N
Bu ekiller kullanlarak algoritma ile oluturulan zmler ak izgelerine
evrilir. Bu ekiller herkes tarafndan anlalabilir ve doru olarak
X=1
yorumlanabilir bir zellik arz ederler.
BALA

T=0

A=1

T=T+X

B=1

X=X+1

C=A+B

X<=N
H

C>100

SON

H
C

SON
A=B

B=C

Bu rnekte 1den N deerine kadar


saylar toplayp ekrana yazan bir
ak izgesi izilmitir.

69/17.10.2007 01:51:28 PM

100e kadar saylardan fibonecci


dizisinin elemanlarn listeleyen ak
izgesidir.

20

Programlamaya Giri ve Algoritmalar Ders Notlar

Aritmetik ve Mantksal ifadeler


Bir takm ilemlerin yaplabilmesi iin aritmetik ilemlerin nasl
tanmlandn bilmeniz gerekecek. Program aknn doru bir ekilde
salanabilmesi iin baz yerlerde karar verilmesi gereklidir. Bu kararlarn
verilmesini salayacak Mantksal ifadeler bilgisayarlar tarafndan
yaplabilmelidir.

Aritmetik fadeler
Bir programn istenilen ileri yerine getirebilmesi iin hesap yapabilmesi ve
bu hesaplar sonucunda elde edilen deerleri saklayabilmesi gerekmektedir.
Genel olarak tm programlama dillerinde aritmetik ilemler u ekilde
tanmlanmtr:
Deer|Deiken {aritmetik operatr} Deer|Deiken
Bu tip bir gsterimde Deer denilen kesim sabit bir deeri temsil eder.
Deiken ise ierisinde her an farkl bir deer tutabilecek bir tanm ifade
eder. Aritmetik Operatr ise aritmetik ilemin zn oluturan bir iletir.

Aritmetik Operatr
Ksaca drt ilem olarak da ifade edebileceimiz ilelerdir. ounlukla
drt tanedirler ve cebirde kullanlan ncelikleri ayn ekilde kullanrlar.
*

arpma ilemini gsteren iletir. Blme ile e nceliklidir.

Blme ilemini gsteren iletir. arpma ile e nceliklidir.

Toplama ilemini gsteren iletir. karma ile e nceliklidir.

karma ilemini gsteren iletir. Toplama ile e nceliklidir.

Temel olarak bu ileler her programlama dilinde bulunur. ncelikleri


yukardaki srada olduu gibidir. E ncelikli aritmetik ifadeler bulunursa
bu ifadelerde ilem soldan saa doru yaplr.
Bu ilem nceliklerini deitirmek iin her programlama dilinde "(", ")"
(Parantez a-kapa) ifadelerini bulabilirsiniz.
Bunlardan hari olarak bazen z alma operatrlerinden bahsedilebilir.
bazen de mod operatr ve tam blme operatr gibi deiik ve standart
olmayan operatrler yar alabiliyor.

69/17.10.2007 01:51:28 PM

21

Programlamaya Giri ve Algoritmalar Ders Notlar

Aritmetik Operand
Aritmetik ifadelerde ileme giren taraflarn her birine aritmetik operand
yani aritmetik ilenen denir. yukardaki tanmda Deer|Deiken ikilisinin
her biri ilenen yani operand tanmn salar. Bir aritmetik ifade de bir ift
operand ve bir operatr minimum olmas gereken ifadelerdir. Ancak daha
fazla aritmetik ilenen ve ile olabilecektir. rnein A * B + (12 + B)
ilemi de bir aritmetik ifadedir.

Deer Aktarma deyimi


Genellikle bir aritmetik ifade ile hesaplanan deer baka bir deikene
aktarlr. Bu ilem ounlukla "=" sembol ile gerekletirilir. Ancak baka
bir komut, sembol veya ifade ile de bu deer aktarlmas yaplabilir.

Mantksal ifadeler
Bir deerin baka bir deer ile karlatrlmas sonucu doru veya yanl
sonu elde edebilen ifadelerdir.
Mantksal operatrler ve karlatrma operatrlerinin deiik alternatiflerle
bir araya gelmesinden oluur ve u ekilde ifade edilir:
Deer|Deiken|Aritmetik ifade {Karlatrma Operatr}
Deer|Deiken|Aritmetik ifade
Karlatrma Deimi {Mantksal operatr} Karlatrma Deimi

Karlatrma Operatr
ki deer veya aritmetik ifadeyi bir biriyle karlatrmay salayan
sembollerdir.
=

ki deerin eit olup olmad karlatran iletir.

>, >=

ki deerden soldakinin sadakine oranla byk olup olmadn


veya byk eit olup olmad kontrol eden operatrdr.

<, <=

ki deerden soldakinin sadakine oranla kk olup olmadn


veya kk eit olup olmad kontrol eden operatrdr.

<>

ki deerin farkl olup olmadn karlatrlan iletir.

A>=8 ifadesi a deikeni iindeki deeri 8 den byk m diye karlatrr.


A<>12 ifadesi a deikeni iindeki deer 12den farkl m diye karlatrr.

Mantksal Operatr

69/17.10.2007 01:51:28 PM

22

Programlamaya Giri ve Algoritmalar Ders Notlar

Birden fazla mantksal karlatrma deyiminin birletirilmesini salayan


ilelerdir. VE, VEYA gibi ifadelerdir. Bu operatrler mantksal ifadelerden
iki veya daha fazlasnn mantksal doruluk tablolarna gre
birletirilmesini salar.
VEYA iin doruluk tablosu
P
D
D
Y
Y

Q
D
Y
D
Y

P VEYA Q
D
D
D
Y

VE iin doruluk tablosu


P
D
D
Y
Y

Q
D
Y
D
Y

P VE Q
D
Y
Y
Y

Son mantksal operatr DEL operatr olup tek ilenen alr ve ald
ilenenin mantksal deilini alr. Yani doru olan deeri yanla yanl olan
deeri doruya evirir.
P
D
Y

DEL(P)
Y
D

rnein bir deiken iindeki deerin 1 ile 10 arasnda olup olmadn


kontrol eden ifade u ekildedir: (A>=1 VE A<=10). Bu tr ifadeler
yazlrken dikkat edilmelidir rnein (A>=1 VE A<=10) yerine yanllkla
(A>=1 VEYA A<=10) yazlmas her zaman doru sonu retecektir. Yada
(A=3 VE A=8) gibi bir ifade de asla doru olamayacaktr.

69/17.10.2007 01:51:28 PM

23

Programlamaya Giri ve Algoritmalar Ders Notlar

Deiken ve Dizi Tanmlama


Bilgisayarda yaplacak hesaplar sonucu elde edilecek deerleri ve dardan
bilgisayara girilecek deerler deikenlerde tutulur. Deikenler ilerinde
tuttuklar deerlerin trlerine gre snflandrlr. Bu deikenler bazen
basit ekilde olmaz kayt yapsnda ya da dizi yapsnda olabilirler.

Sabit Nedir?
Programn her yerinde ayn deeri ifade eden deerlerdir. Deikenlerde
olduu gibi sabitler de tr kavramna sahiptir. Yazl tarzna bakarak
sabitin trn anlamak mmkndr.

Tam Say Sabitleri


Sadece rakamlardan oluan ifadelerdir. Bu tip saylarn ierisinde sadece
rakam ve gerekiyorsa iaret sembol olabilir. Aritmetik ilemlere
girebilirler. (12, 1233, -3422 gibi)

Kesirli Say Sabitleri


Rakam ve ondalk ayrac olarak . (nokta) sembol kullanlabilir. ayrca
iaret sembol olarak (-) kullanlabilir. Aritmetik ilemlere girebilirler.
(3.14, 2.41. -2.11221 gibi)

Dizgi Sabitleri
Trnak ierisinde yazlan her ifade dizgi sabiti olarak alglanr. Programlama
dillerinde farkl trnak sembolleri kullanlabilir. ounlukla " sembol tercih
edilir. Aritmetik ilemlere giremez. ('Malatya', "Merhaba", "Dnya",
"12322" gibi).

Deiken Nedir?
Her seferinde farkl deerler ierebilen yapdr. Programlarda deikenleri
kutu olarak sembolize ederek zmlemek mmkndr. Deikenler de
sabitlerde olduu gibi trlere sahiptir. Sabitlerdeki trler aynen geerlidir.

Dizi Nedir?
Baz durumlarda kullanm amac ayn olan birden fazla hatta olduka fazla
sayda deikene ihtiya bulunur. Bu tip bir durumda bu deikenler tek
tek tanmlanmak yerine bir ad altnda indisle tanmlanrlar. bu tanma dizi
denir. Baz sorunlarn zm iin bu tanmlar zorunludur. Mesela 1000

69/17.10.2007 01:51:28 PM

24

Programlamaya Giri ve Algoritmalar Ders Notlar

sayy sralamak iin basit deiken tanmlama ilemi baarsz olacaktr.


Veya bir snf listesinin tmn bilgisayarda tutmak isterseniz basit
deikenler uygun deildir.
ounlukla bu tip bir tanmda dizinin bir ad vardr. Erimek istediiniz
dizinin eleman indis deeri ile bu dizi ierisinde istediiniz elemana
ulaabilirsiniz.
A dizisi
A(1)

A(2)

A(3)

A(4)

A(5)

A(6)

A(7)

A(8)

A(9)

A(10)

Bir dizi bu ekilde dnlebilir. Her bir eleman yukardaki gibi


isimlendirilir. Bunun bize salayaca avantaj indis deerlerinin
deikenlerle ifade edilebilmesinde yatmaktadr. Yani tek bir satr komut ile
tm dizi elemanlar mesela ekranda yazdrlabilir.

69/17.10.2007 01:51:28 PM

25

Programlamaya Giri ve Algoritmalar Ders Notlar

Algoritma altrma
Bazen Bir takm algoritmalarn ne ie yaradn anlamak veya
algoritmann doru alp almadn test etmek iin algoritmay
altrmak gereklidir. Algoritmay altrmak demek algoritmann
admlarn sra ile uygulamak, oluan deiken deerlerini bir tablo
zerinde gstermek demektir.
1. BALA
2. A OKU
3. B OKU
4. C OKU
5. TOP=0
6. SAY=A
7. TOP = TOP+SAY
8. SAY=SAY+C
9. EER SAY<=B SE 7. ADIMA GT
10.TOP YAZ
11.SON
eklinde verilmi bir algoritmamz olsun. Bu algoritma iin A3, B12 ve
C2 deerleri girilince SAY ve TOP deikenlerinde hangi deerlerin
oluacan algoritmay admlayarak gsterelim.
Deikenlerin Her
birinin Deeri
Aklama
A
B
C TOP SAY
3 12 2
0
3 6. adma kadar programn ilk altrlnda
deikenlerin elde ettii deer
3
5 7. ve 8. admlarn altrlmasndan sonraki
deerler
8
7 7. ve 8. deerler tekrar altrlyor
15
9 9<=12 olduu iin 7. ve 8. tekrar altrlyor.
24
11 11<=12 olduu iin 7. ve 8. tekrar altrlyor.
35 13 13<=12 olmad iin algoritma 10. satrdan
almaya devam edecektir. Ve 10. satrdaki
ifadeden dolay ekrana 35 deeri yazlacaktr.

69/17.10.2007 01:51:28 PM

26

Programlamaya Giri ve Algoritmalar Ders Notlar

Say Sistemleri
Bir Bilgisayar sisteminde tm bilgi kaytlar ve ilemleri elektriksel devreler
zerinden gerekletii iin tek bilinen gerek elektrik akmnn varl veya
yokluudur. Bu da matematiksel ve mantksal olarak ikili say sistemine
karlk gelir. ounlukla ikili say sistemindeki 0 deeri elektrik olmadn
1 deeri ise bir elektriksel gerilimin olduunu anlatr. Bu iki saysal deer
(0 ile 1) ikili say sisteminin rakamlardr. Ve bilgisayarda oluan tm deer
ve sonular gerekte bu rakamlar ile anlatlabilirler. Ancak bizim bu saysal
deerleri anlamamz zor olduu iin saysal olarak onluk say sistemini
kullanrz.

Tabandan Tabana evrim


Byle olunca saylarn gerektii durumlarda tabandan tabana
evrilebilmesi gereklidir. lkrenim dzeyinde grm olabileceiniz
yntemlere burada bir deinmekte fayda bulunmaktadr.
Bu rakamlarn her biri bilgisayar da bit denilen alanlarda tutulmaktadr.

kili Say isteminden onlu say sistemine evrim


Elimizdeki ikili saynn en sandaki basamak sfrnc basamak olmak
kaydyla tm basamaklarmz sola doru numaralandrlr. Sonra her
basamaktaki saysal deeri 2basamak deeri ile arpar ve bulunan tm
deerleri toplarz.

=1*20 + 1*21 + 0*22 + 1*23 + 1*24 + 0*25 + 0*26 + 1*27


=1 + 2 + 0+ 8 + 16 + 0 + 0 + 128
=155

Onlu Say isteminden ikili say sistemine evrim


Eldeki onlu say srekli 2 deerine blnerek ilem yaplr. Blme ilemi
en son blmn 0 olduu noktaya kadar devam eder. Elde edilen blme

69/17.10.2007 01:51:28 PM

27

Programlamaya Giri ve Algoritmalar Ders Notlar

tablosunda en son kalanlar sondan baa doru yan yana yazlr ve saynn
ikilik tabandaki karl bulunmu olur.
rnein elimizde 156 gibi saysal bir deer olsun.
lem
155 / 2
77 / 2
38 / 2
19 / 2
9/2
4/2
2/2
1/2

Blm
77
38
19
9
4
2
1
0

Kalan
1
1
0
1
1
0
0
1

Sonu Kalan stunundaki deerlerin aadan yukar dizilmesi ile 1 0 0 1


1 0 1 1 olarak elde edilir.

Dier Say Sistemleri


0..X eklinde bir dizi rakama sahip olan say sistemleri X+1li say sistemi
olarak anlr. rnein 0..7 arasnda rakamlarla ifade edilen say sistemi 8li
say sistemidir. Bunun gibi bir programcnn bilmesi gerekebilecek 16li say
sistemi vardr. Bu sistemde saylar 0..9a kadar gider ve sonrasnda
A,B,C,D,E,F gibi rakamlar da 10,11,12,13,14,15 gibi deerleri ifade etmek
iin kullanlr.
Bu say sistemleri haricinde 3l, 5li vb sistemler bulunabilir/bulunur.
Ancak bir bilgisayar programcs ikili, sekizli, onlu, onaltlk sistemleri
kullanr ve bu sistemlerden haberdardr.

69/17.10.2007 01:51:28 PM

28

Programlamaya Giri ve Algoritmalar Ders Notlar

Veri leme
Bilgisayarmzda anlatmak, grmek, duymak istediimiz her bilgi veya
medya bilgisayar ortamnda saysal olarak saklanr. Bunlarn zerinde
yapacanz ilemlerin ou da aslnda matematiksel veya mantksal
ilemlerdir. rnein bir izim bilgisayarda nokta nokta saklanr. ki boyutlu
bir dzlem zerinde (0,0) koordinatndaki noktann rengi saysal olarak
verilir. rnein bu deer 0 ise renk siyah 65555 ise renk beyazdr. Bu
saysal deeri deitirerek (0,0) koordinatndaki noktann rengini
deitirmi olursunuz.
Aynen bu ekilde tm bilgiler bilgisayar ortamnda uygun saysal veriler
eklinde tutulur. Yaplacak ilemler bu verilerin zerinde matematiksel ya
da mantksal yollarla yaplan ilemlerdir. Bir resmin bytlp kltlmesi
resimlerin zerine efekt eklenmesi, seslere efektlerin eklenmesi, video
grntlerinde istenilen ekleme ve karmalarn yaplmas, bir nesnenin
boyutlu grntsnn elde edilip hareket kazandrlmas gibi onlarca konu
veri ileme esaslarna dayanan hesaplamalarla elde edilir. Bu tip
kavramlarn her biri iin internetten algoritma vb. aratlp kullanlabilir.

69/17.10.2007 01:51:28 PM

29

Programlamaya Giri ve Algoritmalar Ders Notlar

Algoritma rnekleri ve Sorular


1. Soru
Klavyeden girilecek X deerinden N deerine kadar tm doal saylar
listeleyen algoritmay gelitiriniz.
zm: X deikeni ve N deikeni klavyeden girilecek olup Xden Ne
kadar elde edilecek her bir deer ekrana yazlacaktr.
1.
2.
3.
4.
5.

X OKU
N OKU
X YAZ
X=X+1
EER X<=N SE 3. ADIMA GT

6. SON
2. Soru
Klavyeden girilecek bir N deerine kadar fibonecci dizisini bulan
algoritmay gelitiriniz. Fibonecci dizisi 1 1 deerleri ile balar ve yeni
deer kendinden ndeki iki deerin toplam olarak bulunur. (1 1 2 3 5 8 13
21...)
zm: Fibonecci dizisi a,b,c eklinde 3 deiken ile hesaplanabilecek bir
dizidir. nk srekli a ile b toplanarak c retilir ve sonra bu a, b, c
deikenleri kaydrlr.
7. N OKU
8. A=1
9. B=1
10.A,B YAZ
11.C=A+B
12.EER C>N SE 11. GT
13.C YAZ
14.A=B
15.B=C
16.5. ADIMA GT
17.SON
3. Soru
Klavyeden girilen bir saynn tm tam blenlerini bulup listeleyen (Ekrana
yazan) bir algoritma gelitiriniz.

69/17.10.2007 01:51:28 PM

30

Programlamaya Giri ve Algoritmalar Ders Notlar

zm: Bu rnei zebilmek iin bleni kalma operatrnn varln


kabul edeceiz. Bu amala Cdilinde de kullanlan % operatrn kalan
bulma operatr olarak kullanacaz.
18.N OKU
19.X=1
20.EER N%X=0 SE X YAZ
21.X=X+1
22.EER X<=N SE 3. ADIMA GT
23.SON
4. Soru
Klavyeden girilen saydan byklk sralamasna gre ortadakini bulup
ekrana yazan program iin algoritma yaznz.
zm: Bu algoritma saynn klasik yollarla sralanmasn ya da
byklk sralamasnn bulunmasnn ne denli zor olduunu anlatmaya
alan bir rektir.
24.A, B, C OKU
25.EER A>B VE
26.EER C>B VE
27.EER B>A VE
28.EER C>A VE
29.EER A>C VE
30.EER B>C VE

B>C
B>A
A>C
A>B
C>B
C>A

SE
SE
SE
SE
SE
SE

B
B
A
A
C
C

YAZ
YAZ
YAZ
YAZ
YAZ
YAZ

31.SON
5. Soru
Klavyeden girilen A ve B gibi iki saynn blme ilemi kullanmadan sadece
toplama ve karma kullanarak kalanl blme yapan algoritmay yaznz.
zm: Bu rnek ok eski ilemcilerde arpma ileminin tanml olmad
durumlar iin arpma ya da blme yapmak amacyla kullanlan algoritma
olarak karmza kmtr. lk okulda da fasulye hesabna dayanarak
arpmay rendiimiz yllar hatrlamamz salayabilir.
32.A,B OKU
33.BOLUM=0
34.KALAN=0
35.EER A<B SE KALAN=A, 8. ADIMA GT
36.A=A-B
37.BOLUM=BOLUM+1
38.4. ADIMA GT

69/17.10.2007 01:51:28 PM

31

Programlamaya Giri ve Algoritmalar Ders Notlar

39.BOLUM, KALAN YAZ


6. Soru
Klavyeden girilen A ve B gibi iki sayy, arpma ilemi kullanmadan sadece
toplama ve karma kullanarak arpp sonucu ekrana yazan algoritmay
yaznz.
zm:
40.A, B OKU
41.SAY=0
42.TOPLA=0
43.EER SAY>=B SE 8. ADIMA GT
44.TOPLA=TOPLA+A
45.SAY=SAY+1
46.4. ADIMA GT
47.TOPLA YAZ
7. Soru
Sfr 0 girilinceye kadar klavyeden okutulan deerlerin ortalamasn
hesaplayp ekrana yazan algoritmay gelitiriniz
zm: Bu rnekte bir toplam deerini tutabilecek bir de saylar
sayabilecek iki deikene ihtiya vardr. Klavyeden girilen her deer sfr ile
karlatrlacak deilse ileme devam edilecektir. Sfr ise ortalama
hesaplanp ekrana yazlacaktr.
48.T=0
49.SAY=0
50.X OKU
51.EER X=0 SE 8. ADIMA GT
52.T=T+X
53.SAY=SAY+X
54.3. ADIMA GT
55.ORT=T / SAY
56.ORT YAZ
8. Soru
Klavyeden girilecek 20 saynn tek olanlarn ayr ift olanlarn ayr toplayp
sonular ekrana yazan algoritmay gelitiriniz
zm: Bu algoritmada yine % operatrnn kalan bulan operatr olarak
kullanlacan varsayyoruz. nk bu algoritmada bir saynn ift mi tek

69/17.10.2007 01:51:28 PM

32

Programlamaya Giri ve Algoritmalar Ders Notlar

mi olduunu anlamak ancak ve ancak o saynn ikiye blmnden kalann


1 mi 0 m olduuna baldr
57.CIFT=0
58.TEK=0
59.SAY=0
60.X OKU
61.SAY=SAY+1
62.EER X%2=0 SE CIFT=CIFT+X
DELSE TEK=TEK+X
63.SAY=SAY+1
64.EER SAY<20 ISE 4. ADIMA GT
65.TEK, CIFT YAZ
9. Soru
n

Bir n deeri iin f(x)=

x= 1

1
2
eklindeki fonksiyonun deerini hesaplayp
x

ekrana yazan algoritmay gelitiriniz.


zm: Bu algoritma olduka basit bir ekle sahip olup benzer ekildeki
tm fonksiyonlar kk deiikliklerle rahata hesaplayabilecek bir
algoritmadr. Sadece 4. adm deitirerek olduka fazla sayda algoritma
veya sorun tretilebilir.
66.N OKU
67.F=0
68.X=1
69.F=F+1/(X*X)
70.X=X+1
71.EER X<=N SE 4. ADIMA GT
72.F YAZ
10. Soru
n

F(x)=

x= 1

1
2 eklindeki bir fonksiyon iin f(x)>=kk artn salayan en
x

kk n deerini bulabilecek bir algoritma gelitiriniz. Kk ve n deerlerinin


klavyeden girildiini dnelim
zm:
73.KK OKU
74.N OKU
75.F=0
76.X=1

69/17.10.2007 01:51:28 PM

33

Programlamaya Giri ve Algoritmalar Ders Notlar

77.F=F+1/(X*X)
78.X=X+1
79.EER F<KK SE 5. ADIMA GT
80.F,X YAZ
11. Soru
Genel Gsterimi Xn=n2 eklinde olan bir dizinin n. Elemanna kadar tm
elemanlarn ekranda yan yana gsterecek programn algoritmasn
gelitiriniz.
zm: Yan yana veya alt alta bu konuda algoritma dzeyinde
yapabilecek bir tanm yok bu ilem daha ok Programlama dili ile
hallolabilecek bir ilemdir. Bu nedenle burada o ifade dikkate alnmamtr.
81.N OKU
82.X=1
83.X*X YAZ
84.X=X+1
85.EER X<=N SE 3. ADIMA GT
86.SON
12. Soru
Klavyeden 0-Sfr girilinceye kadar girilen bir dizi saynn karelerinin
ortalamasn bulacak program iin algoritma gelitiriniz.
zm: Bu algoritma 7.sorudaki algoritmaya benzer bir algoritmadr. Ve
bu ekilde biri birine ok benzeyen bir sr rnek verilebilir ve soru
sorulabilir.
87.SAY=0
88.T=0
89.X OKU
90.EER X=0 SE 8. ADIMA GT
91.T=T+X*X
92.SAY=SAY+1
93.3. ADIMA GT
94.ORT=T/SAY
95.ORT YAZ

69/17.10.2007 01:51:28 PM

34

Programlamaya Giri ve Algoritmalar Ders Notlar

13. Soru
Klavyeden girilecek iki pozitif tam saynn OBEB (Ortak Blenlerin En
By)ini bulacak algoritmay gelitiriniz. rnein elimizde 3654 ve
1365 deerleri olsun. Bu deerlerin OBEBi u ekilde bulunmaktadr.
3654 / 1365
Kalan 924
1365 / 924
Kalan 441
924 / 441
Kalan 42
441 / 42
Kalan 21
42 / 21
Kalan 0 Kalan 0-Sfr oluncaya kadar sra ile blme
yaplmaktadr. OBEB deeri ise 21 olarak bulunan deerdir.
Bu ilem srasnda ve yineleme zelliklerini kullanarak iki saynn OBEBini
bulunuz. Kalan bulmak iin % operatrnn tanml olduunu varsayp
kullanabilirsiniz.
zm:
96.A, B OKU
97.KALAN=A%B
98.EER KALAN=0 SE 7. ADIMA GT
99.A=B
100.B=KALAN
101.2. ADIMA GT
102.B YAZ

14. Soru
Cos(x)= 1

x 2 x 4 x 6 x8
+

+
eklinde tanmlanm bir Cos alm
2!
4! 6! 8!

fonksiyonu iin X deeri klavyeden girilmektedir. lk 10 terim iin COS


fonksiyonunun sonucunu hesaplayp ekrana yazacak algoritmay
gelitiriniz. Bu algoritmay gelitirirken standart ilemlerden baka fak(n),
s(taban,s) eklinde tanml fonksiyonlarn kullanabilirsiniz.
zm:
103.X OKU
104.TERM=1
105.KS=2
106.F=1
107.ARET=-1
108.F=F+ARET*S(X,KS)/FAK(KS)

69/17.10.2007 01:51:28 PM

35

Programlamaya Giri ve Algoritmalar Ders Notlar

109.ARET=ARET * (-1)
110.TERM=TERM+1
111.KS=KS+2
112.EER TERM<10 SE 6. ADIMA GT
113.F YAZ
15. Soru
Klavyeden girilen A ve B gibi iki deerin yerlerini deitirerek ekrana
yazan algoritmay gelitiriniz.
zm: Burada anlatlmak istenen herhangi bir ift deikenin iindeki
deerleri yer deitirmektir. Bir ok programda bu tarz ilemler ihtiya
duyulur. rnein birinci deerin ikinci deere gre her zaman byk
olmasn salayan bir algoritma sz konusu ise burada aadakne benzer
bir yntem kullanlmaldr.
114.A, B OKU
115.TMP=A
116.A=B
117.B=TMP
118.A, B YAZ
16. Soru
Klavyeden girilen bir n deerini ikilik say sistemine evirip ekrana yazacak
algoritmay gelitiriniz.
zm: Bu algoritma bir takm zel deikenler ve yntemler
kullanmadan tam olarak doru bir ekilde istenilen grevi yerine
getiremeyecektir. Bu amala biz dizi deikenleri kullanabileceimizi
dnerek bu algoritmay oluturmaya alacaz.
119.N OKU
120.INDIS=7
121.KALAN=N%2
122.IKILI[INDIS]=KALAN
123.N=N/2
124.INDIS=INDIS-1
125.EER N>1 SE 3. ADIMA GT
126.IKILI[INDIS]=N
127.INDIS=0
128.IKILI[INDIS] YAZ
129.INDIS=INDIS+1
130.EER INDIS<=7 SE 10. ADIMA GT
131.SON

69/17.10.2007 01:51:28 PM

36

Programlamaya Giri ve Algoritmalar Ders Notlar

17. Soru
Klavyeden girilecek bir saynn tek mi ift mi olduunu bulabilecek bir
algoritma gelitiriniz. Bu algoritmay gelitirirken bavurduunuz
varsaymlar da yaznz.
zm: Varsaym u olmaldr: Kalan bulma operatrnn varl bir
varsaymdr. nk byle bir operatr her programlama dilinde olmayabilir.
132.SAYI OKU
133.EER SAYI%2=0 SE Tek YAZ
DELSE ift YAZ
18. Soru
Klavyeden girilen iki say ve bir operatre gre ilem yapp sonucu ekrana
yazan algoritmay tasarlaynz.
zm:
134.A,B OKU
135.OP OKU
136.EER OP=+ SE C=A+B
137.EER OP=- SE C=A-B
138.EER OP=* SE C=A*B
139.EER OP=/ SE C=A/B
140.C YAZ
19. Soru
Klavyeden girilen kesirli bir deeri a/b eklinde rasyonel ifade olarak
ekrana yazabilecek algoritmay gelitiriniz.
zm: Bu algoritmay yazabilmek iin kk bir varsaymmz olacaktr.
Bu varsayma gre programlama dilinde rnein ad TAM olan ve bir
saysal deerin tam ksmn bulan bir fonksiyona ihtiya vardr.
141.X OKU
142.PAY=X
143.PAYDA=1
144.PAY=PAY*10
145.PAYDA=PAYDA*10
146.EER PAY<>TAM(PAY) SE 4. ADIMA GT
147.EER PAY%2=0 VE PAYDA%2=0 SE
PAY=PAY/2
PAYDA=PAYDA/2
7. ADIMA GT

69/17.10.2007 01:51:28 PM

37

Programlamaya Giri ve Algoritmalar Ders Notlar

148.EER PAY%5=0 VE PAYDA%5=0 SE


PAY=PAY/5
PAYDA=PAYDA/5
8. ADIMA GT
149.PAY, PAYDA YAZ

20. Soru
Klavyeden girilecek bir harfi byk harfe evirip ekrana yazan algoritmay
gelitiriniz.
zm: Bu konu ile ilgili algoritma yazabilmek iin ASCII kmesi
dediimiz bir kme hakknda bilgi sahibi olmamz gerekiyor. B kme
bilgisayarnz tarafndan kullanlan tm karakterlerin sakland bir listedir.
Normalde saysal ilemler yapan bilgisayarnzn alfabetik karakterleri ifade
edebilmesi iin byle bir lise-kmeye ihtiya duyulur. Bu kmenin
elemanlar bir ok kitapta liste olarak verilmitir her bir liste yesinin
numaras 0 ile 255 arasndadr. Ve saysal olarak 65 dediimizde A
harfini ve mesela 97 dediimizde a harfini anlatm oluruz. Bu kme
incelendiinde harfler simetrik olarak belli bir blgede yer alrlar ve bir
harfin by ile k arasnda 32 gibi bir saysal fark vardr. Byk
harfler 65 ile balar ve daha kk deerlere sahiptir. Kk harfler ise 97
ile balar.
150.HARF OKU
151.EER HARF>=a VE HARF<=z SE HARF=HARF32
152.HARF YAZ.
Bu kavramla ilgili olarak onlarca soru zlebilir. Programlama ksmnda bu
konuyu temel alan bir ok rnek bulabileceksiniz.

69/17.10.2007 01:51:28 PM

38

You might also like