Program Akışının Denetimi

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Program Akışının Denetimi"

Transkript

1 8 Program Akışının Denetimi Bir programın akışı komutların yazıldığı sırayı izler. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar üç gruba ayrılabilir: Bloklar, Yönlendiriciler ve Döngüler. Bilgisayarın karmaşık işleri yapmasını sağlayan bu yapılar altı tanedir: 1. blok, 2. if... else... ve else if yönlendirmeleri 3. switch yönlendirmesi 4. Koşullu yönlendirme (koşullu üçlem) 5. for döngüsü 6. while... döngüsü 7. do... while... döngüsü Bu yapılardan her birisi tek bir deyimmiş gibi iş yapar, ama genellikle her birisi birden çok deyim içeren birer yapıdır. Bunların her birisini örneklerle açıklayacağız. Bu bölümde yönlendiriciler dediğimiz ilk dört yapıyı, sonraki bölümde ise döngüler dediğimiz son üç yapıyı ele alacağız. 8.1 Blok Bir arada yürütülmesi istenen ve parantezi içine yazılan deyimlerden oluşan program parçasıdır. Sözdizimi şöyledir:

2 76 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI 1 deyimler bloku içindeki deyimler gerektiği sayıda C deyimlerinden oluşur. Hiç deyim içermeyen bloklara boş blok denir. İçiçe bloklar olabilir. Bir fonksiyonun gövdesi bir bloktur. Yönlendiriciler birer bloktur. Blok içindeki deyimler, yalın C deyimleri olabileceği gibi, yapısal deyimler de olabilir. Program akışı (akış denetimi) bir blok içine girerse, o bloktaki bütün deyimleri sırayla işler. Ancak, gerektiğinde, blok içindeki deyimler bitmeden, program akışı blok dışına alınabilir. Uyarı 8.1. gcc derleyicisinin ascii dışındaki Türkçe karakterleri metin içinde yazabilmesi için locale.h başlık fonksiyonu çağrılır ve main() fonksiyonunun gövdesine, s e t l o c a l e (LC_ALL, " " ) ; deyimi konulur. Blok Örnekleri Program 8.1, x ile y değişkenlerinin değerlerini takas eder. main() fonksiyonunun gövdesi en dış blokdur. Onun içinde takas işlemini yapan blok yer alır. Görüldüğü gibi bu örnekte iki tane içiçe blok vardır. Program i n t main ( v o i d ) s e t l o c a l e (LC_ALL, " " ) ; i n t x = 10, y = 20, z ; 9 p r i n t f ( " Takastan önce : \n " ) ; p r i n t f ( " x = %d ; y = %d \n ", x, y ) ; z = x ; x = y ; 14 y = z ; p r i n t f ( " Takastan sonra : \n " ) ; p r i n t f ( " x = %d ; y = %d \n ", x, y ) ; 2 Takastan önce :

3 8.2. KAPSANMA ALANI (SCOPE) 77 x = 10 ; y = 20 Takastan sonra : x = 20 ; y = 10 / Blok içinde bildirimi yapılan bir değişken, o blok için bir yerel değişkendir. Program 8.1 deki x, y, z değişkenleri main() metodunun yerel değişkenleridir. Eğer 5.satır iç bloka alınırsa; yani x, y, z değişkenleri iç blokun yerel değişkenleri yapılırsa, takas işlemi olur, ama 14.satır çalışmaz. Çünkü blok dışından blok içindeki değişkenlere erişilemez. Onlara erişmek için 15.satırın da iç blokun içine alınması gerekir. Özetlersek, yerel değişkene kendi bloku dışından erişilemez; ona ancak kendi bloku içindeki deyimler erişebilir. 8.2 Kapsanma Alanı (scope) Blokun işi bitince, blok ile birlikte yerel değişkene ana bellekte ayrılan adres yok olur. Bu nedenle, bir değişkenin kapsanma alanı (erişilebirlik bölgesi, scope) o değişkenin tanımlandığı bloktur. 8.3 Yönlendiriciler (Saptırma, Dallandırma) Aksi istenmemişse, program, komutların yazıldığı sırada işler; yani normal durumda programın akışı (deyimlerin işleniş sırası) doğrusaldır. Ama oluşan koşullara bağlı olarak, program akışını başka deyimlere yönlendirmek gerekebilir. Bu işi yapan yönlendirici yapılar vardır. Yönlendiriciler, program akışını, oluşan koşullara göre istenen yöne saptıran (dallandıran) denetim yapılarıdır. Bunlar da kendi içlerinde türlere ayrılabilir: if, if-else, else if, switch ve koşullu üçlem. Bu yapılar ard arda gelebilir ya da içiçe yuvalanabilirler. Böylece daha karmaşık yönlendiriciler oluşur. Ancak, karmaşık yönlendiriciler, çözümlenerek, her bir parçası yukarıdaki temel yönlendiricilerden birisine indirgenebilir Yalın if Yapısı Bazı deyimlerin işlemesini, ancak belirli koşulların sağlanması durumunda isteyebiliriz. Bu durumda if yönlendirmesini kullanırız. Bu yönlendirmenin sözdizimi aşağıdaki gibidir.

4 78 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI i f ( mantıksal_deyim ) deyimler ; 4 Eğer if yapısı bir tek deyim içeriyorsa, blok parantezi kullanılmayabilir: 1 i f ( mantıksal_deyim ) deyim ; Ama if yapısına bağlı olarak işlenmesi gereken birden çok deyim varsa, onların hepsini bir blok içine almak gerekir. Tek deyim olduğu için bloku kullanılmasa bile, biz ona if bloku diyeceğiz. Eğer mantıksal_deyim (boolean) true değerini alıyorsa, if bloku içindeki deyimler sırasıyla işlenir; sonra program akışı if blokundan sonraki deyimi işlemeye başlar. Eğer mantıksal_deyim false değerini alıyorsa if bloku içindeki deyimler işlenmeden atlanır ve program akışı if blokundan sonraki deyime atlar. Örnekler: Program i n t main ( ) s e t l o c a l e (LC_ALL, " " ) ; i n t n ; p r i n t f ( " Y a ş ı n ı z k a ç t ı r? \n " ) ; s c a n f ( "%d ", &n ) ; i f ( n > 18 ) 13 p r i n t f ( " S i z b i r s e ç m e n s i n i z! \n " ) ; r e t u r n 0 ; Bu tek b i r i f y ö n l e n d i r m e s i d i r. x >= y olduğunda i f blokuna g i r i l m e z. 4 / Program 8.3, kullanıcının girdiği iki sayıyı karşılaştırıyor. Birinci sayı küçükse, öyle olduğunu yazıyor. Değilse, başka bir iş yapmıyor. Karşılaştırma için ilişkisel operatörlerden küçüktür ( < ) operatörünü kullanıyor. Program 8.3.

5 8.4. ARDIŞIK IF DEYIMLERI 79 1 i n t main ( ) i n t x, y ; 6 p r i n t f ( " i k i tamsayı g i r i n i z. S a y ı l a r a r s ı n d a enaz b i r boşluk b ı r a k ı n ı z. \n " ) ; s c a n f ( "%d %d ",&x,&y ) ; i f ( x < y ) p r i n t f ( "%d s a y i s i %d den kucuktur \n ", x, y ) ; Bu tek b i r i f y ö n l e n d i r m e s i d i r. x >= y olduğunda i f blokuna g i r i l m e z. / 8.4 Ardışık if deyimleri if blokları ardışık olabilir. Bu durumda her bir if bloku, ötekilerden bağımsız çalışır. Birden çok ard arda if bloku olduğunda, mantıksal ifadeye bağlı olarak, program akışı hiç birine uğramayabilir, birisine ya da birden çoğuna uğrayabilir. Örnek olarak, Program 8.3 yi biraz geliştirelim. Program 8.4, gene kullanıcının girdiği iki sayıyı karşılaştırıyor. Üç mümkün durumu tek tek denetliyor. Hangisi doğru ise onu yazıyor. Burada if deyimlerinin ard arda yazıldığına dikkat ediniz. Dolayısıyla program akışı herbiri için mantıksal deyimin doğru olup olmadığını denetliyor. Verilen iki sayı için, o üçünden yalnızca birisi doğru olabilir. Program akışı, yalnızca doğru olan if... deyimine sapıyor; ötekileri geçiyor. Buradaki üç tane if deyiminin her birisi tek başına yalın bir if deyimidir; ötekilerden bağımsız çalışır. Karşılaştırma için ilişkisel operatörler dediğimiz <, >, == operatörlerini kullanıyor. Program i n t main ( ) 6 s e t l o c a l e (LC_ALL, " " ) ; i n t x, y ; p r i n t f ( " i k i tamsayı g i r i n i z. \n " ) ; p r i n t f ( " G i r i ş t e s a y ı l a r a r a s ı n d a enaz b i r boşluk b ı r a k ı n ı z. \n " ) ; p r i n t f ( "Ya da her sayıdan sonra Entere b a s ı n ı z \n " ) ; 11 s c a n f ( "%d %d ",&x,&y ) ; i f ( x < y )

6 80 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI p r i n t f ( "%d s a y i s i %d den kucuktur \n ", x, y ) ; i f ( x > y ) 16 p r i n t f ( "%d s a y i s i %d den buyuktur \n ", x, y ) ; i f ( x == y ) p r i n t f ( "%d s a y i s i %d ye e s i t t i r \n ", x, y ) ; r e t u r n 0 ; Bu program a r d ı ş ı k i f y ö n l e n d i r m e s i n e ö r n e k t i r. 3. ve 7. s a t ı r l a r b i r l i k t e, gcc d e r l e y i c i s i n e Türkçe k a r a k t e r l e r i y a z d ı r ı r. / Uyarı: Bir if yönlendirmesinde işlenen tek deyim ise, onu bloku içine almaya gerek yoktur. Alınsa da alınmasada da olur. Ama if yönlendirmesi birden çok deyimi içeriyorsa, o deyimlerin hepsi bloku içine alınır. Blok parantezleri kullanılsa da kullanılmasa da, bunlara if bloku diyoruz. Program 8.1 de gün numarası 1 ile 7 arasında ise yalnızca ilgili if blokunu işler. Program akışı başka if blokuna uğramaz. Girilen gün numarası 1-7 arasında değilse, program akışı hiç bir if blokuna girmez. Örnek i n t main ( ) s e t l o c a l e (LC_ALL, " " ) ; 6 i n t gun ; p r i n t f ( " Haftanın k a ç ı n c ı günündeyiz? \n " ) ; s c a n f ( "%d ", &gun ) ; 11 i f ( gun == 1 ) p r i n t f ( "Bu gün P a z a r t e s i d i r \n " ) ; 16 i f ( gun == 2 ) p r i n t f ( "Bu gün S a l ı d ı r \n " ) ; i f ( gun == 3 ) p r i n t f ( "Bu gün Çarşamba d ı r \n " ) ; i f ( gun == 4 ) 21 p r i n t f ( "Bu gün Perşembe d i r \n " ) ; i f ( gun == 5 ) p r i n t f ( "Bu gün Cuma d ı r \n " ) ; 26 i f ( gun == 6 ) p r i n t f ( "Bu gün Cumartesi d i r \n " ) ;

7 8.5. IF-ELSE YAPISI i f ( gun == 7 ) p r i n t f ( "Bu gün Pazar d ı r \n " ) ; r e t u r n 0 ; Buradaki gibi olası seçenekler çok olursa, switch-case yapısını kullanmak daha kolaydır (bkz. Kesim??). 8.5 if-else Yapısı Bazı durumlarda önümüze iki seçenek çıkar. Belirli bir koşulun sağlanması durumunda seçeneklerden birinin, aksi halde ötekinin işlemesi istenebilir. Başka bir deyişle, bir koşulun sağlanıp sağlanmamasına bağlı olarak, iki seçenekten birisini mutlaka yaptırmak gerekir. Bu durumda, if-else yapısını kullanırız. Bu yapının sözdizimi şöyledir: i f ( mantıksal deyim ) 2 deyim 1; e l s e deyim 2; Eğer deyim-1 ve deyim-2 yerinde işlenecek birden çok deyim varsa, onlar birer blok içine alınmalıdır: 1 i f ( mantıksal deyim ) deyimler 1 e l s e 6 deyimler 2 Eğer mantıksal-deyim true değerini alıyorsa deyim(ler)-1 işlenir ve program akışı if denetim yapısından sonraki deyimi işlemeye başlar. Eğer mantıksal-deyim false değerini alıyorsa deyim(ler)-1 işlenmeden atlanır ve deyim(ler)-2 işlenir. Sonra, program akışı if denetim yapısından sonraki deyimi işlemeye başlar. Bu yapıda program ya deyim(ler)-1 ya da deyim(ler)-2 yi işler. Bu yapı ardışık iki if... bloku ile yazılabilir görünüyor. Ama ardışık if bloklarının hiç birisi işlemeyebilir, bazısı ya da hepsi işleyebilir. if-else yapısında ise if ve else bloklarının ikisi birden işleyemez ama ikisinden birisini işlemeden geçemez. Program 8.5, kullanıcının girdiği sayının pozitif mi, yoksa negatif mi olduğunu söylüyor. Program iki seçenekten birisini ve yalnızca birisini işler. Program 8.5.

8 82 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI 2 i n t main ( ) s e t l o c a l e (LC_ALL, " " ) ; 7 i n t a ; p r i n t f ( " Bir tamsayı g i r i n i z \n " ) ; s c a n f ( "%d ", &a ) ; i f ( a>0) 12 p r i n t f ( " G i r g i ğ i n i z %d s a y ı s ı p o z i t i f t i r. \n ", a ) ; e l s e p r i n t f ( " G i r g i ğ i n i z %d s a y ı s ı n e g a t i f t i r. \n ", a ) ; 17 r e t u r n 0 ; Uyarı 8.2. Programda, girilecek a sayının tamsayı olması isteniyor. Ama kullanıcı, tamsayı yerine klavyeden float, char ya da string girebilir. C dili kullanıcının girdiği verinin tipinin doğru olup olmadığını denetlemez. Girilen veriyi int olarak okur. Örneğin, Program 8.5, tamsayı girilmesini istediği zaman kullanıcı; float sayısını girmiş olsun. Bir tamsayı g i r i n i z G i r d i ğ i n i z 654 s a y ı s ı p o z i t i f t i r. olur. Görüldüğü gibi, derleyici girilen sayının tam kısmını alıyor. Kesir kısmını atıyor. Aldığı sayıyı a değişkeninin değeri olarak işlemde kullanıyor. Önce M tuşuna arkasından Enter tuşuna basılmış olsun. Ama derleyici o anda &a adresinde yazılı olan binary veriyi int olarak okur ve okuduğu o sayıya göre işlem yapar. Son olarak a tamsayısı istenince bir string girelim. Gene derleyici aynı işi yapar. &a adreinde yazılı olan binary veriyi int olarak okur ve okuduğu o sayıya göre işlem yapar. Buradan çıkaracağımız sonuç şudur: Uyarı 8.3. C dili veri tipini denetlemez.

9 8.5. IF-ELSE YAPISI 83 Değişkene, bildirimdekinden farklı bir veri tipi atanabilir. Derleyici, o anda adresteki binary değeri istenen tipmiş gibi okur. Tip denetimi yapmaması derleyiciye hız kazandırır; ama kullanıcı dikkatli olmazsa koşma hataları (run time error) oluşabilir. Bilindiği gibi, koşma anı hataları, bilgisayar programcılığında ölümcül hatalardan sayılır. Çünkü programın hatalı iş yaptığı bilinmeyebilir. Uyarı 8.4. if... denetimi için mutlaka bir mantıksal_deyim (boolean) gereklidir. Program 8.6, kullanıcının girdiği sayının çift mi, yoksa tek mi olduğunu söylüyor. Program iki seçenekten birisini ve yalnızca birisini işler. Program i n t main ( ) s e t l o c a l e (LC_ALL, " " ) ; 7 i n t a ; p r i n t f ( " Bir tamsayı g i r i n i z \n " ) ; s c a n f ( "%d ", &a ) ; 12 i f ( a%2) p r i n t f ( " G i r g i ğ i n i z %d s a y ı s ı ç i f t t i r \n ", a ) ; 17 e l s e p r i n t f ( " G i r g i ğ i n i z %d s a y ı s ı t e k t i r \n ", a ) ; r e t u r n 0 ; Program 8.7 verilen bir yılın artık yıl olup olmadığını bulur. Program i n t main ( ) s e t l o c a l e (LC_ALL, " " ) ; i n t sene ; p r i n t f ( " Hangi y ı l? ( yyyy ) : \n " ) ; s c a n f ( "%d ", &sene ) ; i f ( ( sene % 4 == 0 && sene % 100!= 0) sene % 400 == 0) p r i n t f ( " %d y ı l ı a r t ı k y ı l d ı r. Şubat a y ı 29 ç e k e r. \n ", sene ) ;

10 84 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI e l s e 16 p r i n t f ( " %d y ı l ı a r t ı k d e ğ i l d i r. Şubat a y ı 28 ç e k e r. \n ", sene ) ; r e t u r n 0 ; 1 Hangi y ı l? ( yyyy ) : y ı l ı a r t ı k y ı l d e ğ i l d i r. Şubat a y ı 28 ç e k e r. / Uyarı 8.5. Ardışık if... yapısına benzer olarak, ardışık if-else yapıları kurulabilir. Bu yapıda her bir if-else bloku ötekilerden bağımsız çalışır. Ama program saçaklanır, doğrusal akmaz Çoklu Saçaklar Bazen program akışının yönlenebileceği seçenekler çoklu saçaklara ayrılabilir. Bu durumlarda if-else ya da else-if bloklarından oluşan çoklu durum yapıları oluşur. İlk if-else yapısında ikiye ayrılan seçenekler, her adımda tekrar ya if ya da else tarafında ikiye ayrılarak bir saçak oluştururlar. Sözdizimi şöyledir: i f ( boolean 1) Deyimler 1; 5 e l s e i f ( boolean 2) Deyimler 2; e l s e i f ( boolean 3) 10 Deyimler 3;... e l s e 15 Deyimler n ; Bu yapıda g e r e k t i ğ i kadar e l s e i f deyimi k u l l a n ı l a b i l i r. Her adımda program a k ı ş ı ya i f t a r a f ı n a ya da e l s e t a r a f ı n a y ö n l e n i r. Adımlardan h i ç b i r i s i koşulu ( boolean ) sağlamıyorsa, son deyim o l a r a k e l s e bloku i ş l e r. 3 /

11 8.5. IF-ELSE YAPISI 85 Örnekler Program 8.8 bir üçgenin üç kenarını okuyor. Sonra "iki kenar toplamı üçüncü kenardan büyüktür" kuralını uygulayarak, girilen kenar uzunluklarının bir üçgen oluşturup oluşturmadığını denetliyor. Denetleme işini main() dışında tanımlanan ucgen() fonksiyonu yapıyor. main(), o fonksiyonu gerçek parametre değerleriyle çağırıyor. Tabii, istenirse, ucgen() fonksiyonunun gövdesi main() nin gövdesi içine yazılabilir. Ama büyük programlarda, her farklı işi bir fonksiyona yaptırmak daha iyidir. Program main ( ) s e t l o c a l e (LC_ALL, " " ) ; i n t a, b, c ; 7 p r i n t f ( " Üçgenin kenar u z u n l u k l a r ı n ı g i r i n i z : a, b, c =? " ) ; s c a n f ( "%d %d %d ",&a,&b,& c ) ; ucgen ( a, b, c ) ; 12 ucgen ( x, y, z ) i n t x, y, z ; i f ( x+y <= z ) p r i n t f ( " z k e n a r ı çok büyük. Bu b i r üçgen d e ğ i l d i r. \ n " ) ; 17 e l s e i f ( x+z < y ) p r i n t f ( " y çok büyük. Bu b i r üçgen d e ğ i l d i r. \ n " ) ; e l s e i f ( y+z < x ) p r i n t f ( " x çok büyük. Bu b i r üçgen d e ğ i l d i r. \ n " ) ; e l s e 22 p r i n t f ( "Bu b i r u c g e n d i r. \ n " ) ; Program 8.9, kullanıcının girdiği ısı derecesine göre, günün sıcak olup olmadığını söylüyor. Program main ( ) s e t l o c a l e (LC_ALL, " " ) ; i n t i ; p r i n t f ( " Bugün ı s ı kaç d e r e c e d i r? " ) ; s c a n f ( "%d ", &i ) ;

12 86 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI 12 i f ( i < 10) p r i n t f ( " Bugün hava soğuktur. \n " ) ; e l s e i f ( i < 20) p r i n t f ( " Bugün hava s e r i n d i r. \n " ) ; e l s e 17 p r i n t f ( " Bugün hava s ı c a k t ı r. \n " ) ; 2 Bugün ı s ı kaç d e r e c e d i r? 5 Bugün hava soğuktur. / Program 8.10, kullanıcının girdiği sayının 3 ile bölünebildiğini, çift olduğunu, tek olduğunu ya da tek olduğu halde 3 ile bölünemediğini söylüyor. Program main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; i n t i ; 10 p r i n t f ( " Bir tamsayı g i r i n i z \n " ) ; s c a n f ( "%d ", &i ) ; i f ( i % 3 == 0) p r i n t f ( "%d t a m s a y ı s ı 3 i l e tam bölünür. ", i ) ; 15 e l s e i f ( i % 2 == 0) p r i n t f ( "%d t a m s a y ı s ı ç i t f s a y ı d ı r. ", i ) ; e l s e p r i n t f ( "%d t a m s a y ı s ı tek s a y ı d ı r, ama 3 i l e tam bölünmez. ", i ) ; 1 Bir tamsayı g i r i n i z t a m s a y ı s ı 3 i l e tam bölünür. / if-else ve else-if yapıları istenildiği kadar içiçe konulabilir. Program 8.11, kullanıcının girdiği puana göre karne notunu söylüyor. Program 8.11.

13 8.5. IF-ELSE YAPISI 87 main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; i n t i ; 10 p r i n t f ( " Not o r t a l a m a n ı z ı g i r i n i z : \n " ) ; s c a n f ( "%d ", &i ) ; i f ( i > 90) p r i n t f ( " Puanınız %d i s e notunuz A o l u r. \n ", i ) ; 15 e l s e i f ( i > 75) p r i n t f ( " Puanınız %d i s e notunuz B o l u r. \n ", i ) ; e l s e i f ( i > 60) p r i n t f ( " Puanınız %d i s e notunuz C o l u r. \n ", i ) ; e l s e i f ( i > 50) 20 p r i n t f ( " Puanınız %d i s e notunuz D o l u r. \n ", i ) ; e l s e p r i n t f ( " Puanınız %d i s e notunuz F o l u r. \n ", i ) ; 25 r e t u r n 0 ; Not o r t a l a m a n ı z ı g i r i n i z : 92 Puanınız 92 i s e notunuz A o l u r. 5 / Program 8.12, kullanıcının girdiği karakterin tipini söylüyor. Program main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; c h a r ch ; 10 p r i n t f ( " Bir tuşa b a s ı n ı z : " ) ; s c a n f ( "%c ", &ch ) ; i f ( i s u p p e r ( ch ) ) p r i n t f ( " Büyük h a r f g i r d i n i z. " ) ; e l s e 15 i f ( i s l o w e r ( ch ) ) p r i n t f ( " Küçük h a r f g i r d i n i z. " ) ; e l s e i f ( i s d i g i t ( ch ) ) p r i n t f ( " Bir rakam g i r d i n i z. " ) ; 20 e l s e p r i n t f ( " A l f a s a y ı s a l olmayan b i r k a r e k t e r g i r d i n i z. " ) ;

14 88 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI Programın f a r k l ı koşmalarında, g i r i l e n k a r e k t e r e b a ğ l ı o l a r a k ç ı k t ı l a r şuna benzer. 3 Bir tuşa b a s ı n ı z : H Büyük h a r f g i r d i n i z s a t ı r y e r i n e ch = g e t c h a r ( ) ; y a z ı l a b i l i r. / Uyarı 8.6. karakter ve string fonksiyonları için bkz. Bölüm??. Program 8.13, [1,100] aralığında 10 tane rasgele sayı üretiyor. her birisinin tek mi yoksa çift mi olduğunu buluyor. Program #i n c l u d e <s t d l i b. h> 3 i n t main ( ) s e t l o c a l e (LC_ALL, " " ) ; 8 i n t c, r ; f o r ( c = 1 ; c <= 1 0 ; c++) r = rand ( ) % ; p r i n t f ( "%d ", r ) ; 13 i f ( r % 2) p r i n t f ( " Sayı ç i f t t i r. \n " ) ; 18 e l s e p r i n t f ( " Sayı t e k t i r. \n " ) ; Sayı t e k t i r. 68 Sayı t e k t i r. 35 Sayı ç i f t t i r. 1 Sayı ç i f t t i r. 70 Sayı t e k t i r Sayı ç i f t t i r. 79 Sayı ç i f t t i r. 59 Sayı ç i f t t i r. 63 Sayı ç i f t t i r. 65 Sayı ç i f t t i r. 12 /

15 8.5. IF-ELSE YAPISI 89 switch-case Yapısı Program akışının yönlenebileceği olası seçenekler çoksa, ardışık if, ya da saçak yapıları yerine switch yapısı daha kolay olur. s w i t c h ( s e ç i c i ) 3 c a s e s e ç k i 1: deyim 1; c a s e s e ç k i 2: 8 deyim 2; b r e a k... [ d e f a u l t : 13 deyim b r e a k ] Bu yapıda case ifadelerinin sayısı için bir kısıt yoktur, gerektiği kadar case bloku konulabilir. Bu sözdiziminde geçen terimlerin açıklanması: switch(seçici): Seçici bir değişken ya da bir ifade olabilir. Seçici değişken olduğunda int ya da char tiplerinden herhangi birisinden bir literal (sabit değer) almalıdır. Seçici bir deyim ise bu türlerden literal bir değer veren formüldür. Burada formül, matematiksel formüllerde olduğu gibi, bir sonuç veren deyim olarak algılanmalıdır. case seçki: Seçici değişkenin ya da seçici ifadenin aldığı değerdir. O değeri, çoklu yol ayrımında program akışına yol gösteren bir bir levha, bir etiket gibi düşünebiliriz. Bu değer seçicinin alabildiği yukarıdaki veri tiplerinden herhangi birisi olabilir. Tabii, bu değer bir literal (sabit değer) olmalıdır. int ya da char değerlerin artan sırada dizilmesi önerilir; ama zorunlu değildir. case_bloku: Bir case seçeneğinde işlenecek deyimlerden oluşan bloktur. Blokta birden çok deyim olabilir. Her case_blokundaki deyimler belirli olduğundan blok parantezine gerek yoktur. break: Bir case seçeneğine giren program akışı, o seçenekteki deyimleri işleyince, sonrakilere geçmeden switch yapısının dışına çıkmalıdır. Bu çıkışı break anahtar sözcüğü sağlar. break; deyimi kullanılmazsa, program akışı, sonraki case seçeneklerinin hepsini çalıştırır. break; deyimi, program akışını switch-case yapısından çıkarır ve switch-case yapısından sonraki ilk deyime gönderir.

16 90 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI default: İsteğe bağlı (optional) bir seçenektir. Seçicinin değeri, case ile belirlenen hiçbir seçki ile uyuşmadığı zaman yapılmasını istediğimiz işler için gerekli deyim(ler)i bu seçeneğe yazarız. case seçeneklerinden hiçbiri gerçekleşemezse default seçeneği çalışır. Seçicinin değerinin, case lerdeki seçkilerden birisine eşit olacağı kesinlikle biliniyorsa, default seçeneğini yazmanın gereği yoktur. switch yapısının nasıl kullanıldığını aşağıdaki örnekte göreceğiz. Program 8.14, switch-case yapısında seçici olarak int tipi değişken kullanıyor. case bloklarının sonunda break; deyimi olmadığı için, ilk seçkiden sonra gelen case bloklarının hepsi çalışır. Ama böyle olması genellikle istenilen iş değildir. Program main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; i n t x ; s c a n f ( "%d ", &x ) ; s w i t c h ( x ) c a s e 1 : 10 p r i n t f ( " 1. konum. \ n " ) ; p r i n t f ( " B i r i n c i adım\n " ) ; c a s e 2 : p r i n t f ( " 2. konum. \ n " ) ; p r i n t f ( " i k i n c i adim\n " ) ; 15 c a s e 3 : p r i n t f ( " 3. konum. \ n " ) ; p r i n t f ( " Üçüncü adım\n " ) ; c a s e 4 : p r i n t f ( " 4. konum. \ n " ) ; 20 p r i n t f ( " Dördüncü adım\n " ) ; d e f a u l t : p r i n t f ( " Hiç adım t ı l m a d ı \n " ) ; 1 c a s e s e ç e n e k l e r i n d e break ; deyimi o l m a d ı ğ ı i c i n s e ç i l e n c a s e blokundan s o n r a k i bütün c a s e b l o k l a r ı ç a l ı ş ı r. s e ç k i \emph i n t t i p t e n i s e, d e ğ e r i s c a n f ( ) f o n k s i y o n u i l e o k u n a b i l i r. / Program 8.15, switch-case yapısında seçici olarak char tipi değişken kullanıyor. case seçeneklerinin sonunda break; deyimi olduğu için, program

17 8.5. IF-ELSE YAPISI 91 akışı bir case blokunu işleyince sonrakilere uğramadan switch-case yapısı dışına çıkar. Yapıdan sonraki ilk deyime gider. Program main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; i n t ch ; ch = g e t c h a r ( ) ; s w i t c h ( ch ) c a s e M : 10 c a s e m : p r i n t f ( " 1. konum. \ n " ) ; p r i n t f ( " B i r i n c i adım\n " ) ; c a s e P : 15 c a s e p : p r i n t f ( " 2. konum. \ n " ) ; p r i n t f ( " i k i n c i adim\n " ) ; c a s e R : 20 c a s e r : p r i n t f ( " 3. konum. \ n " ) ; p r i n t f ( " Üçüncü adım\n " ) ; 25 c a s e B : c a s e b : p r i n t f ( " 4. konum. \ n " ) ; p r i n t f ( " Dördüncü adım\n " ) ; 30 d e f a u l t : p r i n t f ( " Hiç adım a t ı l m a d ı \n " ) ; 2 c a s e s e ç e n e k l e r i n e break deyimi konulduğu i ç i n, s e ç k i y e b a ğ l ı o l a r a k i ş l e n e n c a s e blokundan sonra program a k ı ş ı switch c a s e y a p ı s ı d ı ş ı n a ç ı k a r ; yapıdan s o n r a k i deyime g e ç e r. char t i p i n d e n olan s e ç k i d e ğ e r i n i e l d e etmek i ç i n g e t c h a r ( ) f o n k s i y o n u k u l l a n ı l ı y o r. S e ç k i olarak, k u l l a n ı c ı n ı n büyük ya da küçük h a r f g i r e b i l m e s i i ç i n, her i k i s e ç e n e k a y r ı a y r ı y a z ı l d ı. 7 / Program 8.2, switch-case yapısında seçici olarak int tipi değişken kullanılmasına örnektir. Örnek 8.2.

18 92 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI 3 main ( ) s e t l o c a l e (LC_ALL, " " ) ; i n t ay ; 8 p r i n t f ( " Kaçıncı ay? \n " ) ; s c a n f ( "%d ", &ay ) ; s w i t c h ( ay ) 13 c a s e 1 : p r i n t f ( " Ocak " ) ; c a s e 2 : p r i n t f ( " Şubat " ) ; 18 c a s e 3 : p r i n t f ( " Mart " ) ; c a s e 4 : 23 p r i n t f ( " Nisan " ) ; c a s e 5 : p r i n t f ( " Mayıs " ) ; 28 c a s e 6 : p r i n t f ( " Haziran " ) ; c a s e 7 : p r i n t f ( "Temmuz" ) ; 33 c a s e 8 : p r i n t f ( " Ağustos " ) ; c a s e 9 : 38 p r i n t f ( " Eylül " ) ; c a s e 1 0 : p r i n t f ( " Ekim " ) ; 43 c a s e 1 1 : p r i n t f ( " Kasım " ) ; c a s e 1 2 : p r i n t f ( " A r a l ı k " ) ; 48 Kaçıncı 7 Temmuz 5 / ay

19 8.5. IF-ELSE YAPISI 93 Program 8.16 switch-case yapısında seçici olarak, char tipten literal değer alan bir deyim kullanılmasına örnektir. Kullanıcının girdiği harfi seçki deyimi (toupper(ch)) büyük harfe çevirmektedir. Program main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; c h a r ch ; p r i n t f ( " Karne Notunuzu g i r i n i z \n " ) ; 10 ch = g e t c h a r ( ) ; s w i t c h ( toupper ( ch ) ) c a s e A : 15 p r i n t f ( " P e k i y i " ) ; c a s e B : p r i n t f ( " İ y i " ) ; c a s e C : p r i n t f ( " Orta " ) ; c a s e D : p r i n t f ( "Hmmmm.... " ) ; 30 c a s e F : p r i n t f ( " Daha i y i s i n i b a ş a r a b i l i r s i n! " ) ; d e f a u l t : 35 p r i n t f ( " B a ş a r ı notunu y a n l ı ş g i r d i n i z! " ) ; 2 Karne notunuzu g i r i n i z : a P e k i y i / Program 8.17, seçici değişken yerine bir deyimin kullanılabileceğini gösteriyor. (puan / 10) deyimi kullanıcının 100 tam puan üzerinden girdiği puanı 10 tam not üzerinden değerlendirme sistemine dönüştürmektedir.

20 94 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI Program main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; i n t puan ; p r i n t f ( " P u a n ı n ı z ı g i r i n i z? \n " ) ; 10 s c a n f ( "%d ", &puan ) ; s w i t c h ( puan / 10) c a s e 1 0 : p r i n t f ( " Notunuz A d ı r. " ) ; 15 c a s e 9 : p r i n t f ( " Notunuz A d ı r. " ) ; c a s e 8 : 20 p r i n t f ( " Notunuz B+ d i r. " ) ; c a s e 7 : p r i n t f ( " Notunuz B d i r. " ) ; 25 c a s e 6 : p r i n t f ( " Notunuz B d i r. " ) ; c a s e 5 : p r i n t f ( " Notunuz C+ d i r. " ) ; 30 c a s e 4 : p r i n t f ( " Notunuz C d i r. " ) ; c a s e 3 : 35 p r i n t f ( " Notunuz C d i r. " ) ; c a s e 2 : p r i n t f ( " Notunuz D+ d i r. " ) ; 40 c a s e 1 : p r i n t f ( " Notunuz D d i r. " ) ; c a s e 0 : p r i n t f ( " Notunuz F d i r. " ) ; 45 d e f a u l t : p r i n t f ( " Y a n l ı ş not g i r d i n i z! " ) ; 50 Not o r t a l a m a n ı z n e d i r? Notunuz A d ı r. /

21 8.5. IF-ELSE YAPISI Koşullu Operatör? : operatorü Bir değişkenin değeri bir mantıksal ifadenin doğru ya da yanlış olmasına bağlı olarak belirlenebiliyorsa, onu if-else deyimi ile tanımlamak yerine, daha kısa olarak koşullu deyim (üçleme, conditional operator, ternary conditional) ile tanımlayabiliriz. Örneğin, a ile b sayılarının maksimumunu if-else yapısı ile i f ( a > b ) max = a ; e l s e 5 max = b ; biçiminde bulabiliriz. Koşullu deyim kullanarak, bunu daha kısa olarak, max = ( a > b )? a : b ; biçiminde yazabiliriz. Bu deyimin sonucu, eğer (a > b) ise a, değilse b dir. Genel olarak, Tanım 8.1. e1? e2 : e3 deyimi, bir operatördür, dolayısıyla bir değer verecektir. e1 bir mantıksal deyimdir (boolean), e2 ve e3 literal değerlerdir. Eğer e1 true ise, 8.1 operatörünün değeri e2, false ise e3 olur. Bu operatöre koşullu (üçleme, conditional, ternary) operatör denilir. En genel olarak, koşullu operatörün sözdizimini (sytax) Tanım 8.2. mantıksal deyim? terim1 : terim2 ; biçimindedir. Burada mantıksal-deyim true ya da false değerini alan bir boolean deyimdir. terim1 ve terim2 literal (sabit) değerlerdir ya da literal değerler veren iki deyimdir. Örneğin, i n t c = (1 > 2)? ( c = 25) : ( c =18) ; operatörünün değeri 18 olur. Program 8.18, verilen iki sayının minimumunu buluyor. Program 8.18.

22 96 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI 4 i n t main ( ) s e t l o c a l e (LC_ALL, " " ) ; i n t a, b, min ; 9 p r i n t f ( " İ k i tamsayı g i r i n i z \n " ) ; s c a n f ( "%d %d ", &a, &b ) ; p r i n t f ( " G i r g i ğ i n i z s a y ı l a r %d ve %d d i r. r \n ", a, b ) ; 14 min = ( ( a < b )? a : b ) ; p r i n t f ( " Küçük olan s a y ı : %d d i r \n ", min ) ; 19 r e t u r n 0 ; 1 İ k i tamsayı g i r i n i z Küçük olan s a y ı : 23 d i r. / Program 8.19, koşullu operatörün mantıksal ifadelere de uygulanabileceğini gösteriyor. Program i n t main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; i n t a=5, b, min ; b = (3 > 2)? (3 > a ) : (3 < a ) ; 10 p r i n t f ( "%d\n ", (3 > a ) ) ; p r i n t f ( "%d\n ", b ) ; i f (3 > 2) b = (3 > a ) ; 15 e l s e b = (3 < a ) ; p r i n t f ( "%d\n ", b ) ; /

23 8.6. ALIŞTIRMALAR Alıştırmalar 1. Program 8.3 else-if yapısına dönüştürünüz. Örnek 8.3. i n t main ( ) 5 s e t l o c a l e (LC_ALL, " " ) ; i n t gun ; p r i n t f ( " Haftanın k a ç ı n c ı günündeyiz? \n " ) ; s c a n f ( "%d ", &gun ) ; 10 s w i t c h ( gun ) c a s e 1 : p r i n t f ( "Bu gün P a z a r t e s i d i r \n " ) ; c a s e 2 : p r i n t f ( "Bu gün S a l ı d ı r \n " ) ; c a s e 3 : p r i n t f ( "Bu gün Çarşamba d ı r \n " ) ; 25 c a s e 4 : p r i n t f ( "Bu gün Perşembe d i r \n " ) ; c a s e 5 : 30 p r i n t f ( "Bu gün Cuma d ı r \n " ) ; c a s e 6 : p r i n t f ( "Bu gün Cumartesi d i r \n " ) ; c a s e 7 : p r i n t f ( "Bu gün Pazar d ı r \n " ) ; d e f a u l t : p r i n t f ( " Haftada ö y l e b i r gün yok! \n " ) ; r e t u r n 0 ; 2. Program 8.20 i çözümleyiniz. Program 8.20.

24 98 BÖLÜM 8. PROGRAM AKIŞININ DENETIMI 4 i n t g ; v o i d t a t i l _ m i ( g ) i n t gun = g ; i f ( gun> 0 & gun< 6) p r i n t f ( "Bu gün i ş günüdür. Ç a l ı ş m a l ı s ı n \n " ) ; 9 i f ( gun == 6 gun == 7) p r i n t f ( "Bu gün h a f t a sonudur. D i n l e n m e l i s i n \n " ) ; i n t main ( ) 14 s e t l o c a l e (LC_ALL, " " ) ; i n t n ; p r i n t f ( "Bu gün h a f t a n ı n k a ç ı n c ı günüdür? \n " ) ; 19 s c a n f ( "%d ", &n ) ; t a t i l _ m i ( n ) ; r e t u r n 0 ; Yalın if-else yapısında kaç seçenek mümkündür? 4.1 i n t c = (7 > 9)? 25 : 4 5 ; operatörünün sonucu nedir? 5. Yukarıdaki koşullu operatörü if-else yapısı haline getiriniz.

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

Detaylı

Bölüm 08 Program Akışının Yönlendirilmesi

Bölüm 08 Program Akışının Yönlendirilmesi Bölüm 08 Program Akışının Yönlendirilmesi blok if yönlendirmesi switch yönlendirmesi for döngüsü while döngüsü do... while döngüsü Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı

Detaylı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

Detaylı

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 7. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Program Denetimi Yük. Müh. Köksal Gündoğdu 2 Program Denetimi Bir program, belirli deyim satırlarından oluşur ve genellikle bu

Detaylı

Döngüler. 1.1 while döngüsü

Döngüler. 1.1 while döngüsü 1 Döngüler Belirli bir iş birden çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü yapıları o deyim(ler)i istenildiği kadar tekrarlar. C dilinde bu işi yapan üç ayrı yapı vardır: 1. while

Detaylı

Denetim Yapıları. 11.1 Program Akışının Yönlendirilmesi. Şekil 11.1: Akışı Koşullu Yönlendirme

Denetim Yapıları. 11.1 Program Akışının Yönlendirilmesi. Şekil 11.1: Akışı Koşullu Yönlendirme 11 Denetim Yapıları Şekil 11.1: Akışı Koşullu Yönlirme 11.1 Program Akışının Yönlirilmesi Her programlama dilinde, program akışı hiç bir koşula bağlı olmaksızın doğrusal gidiyorsa, deyimler programda yazıldığı

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 3 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bağıntısal Operatörler operatör tanımı < küçüktür > büyüktür = büyük eşittir eşittir!= eşit

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme: 1 Program Çözümleme Bir bilgisayar programını çözümleme eylemini, onun her satırının (deyiminin) yaptığı işi açıklamak olarak anlayacağız. Bazı kaynaklarda bu eyleme analiz der. Daha ileri düzeyde "trace"

Detaylı

Karşılaştırma İşlemleri ve Koşullu İfadeler

Karşılaştırma İşlemleri ve Koşullu İfadeler Karşılaştırma İşlemleri ve Koşullu İfadeler BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz Karşılaştırma İşlemleri Java'da sayısal veri tiplerinin karşılaştırılması için aşağıdaki karşılaştırma

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların

Detaylı

Internet Programming II

Internet Programming II Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Kontrol deyimleri programlamanın olmazsa olmaz koşullarındandır. Şartlara (karşılaştırma) bağlı

Detaylı

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end 4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby

Detaylı

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz? ve Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz? Şimdi ne tarafa gideceğiz yahu? KARAR VER!!! Karar mekanizması A B if yapısı ve kullanımı

Detaylı

PROGRAMLAMA DİLLERİ I

PROGRAMLAMA DİLLERİ I PROGRAMLAMA DİLLERİ I Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Öğr. Gör. M. Mutlu YAPICI Hafta 1. Hafta 2. Hafta 3. Hafta 4. Hafta 5. Hafta 6. Hafta 7. Hafta

Detaylı

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf Giriş GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI printf Fonksiyonu scanf Fonksiyonu Verilerin kaybolmaması için hafızada değişkenler içine yerleştirilmeleri gerekir. Bu veriler iki şekilde yerleştirilebilir. Değişkene

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

Program AkıĢ Kontrol Yapıları

Program AkıĢ Kontrol Yapıları C PROGRAMLAMA Program AkıĢ Kontrol Yapıları Normal Ģartlarda C dilinde bir programın çalıģması, komutların yukarıdan aģağıya doğru ve sırasıyla iģletilmesiyle gerçekleģtirilir. Ancak bazen problemin çözümü,

Detaylı

Akış Kontrol Mekanizmaları

Akış Kontrol Mekanizmaları Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün

Detaylı

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI C programlama dilinde, diğer programlama dillerinde olduğu gibi, işlemler, ilk satırdan başlamak üzere sırayla çalışır. Program kontrol yapıları ise, programın

Detaylı

Program Akış Kontrol Yapıları

Program Akış Kontrol Yapıları Program Akış Kontrol Yapıları Giriş Normal şartlar altında program içerisindeki çalıştırılabilir satırlar, yazılmış oldukları sırada, yani birinden sonra diğerinin çalışması şeklinde ilerler. Programın

Detaylı

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1 ve M.ilkucar 2010 - MAKU MYO 1 7- PROGRAM YAPISAL KOMUTLARI Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz? M.ilkucar 2010 - MAKU MYO 2

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir. Bölüm 09 Döngüler for döngüsü do döngüsü while döngüsü foreach döngüsü Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

M.ilkucar MAKU MYO 1

M.ilkucar MAKU MYO 1 M.ilkucar 2010 - MAKU MYO 1 7- PROGRAM YAPISAL KOMUTLARI Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz? M.ilkucar 2010 - MAKU MYO 2 7-

Detaylı

Ders 6: Karşılaştırma Deyimleri

Ders 6: Karşılaştırma Deyimleri Ders 6: Karşılaştırma Deyimleri Giriş Program içerisinde bazen iki veya daha fazla değerin karşılaştırılması gerekebilir Bunun için, bütün programlama dillerinde karşılaştırma deyimleri mevcuttur C dili,

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

Detaylı

Java da Program Denetimi ve Operatörler

Java da Program Denetimi ve Operatörler Java da Program Denetimi ve Operatörler 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! 2 Temel (Primitive) Tiplerde Atama int a, b ; a=4 ; b=5 ; a=b ; Sonuç : a=5, b=5 3 Nesneler

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir: Gereksiz Kodlar Kaan Aslan 9 Temuz 1997 Kapalı spor salonu, durak yeri, taşıt aracı, en optimum, geri iade etmek, davranış biçimi Bu ifadelerde bir gariplik var, değil mi? Açık spor salonu göreniniz var

Detaylı

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar Bölüm 5 Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar İçindekiler 5.1 Formatlı Yazdırma............................ 34 5.2 Döngü Deyimleri............................. 34 5.2.1

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8 BTP 27 İNTERNET PROGRAMCILIĞI I Ders 8 Değişkenler 2 Tamsayı Değerler (Integer) Tamsayılar, tabanlı (decimal), 8 tabanlı (octal) veya 6 tabanlı (hexadecimal) olabilir. 8 tabanındaki sayıları belirtmek

Detaylı

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

Detaylı

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else { KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR IF ELSE YAPISI if (deger) { else { YUKARIDAKI IFADEDE deger EGER TRUE İSE if PARANTEZLERİ İÇİNDEKİ DEĞER

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları C Programlama Dr. Serkan DİŞLİTAŞ 5.1. Atlama Komutları Program akışının yönlendirilmesinde

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Mantıksal İşlemler. 7.1 true, false, nil

Mantıksal İşlemler. 7.1 true, false, nil 7 Mantıksal İşlemler 7.1 true, false, nil Doğru ya da Yanlış değer alan önermelere (ifadelere) mantıksal (logic) deyimler ya da boolean deyimler denilir ([5]). Bir çok dilde mantıksal işlemler true ve

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 2 (Denetim Yapıları, Diziler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Denetim Yapıları 1 if else Seçme yapısı, mantıksal

Detaylı

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN ESM-361 Mikroişlemciler 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN Bit operatörleri Bit operatörleri bit düzeyinde işlem yapan operatörlerdir; yani sayıları bir bütün olarak değil, bit bit

Detaylı

Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım

Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım Referans: Bugün: 1. Ders Notları. Ders #3 Tekrar Do while ve for döngüleri 1. Tekrar Geçen ders while döngüsü ve seçme kontrol teknikleri

Detaylı

Temel Bilgisayar Programlama

Temel Bilgisayar Programlama Temel Bilgisayar Programlama C Programlamaya Giriş Dr. Tahir Emre Kalaycı 2012 Dr. Tahir Emre Kalaycı () Temel Bilgisayar Programlama 2012 1 / 16 İçerik 1 Geçtiğimiz hafta 2 Yapısal Program Geliştirme

Detaylı

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır. PHP de Program Denetimi Belli durumlarda örneğin değişkenlerin aldığı değerlere veya sayfaya yapılan ziyaretlere göre PHP programının nasıl davranacağına karar vermemiz gerekir. Bu yönlendirmeleri, program

Detaylı

Döngü ve Koşul Deyimleri

Döngü ve Koşul Deyimleri Döngü ve Koşul Deyimleri Programlar üç temel blok kullanılarak gerçekleştirilebilirler. art arda, bir koşula bağlı olarak ve sonlu sayıda yineleme (döngü) dir Koşul Deyimleri Birkaç seçenekten birini seçmek

Detaylı

Koşullu Önermeler (if else)

Koşullu Önermeler (if else) Koşullu Önermeler (if ) Koşullu Önermeler Şu ana kadarki önermelerimiz birbiri ardına sıralı bir şekilde çalışıyorlar. Aşağıdaki durumlarda nasıl çalışacaklar peki? bir koşula bağlı olarak bir önermeyi

Detaylı

Mikroişlemcilerde Aritmetik

Mikroişlemcilerde Aritmetik Mikroişlemcilerde Aritmetik Mikroişlemcide Matematiksel Modelleme Mikroişlemcilerde aritmetik işlemler (toplama, çıkarma, çarpma ve bölme) bu iş için tasarlanmış bütünleşik devrelerle yapılır. Bilindiği

Detaylı

Rasgele Sayılar. 1.1 Bilgisayar Rasgele Sayı Üretemez! 1.2 rand() fonksiyonu

Rasgele Sayılar. 1.1 Bilgisayar Rasgele Sayı Üretemez! 1.2 rand() fonksiyonu 1 Rasgele Sayılar 1.1 Bilgisayar Rasgele Sayı Üretemez! Bilgisayar uygulamalarında sık sık rasgele sayı üretimi ile karşılaşırız. Hemen her oyunda ve kriptografide karşımıza aynı soru çıkar. Bilgisayarda

Detaylı

BÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ. GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur.

BÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ. GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur. BÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur. #include main () { int a=5 ; dal1: printf (

Detaylı

Veritabanı. SQL (Structured Query Language)

Veritabanı. SQL (Structured Query Language) Veritabanı SQL (Structured Query Language) SQL (Structured Query Language) SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için kullanılan dildir. SQL, bütün kullanıcıların ve uygulamaların veritabanına

Detaylı

Fonksiyonlar -Genel Test- A

Fonksiyonlar -Genel Test- A 1 Fonksiyonlar -Genel Test- A 1. C dilinde fonksiyon bildirimi için hangisi gereklidir? (a) Fonksiyonun döndüreceği veri tipi (b) Fonksionun adı (c) Fonksiyon parantezi ( ) (d) Hepsi 2. C dilinde fonksion

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Koşul Karşılaştırma Operatörleri Mantıksal

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; } for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) ifadeler; Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar. Koşul: Döngünün

Detaylı

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik-Mimarlık Fakültesi Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :26.11.2012, 60 dak. Dikkat!!! Soru kitapçığında

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu PROGRAM AKIŞ DENETİMİ Program akış denetimi konusu temel olarak 2 e ayrılır. Bunlar; 1)Koşul Deyimleri 2)Döngü Deyimleri KOŞUL DEYİMLERİ Koşul deyimleri temel olarak programı kontrol etmeye yararlar. Bunlara

Detaylı

3.1 Pointer in Yararları

3.1 Pointer in Yararları 3 Pointers Pointer, başka bir değişkenin bellekteki adresini işaret eden bir değişkendir. O nedenle, pointere işaretçi, gösterici adları verilir. Değişkenler için olduğu gibi, pointerin değeri, işaret

Detaylı

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır. 9 Integer Sınıfı Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır. Integer Literal Tamsayı gösteren metinler, 1 0, 1, 123, 123456789012345678901234567890 biçiminde yalnızca

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

Bölüm 4 C de Program Kontrolü

Bölüm 4 C de Program Kontrolü 1 Bölüm 4 C de Program Kontrolü Outline 4.1 Giriş 4.2 Döngülerin Temelleri 4.3 Sayıcı Kontrollü Döngüler 4.4 for Döngü Yapısı 4.5 for Döngü Yapısıyla İlgili Notlar ve Gözlemler 4.6 for Yapısıyla İlgili

Detaylı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Kontrol Yapıları if Seçme Deyimi if... else Seçme Deyimi while Tekrar

Detaylı

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları BLM111 Programlama Dilleri I Hafta 9 C Dilinde Kontrol ve Döngü Yapıları Yrd. Doç. Dr. Caner ÖZCAN Karar (Karşılaştırma) Komutları if-else Koşulların kontrolünde kullanılan komutlardır. Koşulların doğru

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

Detaylı

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Nesne Bellekte yer kaplayan ve içeriklerine

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9 BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Akış Konrol Mekanizmaları 1 Koşul İfadeleri Programlar içersinde bazı durumlarda programın akışının değişmesi ya da farklı işlemlerin yapılması gerekebilir. Bazen de seçimlerin yapılması ya da belirli

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 15.02.2011 1 Genel Programlama Tekrar Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Önceki bölümde bir problemin çözümü ile

Detaylı

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 14.04.2015 Süre : 60 dak. 1. Tür dönüşümleri... olmak üzere iki

Detaylı

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ BİLGİSAYAR PROGRAMLAMAYA GİRİŞ 5. ders notu Örnek program yazılımları İlişkisel operatörler Mantıksal operatörler Şartlı deyimler İf deyimi Kaynak: Dr.Deniz DAL ders sunumları Örnek : Dışarıdan girilen

Detaylı

İnternet Programcılığı Dersi 2.Dönem Ders Notu

İnternet Programcılığı Dersi 2.Dönem Ders Notu İnternet Programcılığı Dersi 2.Dönem Ders Notu DEĞİŞKEN TİPLERİ TAM SAYI (İNTEGER) VERİ TİPİ Negatif veya pozitif ondalık kısmı bulunmayan sayılardır. Örnek: $i=65; $x=345; ONDALIK(REAL)VERİ TİPİ Ondalıklı

Detaylı

MAT213 Bilgisayar Programlama I

MAT213 Bilgisayar Programlama I if Komutu Bir mantıksal (boolean) ifadenin sonucuna göre bazı komutların çalıştırılıp, bazı komutların da çalıştırılmamasını sağlar. Komut(lar) (Doğru) Doğru Yanlış Boolean Komut(lar) (Yanlış) if (boolean

Detaylı

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr 5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II Öğr.Gör. Hakan YILMAZ hakanyilmaz@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi 2 İçindekiler STRING FONKSİYONU... 3 SPLIT FONKSİYONU...

Detaylı

Bil Hafta Çalışma Soruları (Yanıtlar)

Bil Hafta Çalışma Soruları (Yanıtlar) Bil 105 9.Hafta Çalışma Soruları (Yanıtlar) SORU 1. Aşağıdaki programı koşturmadan çıktısını bulunuz. Nedenini söyleyiniz. #include void main() { int i = 0; for (i = 0; i < 5; i++) if (i < 4)

Detaylı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

Detaylı

ARA SINAV 07.Nisan 2015

ARA SINAV 07.Nisan 2015 ARA SINAV 07.Nisan 2015 1. Aşağıda verilen program ya da program parçalarının üreteceği ekran çıktısını, değişkenlerin değerlerini göstererek belirtilen yere yazınız. (16 puan) int x; for(x=-1; x

Detaylı

C++ Operatörler (Operators)

C++ Operatörler (Operators) C++ Operatörler (Operators) Konular Operatörler o Aritmetiksel (Matematiksel) Operatörler o Karşılaştırma Operatörleri o Mantıksal Operatörler o Atama Operatörleri o Bit Düzeyinde Operatörler o Özel Amaçlı

Detaylı

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir DİZİLER (ARRAYS) Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir değişken tanımlamak gereklidir. string gun1,

Detaylı

Temel Giriş/Çıkış Fonksiyonları

Temel Giriş/Çıkış Fonksiyonları Temel Giriş/Çıkış Fonksiyonları Temel giriş/çıkış fonksiyonları, bütün programla dillerinde mevcuttur. Bu tür fonksiyonlar, kullanıcıya ekrana veya yazıcıya bilgi yazdırmasına, ve bilgisayara klavyeden

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar. DİZİLER 8. Bölüm Dizi aynı ad altında toplanmış ve aynı tipte olan değişkenlerin sıralı bir listesidir. C de bir dizi için bildirim yapılırken kullanılan genel kural şudur. tip dizi_ismi[eleman_sayısı];

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı