You are on page 1of 28

PROGRAMLAMA TEMELLER

Bilgisayar programlamasnn amac insan ile makine arasnda iliki kurmak ve haberlemeyi salamaktr. Yksek Seviyeli Diller (High Level Language) - Pascal, Cobol,Basic,C++ insan derleyici Alak Seviyeli Diller (Assembly Languages) - Assembly, Derleyiciler Makine Dili

0101011

Gnmzde yzlerce programlama dili vardr. Bunlar genel olarak gruba ayrabiliriz. 1. Makine dili (Machine Languages); mikroilemci komutlarnn kodunu zer, ikili saylara dntrr. Yani makine dili 1 ve 0 larn dizilimlerinden oluur. 2. Alak Seviyeli diller (Assembly Languages) ; Sembolik makine dillerini ve doal makine dillerini kapsar. MOV AX, S1 MOV BX, S2 ADD AX,BX MOV TOPLAM, AX 3. Yksek Seviyeli Diller ; belirli kalplarda belirli kurallara gre yazlmalar artlandrlmtr. Bu artlandrmalar her programlama diline gre deiir. Yksek Seviyeli bir programlama dilinin u ilevi yerine getirmesi gerekir. a). Bilgisayar kullanmnda uzmanlamam personel iin , insan diline olabildiince yakn bir yapay dile gereksinim vardr. b). Belirli bir kullanm alanna zg bir bilgi trn , olabildiince zahmetsiz bir ekilde ileyebilecek bir yapya sahip olmalar gerekir. c). Program yerine getirmek iin kullanlan bilgisayardan bamsz olmaldr. Yksek Seviyeli bir dili Alak Seviyeli veya Makine diline eviren programlar, derleyici veya yorumlayclardr. . Derleyiciler (Compilers) : leme ynelik dilde yazlm bir temel program (kaynak program), makine diliyle yazlm ama programa eviren programlardr. Derleyiciye evirmesi iin verilen programa kaynak (source) program, makine diline evrilen programa ise ama (object) program denir. Derleyiciler, yksek seviyeli her bir programlama diline zg yazlrlar. Yksek Seviyeli bir dille yazlan yazlmlarda, kurallarna ters den hata kontrollerini yaptktan sonra komutlarn ve bilgilerin makine tarafndan tannarak ilemlerin yaplmasn , sonularn tekrar yksek seviyeli programlama diline anlalr duruma getirilmesini salarlar. Kaynak kodu evriciler rnein; DOS letim sisteminde bir PASCAL programnn hangi aamalardan geerek alabilir bir kod haline geldii aadaki emada gsterilmitir. Ama ( object ) kodu

Editr

*.pas

Derleyici

*.obj

Balayc

*.exe

Kaynak programlar, editrler kullanlarak yazlrlar. Daha sonra bu kaynak kodlar derleyiciler tarafndan ama koda evrilirler. En sonunda ise balayc programlar ile alabilir hale getirilirler. Yorumlayclar ( Interpreters) : Yorumlayclar, kaynak program satr satr ele alarak dorudan altrrlar, yorumlayclar standart bir ama kod retmezler. Yorumlama ilemi satr satr yapldnda genellikle ilk hatann bulunduu yerde programn almas da kesilir. Yorumlayclar, derleyicilere gre ok daha kolay yazlabilir. Yorumlayclarn bir program icra zaman (run time) derleyicilere gre olduka uzundur. Yorumlayclarn her zaman kaynak koda ihtiya duymalar da kaynak kodun gizlilii ve gvenirlii asndan bir dezavantajdr. Basic programlama dili yorumlayc kullanrken , Pascal ,Cobol, Fortran C++ gibi diller derleyici kullanr.

Programlama dilleri :
Hangi programlama dilini renirsek renelim 4 tane kalp her programlama dilinde geerlidir. Bunlar ; Deikenler ( stediimiz zaman baka bir deerle deitirebileceimiz bir bilgi tadr.) Sabitler ( Dorudan ileme sokulurlar ve program alt srece deimezler. ) Mesajlar ( Program ile kullanc aras iletiimi salar. Mesajlar aslnda birer sabittir. nk program alt srada deimezler. ) Komutlar (Bilgisayarn o an ne yapacan belirten bir emirdir. Ksaltlm yada tam ngilizce kelimelerden oluurlar. ) Deikenler : Deiken, bilgileri saklamak zere kullandmz ismini ve tipini belirlediimiz bellek alanlarna verilen isimdir. Basic Deiken tipi tamsay ise A% Deiken tipi tek duyarlkl gerel say A! , A (7 basamakl) Deiken tipi ift duyarlkl gerel say A# (17 basamakl) Deiken tipi string (alfa saysal) A$

rnek :
CLS PRINT 22 / 7 Saysnn gsterimi A%= 22 / 7 PRINT Tamsay deeri : , A% 3 A!= 22 / 7 PRINT Tek duyarlkl gerel say deeri : , A! A# = 22 / 7 PRINT ift duyarlkl gerelsay deeri : , A# A$ = 22 / 7 PRINT A$ 22 / 7 END. Pascal

3,142857 3,142857074737545

1- Saysal deikenler : Tamsaylar : - Byte 0 355 1 Byte - Integer -32768 ... +32767 2 Byte - Word 0 65535 2 Byte - Long int - 2 milyar... +2 milyar 4 Byte - Short int - 128 ... +128 1 Byte Gerel saylar : - Real 6 Byte - Single 4 Byte :2.String (alfasaysal alfanmerik) deikenler char 1 karakter string string [n]

Sabitler :
Bellein bir blmndeki bilgiyi ifade ederler. Sabitlerin bir ad vardr. Dorudan ileme sokulurlar ve programn almas esnasnda deimezler.

rnek :
Cls nput yarap gir,r Pi = 3.14 Print dairenin alan Alan = pi * (r^2) Print dairenin alan ,alan End Not: Var A : nteger Const PI = 3.14

Mesajlar : Aslnda birer sabittir. nk program alt srece deimezler. Kullanc ile program arasndaki iletiimi salarlar.

Algoritma :
Bir problem snfn sonlu bir zamanda zebilmek iin gelitirilmi ak seik, yrtlebilir, sral, basit ve gerektike tekrar eden admlardan oluan yntemdir.

Algoritma le lgili Temel Kavramlar :


1. Sunum(presentation) 2. Program

3. Yrtm(execution)
1.Sunum: Algoritmann ifade eklidir. 2.Program:Bir algoritmann bilgisayar iin gelitirilmi biimsel (format) sunum eklidir.Bu

ama iin eitli programlama dilleri kullanlr. Basc Print Gir Pascal Writeln Gir C Print Gir Yrtm (altrma)

Algoritma Program Sunum

3.Yrtm :Bir programn yrtm demek o program tarafndan sunulan algoritmay gereklemek demektir.

Ak Diyagram : Algoritmann ekillerle gsterilmesine denir. Program Yazarken Takip Edilecek Hususlar : 1. Programn algoritmasn oluturup (ak diyagramn) iziniz. 2. stenilen algoritma ve ak diyagramn bir programlama dilinde kodlaynz. 3. Programn bilgisayarda altrlmas. 4. Derleyici hata veriyorsa dzeltiniz. Test 5. Programda istediiniz sonular alamyorsanz 1. adm kontrol ediniz. Programlama Hatalar : 1. Yazm hatas 2. Mantk hatas Algoritmada Kullanlan Operatrler : Operatrler, nesneler veya sabitler zerinde nceden tanmlanm birtakm ilemleri yapan atomlardr. Operatrler CPU (ilemci) tarafndan bir faaliyete neden olurlar ve bu faaliyet sonunda bir deer retilmesini salarlar. Programlama dillerindeki her operatr bir yada birden fazla makine komutuna karlk gelir. rn: c=(a*b) + 2 ileminde 4 operatr vardr.
1. Matematiksel ilem operatrleri :

2. Mantksal ilem operatrleri :

^ * / + -

st alma arpma Blme Toplama karma

VE VEYA DEL DORU YANLI

AND OR + NOT | TRUE FALSE

3. Karlatrma operatrleri :

4. Genel ilem operatrleri :

= <> < > <= >=

Eittir Eit deildir Kktr Byktr Kk eit Byk eit

Aktarma

( ) Parantez

rnek : Bir iyerinde alan iiler arasndan yalnzca ya 23 n zerinde olup asgari cret
alanlarn isimlerini listeleyen komut satrn yaznz ? Eer (ya > 23)1.koul ve (maa = asgari cret)2.koul ise isim listele Eer ya > 23 veya maa = asgari cret ise isim listele

rnek : Bir snfta Programlama Temelleri dersine 65 in zerinde not alp Trk Dili veya Yabanc
Dil derslerinin herhangi birinden 65 in zerinde not alanlarn isimlerini listeleyiniz ? Eer Prog.Tem. > 65 ve (Trk dili > 65 veya Yabanc dil >65) ise isimleri listele ki Saynn Toplamnn Yazlmas : NPUT Say 1 , Say 2 Toplam = Say 1 + Say 2 PRNT TOPLAM Algoritmalarda Kullanlan zel Terimler --Deiken : Programn almas esnasnda farkl deerler alabilen bilgi alanlardr. --Aktarma : Bir deikeni baka bir deikene atama (aktarma) olaydr. --Saya : Bir deikenin deerini belirli aralklarla fazlalatrma veya azaltma olaydr. Deikenlere isim verme kural : 1- Harfle balamal ve Trke karakter kullanlmamal. 2- 0 dan 9 a kadar rakam kullanlabilir. 3- zel karakterler ve boluk karakteri kullanlmaz. 4- Deiken isimleri anlaml olmaldr. Aktarma : A=5 5i A ya aktar.

rnek : Bilgisayara dardan say girecek bu saynn toplamn veren algoritmay oluturun.
1- Bala 2- T = 0 3- Bir say gir (A) 4- T = T + A (T = 0+A 5- 2. sayy gir (B) 6- T = T + B 7- 3. sayy gir. (C) 8- T = T + C T=C 9- T yi gster.

T=A)

Saya : Saya deikeni = Saya deikeni + Artm deeri Saya olutururken ; 1- lk nce saya deikenine balang deeri verilir. 2- Saya artan veya azalan bir ekilde tanmlanr.

rnek : 1den 10a kadar saylarn toplamnn algoritmasn oluturunuz ?


1- Bala 2- T = 0 , S = 1 3- T = T + S 4- S = S + 1 5- Eer S <= 10 ise 3. adma git. 6- T yi gster. 7- Dur.
T 0 1 3 6 10 15 21 28 36 45 55 S 1 2 3 4 5 6 7 8 9 10 11

rnek : 1 den n ye kadar saylarn toplamn yapan programn algoritmasn oluturunuz ?


1. 2. 3. 4. 5. 6. 7. 8. Bala T S T=0,S=1 0 1 N saysn giriniz (5) 1 2 T=T+S 3 3 S=S+1 6 4 Eer S <= N ise 4.adma git. 10 5 T yi gster. 15 6 Dur. rnek : kii arasndan boyu en uzun olan bulan ilemin algoritmasn yaznz ? I. YOL : 1. Bala 2. 3 kiinin boyunu giriniz (B1 , B2 ,B3) B1 B2 B3 En Uzun 3. En uzun = B1 60 70 80 80 4. Eer B2 > En uzun ise En uzun = B2 dir. 5. Eer B2 > En uzun ise En uzun = B3 dr. 6. En uzun olan en uzundur. 7. Dur. II. YOL : 1. Bala 2. 3 kiinin boyunu giriniz ( B1 , B2 , B3 ) 3. Eer B1 > B2 ve B1 > B3 ise en uzun B1 4. Eer B2 > B1 ve B2 > B3 ise en uzun B2 5. Eer B3 > B1 ve B3 > B2 ise en uzun B3 6. En uzunu gster. 7. Dur. Algoritma Hazrlarken Dikkat Edilecek Hususlar : 1. Problemi iyice inceleyiniz. 2. Programlama mantna en uygun zm seiniz. 3. Algoritmada her ilem admna bir satr numaras veriniz. 4. Admlar aras geite kullanlan (dallanma komutu) git gidecei satr numaras ile birlikte kullanlr. 5. Mmkn olduu kadar az dallanma komutu kullannz. Bir problemi zerken : 1. nce deiken isimlerini belirleyiniz.

2. Veri girilerini yapnz. 3. Yaplacak ilemle ilgili formlleri yaznz. 4. Sonular ekrana yaznz.

Ak Diyagramlar :

lem

Balant

Karlatrma

Giri / k

Dng

Birletirme

Elle yaplacak Giri

Bala / Dur

Birletirme yn oklar

Monitr

kt

Ynlendirme

Elle yaplacak lem

Karar (E/H)

rnek : ki saynn toplam


Bala Say1,Say2 Toplam = Say1 + Say2 kt(T) Dur

rnek : 1den 10 a kadar olan saylarn toplam


Bala T=0 , S=1 T=T+S S=S+1 I S <= 10 T Dur

rnek : Girilen bir ismi 10 kez tekrarlayan programn algoritmasn oluturunuz, ak diyagramn
iziniz ? ( Koul ile yaplm hali) Bala smi gir (Ali) Saya = 0 smi yaz (Ali) Saya = saya + 1 I 1 2 3 4 5 6 Bala. smi Gir (Ali) Saya = 0 (Sayacn ilk deeri ) smi yaz (Ali) Sayac 1 artr. (Say = Say + 1) Eer say. 10 a kk eitse (saya <= 10) ise 4. adma git 7 Dur.

Saya <= 10 Dur

Dnglerin Ak Diyagram :
Giri For I = M to n lemler I k Dng deikeni dng dna en son ald deeri bir artrarak kar. rnek : Girilen bir ismi 10 kez tekrarlayan programn algoritmasn oluturunuz, ak diyagramn iziniz ? (Dng ile yaplm hali) Bala smi yaz For I = 1 to 10 smi yaz (Ali) I Dur 1 2 3 4 5 6 Bala smi gir (Ali) Dng olutur (1den 10 a kadar) smi yaz (Ali) Dngy olutur. Dur I Dng Deikeni M Dng Deikeninin lk Deeri N Dng Deikeninin Son Deeri

rnek : Rasgele girilen iki saydan kk olan nce yazan programn algoritmasn oluturup ak
diyagramn iziniz ? Bala A,B H A>B E B,A Dur C=A A=B B=C 1 2 3 4 5 6 Bala. 2. sayy giriniz (A , B). Eer A>B ise 5. adma git. A ile B yi giriniz. B yi nce, A yi sonra yaz. Dur.

Soru 1 : Bilgisayara girilen 10 sayy kkten bye doru sralayan ilemin algoritmasn yapnz
?

rnek : Dardan girilen n saysnn faktriyelini alan programn algoritmasn oluturunuz, ak


emasn iziniz ?

Bala N F=1 FOR I = 1 TO N F=F*I I F Dur

1 2 3 4 5 6 7 8

Bala Deikeni gir (N) F=1 Dng olutur.(1 den N ye) F=F*I Dngy sonlandr. Sonucu gster. (F) Dur.

Soru 2 : Bir soyguncu bir sepet elma alyor. Kaarken karsna 3 beki kyor. Bekilere her
defasnda sepette bulunan elmann yarsndan 1 fazlasn veriyor. 3 bekiye de bu yntemle elma verdikten sonra hrsza 1 elma kalyor. Sepette ilk bata ka elma olduunu bulan programn algoritmasn yapnz ?

rnek : M deeri 2 ve N deeri 5 ise ekrana ne yazlr ?


Bala I=1 I>N H E *,I I=I+1 M=1 E H * , I^2 Dur M 2 N 5 I 1 2 3 4 5 6 *,1 *,4 *,9 * , 16 * , 25

rnek : N deeri 6 girilirse M ve I in son deeri ne olur ?


Bala N M=1 I=2 M=M*I I=I+1 H I>N E I,M Dur N 6 M 1 2 6 24 120 720 I 2 3 4 5 6 7

Dng Yaps :
1. Tekrar says belli olan dngler: FOR Dng_deikeni= Balang_deeri TO Biti_deeri , Artm_miktar NEXT Artan dng : Balang deeri biti deerinden kk ise artan dngdr. Azalan dng : Balang deeri biti deerinden byk ise azalan dngdr.

Soru 3: arpm tablosu yazan programn algoritmasn oluturup ak diyagramn iziniz ?


2. arta bal dngler (Tekrar says belli olmayan dngler) : art gerekleene kadar tekrar eden dngler srece (koul) yap (ilem) while (koul) do (ilem)

Not : Koul saland srece ilem tamamlanr.


Tekrarla (ilem) ta ki (koul) Repeat (ilem) until (koul) lemi yap sonra koula bak.

Szde Kodlar (Pseudo code ler) :


1. arta (koula) bal ilemler veya aktiviteler
Eer (koul) doru ise yap if (koul) then <ilemler> deilse yap if (koul) then <ilemler> else <ilemler> rnek : Girilen ya deerine gre bebei, ocuu,genci, orta yaly,ihtiyar bulan program yaznz ? 0 5 Bebek 13 28 Gen 45 - .. htiyar 6 12 ocuk 29 45 Orta yal 1 2 3 4 5 6 Bala Yalar giriniz (yas) Eer 0 yas 5 ise bebek Eer 6 yas 12 ise ocuk Eer 13 yas 28 ise gen Eer 29 yas 45 ise ortayal 7 Eer 46 ve zeri ise ihtiyar 8 Dur

Case Yaps : (Pascal) Uses crt; Var yas: byte; Begin Write(ya giriniz);read (yas); Case yas Of 0 .. 5 :write (bebek) 6 ..12:write (ouk) 13 .. 28 : write ( Gen) 29 .. 45 : write (ortayal) Else Write (ihtiyar); End; End.

f Else yaps : nput Ya deerini giriniz : , Yas f (yas <= 5) Then Print bebek f (yas <= 12) Then Print ocuk f (yas <= 28) Then Print gen f (yas <= 45) Then Print orta yal f Else Print ihtiyar End

Quick Basic : nput ya giriniz: , yas Select Case yas Case 0 to 5 : Print Bebek Case 6 to 13 : Print ocuk Case 14 to 28 : Print Gen Case 29 to 45 : Print ortayal Case Else Print htiyar End select End

2. Koul srdke devam eden aktiviteler :


Srece (koul) yap (ilemler) While (koul) do (ilemler) Tekrarla (ilemler) taki (koul) Repeat (ilemler) until (koul) Pascal da kullanlr.

3. Anlaml bir isme deer vermek :


Bir malzemenin fiyat maliyet, kr ve vergiyi toplayarak bulunur. Bunu komut halinde yaz. Assign Toplam Value (maliyet + Kr + vergi) (Toplam = maliyet + kr + vergi) Procedures : Algoritmalar szde kodlarla sunmak veya bir programlama dilini evirmek iin kullanlan program dilimlerine alt program (subprogram) , alt yordam (subroutine), modl (module), fonksiyon (function) , yordam (procedure) gibi isimler verilir. Bu isimlerin hepsi deiik anlam ve ierik belirtmekle birlikte hepside gelitirilen bir szde koda balk vermek iin kullanlr. Drmsel yaplar : inde iterasyon bulunan popler algoritmalarda en nemlileri arama (search) ve sralama (sort) algoritmalardr. 1. Ardk arama algoritmas : Eer alfabetik listede arama yapacaksak A<B<C<......<Z aramaya ismi bulunca yada listedeki isimleri bulunca duracaktr. If (liste bo) then (arama baarsz) else ilk satr test satr olarak se [while (aranan deer <> test satr And listede baka isimler varsa) do alt satr, test satr olarak se]

if (aranan deer = test satr) then Arama baarl else Arama baarsz

Dng yaplar
i. ii. iii. iv.

while (koul) do (ilem) repeat (ilem) until (koul) do loop dngleri for next dngs Repeat - until H ilemler (koul yanlsa) H snanan koul E (Koul doruysa)

While do Snanan Koul E ilemler

Do loop 1- Do While (koul) (ilemler) Loop 3- Do Until (koul) (ilemler) Loop 2- Do (ilemler) Loop until (koul) (Doruysa dngden kar) 4- Do (ilemler) Loop While (koul) (Yanlsa dngden kar)

For Next (Dng miktar belli ise) For dng deikeni = balang To biti [step artm miktar] (ilemler) Next Dng deikeni

rnek :
A=5 Do while A < 3 A=A+1 Loop Print A kts 5 A=5 Do A=A+1 Loop while A < 3 Print A kts 6 A=5 Do until A < 3 A=A+1 Loop Print A kts yok

A=5 Do A=A1 Loop until A < 3 Print A kts 2 2. Yerletirme Sral algoritmas : nteraktif yaplar kullanlarak gelitirilen algoritmalardan bazlarda sralama algoritmalardr. Bu algoritmalar elimizde bulunan gelii gzel bir listeyi belli kurallar dahilinde dzenler.

rnek : Listenin ikinci elemanndan sonra gri yapnz .


Repeat (gri listedeki ilk eleman beyaz yap ve bu elemana pivot adn ver) Pivot elemann geici bir yere tayarak listede boluk olutur. While (boluun stndeki eleman, pivottan bykse) Do (byk eleman aa kaydr.) Oluan bolua pivot yerletir. Until (listedeki elemanlaer beyaz ise)

BUBBLESORT: ndisli deikenlerde say veya alfabetik sralama yapmakta kullanlan programlardan biri de BUBBLESORT dur. BUBBLE hava kabarc demektir. Suda hava kabarcklarnn pepee ykselmesi gibi bu programda da byk deerler pepee ykselmesi gibi bu programda da byk deerler pepee liste sonuna varrlar. Mesela; 5,10,2,4,12,1 rakamlarndan oluan dizinin rakamlarn bu yntemle sralayalm. - Srayla saylar ikier ikier kyaslanr. nceki sonrakinden bykse yer deitirirler. 5,10,2,4,12,1 5,10,2,4,12,1 5,2,10,4,12,1 5,2,4,10,12,1 5,2,4,10,12,1 5,2,10,4,12,1 5,2,4,10,12,1 5,2,4,10,1,12

REM BUBBLESORT DATA 5,10,2,4,12,1,1000 DIM A(10) FOR I=1 TO10 READ A(I) IF A(I)=1000 THEN GOTO SIRALA NEXT I SIRALA: FOR N=I-1 TO 2 STEP -1 FOR M=1 TO N-1 IF A(M) <= A(M+1) THEN GOTO SIRASON

T=A(M) : A(M)=A(M+1):A(M+1)=T NEXT M,N FOR N=1 TO I-2 PRINT A(N) ; ,; NEXT N PRINT A(I-1) END

Quick Basic rnek : 1den 100e kadar olan saylarn toplamn bulan program yapnz ?
F Cls T=0,S=0 Git : S=S+1 T=T+S f S <= 100 then goto Git Print T End. WHLE Cls T = 0 ,S = 0 While S <= 101 S=S+1 T=T+S Wend Print T End. FOR Cls T=0 For S = 1 to 100 T=T+S Next S Print T End kts : 5050 DO WHLE Cls T = 0, S = 0 Do while S < 101 S=S+1 T=T+S Exit Do Loop Print T End. kts : 5050

rnek : Dardan girilen say 0 dan farkl olduu srece saynn karesini ve kpn alan program
yaznz ? F Cls nput sayy giriniz : , A f A <> 0 then print A^2, A^3 else print yanl giri End. WHLE Cls nput sayy giriniz : , A While A <> 0 Print A^2 Print A^3 Cls nput A Wend End.

rnek : Klavyeden say girildii srece bu saynn faktriyelini bulup gsteren, say girmeden enter
tuuna basldnda ilemi sonlandran program yapn ?

Tekrar: nput Say girii : , S f S=0 then END F=1 FOR I = S to 1 STEP- 1 F=F*I NEXT I Print sonu : , F Goto Tekrar End rnek : Aadaki program paracklarn P1, P2, P3 alt yordam ( Procedure ) B mantksal deiken ise while do dngsyle yapnz ? PI; P1; REPEAT P2; P2 ; While - Do While ( NOT B) Do UNTIL B; P2; P3 P3;

rnek : arpm tablosunu yazan program yapnz ?


CLS FOR I = 1 TO 10 FOR J = 1 TO 10 Sonu = I * J PRINT I , * , J , = , Sonu NEXT J SLEEP 2 NEXT I END

rnek : stee bal olarak genin alann veya dikdrtgenin alann hesaplayan program yapnz?
CLS INPUT Taban gir : , taban PI = h PRINT genin alan : Alan = ( h * taban ) / 2 PRINT genin alan : , Alan END SCREEN : Ekran parametresi ( 0 - 13 ) Ekran text yada grafik moduna geirir. COLOR : Yaz rengi ( 0 15 ) LOCATE : Belirtilen satr ve stun noya gitmek iin kullanlr. Renkler: 1. Mavi 2. Yeil 3. Ak mavi 4. Krmz 5. Mor 6. Kahverengi 7. Gri

rnek :
Bala x,y
yes yes no

b) cevap: CLS Tekrarla : INPUT x,y IF x > 0 THEN IF y > 0 z=0 ELSE z=xy END IF ELSE IF y > 0 THEN z=x+y ELSE z=x+5 END IF END IF IF x < z THEN GOTO Tekrarla PRINT x , y , z END

x>0

no yes no

y>0 z=0 z=xy

y>0 z=x+y z = x +5

yes

no

x<z

x,y,z Dur

a) X ve Y aadaki deerleri aldnda k deerleri ne olur ? (X,Y, Z) X Y X=8 Son deerler -5 2 Y=1 3 -7 Z=0 -4 -3 8 1 b) Ak emas izilen program Qbasic dilinde kodlaynz ?

PASCAL DLNN YAPISI


1968 Niklams Wirth iki pascal eidi vardr. 1. Borland Pascal 2. Misrosoft Turbo Pascal ok iyi bir yazlm gelitirme ortamna sahip olmas (IDE) Program yazma kolayl ok sayda komuta sahip olmas Programn kendi komut ve deikenlerini tanmlamasna imkan vermesi Programcnn hazrlad Unitleri baka programlarda kullanabilme zellii

Yazm Kurallar :
Pascal da byk kk harf ayrm yoktur. Her blok Begin ile balayp End ile sonlandrlmaldr. Her Pascal ifadesi ; (noktal virgl) ile bitirilmelidir. Yalnz begin , label, const, var, do gibi blok balatan deyimlerden sonra kullanlamaz. lemler birbirini takip eden belli bir sraya gre bloklar halinde yazlr.

Pascal Programlarnn Genel Yaps :


1. Program bal 2. Bilgi tantm blm 3. lem bloklar blm Program ...........................program bal ; Var....................................deikenin listesi ; Const................................sabitlerin listesi ; Type..................................tiplerin listesi ; Uses...................................niteler ; Label..................................etiket listesi ; Function ........................................................; Procedure.......................................................; Begin End. 1. Program Bal : Program tantm amacyla kullanlr. Yani : programa isim vermek amacyla kullanlr. 30 karakteri gemeyecek ekilde isim verilmelidir. Zorunlu bir ifade deildir. 2. Bilgi Tantm Blm : Uses : Kullanlacak ariv programlar ( sistem veya unit olarak programclarn kendi oluturduklar) tanmlar. Program balndan sonraki satrda yer alr. Uses ariv prog.1, ariv prog 2, ariv prog 3........; lem bloklar blm Program bal Bilgi tantm blm

Pascal da standart ariv programlar unlardr: 1 - crt : Ekranla ilgili komut ve deyimler kullanlacaksa 2 dos : Dos iletim sistemiyle ilgili komut ve deyimler kullanlacaksa 3 groph : Grafik komut ve deyimleri kullanlacaksa 4 graph : Turbo pascal 3.0 komut ve deyimleri kullanlacaksa 5 overlay : Overlay dosyalarn ynetimiyle ilgili komutlar kullanlacaksa 6 printer : Yazc ile ilgili komut ve deyimler kullanlacaksa 7 system : Bilgisayar sistemi ile ilgili komut ve deyimler kullanlacaksa 8 turbo 3 : Yalnzca Turbo pascal 3.0 versiyonu ile uyumlu alr Label : Programn amacn ynlendirmek iin etiket kullanlr Label etiket 1, etiket 2, etiket 3.........; Const : Sabitleri tanmlamak iin kullanlr. Const PI, A ; Var : Program ierisinde kullanlarak deikenlerin tipleriyle tanmland ksmlardr. Var deiken 1 : Tipi ; deiken 2 : deiken 3 : Tipi ;

Tipi

Type : Kullanclarn kendilerine ait zel bilgi tipleri tanmlamalarn veya dosya kayt yapsndaki alan ve alan bilgi tanmlamalar bu blokta yaplr. Tanmlama var bloundan nce yaplmaldr. Tanmlanacak zel bilgi tipleri alfabetik karakterle balamal ve boluk iermemelidir. Type zel bilgi ad: Tip ; 1- Type kelime 5 : string [5] ; 2 Kayt (Record ) tip tanmlanr. ad 10 : string [10]; Ad soyad : string [10] ; matris : integer ; No : integer ; Vize : integer ; Final : integer ; End. 3 lem Bloklar Blm : Procedure (Yardm) : Ana programn yardmc ilemlerin yapld alt programlardr. Her biri bal bana bir ilem tanmlar. Her hangi bir alt program arld zaman ( ana programa dn komutu exit olmad srece) iindeki btn komutlar srayla ilem grrler. Alt programdaki btn komutlar bittikten sonra program ak , program aran komuttan sonraki satra geer. Yani ana program btn alt programlar arabilir. Bir alt program ancak kendinden daha alt seviyedeki baka alt program arabilir. Alt programlar genellikle arlan satrdan nce tanmlanr. Daha sonra arlacaksa FORWAR komutu kullanlr. 2 ekilde tanmlanr. 1 Parametresiz Procedure (Alt Program) : Ana programdaki deikenler ile arlan alt programdaki deikenler ayndr. Var deikenle ; Procedure Alt programismi; Begin simler ; End . 2 Parametreli Procedure : Ana programdaki deikenler ile arlan alt programlardaki deikenler farkldr. Byk programlarda parametreli procedure kullanm yazm kolaylatrr.

Procedure Alt programismi (var deiken listesi: ;) Begin lemler ; End . rnek : Girilen iki saynn karesini alan program yapnz ? Program parametresiz ; Uses crt , Var x, y : integer ; Procedure kare ; Begin X=x*x;y=y*y; End; Begin Clrscr ; Write (Birinci sayy giriniz , x ) ; readln (x) ; Write (kinci sayy giriniz , y) ; readln (y) ; Kare ; Write (Birinci saynn karesi , x ) ; Wirte (kinci saynn karesi , y ); Readln; End . Program parametreli ; Uses crt ; Var x , y : integer ; Procedure kare ( x, y : integer); Begin z:= z * z ; k := k * k ; End .

Fonksiyon (Function )
Bu alt programdan yalnzca bir sonu alnr ve her functionun bir tipi vardr. Function altprogram_ismi (deiken tipi) : tipi ; Begin lemler Deiken = altprogram_ismi End ;

rnek : Bir genin Pisagor teoremini yaznz ?


zm : c2 = a2 + b2 Program fonksiyon; Uses crt; Var x,y : integer ; Function pisagor ( x, y : integer ) ; Pisagor := sprt ( x*x + y*y ); Begin Clrscr; Write (Birinci dik kenarn deerini giriniz :) ; readln (x ) ; Write (kinci dik kenarn deerini giriniz :) ; readln (y ) ; Writeln ( Pisagor : , pisagor (x,y) ) ; readln ;

End.

rnek : genin alann hesaplayan program yaznz ?


zm : Alan = ( Taban * Ykseklik / 2 ) Bala T ,Y A=(T*Y)/2 A Dur Cls nput Taban ve Ykseklii giriniz, T ,Y A=(T*Y)/2 Print genin Alan : , A End Uses crt; Var T , Y : integer ; A : real; Begin Write ( Taban ve ykseklii giriniz: ) Readln ( T ) ; Readln ( Y ) ; A := ( T * Y ) / 2 Write ( genin Alan : , A ); Readln ; End. Uses crt; Var x:integer ; Begin Write (Say giriniz : , X ); Readln ( X ); f X <> 0 then Write (A^2 , A^3) Else End; Readln ; End.

rnek : Say 0 dan


(sfrdan) farkl olduu srece saynn karesini ve kpn alan program yaznz ? Bala A A <> 0
E H

1. Bala 2. Bir say giriniz (A) 3. Say 0 dan farkl olduu srece saynn karesini ve kpn al. 4. Dur

Dur

A*A A*A*A

rnek : ex fonksiyonunun seriye gre alm aadadr. Buna gre dardan girilen X ve N
deerine gre ex i hesaplayan program yapnz ? ex = 1 + x1/ 1! + x2 / 2 ! + x3 / 3 ! + x4 / 4 ! +..............+ xN / N ! = Nk =0 xk / k ! Cls nput N, X T=1:F=1 For I = 1 to N F=F*I T = T + ( X ^ I / F) Print T Next I Print ex in deeri:, T End. Uses crt; Var I, X, N : integer ; T : real ; Begin T:= 1 , F:= 1; Write (N=); Readln (N); Write (X=); Readln (X); For I=1 to N F=F * I; T= T +(X^I / F); Next Readln T End.

DZLER :
Bellekte srekli yer kaplayan ayn trden nesnelerin oluturduu kmeye dizi denir. Tanmdan da anlalaca zere bir dizinin dizi olabilmesi iin; 1 Bellekte yer kaplamas 2 Ayn tr elemanlardan olumu olmas gerekir. Dizilerin her eleman ayr bir nesne gibi ele alnmaldr. Dizi elemanlarna erimek amacyla index operatr kullanlmaktadr. Q basic de diziler DIM komutu ile tanmlanr. Genelde dizilerin ilk eleman 0. indisli elemandr. DIM A(n) n elemanl A dizini DIM A(5) A dizisinin 5. indisli eleman ndislere isim verirken dikkat edilmesi gereken hususlar; 1 ndisler negatif olamaz 2 Tam say olmaldrlar. 3 ndisler en az bir tane olmaldrlar. Maksimum indis says kullancya gre deiir. DIM A(5) A(0) = 100 A(1) = 50 A(2) = 70 ... A(5) = 80 Read : Deikenlerin listesi Data : Verilerin listesi CLS Read A, B, C $ Print A, B, C $ Data 15, 30,Ali END

rnek : Dardan girilen N boyutlu dizinin tm elemanlarn toplayan program yapnz ?


1 For - Next 2 For - Next Baslat N For I=1 to N A(I) I T=0 For I=1 to N T=T+A(I) I T Dur Dizi elemanlarnn girilmesi Girilen dizinin eleman ile ilgili ilemleri yapmak iin CLS Input Dizinin boyutunu giriniz , N DIM A(N) For I=1 to N Print A(; I ;) =; Input , A(I) Next I T=0 For I = 1 to N T = T + A(I) Next I Print T END

rnek : A ve B gibi 10ar elemanl iki dizi veriliyor. A dizisinin ayn indisli elemann B dizisinin
ayn indisli elemanna blen ve B=0 olmas durumunda mesaj veren program yapnz ?(Read-Data) DIM A(10), B(10), C(10) Data 10,9,8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8,9,10 For X=1 to 10 Read A(X) Next X For Y=1 to 10 Read (B) Next Y For I=1 to 10 If B(I)=0 then Print B dizisinin elemanlarn 0dan farkl girin C(I)=A(I) / B(I) Next I For I=1 to 10 Print C(I) Next I END

rnek :
Read K DIM X (K) For A=1 to K Read X(A) Next A Data 5,20,50,80,120,30 For A=1 to K-1 For B=A+1 to K If X(B) > X(A) then goto Git Z=X(A) X(A)=X(B) X(B)=Z Git : Next B,A T=INT (X(K)-X(1)) If T>=100 then T=T /10 Print:Print TAB(15) ARALIK......:; T Color 9.0 : Print TAB(10) SIRALI DZ; Color= Print For I= 1 to K Print TAB (8) X(I) Next I END ARALIK K X(5) A SIRALI DZS 5 X(1)= 20 1 20 X(2)= 50 . 50 X(3)= 80 . 60 X(4)= 120 . 90 X(5)= 90 4 120

B 2 . . . 5

X(2)>X(1) X(3)>X(2) X(5)>X(4)

T 70

X(5) X(4) 90 120

rnek :
A$ = Niksar Print FIX ( -3,75 ) Print INT ( -3,75 ) Print CINT ( 37,50 ) 38 Print CINT ( 8,49 ) 8 Print LEFT$ ( A$ , 2 ) Ni Print RIGHT$ ( A$ , 2 ) ar Print MID$ ( A$ , 2 , 2 ) ik Print LEN$ ( A$ ) 6 Print TAB ( 5 ) A$ .....Niksar Print SPACE ( 10 ) A$ ............Niksar (10 ttane boluk brakr) Print ABS ( -50 ) 50 ( mutlak deerini alr) Print SQR ( 25 ) 5 (saynn karekkn alr) Print LOG ( 25 ) 3,25 (saynn logaritmasn alr) Print SIN ( 90 ) 1 (saynn sinsn alr) Print COS ( 0 ) 0 (saynn cosinsn alr) Print SQRT ( 4 ) 16 (saynn karesini alr)

rnek : N elemanl bir dizinin elemanlarn kkten bye doru sralayan program yapnz ?
Dim A (N) For I = 1 to N Print A( ; I ; ) = ; Input A(I) Next I For I = 1 to N-1 For J = 1 to N f A(J) < A(I) then SWAP A(J), A(I) Next J Next I For I = 1 to N Print A(I) Next I END

rnek : Dardan girilen N elemanl bir diziyi ters srada B dizisine aktaran ak emasn izip,
programn yapnz ? Dim A(N), B(N) nput N deerini giriniz : , N For I = 1 to N Print A( ; I ; ) = ; Input A(I) Next I For I = 1 to N B (I) = A (N+1 - I) Print B ( ; I ; ) = ;Input A(I) Next I

END Ak diyagram : Bala N For I = 1 to N A(I) I For I = 1 to N B (I) = A (N+1 - I) B (I) I Dur

: ki Boyutlu Diziler ( MATRSLER ) :


A i,j = a 11 a 12 a 13 ..... a 1j a 21 a 22 a 23 ..... a 2j ... ... .... ..... .... a i1 a i2 a i3 ..... a ij eleman says = i * j ile bulunur. A ij = A ( i , j ) Stun says Satr says A ( 3,5 ) = 15 elemanl bir A dizisi ( 3 satr 5 stn ) A ( 2,4 ) = 8 elemanl bir A dizisi ( 2 satr 4 stn ) 3 4 5 3 A (3,4) = 6 7 8 2 9 5 4 1 Satr esasl : 345367829541 Stun esasl : 369475584321

N * N Dardan iki boyutlu bir dizinin elemanlarnn girilmesi Bala N For I = 1 to N For J = 1 to N A(I,J) J I Dur A (1,1) = ? A (1,2) = ? A (1,3) = ? ................ A (1,N) = ? A (2,1) = ? A (2,2) = ? A (2,3) = ? ................. A (2,N) = ? A (N,1) = ? A (N,2) = ? A (N,3) = ? ................ A (N,N) = ?

CLS Input N deerini giriniz : , N Dim A ( N,N ) For I = 1 to N For J = 1 to N Print (;I;,;J;)= ; Input A ( I , J ) Next J Next I END

rnek : Dardan girilen N * N tipinde A ve B matrislerini toplayan program yapnz ?


(C=A+B) CLS nput N deerini giriniz : , N Dim A (N , N), B (N , N), C (N , N) For I = 1 to N For J = 1 to N nput A (I , J) Next J Next I For I = 1 to N For J = 1 to N nput B (I , J) Next J Next I For I = 1 to N For J = 1 to N C (I , J) = A (I , J) + B (I , J) Input C (I , J) Next J Next I END

Soru : 10 kiilik bir renci grubunun her birinin 1 dersten ald 3 notun ( 1.vize , 2. vize , final )
ortalamasn alan program yapnz ? CLS Dim A (10), B (10), C (10), Ort (10) For I = 1 to 10 nput ,A ( I ) Next I For I = 1 to 10 nput ,B ( I ) Next I

For I = 1 to 10 nput ,C ( I ) Next I For I = 1 to 10 Ort( I ) = A ( I ) + B ( I ) + C ( I ) / 3 Next I For I = 1 to 10 Print i + .nci rencinin ortalamas , Ort ( I ) Next I END

RNEK PROGRAMLAR : REM ASAL SAYILAR CLS INPUT ASAL SAYI TAVAN RAKAMI=;S
PRINT : IF S<1 THEN PRINT EN KK ASAL SAYI 1 DR. :END

REM TERSTEN YAZMA PRINT CMLEY GRN INPUT C$ FOR I=LEN (C$) TO 1 STEP -1 PRINT MID$(C$,I,1); NEXT I END

PRINT 1, : IF S=1 THEN END PRINT 2, : IF S=2 THEN END FOR I=3 TO S FOR N=2 TO I-1 I%=I/N : IF I-N*I%=0 THEN GOTO SON NEXT N:PRINT I:NEXT I END

KONTROL YAPILARI ZET: - Sral (ardk) - Karar (Seim) - Dng (Tekrar) - Sequence - Selection - Repetition

Sral yap nemsizdir. Karar yaplar ekilde yaplabilir; f / Then Yaps ( Tek seim) f / Then / Else Yaps ( ift seim) Select Case Yaps ( oklu seim) Dng yaplar alt ekilde yaplabilir; While / Wend dngs Do While / Loop dngs Do / Loop While dngs Do Until / Loop dngs Do / Loop Until dngs For / Next dngs Sral Yap Karar Yaplar

If / Then Yaps (Tek Seim)

Select Case Yaps (oklu Seim)

T F

T F T

If / Then / Else Yaps (ift Seim F T

T F

Dng Yaps

While/Wend Yaps

For/Next Yaps

Do/Loop Until Yaps

Do Until / Loop Yaps

You might also like