If you can't read please download the document
Upload
duongkhanh
View
278
Download
19
Embed Size (px)
Citation preview
T.C.
MLL ETM BAKANLII
ENDSTRYEL OTOMASYON
TEKNOLOJLER
PROGRAMLAMA MANTII
Ankara, 2014
Bu modl, mesleki ve teknik eitim okul/kurumlarnda uygulanan ereve retim Programlarnda yer alan yeterlikleri kazandrmaya ynelik olarak
rencilere rehberlik etmek amacyla hazrlanm bireysel renme
materyalidir.
Mill Eitim Bakanlnca cretsiz olarak verilmitir.
PARA LE SATILMAZ.
i
AIKLAMALAR ................................................................................................................... iii GR ........................................................................................................................................ 1 RENME FAALYET-1 ..................................................................................................... 3 1. ALGORTMA ...................................................................................................................... 3
1.1. Bilgisayarda Problem zme Admlar ......................................................................... 3 1.1.1. Problemi Tanma .................................................................................................... 3 1.1.2. Algoritma Gelitirme ............................................................................................. 4 1.1.3. Girdi Ve kt Biimi Belirleme ............................................................................ 4 1.1.4. Ak Diyagram izme ........................................................................................... 4 1.1.5. Kodlama ................................................................................................................. 5 1.1.6. Program Snama .................................................................................................... 5
1.2. Algoritma rnekleri ...................................................................................................... 7 1.3. Algoritmada Saysal rnekler ..................................................................................... 11
1.3.1 Deikenler ........................................................................................................... 11 1.3.2. Programlamada lemler ...................................................................................... 12
1.4. Programlamada Karar fadesi ...................................................................................... 15 1.4.1. Eer fadesinin Tek Durumlu Kullanm ............................................................. 15 1.4.2. Eer fadesinin ki Durumlu Kullanm ............................................................... 16 1.4.3. e Karar Yapsnn Kullanm ......................................................................... 17
1.5. Saya Mant .............................................................................................................. 20 1.6. Dngler ...................................................................................................................... 22
1.6.1. Temel Dng Yaps ............................................................................................ 22 1.6.2. e Dngler ..................................................................................................... 24
UYGULAMA FAALYET ............................................................................................... 27 LME VE DEERLENDRME ..................................................................................... 29
RENME FAALYET-2 ................................................................................................... 30 2. BLGSAYAR PROGRAMLAMA .................................................................................... 30
2.1. Yazlm Kavram ......................................................................................................... 30 2.1.1. Bilimsel Ve Mhendislik Yazlmlar .................................................................. 30 2.1.2. Mesleki Yazlmlar ............................................................................................... 31 2.1.3. Yapay Zeka Yazlmlar ....................................................................................... 31 2.1.4. Grntsel Yazlmlar .......................................................................................... 31 2.1.5. Sistem Yazlmlar ................................................................................................ 31
2.2. Say Sistemleri ............................................................................................................. 31 2.2.1. ki Tabanl (Binary) Say Sistemi ........................................................................ 31 2.2.2. Basamak Deerleri ............................................................................................... 33 2.2.3. Onalt Tabanl (Heksadesimal) Say Sistemi ....................................................... 35
2.3. Programlama Dilleri .................................................................................................... 35 2.4. C Programlama Dili ..................................................................................................... 37
2.4.1. C Programlama Dili zellikleri ........................................................................... 37 2.4.2. C Programnn Derlenmesi ................................................................................... 38 2.4.3. Program editrnn kullanlmas ......................................................................... 40
UYGULAMA FAALYET ............................................................................................... 48 LME VE DEERLENDRME ..................................................................................... 50
MODL DEERLENDRME ............................................................................................... 52
NDEKLER
ii
CEVAP ANAHTARLARI ..................................................................................................... 53 KAYNAKA ......................................................................................................................... 54
iii
AIKLAMALAR ALAN Endstriyel Otomasyon Teknolojileri
DAL/MESLEK Ortak Alan
MODLN ADI Programlama Mant
MODLN TANIMI Programlama yapabilme bilgi ve becerilerin verildii retim
malzemesidir.
SRE 40/32
N KOUL
YETERLK Bu modl tamamladnzda programlamaya hazrlk
ilemini yapabileceksiniz.
MODLN AMACI
Genel Ama
Gerekli ortam salandnda programlamaya hazrlk ilemini
doru ve hatasz olarak yapabileceksiniz.
Amalar 1. Algoritma hazrlama kurallarna gre ak diyagramn
doru bir biimde izebileceksiniz.
2. Bilgisayar program yazm aracn hatasz bir ekilde kuracak ve program derleyebileceksiniz.
ETM RETM
ORTAMLARI VE
DONANIMLARI
Ortam: Programlama Laboratuar
Donanm: Bilgisayar, Bilgisayar evre birimleri,
programlama ak ablonu
LME VE
DEERLENDRME
Modl iinde yer alan her renme faaliyetinden sonra
verilen lme aralar ile kendinizi deerlendireceksiniz.
retmen, modl sonunda lme arac (oktan semeli test,
doru-yanl testi, boluk doldurma, eletirme vb.)
kullanarak modl uygulamalar ile kazandnz bilgi ve
becerileri lerek sizi deerlendirecektir.
AIKLAMALAR
1
GR
Sevgili renci,
Bugn bilgisayarlarda kullanlan iletim sistemleri, izim programlar veya oyunlar
eitli program kodlarnn bir araya getirilmesi ile olumutur. Siz de temel programlama 1
modl ile bilgisayar programclna adm atm olacaksnz. Bilgisayar programlamada
hangi programlama dilini seerseniz sein yapacanz ilemleri belirli bir mantk zerine
kurmak zorundasnz. O zaman ie programlama mantn renmeyle balamak bu yolda
atlabilecek en doru admdr. Peki bu mant nasl reniriz ve en nemlisi de bunu
bilgisayara nasl anlatrz?
Bir bilgisayar ile iletiime geebilmek iin herhangi bir programlama dili kullanmak
zorundayz. Hangi programlama dilini kullanrsak kullanalm bilgisayara yaptracamz
ileri nceden kafamzda tasarlamamz gerekir. Herhangi bir ie balamadan kafamzda yada
bir kat zerinde tasarladmz ilem yoluma algoritma denir.
Programlamann en nemli ksm algoritma hazrlayabilmektir. Algoritma
hazrlandktan sonra hazrlanan algoritmann herhangi bir programlama dilinde kodlanmas
iin en basit ksmdr. Burada nemli olan programlama dili deil, problemin zm iin
algoritma gelitirebilmektir.
Bu nedenle programlamaya hazrlk modlnn ilk renme faaliyetinde algoritma
oluturmay reneceksiniz. kinci renme faaliyetinde ise bilgisayarda ilk programnz
yazacak ve program ktsn ekran zerine greceksiniz.
Bilgisayar kendi amacnz iin programlamak ve programnzn sonucunu grmek
almalarnzda motivasyon salayacaktr.
GR
2
3
RENME FAALYET-1
Algoritma hazrlama kurallarna gre ak diyagramn doru bir biimde
izebileceksiniz.
Gnlk yaamnzda karlatnz problemlere kar davranlarnz
dnnz.
Problem karsnda uyguladnz zm yollarnn planl olup olmadn
arkadalarnz ile paylanz.
Problemi zmek iin takip ettiiniz admlar sralaynz.
1. ALGORTMA
Gnlk hayatmzda karlatmz problemlerin zmnde salkl bir sonuca
ulaabilmenin yolu planl bir yol izlenme ile mmkn olacaktr. Rastgele zmler ile
sreklilik salanamaz. Bilgisayarla problem zmnde de bu geerlidir. Problemin analizi,
zmn tasarlanmas, gerekletirilmesi ve kontrol zmn temel aamalardr.
1.1. Bilgisayarda Problem zme Admlar
zm iin her eyden nce problemin tam olarak anlalmas gerekir. Tam anlamyla
tanmlanamayan bir problemin zm de yanl olacak ve istenilen sonu elde
edilemeyecektir.
1.1.1. Problemi Tanma
Doru sonucun bulunabilmesi iin neden, nasl, ne iin sorularnn yantlanmas
gerekir.
Descartes Discourse on method isimli kitabnda problem zme ile ilgili u
nerilerde bulunur:
Doruluu kesin kantlanmadka, hibir eyi doru olarak kabul etmeyin, tahmin ve nyarglardan kann.
Karlatnz her gl mmkn olduunca ok paraya bln. Dzenli bir biimde dnn; anlalmas en kolay olan eylerle balayp yava
yava daha zor ve karmak olanlara doru ilerleyiniz.
RENME FAALYET-1
AMA
ARATIRMA
4
Yatmadan nce saatini ayarla
Alarm alnca kalk
Elini yzn yka
Kahvalt hazrla
Kahvalt yap
Okul kyafetini giy
Kapy a ve dar k
Biletini al
Otobse bin
nmek iin ikaz lambasna bas
Okula doru git
Okula gir
Olaya baknz ok genel, hazrladnz ayrntl liste ise hibir eyi darda brakmayacak kadar kusursuz ve eksiksiz olsun.
1.1.2. Algoritma Gelitirme
Algoritma, bir sorunun zm iin izlenecek yoldur. Baka bir ifadeyle mevcut
bilgilerden istenilenlere erime yntemidir. Genellikle bir sorunun birden fazla zm yolu
olabilir. Bunlardan en uygunu seilmeye allr. Her algoritma aadaki kriterleri
salamaldr:
Giri :Her algoritmann bir balang noktas vardr. Balangta herhangi bir saysal deer dardan verilmelidir.
k :Her algoritmann bir k noktas vardr ve en az bir deer retmelidir.
Kesinlik :Algoritmann her admnda yaplacak i ak olmal ve farkl anlamlar iermemelidir.
Sonluluk :Her trl olaslk iin algoritma sonlu admda bitmelidir.
Gnlk yaammzda her zaman yaptmz ilemleri algoritmik srayla aadaki gibi
yazabiliriz:
1.1.3. Girdi Ve kt Biimi Belirleme
Sonularn d ortama, dolaysyla insana aktarm dzgn bir biimde yaplmaldr.
Programc program kts olarak almak istedii sonucun biimini tasarlar. Bir sonu biimi
tasarlanrken anlalr ve kullanlabilir olmasna zen gsterilmelidir. Genellikle programn
zd soruna ilikin baz verilerin dardan verilmesi gerekir. rnein bir denklem
takmnn kkleri bulunacaksa, ilgili katsaylarn programa verilmesi gibi.
1.1.4. Ak Diyagram izme
Ak emas belirli bir iin yaplabilmesi iin, basit ilemlerle ema halinde
gsterilmesidir. Ksaca algoritmann emalarla gsterilmesidir. Algoritma gelitirildikten
sonra, daha iyi anlalabilir ve programlama dillerine aktarmnn daha kolay olmas
5
nedeniyle, ak emas haline getirilir. Bylece sorunun zm basamaklar, birbirleri ile
ilikileri ve bilgi ak daha kolay grlebilir ve yanllklar dzeltilebilir.
ekil 1.1: Ak diyagram sembolleri
1.1.5. Kodlama
Ak emalar izildikten sonra, sorunun yapsna uygun bir programlama dili seilir.
Bu dil ile ak emalar dilin kurallarna uygun olarak bilgisayarn anlayabilecei duruma
getirilir.
1.1.6. Program Snama
Program yazldktan sonra, sonular daha nceden bilinen veriler girilerek, eldeki
sonularla kan sonular karlatrlr. Programn doru alp almad snanr.
Algoritmaya gre ak diyagramnn izilmesi ve programn ak diyagramna gre
yazlmas bilgisayar programclna yeni balayanlar iin ok nemlidir.
6
ekil 1.2: Problem zme algoritmas
(1) Sistem Analizi
Problemi tehis edip, nasl zeceiniz hakknda karar verme
(2) Giri k dizayn
Hangi verilerin girilecei ve hangi sonularn alnaca hakknda karar verme
(3) Deiken isimlerine karar verme Kesin olarak hangi deikenlerin
kullanlacana karar verme ve onlar tanmlama
Bala
Giri k dizaynnn kontrol edilmesi
Sistemi doru anlayp anlamadn kontrol etme
(4) Ak diyagramn yapma
Gerekli elemanlar ekleme ve temel yapya karar verme
(5)Ak diyagramn takip
etmek
(7) Bilgisayara girilmesi
(8) Hata ayklama ve altrma testi
(6)Kod yazm (Ak diyagramndan koda
gei)
son
Sonular istediiniz gibi mi?
Hayr
Evet
Ak diyagramlarnn
kontrol (Algoritma hatalar)
Kod yazmnn kontrol
(Gramer hatalarnn kontrol)
Sonucun kontrol (Program ve alma
hatalarnn kontrol)
7
1.2. Algoritma rnekleri
Bu blmde gnlk yaamnzda her zaman yaptnz fakat zerine dnmediiniz
ilemleri algoritma mant ile uygulayacaksnz. Bylece algoritmada saysal ilemleri daha
kolay yapabileceksiniz.
rnek 1.1.
ekil 1.3: rnek (ay demleme) ak diyagram
ay demleme ilemine
balarken aydanl
ocaa koymak ve altn
yakmak bir sretir.
Suyun kaynamasn kontrol
etmek ise karardr.
Karar ifadesi salanyorsa
(EVET) ak srer, bu
durum gereklemez ise
(HAYIR) sre devam
eder.
EVET
ay demle
aydanla su ekle
Demlik ve aydanl
ocaa koy
Su kaynad m? Bekle
EVET
HAYIR
Oca kapat
Dur
Bala
aydanla
su doldur
aydanl ocaa
koy ve altn yak
HAYIR Bekle Su kaynad m?
8
rnek 1.2.
ekil 1.4: rnek (amar ykama) ak diyagram
amar kutusunda beyaz
amarn olup olmadn
kontrol etmek bir dngdr.
Dngde koul evet ise
dng srer, hayr ise sre
devam eder.
Bala
Makine kapan
kapat
Deterjan ve
yumuatc koy
Makine
kapan a
Beyaz amar
var m?
Beyazlar amar
makinesine koy
Scakl ayarla
HAYIR
EVET
A Bekle
Program ayarla
Makine
durdu mu ?
EVET
HAYIR
Temiz amarlar
topla
Dur
amarlar ipe as
A
9
rnek 1.3.
ekil 1.5: rnek (Kitap arama) ak diyagram
Kitap arama ileminde
ekmeceleri ama sras
deiebilir. Bu rnek iin
kullanlan karar
ifadesinden kan sonu
HAYIR ise sre devam
eder.Karar EVET
olduunda ak sona
erecektir.
Bala
1. ekmeceyi a
Kitap var m?
Kitap var m?
2. ekmeceyi a
3. ekmeceyi a
Kitap var m?
4. ekmeceyi a
Kitab al
Dur
EVET
EVET
EVET
HAYIR
HAYIR
HAYIR
HAYIR
10
rnek 1.4.
ekil 1.6: Trafik lambas ak diyagram
Araba ile yolculuk yaparken
trafik lambalar karsnda
davranlarnz ekildeki gibi
olacaktr.
Trafik lambasndaki n
yeil sar krmz yanma
srasn dikkate alrsak
Yeil yanma durumunda ak
diyagramnda sre GE
olacaktr.
Eer k yeil deil ise
sardr. Bu durumda
yavalamamz gerekir.
Ik sar deil ise krmzdr
ve durmamz gerekir.
Durduktan sonra okuma
ilemi tekrar yaplr ve n
krmzdan yeile dnmesi
snanr.
Yavala
Bala
Ik yeil mi?
Ik sar m?
Dur
Ik yeil mi?
Ge
Dur
EVET
HAYIR
HAYIR
HAYIR
Trafik
lambasndaki
oku
Trafik
lambasndaki
oku Bekle
EVET
EVET
11
1.3. Algoritmada Saysal rnekler
Bu blmde bilgisayar programlamann temeli olan algoritmay saysal rnekler ile
reneceksiniz. Verilen rneklerde herhangi bir programlama dili komutu kullanlmayacak,
bunun yerine algoritma basit ve yaln ifadeler ile anlatlacaktr.
1.3.1 Deikenler
Programn herhangi bir basamanda tanmlanan ve farkl zamanlarda farkl deerler
alabilen sembolik ifadeye deiken denir. Deikenler bilgisayarn RAM ad verilen
belleinde geici olarak saklanrlar. Deikenleri RAM bellekte tahsis edilmi odacklar
olarak dnebiliriz. Yani bir deiken tanmlandnda RAM bellekte bir odack (blm)
alr ve buraya deiken ismi ile ulalr. Gerektiinde bu deikenler iine yeni deerler
yazlabilir. Yeni bir deer yazldnda eski deerler silinir. Programdaki deikenler
problemin tanm ve girdi kt belirleme aamalarnda belirlenmelidir.
Program yazm srasnda deiken isimleri verilirken anlaml ksaltmalar yapmak
programn anlalabilir olmas asndan nemlidir. Uzun deiken adlar bellekte daha fazla
yer kaplayaca iin programn hacmini arttrr, ok ksa deikenler de programn
izlenmesinde skntlar yaratr. rnein;
ortalama ort renci notu ogrnot sat fiyat sfiyat
rnek: Klavyeden girilen iki saynn toplamn bulan algoritmay tasarlayn.
ekil 1.7: ki saynn toplanmas
Bala
Dur
OKU A
OKU B
Toplam= A+B
YAZ Toplam
Klavyeden girilen iki saynn toplamn bulan program
yazlrken 3 adet deiken tanmlanmaldr. nk
klavyeden 2 say girilecek ve bu saylar toplanarak 3. bir
deikene aktarlacaktr.
Algoritma sadece ak diyagram ile deil komutlar ile
de aklanabilir. Buna gre ak diyagramnn
algoritmas aadaki ekilde yazlabilir:
BALA OKU A OKU B Toplam=A+B YAZ Toplam DUR
12
rnekteki algoritmaya gre deikenlerin durumu u ekildedir:
1.3.2. Programlamada lemler
Bilgisayarlar bilgileri ileyen makinelerdir. Verilen bilgileri, kabul ederek tarif edilen
problemi zer veya bilgileri kullanarak istenen sonular kartr. Bilgisayar bilgileri okur,
iler, saklar, geri verir. Ancak btn bu ileri ok hzl bir ekilde ve gvenilirlikle yapar.
Bu aklamalara gre baz kavramlar bilmemiz gerekir.
Veri, bilgisayara girilen saysal deerler veya metinlerdir. Kendi bana anlam
olmayan bu deerler ilenerek gerekli sonular kartlr. Bilgi ise verilerin ilenmesi ile
kartlan sonulardr. nsanlar iin anlaml olan bu saysal sonular deerlendirilir ve
uygulanr.
ekil 1.8: Veri ve bilgi
VER BLG
13
Bilgisayarlar girilen veriler ile u ilemleri yaparlar:
1.3.2.1. Aritmetik Ve Karlatrma lemleri
Bilgisayarlar temel matematik ilemleri yapabildii gibi karlatrma ilemleri de
yapabilirler. Yalar girilen iki kiiden gen olan bulmak, snfn iinde en yksek puan alan
renciyi tespit etmek, bir alveri merkezinde belli bir tarihte yaplan ilemleri bulmak
gibi rnekleri verebiliriz.
ekil 1.9: Aritmetik ve karlatrma ilem operatrleri
rnek :
(C*D/(A*D))+B+C*D/A
1.3.2.2.Mantksal Balalar
Bilgisayarlar iki veya daha fazla koulun birlikte snanmasn da yaparlar.rnein
puan 69 dan byk VE 85 den kk olma koulu renci notunun 4 olmasn
salar.Dier bir rnek de rencinin edebiyat VEYA matematik notunun 70 ten yukar
olmas durumunda renci snf geebilsin ifadesidir.
VE balac: Verilen koullarn hepsi doru ise sonu salanr. VE balac ile
balanm nermelerden en az birinin yanl olmas sonucu yanl yapar.
VEYA balac: VEYA balac ile balanan koullardan en az birisi doru ise sonu
dorudur.
DEL balac: DEL balac doruyu yanl, yanl doru yapar. DEL tek bir
nerme ve koul zerinde uygulanr.
Doru= 1 ve Yanl= 0 tanmyla, x ve ynin alaca deerlerin sonular aadaki
tabloda gsterilmitir:
Toplama karma arpma Blme Aktarma
+ - * / = Byk Kk Byk eit Kk eit Eit deil
> < >=
14
ekil 1.10: Mantksal balalar
rnek: Klavyeden girilen 3 saynn ortalamasn bulan algoritmay tasarlayn.
ekil 1.11: Ortalama bulunmas
X Y X ve Y X veya Y Z deil Z
0 0 0 0 0 1
0 1 0 1 1 0
1 0 0 1
1 1 1 1
Bala
OKU A
OKU B
Dur
T= (A+B+C)/3
YAZ T
OKU C
BALA OKU A OKU B OKU C T=(A+B+C)/3 YAZ T DUR
Bu rnekteki (A+B+C)/3
ileminde parantez
ncelii vardr.
Eer parantez
kullanlmasayd
A+B+C/3 ileminde
blmenin toplamaya
gre ncelii olacakt
15
rnek: Klavyeden fiyat girilen bir maln KDV eklenmi sat fiyatn veren algoritmay
yaznz.
ekil 1.12: Sat fiyat bulunmas
1.4. Programlamada Karar fadesi
Programlamada karar yaps EER ifadesi ile salanr. Gnlk hayatmzda da ok
kullandmz bu ifade bilgisayar programlarnda nemli bir yer tekil eder. Genellikle
programlama dillerinde ngilizce if olarak kullanlr.
1.4.1. Eer fadesinin Tek Durumlu Kullanm
Su kaynad m? ay demle
EER su kaynad ise ay demle
Makine durdu mu? beyaz amarlar topla
EER makine durdu ise beyaz amarlar topla eklinde ifade edilebilir.
ekil 1.13: Tek durumlu karar yaps
Bala
OKU A
Dur
T=A+A/100x18
YAZ T
BALA OKU A T=A+A/100x18 YAZ T DUR
T=A+A/100x18 ileminde
parantez almaya gerek yoktur.
arpma ve blmenin kendi
aralarnda ncelii olmad iin
A/100x18 ileminin sonucu ile A
deeri toplanr.
HAYIR art salanyor
mu?
lem
EVET
Eer ifadesinin tek durumlu
kullanmnda gerekli art
salanyorsa sadece bir ilem
yaplr. Aksi durumda herhangi
bir ey yaplmaz.
16
rnek: Klavyeden girilen pozitif sayy ekrana yazdran algoritmay tasarlayn.
ekil 1.14: Tek durumlu karar yaps rnei
1.4.2. Eer fadesinin ki Durumlu Kullanm
Biletin var m? Otobse bin Biletin yoksa Dolmua bin
EER biletin var ise otobse bin DELSE dolmua bin
Naktin varsa Nakit deme yap Naktin yoksa Kredi kart ile de
EER naktin var ise demeyi nakit yap DELSE kredi kart ile deme yap ile ifade
edilebilir.
ekil 1.15: ki durumlu karar yaps
A>= 0 m?
Bala
Dur
OKU A
YAZ A
HAYIR
EVET
BALA OKU A EER A>=0 SE YAZ A
DUR
HAYIR
art salanyor
mu?
lem1
EVET
lem2
Eer ifadesinin iki
durumlu kullanmnda
gerekli art salanyorsa
bir ilem yaplr.
art salanmyor ise
baka bir ilem yaplr.
17
rnek: Klavyeden girilen iki saydan hangisinin byk olduunu bulan algoritmay
yaznz.
ekil 1.16: ki durumlu karar yaps rnei
1.4.3. e Karar Yapsnn Kullanm
ki durumlu karar yapsnda sadece iki olaslk iin sonu alnabiliyordu. ie karar
yapsnda ise bir koul kendisinden nce gelen koulun alternatifidir.
ekil 1.17: ie karar yaps
YAZ B
A>B mi?
Bala
Dur
OKU A
YAZ A
HAYIR
EVET
OKU B
BALA OKU A OKU B EER A>B SE YAZ A DELSE YAZ B
DUR
HAYIR
art salanyor
mu?
lem1
EVET
lem2
art salanyor
mu?
lem3
HAYIR
EVET
EER art gerekleiyor ise
1. ilem
DELSE
EER art gerekleiyor ise
2. ilem
DELSE
3. ilem
EER SONU
EER SONU
18
rnek: Aadaki cret tarifesine gre aracn otopark cretini hesaplaynz. Aralarn
otopark iinde en fazla 24 saat kaldn varsayn.
Zaman deikeni T
0 - 2 saat 2 YTL
2 - 8 saat 5 YTL
8-24 saat 8 YTL
ekil 1.18: ie karar yaps rnei
YAZ 5 YTL
T
19
rnek: Klavyeden girilen puan deerine gre renci notunu hesaplayan algoritmay
yaznz.
Not sistemine gre renci puan 0- 24 ise 0 55- 69 ise 3
25- 44 ise 1 70- 84 ise 4
45- 54 ise 2 85- 100 ise 5 olacaktr.
ekil 1.19: ie karar yaps rnei
PUAN
20
1.5. Saya Mant
Daha nce incelediimiz algoritmalarda deikenler belirleniyor, programa yaplan
girdiler ile ilemler gerekletiriliyordu. Bu ilemler program iletimi srasnda birer
kez yaplyor ve program sonlanyordu. Programlamada ilemlerin arka arkaya yaplabilmesi
iin saya mant kullanlr.
imdi bu mant bir rnek ile aklayalm.
rnek: Klavyeden girilen 100 saynn toplamn bulan ve sonucu ekrana yazdran
algoritmay tasarlayn.
100 saynn toplamnn bulunabilmesi iin normal olarak 100 adet deikenin
belirlenmesi ve bunlarn toplanmas gerekir.
ekil 1.20: Klavyeden girilen saylarn toplanmas
say1
say2
say3
. .
. .
say99
say100
Byle bir deiken yaps programn
tasarlanmas ve iletimi asndan ok
hantaldr.
Bu durum 100 kova ile dolan bir su
tank iin 100 ayr kova kullanmaya
benzer.
Burada bilinmesi gereken 1 kovann
ka defa kullanlacadr.
Bala
OKU A
Dur
YAZ T
S=100 m? HAYIR
EVET
S=S+1
T=T+A
Deikenler
A (Say) A deikeni ile klavyeden her
defasnda deiik bir say alabiliriz. Bu
deikenin deeri srekli deiir nk yeni bir
say aldnda eski deeri siler.
S(Saya) Balangta deeri 0 olan saya
deikeni klavyeden say girilirken 1 deer
artar. Bu durum S=S+1 ilemi ile salanr.
Buradaki ilem matematiksel adan yanl olsa
bile saya iletimi iin ok nemlidir.
T(Toplam say) Toplam say klavyeden
girilen saylarn toplamn saklayan deikendir.
Bu deiken de saya deeri her arttnda
T=T+1 ilemine gre yeni bir deer alr
21
imdi programn iletimi srasnda dikkat edilmesi gereken baz noktalar ksaca
aklayalm.
Klavyeden saynn alnma ilemidir. Bu say istenilen deerde bir
tam say olabilir.
Saya deikeninin balang deeri 0 dr. Bu durumda eitliin sa tarafndaki deer eitliin sol tarafna atanr.
Sayacn ilk deeri 0 ise S = 0 + 1 S = 1 olur.
Sayacn yeni deeri 1 ise S = 1 + 1 S = 2 olur.
Toplam deikeninin balang deeri 0dr. Bu durumda eitliin sa tarafndaki deer eitliin sol tarafna atanr.
Klavyeden girilen 1.say 4 ise T = 0 + 4 T = 4 olur.
Klavyeden girilen 2. say 16 ise T = 4 +16 T = 20 olur.
Sayacn kontrol EER koulu ile salanr. Saya deeri ilk
durumdan itibaren her artnda EER koulu ile sorgulanr.
S=100 deil ise klavyeden yeni giri yaplmas salanr.S=100
olduunda 100 saynn toplam sonucu alnmtr.
Programa rastgele deerler verilerek almas incelenebilir.Bu yntem programlarn
test edilmesinde ok nemlidir.
OKU A
S=S+1
T=T+A
S=100 m? HAYIR
EVET
1.BALA 2.OKU A 3.T=T+A 4.S=S+1 5.EER S100 ise GT2 6.YAZ T
7.DUR
22
rnek : Ekrana 10 defa merhaba yazdran algoritmay yaznz.
ekil 1.21: Ekrana 10 defa merhaba yazlmas
nceki rnekte saya, EER karar
yapsnda belirlenen deere kadar sayyor,
sayma ilemi sona erdiinde ekrana
program sonucu yazlyordu. Yukardaki
algoritmada ise S saya deeri S=S+1
ilemi ile artmaktadr. Saya deeri her
artnda ekrana merhaba yazlr. Saya
10 deerine ulatnda ise yazma ilemi
durur.
1.6. Dngler
Dngler, saya mant ile yaplan ilemleri otomatik olarak yapan yaplardr.
1.6.1. Temel Dng Yaps
nceki konuda saya mantn rendik. Saya yapsnda bir balang deeri, art
deeri ve koul vardr. Sayma ilemi balang deerinden balar ve EER karar yapsnda
belirlenmi koul ile sorgulanr. Saya artnda koul salanmam ise program ak GT
komutu ile balang deerine gider.
Dnglerde de bir balang says, art deeri ve koul vardr.
No A S=S+1 T=T+A
1 4 1=(0+1) 4=(0+4)
2 8 2=(1+1) 12=(4+8)
3 5 3=(2+1) 17=(12+5)
4 3 4=(3+1) 20=(17+3)
5 7 5=(4+1) 27=(20+7)
6 9 6=(5+1) 36=(27+9)
7 11 7=(6+1) 47=(36+11)
8 1 8=(7+1) 48=(47+1)
9 16 9=(8+1) 64=(48+16)
Bala
Dur
YAZ
merhaba
S=10 mu? HAYIR
EVET
S=S+1 1.BALA 2.S=S+1 3.YAZ merhaba 4.EER S10 SE 5.GT 2
6.DUR
23
ekil 1.22 Saya ve Algoritmalar
Dng kullanmnda S=1, N, 1 ifadesi S deikenini 1 deerinden N deerine
kadar 1 er arttr anlamna gelmektedir.
rnek : 1` den 100`e kadar olan saylarn toplamn hesaplayan algoritmay yaznz.
ekil 1.23: Dng rnei
S=N mi ? HAYIR
EVET
lem
S=S+1
BALA DNG S=1,100,1 T=T+S DNG SONU YAZ T DUR
Dng iinde balang deeri S=1dir.Sayma
ilemi 100 deerinde bitecek ve S deikeni
dngnn her dnnde 1 artacaktr.
Program komutlarndaki
DNG
--------------
--------------
DNG SONU
ifadesi 1 den 100 e kadar olan toplama ileminin
dng sayma deeri kadar sreceini
belirtmektedir.
Sayac
algoritmas
Dng Algoritmas
(modlmzde kullanlan)
Dng Algoritmas
(Alternatif izim)
lem
S=1,N,1 lem
S=1 , N ,
1
Dng sonu
24
rnek : 1` den 100`e kadar olan tek saylar gsteren algoritmay yaznz.
ekil 1.24: Dng rnei
1.6.2. e Dngler
Daha nce rendiimiz temel dng yapsnda yaplacak ilem balang ve koul
deerlerine gre otomatik olarak tekrar ediliyordu.
Eer dng iindeki bir ilemin alt ilemleri var ise bu durumda i ie dng yaps
kullanlr. Bu yap bilgisayar programclnda ska kullanlan bir yntemdir.
ekil 1.25: Dng rnei
BALA DNG S=1,100,2 YAZ T DNG SONU DUR
1 den 100 deerine kadar olan tek saylar
gstermek iin dng deikeninin
balang deeri 1, biti deeri 100, art
deeri ise 2 olmaldr.
ie dng yapsnda iki veya daha
fazla dng bulunur.
Aklamalarmz konunun daha iyi
anlalmas asndan 2 dngl yap
zerinde yapacaz.
ekilde grlen birbirinin iine girmi
dng yapsnda d dng deeri 1
arttnda i dng N saysna kadar
dnmektedir. Bu durumda d
dngnn N kadar dnmesi i dng
iindeki ilemin M x N says kadar
yaplacan gsterir.
25
ie dng yapsn u rnek ile aklayabiliriz;
1 gnlk zaman dilimini dikkate alrsak 60 saniye sonunda 1 dakika, 60 dakika
sonunda ise 1 saat gemektedir.24 saat sonunda gn tamamlamaktadr. Bu durumu i ie
dng yapsna uyarlarsak saniye en iteki dng saat ise en dtaki dngdr.
Saat Dakika Saniye
lem (60x60x24)
ekil 1.26: ie dng rnei
rneimiz 3 dngl bir yapdr. Bir
ilemin 1 saniye srdn varsayalm.
En iteki saniye dngs 0-59 arasnda 60 defa dner. Bu durumda
dakika dngs 1 olur.
Dakika dngs 0- 59 arasnda 60 defa dndnde ise 1 saatlik zaman
dilimi elde edilir.
Saat dngs 24 defa dndnde yaplan ilem 60x60x24 =84600
defa tekrar etmitir.
26
rnek : 1-9 aras saylarn arpm tablosunu gsteren algoritmay yaznz.
BALA DNG SAAT 0,23,1 DNG DAKKA 0,59,1 DNG 0,59,1 YAZ SAAT,DAKKA,SANYE DNG SONU DNG SONU DNG SONU
DUR
BALA DNG =1, 9, 1 DNG J=1, 9, 1 YAZ arpm= x J DNG SONU DNG SONU
DUR
27
UYGULAMA FAALYET Aadaki sorulara ilikin uygulama faaliyetini yapnz.
1. Aadaki formle gre 0 Fahrenheittan 210 Fahrenheit a kadar s deerlerinin Celsius
karlklarn hesaplayan programn algoritmasn iziniz.
2. 20'den 50'ye kadar olan saylarn toplamn bulan programn ak diyagramn yaznz.
3. ki tamsaynn arpma ilemini sadece toplama ilemi kullanarak yapan programn ak diyagramn iziniz.
4. ki tamsaynn blme ilemini sadece karma ilemi kullanarak yapan programn ak diyagramn iziniz. Blm ve kalann ne olduu bulunacak.
lem Basamaklar neriler Problemi tespit ediniz.
Problem ile ilgili verileri belirleyiniz. Verilen bilgileri ve istenenleri not ediniz.
zm iin kullanlacak deikenleri belirleyiniz.
Deiken isimlendirmesini yaparken mmkn olduka temsil ettii deeri
hatrlatacak ksa isimler vermeye
alnz.
Problemi adm adm kada yaznz. Admlar belirlerken gereksiz admlardan kannz.
Her adm sadece bir ilemi temsil edecek ekilde hazrlaynz.
Ak diyagramn iziniz. Her algoritmann bann ve sonunun belli olmas gerektiini unutmaynz.
Algoritma admlarnda problemin zmn etkileyecek her hangi bir
belirsizlik olmamaldr. Dikkat ediniz.
Algoritma iinde dng kullanlm ise balang, biti ve artm miktarn
yazmay unutmaynz.
Algoritma hazrlanrken eer bir karar yaps varsa; yaplan ilem sonucunda
her trl alternatifi deerlendiriniz. Bir
sorunun cevabnn evet olabilecei gibi
hayr olabilecei de unutmaynz.
Algoritmay kontrol ediniz.
( 32) 5
9
FC
UYGULAMA FAALYET
28
KONTROL LSTES
Bu faaliyet kapsamnda aada listelenen davranlardan kazandnz becerileri Evet
kazanamadnz becerileri Hayr kutucuuna (X) iareti koyarak kendinizi deerlendiriniz.
Deerlendirme ltleri Evet Hayr 1. Problemi doru tespit ettiniz mi?
2. Problemle ilgili verileri belirlediniz mi?
3. Kullanlacak deikenleri belirlediniz mi?
4. Problemi adm adm yazdnz m?
5. Ak diyagramn izdiniz mi?
6. Ak diyagramna bal olarak algoritmay oluturdunuz mu?
7. Oluturduunuz algoritmay kontrol ettiniz mi?
8. Teknolojik kurallara uygun bir alma gerekletirdiniz mi?
9. Sreyi iyi kullandnz m?
DEERLENDRME
Deerlendirme sonunda Hayr eklindeki cevaplarnz bir daha gzden geiriniz.
Kendinizi yeterli grmyorsanz renme faaliyetini tekrar ediniz. Btn cevaplarnz
Evet ise lme ve Deerlendirmeye geiniz.
29
LME VE DEERLENDRME Bu faaliyet sonunda kazandklarnz aadaki sorular cevaplandrarak lnz.
1. Aadaki ilemin bilgisayar programndaki karln tamamlaynz.
2. Aadaki aktarma ilemlerinin sonularn tabloda gsteriniz.
A=1
B=1
C=A+B
D=C+B
E=D+A
3. Taban ve ykseklii verilen bir genin alann bulan program iin gereken ifade ile boluu doldurunuz.
BALA
OKU TABAN
OKU YKSEKLK
ALAN = ________________
YAZ ALAN
DUR
4. Eer ifadesi kullanmna ak diyagramnda karlk gelen sembol hangisidir?
A) B) C) D)
DEERLENDRME
Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap
verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz.
Cevaplarnzn tm doru ise bir sonraki renme faaliyetine geiniz.
C D E
LME VE DEERLENDRME
1 2
1 2
R RR
R R
1* 2/.................R R R
30
RENME FAALYET-2
Bilgisayar program yazm aracn hatasz bir ekilde kuracak ve program
derleyebileceksiniz.
Bilgisayar programlama dilleri hakknda aratrma yapnz.
Derleyiciler hakknda aratrma yapnz.
2. BLGSAYAR PROGRAMLAMA
Bilgisayar iki blmden oluur. Bunlardan birincisi bilgisayarn fiziksel grnn
oluturan klavye, fare, ekran vb. Paralarnn btndr. Bilgisayarn bu fiziksel paralarn
btndr. Bilgisayarn bu fiziksel paralardan oluan ksmna donanm denir. kinci ksm
ise yazlmdr. Bu blm bilgisayara ilerlik kazandran, kullancnn bilgisayara birtakm
iler yaptrabilmesini salayan blmdr.
2.1. Yazlm Kavram
Bilgisayarn fiziksel grnne ek olarak ona yaptrmak istediklerimiz iin birtakm
emirler verebilmemiz gerekir. Bilgisayara yaptrmak istediimiz iler iin vereceimiz
emirlere komut denir. rnein bilgisayara verebileceimiz kaydet, sil, yazcya gnder gibi
emirler birer komuttur. Bu komutlar bilgisayar ile kullanc arasnda iliki kuran zel bir dil
grevi yapar. Bilgisayara istenilen ileri yaptrmak iin kullanlan komutlar zincirine
program denir. Bilgisayara yaptrlacak iler iin verilen komutlar ile bu komut zincirinden
oluan bilgisayar programlar birer yazlmdr. Ksaca, bir bilgisayarn fiziksel grnmne
ilerlik kazandran, insan abas sonunda meydana getirilen programlar ve fonksiyonlara
yazlm ad verilir.
2.1.1. Bilimsel Ve Mhendislik Yazlmlar
Bilimsel ve mhendislik konularndaki problemlerin zlmesinde kullanlan
programlardr. Bu tr programlarda veri miktar greli olarak dktr ancak matematiksel
ve istatistiksel algoritmalar youn olarak kullanlabilir. Tamamen hesaplama arlkl
ilemler ierir. Elektronik devrelerin zmn yapan programlar, istatistik analiz
paketlerini bu tr programlara rnek olarak verebiliriz.
RENME FAALYET-2
AMA
ARATIRMA
31
2.1.2. Mesleki Yazlmlar
Veritaban arlkl yazlmlardr. Genel olarak verilerin yaratlmas, ilenmesi ve
dosyalarda saklanmas ile ilgilidir. Bu tr programlara rnek olarak stok kontrol programlar,
mteri takip programlar, muhasebe programlarn verebiliriz.
2.1.3. Yapay Zeka Yazlmlar
nsan davranlarn taklit etmeyi amalayan yazlmlardr. rnek olarak robot
yazlmlar, satran gibi zeka oyunlarn oynatan programlar vs. verilebilir.
2.1.4. Grntsel Yazlmlar
Grntsel ilemlerin ve algoritmalarn ok youn olarak kullanld programlardr.
rnek olarak oyun ve animasyon yazlmlarn verebiliriz. Bu yazlmlar arlkl olarak
bilgisayarn grafik arabirimini kullanrlar.
2.1.5. Sistem Yazlmlar
Bilgisayarn elektronik yapsn yneten yazlmlardr. Derleyiciler, haberleme
programlar, iletim sistemi birer sistem yazlmdr. rnein text editr de bir sistem
yazlmdr. Uygulama programlarna gre daha dk seviyeli ilem yaparlar.
2.2. Say Sistemleri
Gnlk yaantmzda 35 YTL, 4 kg veya 17 haziran ifadelerini kullandmzda herkes
ne sylediimizi anlayabilir. Buradaki 35, 4 ve 17 desimal say sistemine aittir.
2.2.1. ki Tabanl (Binary) Say Sistemi
Saysal elektronik sistemler bize yabanc bir say sistemi kullanr. Bu say sistemine
ikilik say sistemi (binary) denir. Bilgisayarlar ve dier mikroilemci tabanl sistemler
onaltlk (heksadesimal) ve sekizlik (oktal) say sistemleriyle alr.
Desimal say sistemi 0,1,2,3,4,5,6,7,8,9 rakamlarndan oluur.Bu nedenle onluk veya
on tabanl say sistemi olarak adlandrlr.Binary say sisteminde sadece 0 ve 1 rakamlar
olduu iin ikilik veya iki tabanl say sistemi olarak adlandrlr.
ekil 2.1da daireler madeni paray ifade etmektedir. Bu tabloda; madeni paralarn
miktarlar desimal say sistemi iin sol stunda ve binary say sistemi iin sa stunda
ki tabanl (binary) ve onalt tabanl (heksadesimal) say sistemleri
bilgisayar programlamaya yeni balayanlar iin renilmesi gerekli temel
konularn banda gelir.
32
sembolize edilmitir. rnein dokuz madeni parann olduu satrda bu paralarn miktarn
desimal say sistemine gre belirtmek istediimizde 9 semboln kullanmamz gerekir. Ayn
miktar binary say sistemi ile ifade etmek iin 1001 semboln kullanmalyz. 0 ve 1 saylar
desimal ve binary say sisteminde kullanlan ortak sembollerdir.
ekil 2.1: Say sembolleri
ki tabanl say sisteminde 10 saysn bir sfr eklinde, 111 saysn bir bir bir,
1001 saysn ise bir sfr sfr bir eklinde sylememiz gerekir.
ki tabanl say sistemindeki, her sembol bit (basamak) olarak adlandrlr. Her bit 0 ve
1 olmak zere iki farkl deer alabilir. Buna gre n bitlik bir say 2n deiik ekilde
oluturulabilir. 0 ve 1 saylar elektrik devrelerinde sinyal var ya da yok anlamnda
kullanld gibi, bir lambann yanp yanmadn veya bir anahtarn kapal m yoksa ak m
olduunu da gsterir.
rnek: Aada 4 bitlik saylar verilmitir. Bu saylardaki her bitin bir lamba
olduunu dnerek ledlerin yanp yanmayacan belirleyiniz.
a. 1010 b. 1000 c. 1111
zm :
Binary saylar Lambalar
1010
1000
1111
ekil 2.2: Lambalar kullanlarak binary saylarn gsterimi
Desimal Binary
0
1
2
3
4
5
6
9
7
8
0
1
10
11
100
101
110
111
1000
1001
33
rnek: Binary say sisteminde 4 bit, 8 bit ve 16 bit kullanlarak ka farkl say
yazlabilir?
zm : 4 bitlik 2 4 = 16
8 bitlik 2 8 = 256
16 bitlik 2 16
= 65536 deiik say yazlabilir.
2.2.2. Basamak Deerleri ki tabanl say sistemlerinde basamak sistemini on tabanl sisteme gre
aklayabiliriz. rnein alverie ktnz ve aldnz maln tutar 5,75 TL olsun. Bu creti
satcya aadaki ekilde olduu gibi 5 adet 1 TL, 7 adet 10 kuru ve 5 adet 1 kuru olarak
deyebiliriz.
ekil 2.3: Basamak sistemi
648 saysn yukardaki rnee gre basamaklarna ayrrsak, soldaki 6 rakam yzler
basaman, 4 rakam onlar, 8 rakam da birler basaman gsterir.
648 = 600 + 40 + 8
ki tabanl say sistemini de basamaklarna ayrabiliriz.
rnein 1001 (bir sfr sfr bir olarak okunur.)saysn dnelim.
5,75 = + +
5 7 5
1TL 10 kr 1kr
8 4 2 1 1 0 0 1
9
Onluk say sisteminde basamaklar sadan sola
10nun katlar eklinde artyordu.
ki tabanl say sisteminde basamak deerleri
sadan sola 2nin katlar eklinde artar.
1001 saysnda 1. basamanda 1 deeri vardr.
2 ve 4. basamakta 0 olduu iin bu basamaklarn saysal deeri yoktur.
8. basamakta 1 deeri olduu iin 1001
saysnn desimal karl 8+1=9 dur.
34
Binary (iki tabanl) say sisteminde taban 10 yerine 2 olduu iin basamak deerleri
20=1, 2
1=2, 2
2=4, 2
3=8, 2
4=16, 2
5=32 ... eklinde ifade edilir.
rnek olarak; (00101011)2 saysnn desimal sistemde (43)10 a eit olduunu u
ekilde kantlayabiliriz:
=0x128+0x64+1x32+0x16+1x8+0x4+1x2+1x1 =(0+0+32+0+8+0+2+1) =(43)10
En soldaki binary rakam En Byk Dereceli Rakam (The Most Significant Bit-
MSB), en sadaki rakam ise En Kk Dereceli Rakam (The Least Significant Bit-LSB)
olarak adlandrlr. Bu ifade ekil 2.4te MSB ve LSB olarak belirtilmitir.
ekil 2.4: Basamak sistemi
Saynn Deeri = (127)+(02
6)+(12
5)+(02
4)+(12
3)+(02
2)+(12
1)+(12
0)
= (1128)+(064)+(132)+(016)+(18)+(04)+(12)+(11)
= 128 + 0 + 32 + 0 + 8 + 0 + 2 + 1
= (171) 10
ekil 2.5: Binary say sistemi
28
27
128
26
64
25
32
24
16
23
8
22
4
21
2
20
1
1 0 1 0 1 0 1 1
MSB LSB
100 10 1 8 4 2 1
0 0
1 1
2 1 0
3 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
8 1 0 0 0
9 1 0 0 1
1 0 1 0 1 0
1 1 1 0 1 1
1 2 1 1 0 0
1 3 1 1 0 1
1 4 1 1 1 0
1 5 1 1 1 1
Desima
l Binary
35
2.2.3. Onalt Tabanl (Heksadesimal) Say Sistemi
Binary say sistemi bilgisayarn anlad tek say sistemidir. Bilgisayardan girdiiniz
tm yaz, say ve ilemler binary sayya evrilerek bilgisayar tarafndan alglanr. Fakat
binary say sisteminde yalnzca 2 rakam olduu iin byk saylar ifade etmek olduka fazla
rakamla mmkn olur. rnein desimal say olan 202 saysn 3 rakam kullanarak ifade
edebilirken ayn sayy binary say sisteminde 11001010 eklinde yazarz ki bu bizim 8
rakam kullandmz gsterir.
Bilgisayar reticileri bu sorunu heksadesimal say sistemini gelitirerek zmlerdir.
Bu say sisteminde saylar daha az rakam kullanlarak ifade edilebilmektedir. Ayrca bu say
sisteminin ayr bir stnl de binary sayya gei ve binary saydan heksadesimal sayya
geiin kolay olmasdr. Heksadesimal say sisteminde 16 sembol kullanlr. Bunlar
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F dir.
A harfi 10 saysna, B harfi 11 saysna , C harfi 12 saysna, D harfi 13
saysna, E harfi 14 saysna ve F harfi de 15 saysna karlk gelir. Bunun yannda
heksadesimal sayy yazarken dier sistemlerde de olduu gibi taban belirtmek zorundayz.
Bu belirtme rnein; (1A)16 eklinde olabilecei gibi 1Ah eklinde de olabilir.
Heksadesimal saylar 4er bit eklinde ayrlrlar. rnein 0000 0101 binary sayy
heksadesimal olarak ifade ederken ilk drt bitin deeri sfr olsa dahi 05h olarak yazmak
zorundayz. rnek olarak heksadesimalde (F)16 says, binary sistemde (1111)2 olarak
gsterilir. Ya da (9)16 says (1001)2 dir.
Dier bir rnek ise (4C)16 says 8 bit binary sayy ifade eder. Binary yazlm ise
(0100 1100)2 dir. Heksadesimal say sistemi mikroilemci temelli uygulamalarda binary say
sistemindeki 8, 16, 32, 64 biti gsterebilmek iin sklkla kullanlr.
2.3. Programlama Dilleri
Bir dil, yalnzca o dilden anlayan insanlar ile iletiim kurabilmemizi salayan bir
aratr. Ana dili bizimki ile yan olmayan insanlar ile anlaabilmek iin onlarn dillerini
renmeye aba gsteririz. Bir bilgisayar ile anlaabilmek iin de bilgisayarn kabul
edebilecei dili renmek gerekir. Bilgisayara ancak anlad dilde komutlar verilirse
istenenler yaptrlabilir.
Bilgisayarn kullanabilecei ve anlayabilecei dile makine dili denir. Makine dili
01010101 gibi iki tabanl saylardan oluur. Bilgisayarn kullanlmaya baland ilk
yllarda, programlar makine dilinde yazlarak hazrlanmaktayd.
Makine dilinde program yazmann zorluu insanlar bir baka yolla program
yazabilme arayna gtrmtr. Bir sre sonra da kolay renilen ve problemleri daha
kolay zmeye olanak veren yksek seviyeli programlama dilleri gelitirilmitir. Bunun
yannda, programlama dilleriyle yazlan programlar bilgisayarn anlayaca hale evirecek
36
derleyiciler de ortaya kmtr. Derleyici (compiler), programlama dilinde yazlan
programlar makine diline eviren programdr.
ekil 2.6: Bilgisayarda veri ileme
PROGRAMLAMA DLLER
Dk Seviyeli Diller Yksek Seviyeli Diller
Makine Dili
Assembly Grsel Diller Grsel Olmayan Diller Visual basic C Delphi Fortran
Html Cobol
Java C++ Java script Qbasic
Turbo pascal
ekil 2.7: Programlama dilleri
Derleyicisi olan dillerde yazlan program derleyiciden geirilerek yazm hatas, saysal
hata, komut, sra hatas vb. gibi hatalar varsa bu hatalar listelenir. Programc bu hatalar
gidererek program yeniden derler. Bu tr programlar ancak btn olarak derlendikten sonra
altrabilir.
Veri Derleyici Bilgisayar Derleyici kt
Derleyiciler program kodlarn, klavyeden giri hatalar ve dilin programlama
komutlarnn yanl kullanm gibi teknik hatalar iin kontrol ederler. Ancak
programlardaki yanl bir veri veya forml gibi hatalar kontrol edemezler. Program
mantk hatalarndan arndrmak programcnn iidir.
37
Bilgisayara girilen veriler ekli ve tipi ne olursa olsun, nce derleyiciye ulaarak
makine diline evrilir. Bilgisayar verileri iler. Elde edilen sonular yine derleyicide
kullancnn anlayabilecei bir dile evrilir. Bilgisayar anlalabilir duruma getirilen
sonular verir. Bu durumu aadaki rnek ile aklayalm.
Bilgisayar belleinde tanml 256 farkl karakter vardr. Bu karakterlere ASCII kodu
ad verilir. Bilgisayar bu karakterlerin her birini bir sra numarasyla tanr. rnein A
harfinin sra numaras 65 a harfinin sra numaras ise 97dir.
Bilgisayara bir karakter (harf, rakam ya da zel iaret) yazldnda, nce bu
karakterlerin sra numaras bulunur. Bilgisayar, bu sra numarasnn 0 ve 1lerden oluan
saysal karln bulur. Bilgi bu ekliyle bilgisayarn anlayabilecei hale gelmi olur.
lemler de bu bilgi zerinden yaplr. Daha sonra kan sonu yine 0 ve 1lerden oluan bir
sonutur. Bilgisayar bu kez 0 ve 1lerden oluan bu bilginin sra numarasn bulur. Bu sra
numarasna karlk gelen karakteri sonu olarak verir.
Kullanc yalnzca verdii bilgi ve ald sonucu grr. Dier ilemler ise bilgisayar ve
derleyicilerde otomatik olarak yaplr.
ekil 2.8: Bilgisayarda veri ileme sras
2.4. C Programlama Dili
C bir sistem programlama dilidir. Sistem Programlama; donanmn ynetilmesi,
kontrol ve denetimi iin yazlan, dorudan donanmla ilikiye giren programlama eklidir.
rnein, iletim sistemleri, derleyiciler, yorumlayclar, aygt srcleri, bilgisayarlarn
iletiimine ilikin programlar, otomasyon programlar sistem programlardr. Dier
uygulama programlarna destek veren yazlmlar da ounlukla sistem programlar olarak ele
alnrlar.
2.4.1. C Programlama Dili zellikleri
C'den nce sistem programlar assembly dillerle yazlyordu. C dilinin sistem
programlarnn yazlmasnda hemen hemen alternatifsiz olduunu sylenebilir. Bugn cep
telefonlarndan, uaklardaki bilgisayar sistemlerine kadar her yerde C kodlar almaktadr.
C dilinin zelliklerini u ekilde sralayabiliriz.
C algoritmik bir dildir. C'de program yazmak iin yalnzca dilin yazm kurallarn ve yapsn bilmek yetmez, genel bir algoritma bilgisi de gerekir.
Bilgisayara verilen bilgi 2 +
3
Saysal karl
00110010 00101011
00110011
Karakter sra
numaras 50 43
51
lem
sras
Saysal Sonu 00110101
Sonucun karakter
sra numaras
53
Kullancya verilen sonu
5
38
C dier dillerle kyaslandnda tanabilirlii ok yksek olan bir dildir. nk 1989 ylndan bu yana genel kabul grm standartlara sahiptir. fade gc
yksek, okunabilirlik zellii gl bir dildir.
C ok esnektir. Dier dillerde olduu gibi programcya kstlamalar getirmez. Gl bir dildir. ok iyi bir biimde tasarlanmtr. C'ye ilikin operatrlerin ve
yaplarn birou daha sonra baka programlama dilleri tarafndan da
benimsenmitir.
C verimli bir dildir. Seviyesinden dolay hzl alr. Verimlilik konusunda assembly diller ile rekabet edebilir.
C doal bir dildir. C bilgisayar sisteminin biimiyle uyum iindedir.
2.4.2. C Programnn Derlenmesi
Daha nce de bahsedildii gibi bilgisayarlar sadece makine dilinde yazlan kodlar
ileyebilirler. Yksek seviyeli dillerle yazlan programlar makine diline derleyiciler
(compiler) vastasyla dntrlrler.
C programlama dilinde derleme ilemi ekil: 2.4 de gsterilmitir. Kaynak kod
herhangi bir kelime ilemci program yardmyla girilir. (kaynak kodun dosya uzants .c
olmak zorundadr.) ncelikle, nilemci (preprocessor) kaynak kod iindeki # ile balayan
nilemci komutlarn kontrol eder. Daha sonra bir makroyu atar yada baz ktphane
dosyalarn okur ve iler. Bundan sonraki admda derleyici tarafndan ilenen dosya, makina
diline evrilir. Makina dili haline dnm kodun bu haline nesnesel program (object
program) ad verilir. Bu admda nesnesel program, fonksiyonlarn makina diline evrilmi
kodunu ve iletim sisteminde iletilecek gerekli bilgileri iermez.
Balayc (Linker) fonksiyonlarn makina kodunu, nesnesel program ierisindeki
ktphane ad verilen dosya ierisinde balamaya ve bu kodu altrmak iin gerekli
bilgileri hazrlamaya yarar ve dosyann son hali altrlabilir dosya (executable
program) olarak adlandrlr.
Temel bir C program aadaki gibi olacaktr.
Program iine /* -------- */ eklinde yazacanz aklama satrlar derleyici
tarafndan dikkate alnmaz.
# iareti programda nilemci kullanlacan belirtir. Her C program ifadesi ile balar.Standart giri k (standart input output) anlamna
/* ilk C programi */ #include main() { printf("Merhaba Dnya!\n"); }
1
2
3
4
39
gelen bu ifade temel komutlarn kullanlabilmesini salayan ktphane
dosyasdr.Baka bir ifade ile #include, derleyiciye stdio.h
ktphanesindeki fonksiyonlar program ile birlikte derleme iini yaptrr.
C programlar fonksiyonlardan meydana gelir.main() (temel) fonksiyonu her programda mutlaka kullanlmas gereken bir fonksiyondur. Bu fonksiyon kme
parantezi ile balar ve biter.
Bilgisayar ekranna kt verebilmek iin printf komutu kullanlr. Komut iine yazlacak ifade karakterleri arasnda olmaldr. Program fonksiyonu (main())
iinde kullanlan her komut; karakteri ile sonlandrlmaldr. Aksi halde
derleyici komutu dikkate almaz. \n ifadesi merhaba dnya yazdktan sonra
bir alt satra gemek iin kullanlr.
ekil 2.9: Derleme lemi
Ktphanee
n ilemci
C kaynak kodu
Ktphane dosyas
Derleyici
Balayc
Nesnesel Program
altrlabilir program
40
Bir C programn derleme ileminin algoritmas aadaki ekilde olabilir:
ekil 2.10: Program derleme ilem sras
2.4.3. Program editrnn kullanlmas
Bir bilgisayar programndaki tm komutlar ve ifadelerin hepsine Kaynak Kodu ad
verilir. Kaynak kodu bilgisayarn hafzasna program editr kullanlarak yazlr. Yazlan
program derleme (compile) ve altrma (run) ileminden nce bir diske (disket veya sabit
disk vb.) uzants .C olacak ekilde bir dosya altnda saklanr.
Aada Turbo C derleyicisinin kurulumu ve rnek programn derlenmesi
aklanmaktadr.
Derleyici ve program editrnn ayn yapda kullanld Turbo C
internet zerinden cretsiz olarak indirilebilir.
Hatay dzelt
Program altr.
Dur
Bala
Program bilgisayara
gir
Program kaynak
dosya olarak kaydet
EVET
HAYIR Hata var m ?
Kaynak dosyay derle
41
Sktrlm Tcpp30 dizini bilgisayarda belirlenecek sabit disk iinde alr.
Sabit disk iinde alan Tcpp30 dizini ile beraber yeni bir dizin oluturmalsnz. Bu dizinin ismini daha sonra deitirebilirsiniz. Yapacanz programlarn .exe uzantl uygulanabilir dosyalar ve nesne dosyalar bu dizin iinde saklanacaktr
Tcpp30 dizini iindeki BIN
dizinine girilir.
42
BIN dizini iindeki TC isimli
MS-DOS semboll simge
tklanr.
Editr mensnden yeni bir
alma sayfas alr.
file new
Alan alma
sayfasna isim
verilir. (ornek_1)
file save as
43
Ekran ile ilgili dzenlemeleri yapan nilemci
Turbo C editrnde programn ekran grnts ve fonksiyon zellikleri
iin aadaki ifadelerin programlarnza eklenmesi tavsiye edilir.
Program sonularnn ekranda kalmasn salayan fonksiyon
Program ve fonksiyonlar sona erdiren komut
Derleme ilemi Alt + F9
Baarl bir derleme sonucu
44
Program komutlar bilgisayar donanmlarna ynelik yazldndan dolay bunlarn
hatasz olmas gerekmektedir. ou zaman hatalar, yanl yazlm bir komut, noktalama
iaretlerinde yaplm bir hata vb. olabilirler. Dolays ile hatal yazlm bir program kodu
derlendii zaman program almaz ve yaplan hatalar editrn alt ksmnda alan bir
pencerede belirtilir.
Genelde programlamada yaplan en yaygn hata ise spesifik yap hatasdr (syntax
error) ve bu hata tr genellikle komut formatnn yanl yazlmasndan kaynaklanr. Oluan
hatalar gidermek iin editrn altnda bulunan hata penceresinde hatalarn olutuu satrlar
tespit edilip daha sonra hatalarn dzeltilmesi yaplr. Eer hata dzeltilemiyorsa C program
dili ile ilgili bir referansa mracaat edilir. Baka bir yol ise programdaki hatann olduu
yerler programdan kartlp alternatif yazlm ile programn adm adm altrlmas ile
bulunmasdr. Bu ilem F8 tuu ile yaplr. Aadaki ekilde editr zerinde hata
mesajlarnn olutuu hata penceresi ile program kaynak kodu grlmektedir:
Baarsz bir derleme sonucu Hata: printf fonksiyonunda
(;) eksiklii
Baarl olarak derlenmi bir program altrma Ctrl + F9
45
GCC Kullanm GCC unix trevi iletim sistemlerinde kullanlan c derleyicisidir. GNU C
Complier kelimelerinin ba harflerinden olumutur. Gcc cretsiz bir derleyicidir, bu
nedenle kullanm olduka yaygndr.
Gccnin bir ok versiyonu vardr. Unix trevi iletim sitemi kullanlan
bilgisayarnzdaki gcc versiyonunu grntlemek istediinizde aadaki komutu
kullanabilirsiz.
bu komutu yazdnzda karnza gcc programnn nasl konfigre edildii ve
versiyon bilgileri karnza gelecektir.
imdi ilk gcc kullanmn renmek amac ile aada verilen kodu yazp bu
kodu merhaba.c olarak kaydedelim.
Not : Bu program herhangi bir unix editr programnda yazabilirsiniz.
rnein vi, pico, gedit gibi.
# gcc v
#include
main()
{
printf( Merhaba Dnya);
}
Uygulanabilir dosya Ornek_1.exe (temp dizini iindedir)
C dili iin farkl derleyiciler kullanmak mmkndr. Gnmzde en popler
derleyiciler visual C++, visual C, gcc arasnda saylabilir.Bu derleyicilerden gcc
cretsiz olduu iin gnmzde ok kullanlan derleyiciler arasna girmitir.
Aada gcc ile ilgili ek bilgi verilmektedir.
46
Yukarda yazdmz merhaba.c dosyasn derleyelim. En basit ekli ile
derlemek istenirse aadaki komut kullanlabilir.
Eer herhangi bir hata mesaj ile karlamadysak derleme ilemi baarl olmu
demektir. Bu komut satr eklinde derlenirse derleyici otomatik olarak altrlabilir
dosya trnde a.out adnda bir dosya oluturacaktr. Bu dosyay altrmak iinde
aadaki komut yazlabilir.
Bu durumda ekrana Merhaba Dnya yazdrlacaktr. Baka bir c dosyas
oluturup ayn ekilde derlendiinde her derleme sonunda a.out dosyas
oluturulacaktr. Bu durumda sadece son derlenen dosyay altrabiliriz. Bu
karkl engellemek amac ile -o parametresinini kullanabiliriz. -o
parametresinin bitiiine altrlabilir trden oluturulacak dosyann ismi yazlr.
Aada gcc derleyicisinin -o parametresinin kullanm ile ilgili rnei
grebilrsiniz.
Bu durumda gcc merhaba.c dosyasn derleyerek bu derleme sonunda
merhaba adnda bir dosya oluturulacaktr. Bu dosyay altrmak iin aadaki
formatta yazabilirsiniz.
Bylelikle oluturulan dosyay altrm oluruz.
imdide aadaki program derleyelim. Dosya adn matematik.c verelim.
Derleme srasnda aadaki dzeni kullanacaz.
#include
#include
main(){
int a=80;
printf(%d derecenin Kosinusu=,a,cos(a));
}
#./mrehaba
#gcc merhaba.c
#gcc merhaba.c o merhaba
# gcc -o matematik matematik.c -lm
# ./a.out
47
Burada derleme komut dizisinde eklediimiz lm parametresi matematik
ktphanesi ile balanty salar.
Sadece math.h dosyasnda deil dier baz ktphaneler de eklendiinde derleme
komutuna da baz eklentiler yapmak gerekir. rnein aada yazdmz nc.c
dosyasnda ncurses.h ktphanesi kullanlm.
nc.c programn derlemek iin yazacamz komutlar ve eklentileri aadaki
gibi olacaktr:
Burada lncurses -ncurses ktphanesi ile link kurulacan ve -
I/usr/local/include satr ile de kullanlan ktphanelerin bulunduu klasr yol olarak
gsterilir.
Tabi sonu olarak nc adl altrlabilir dosya oluturulur. altrmak iin
aadaki komut kullanlabilir:
Gcc derleyicisin daha bir ok ek parametresi kullanlabilir. Bunlarla ilgili daha
geni bilgiye web sitelerinde rahatlkla ulaabiliriz.
#./nc
#gcc o nc nc.c I/usr/local/include lncurses
#include
main(){ initscr();
printw("Merhaba Dnya ");
refresh();
getch();
endwin();
}
48
UYGULAMA FAALYET Turbo C editorn altrarak dosya ama, kaydetme ve altrma ilemlerini
yapnz.
lem Basamaklar neriler Turbo C editrn anz. Turbo c editrn atktan sonra
options blmnden directories
seceneinin doru ayarlanm olmas
gerekir.
Yeni bir dosya anz.
Her hangi bir rnek program yaznz. Programn yazm kurallarna dikkat ediniz.
Bu dosyay kaydediniz. Programa isim verirken ( . , / + -) karakterlerini kullanmamaya zen
gsteriniz.
Program derleyerek alma testi yapnz. Derleme sonrasnda hata var ise komutlarn doru yazlp
yazlmadn kontrol ediniz.
Dosyann kaydedilip edilmediini kontrol ediniz
UYGULAMA FAALYET
49
KONTROL LSTES
Bu faaliyet kapsamnda aada listelenen davranlardan kazandnz becerileri Evet,
kazanamadnz becerileri Hayr kutucuuna (X) iareti koyarak kendinizi deerlendiriniz.
Performans Deerlendirme Evet Hayr
1. Programlama yazm aracn bilgisayarnza kurdunuz mu ?
2. Programlama yazm arac kurulumunda gerekli ayarlamalar yaptnz m?
3. Yeni bir dosya oluturdunuz mu?
4. Dosyay doru olarak kaydettiniz mi?
5. Program yazp tekrar kaydettiniz mi?
6. Program derlediniz mi?
7. Program doru alyor mu?
8. Teknolojik kurallara uygun bir alma gerekletirdiniz mi?
9. Sreyi iyi kullandnz m?
DEERLENDRME
Deerlendirme sonunda Hayr eklindeki cevaplarnz bir daha gzden geiriniz.
Kendinizi yeterli grmyorsanz renme faaliyetini tekrar ediniz. Btn cevaplarnz
Evet ise lme ve Deerlendirmeye geiniz.
50
LME VE DEERLENDRME Aadaki sorular dikkatlice okuyarak doru seenei iaretleyiniz.
1. Binary (ikili) say sisteminde 6 haneli ka farkl say yazabiliriz. A) 25 B) 26 C) 29 D) 27
2. Binary 1101 saysnn desimal (onluk) say sistemindeki karl aadakilerden hangisidir?
A) 13 B) 14 C) 15 D) 16
3. Aadaki derleyicilerden hangisi unix trevi iletim sistemlerinde kullanlan c derleyicisidir?
A) Bcc B) Tcp C) Gcc D) turbo c
4. Aadaki programlama dili-tip elemelerinden hangisi yanltr. ? A) Visualbasic- Grsel dil B) Java grsel dil C) Assembly- Dk seviyeli programlama dili D) C grsel dil
5. Turbo C de program ierisinde dikkate alnamamasn istediimiz satrlarn sonuna ve bana hangi iareti koymalyz?
Balang Son
A) /- -/ B) # # C) D) /* */
6. Turbo C editrnde aadaki men ve alt seeneklerin hangisini seerek program derleyebiliriz?
A) Compile- Compile seenei B) File- New seenei C) Options-directories seenei D) Compile - Link seenei
LME VE DEERLENDRME
51
DEERLENDRME
Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap
verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz.
Cevaplarnzn tm doru ise Modl Deerlendirmeye geiniz.
52
MODL DEERLENDRME
PERFORMANS TEST (YETERLK LME)
Modlde yaptnz uygulamalar tekrar yapnz.
Modlde kazandnz becerileri aadaki tablo dorultusunda lnz.
Performans Deerlendirme Evet Hayr
Problemi doru tespit ettiniz mi?
Deiken isimlerini belirlendiniz mi?
Ak diyagramn izdiniz mi?
Komut listesini yazdnz m?
Ak diyagramn ve komut listesinin uyumunu kontrol ettiniz
mi?
Programlama yazm aracn bilgisayarnza kurdunuz mu?
Programlama yazm arac kurulumunda gerekli ayarlamalar
yaptnz m?
Yeni bir dosya oluturdunuz mu? Dosyay doru olarak kaydettiniz mi?
Program yazp tekrar kaydettiniz mi?
Program derlediniz mi?
Program doru alyor mu?
Teknolojik kurallara uygun bir alma gerekletirdiniz mi?
Sreyi iyi kullandnz m?
Modl deerlendirmeniz sonucunda hayr seeneini iaretlediiniz ilemleri tekrar
ediniz.
MODL DEERLENDRME
53
CEVAP ANAHTARLARI RENME FAALYET1N CEVAP ANAHTARI
1 R1+R2
2 C D E
2 3 4
3 TABAN*YKSEKLK /2
4 C
RENME FAALYET2N CEVAP ANAHTARI
1 B
2 A
3 C
4 D
5 D
6 A
CEVAP ANAHTARLARI
54
KAYNAKA
ISHIDA Yasuhiro, Hideki MURAKAMI, Ito KOICHI, Grcan AYIR,
Bilgisayar Kontrol Teknolojisi, M.E.BJICA, 2005.
KAYNAKA