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



Benzer belgeler
C Programlama Dilininin Basit Yapıları

Ders 7: Döngüler. Giriş. 7.1 while Döngüsü

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

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

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

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

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

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

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

C PROGRAMLAMA D İ L İ

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

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

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

Bölüm 2 - C ile Programlamaya Giriş

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

Internet Programming II

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

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

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

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

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

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

PROGRAMLAMAYA GİRİŞ DERS 2

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

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

ALGORİTMA VE PROGRAMLAMA I

Program AkıĢ Kontrol Yapıları

HSancak Nesne Tabanlı Programlama I Ders Notları

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

ALGORİTMA VE PROGRAMLAMA I

Fonksiyonlar (Altprogram)

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

Bölüm 4 C de Program Kontrolü

Programlama Dilleri 1. Ders 4: Diziler

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

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

Akış Kontrol Mekanizmaları

Temel Giriş/Çıkış Fonksiyonları

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

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

C Dersleri Bölüm 3 : Program akışı

ALGORİTMA VE PROGRAMLAMA I

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

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

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

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

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

BİLGİSAYAR PROGRAMLAMA

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

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

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

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

Ders 2: Veri Tipleri, Değişkenler ve Sabitler

BMT 101 Algoritma ve Programlama I 8. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

C Konsol Giriş Çıkış Fonksiyonları

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

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

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

Genel Programlama II

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Döngü yapıları, (for, do while, while),

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

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

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

C Programlama. Öğr. Grv. Mustafa AKSOĞAN. Akçadağ MYO

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

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

Diziler İndisli Değişkenler

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

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

Eln 1001 Bilgisayar Programlama I

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

HSancak Nesne Tabanlı Programlama I Ders Notları

BÖLÜM 4 KONTROL DEYİMLERİ

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

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

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

Dr. Fatih AY Tel: fatihay@fatihay.net

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

Algoritma ve Programlamaya Giriş

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

C#(Sharp) Programlama Dili

PROGRAMLAMA DİLLERİ I

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

İç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

Programlama Dilleri 3

Algoritmalar ve Programlama. Algoritma

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

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

Transkript:

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 Neden Döngü?.............................. 35 5.2.2 for Döngüsü............................... 35 5.2.3 while Döngüsü.............................. 39 5.2.4 do while Döngüsü............................ 41 5.2.5 continue Yapısı............................. 42 5.2.6 break Yapısı............................... 42 5.3 Veri Niteleyicileri............................ 42 5.3.1 signed.................................. 43 5.3.2 unsigned................................. 43 5.3.3 short ve long.............................. 43 5.4 Değişken Bildirim Yerleri ve Türleri................. 43 5.5 Matematiksel Fonksiyonlar....................... 44 33

5.1 Formatlı Yazdırma printf fonksiyonu içerisinde ekrana yazdırmak istediğimiz şeyleri belli bir format içerisinde yazmak mümkündür. Bu durumda format belirtecinin sağında ve solunda rakamlar yer alır. Sözgelimi, 1 int x = 123456; 2 float y = 22.0/ 7.0; 3 printf("[%2d]\n",x); 4 printf("[%10d]\n",x); 5 printf("[%-10d]\n",x); 6 printf("[%+-10d]\n",x); 7 printf("[%9.3f]\n",y); 1. ve 2. satırda değişken tanımları yapılıp, değer atama işlemleri yapılıyor. 3. satırda 2 nin anlamı 2 hane boşluk bırakılır ve boşluğun en sağından itibaren rakamlar yazılır. 123456 sayısı 6 haneli olduğu için 2 haneye sığmaz, dolayısı ile tamamı yazılır. Çıktısı, [123456] şeklinde olacaktır. 4. satırda 10 hane boşluk bırakılır ve en sağdan itibaren rakamlar yazılır. 6 haneli rakam yazılacağından ilk 4 hane boş kalacaktır. Rakamlar sağa dayalı olarak yazılır. Bu durumda [ 123456] ifadesi ekrana yazılacaktır. 5. satırsa -10 nun anlamı 4. satır ile aynı ancak - işaretinden dolayı sağa değil sola dayalı yazılacak. Dolayısı ile son dört hane boş kalacaktır. Bu durumda [123456 ] ifadesi ekrana yazılacaktır. 6. satırda 5. satırdaki işlem aynen tekrarlanır. Sadece + işareti eklenir. Bu durumda [+123456 ] ifadesi ekrana yazılacaktır. Artı işaretinden dolayı sondan 3 hane boş kalacaktır. 7. satırda 9.3 ün anlamı 9 hane boş bırak, noktadan sonra 3 hane yaz ve sağa dayalı olarak yaz. Bu durumda, [ 3.143] ifadesi ekrana yazılacaktır. İlk satırdan itibaren 4 hane boşluk kalacaktır. 5.2 Döngü Deyimleri Belli bir koşul altında tekrar gerektiren durumlar için döngü yapıları kullanılır. while, do...while ve for olmak üzere üç tip döngü deyimi vardır. Bu döngülerin yaptığı iş aynıdır. Sadece kullanımı farklıdır. while ve for döngü deyimleri do... while döngü yapısından 34 gulsen@be.itu.edu.tr

farklıdır. for ve while döngülerinde koşul ilk önce sınanır, ardından tekrar işlemi koşul sağlandığı sürece devam eder. Ancak do... while döngüsünde ilk önce döngüye girilir, ardından koşula bakılır. Eğer koşul sağlanırsa döngü işlemi gerçekleşir. Sağlanmaz ise döngü işlemi gerçekleşmez. 5.2.1 Neden Döngü? Döngü kullanımına niçin gereksinim olduğunu basit bir örnek ile açıklayalım. Sözgelimi, 1 den 100 e kadar olan sayıları toplayalım. Eğer döngü yapısını kullanılmazsa 1 den 100 e kadar olan sayılar için 100 adet değişken tanımlaması yapmak gerekirdi ve sayıları toplamak için ise bu sayıların ilgili değişkenlere atanarak toplama işlemi yapılırdı. int x1=1, x2=2,..., x100=100 sonuc = x1+x2+...x100 Bu işlem son derece mantıksız ve programlamadan uzaktır. Bu amaçla döngü programlama açısından son derece önemli ve gerekli bir yapıdır. Tekrar işleminin yapılabilmesi için bir değişkene ihtiyaç vardır. Bu değişkene sayaç değişkeni adı verilir. 5.2.2 for Döngüsü Kendisinden sonra gelen yapıları tekrarlamak için kullanılır. Eğer ilgili koşul sağlanırsa işlemler belirtilen sayıda tekrarlanır. Koşul sınaması ilk önce yapılır, eğer koşul sağlanırsa döngüye girilir. Aksi durumda döngü işlemi gerçekleşmez. for(sayac-degiskeninin-baslangic-degeri;kosul-sınaması;attırım) deyim; for döngüsünün yapısını inceleyelim. Parantezler içerisinde 3 bölüm bulunur ve her bölüm ; simgesi ile ayrılır!!! ; dışında genellikle, simgesi ile ayırma işlemi sık yapılan hatalardan biridir, dikkat! C dilinde eğer bir parantez açılıyorsa, o parantez kesinlikle kapanmalıdır. Dolayısı ile 3 bölümün verilmesinden sonra parantez kesinlikle kapanmalıdır. for satırı parantez ile sonlandırıldıktan sonra kesinlikle ; simgesi kullanılmaz. Döngü içinde birinci bölümde,döngüyü kontrol eden yani döngünün tekrarını sağlayan sayaç değişkenine başlangıç değeri verilir Eğer başlangıç değeri verilmez ise bellekte o sırada var olan bir sayı değer olarak alınır. Dolayısı ile yanlış sonuçlar elde edilir. 35 gulsen@be.itu.edu.tr

İkinci bölümde ise döngünün dönebilmesi için sağlaması gereken koşul verilir. Bu koşul için kullanılacak olan değişken sayaç değişkenidir. En son bölümde ise döngünün dönmesini yani tekrarını sağlayan sayaç değişkenin arttırım işlemi yapılmaldır. Eğer arttıtım işlemi düzgün yapılmaz ise döngü sonsuza girer. Sonsuz defa takrar eder. Sözgelimi; 1 int i; 2 for(i=0;i<3;i++) 3 printf("i=%d\n",i); Bu for döngüsü şu şekilde çalışacaktır. 1. satırda i sayaç değişkeni tanımlanıyor. 2.satırda ise for döngüsü içinde i sayaç değişkenine başlangıç değeri veriliyor. Yani i=0 atama işlemi gerçekleştiriliyor. Başlangıç değeri olarak istenilen sayı verilebilir. Koşul i değişkenin değerinin 3 den küçük olmasıdır. Yani i değişkeni 3 den küçük oluncaya kadar tekrarlama işlemi yapılcak, 3 den büyük olduğunda ise tekrarlama işlemi duracaktır. i++ işlemi ile döngünün devam edebilmesi için i değişkeninin değeri arttırılıyor. Ancak arttırma işlemi hemen yapılmıyor. İlk adımda yapılmıyor. Döngüye bir kez girildikten sonra yapılyor. Buna göre program şu şekilde çalışacak. 1. TUR i=0 0<3 DOĞRU! i=0 EKRANA YAZILIR! 2. TUR i++ dan dolayı i=1 olur. i<3 1<3 DOĞRU! i=1 EKRANA YAZILIR! 3. TUR i++ dan dolayı i=2 olur. i<3 2<3 DOĞRU! i=2 EKRANA YAZILIR! 4. TUR i++ dan dolayı i=3 olur. i<3 3<3 YANLIS!! Döngü sonlanır, dolayısı ile ekrana birşey yazılmaz. 36 gulsen@be.itu.edu.tr

i=0 i=1 i=2 Dolayısı ile bu döngü 3 tur döner ve program çalıştırıldığında yazılır. ÖNEMLİ NOT: i++ yerine i=i+1 da yazılabilir. Aynı anlama gelir. for döngüsü içinde birden fazla deyim de kullanılabilir. Ancak bunun için kullanılmalıdır. for (...) deyim1; deyim2;... Bu işlem benzer şekilde karşılaştırma deyimleri ve diğer döngü işlemleri için de yapılmadır!!! for döngüsünün farklı kullanım biçimleri aşağıda verilmektedir. Sonsuz döngü, tekrarlama işleminin sonsuz sayıda yapılmasıdır. Bu durumda sonsuz döngüyü sonlandırmak için break kullanmak gerekir. Sonsuz döngü C dilinde for(;;) deyimi ile kurulur. Sayaç değişkeninin başlangıç değeri döngüden önce de verilebilir. x=30; for(;x<50;x+=2) printf("%d\n",x); Bu durumda for döngüsü içinde başlangıç değerinin verilmesine gerek yoktur. Bu program 30 dan 50 ye kadar (50 dahil değil) olan sayıları ikişer atlamalı olarak yazar. for(x=1;x<=100;) printf("%f\n",sqrt(x++)); Yukarıdaki program parçasında sayaç değişkenine arttırım verilmemiştir. Ancak döngü sayacı x döngü içerisinde kullanılırken arttırılmıştır. Bu program, 0 ile 101 arasındaki tamsayıların karekökünü alır ve ekrana yazar. for döngüsü içinde birden fazla sayaç değişkeni ve onlara ait koşul kullanılabilir. 37 gulsen@be.itu.edu.tr

for(x=0, y=0;x+y<15;x++).. y++;... Bu programda döngü sayacından biri arttırım kısımında, diğeri ise döngü içerisinde attırılmıştır. Bu iki döngü sayacı toplanıp 15 ile karşılaştırılır. Toplamın 15 den küçük olması durumda döngü devam eder. Birden fazla sayaç değişkeni kullanılması durumunda bu değişkenler birbirlerinden, karakteri ile ayrılmak zorundadır. İç içe Döngüler (Nested Loops) for(...) for(...) for(...) deyim; Birden fazla döngü iç içe kullanılabilir. Bu durumda en içteki döngü bir dıştakinin herbir tekrarı kadar tekrarlanır. for(i=1;i<=2;i++) for(j=1;j<3;j++) for(k=1;k<3;k++) printf("i=%d\n, j=%d, k=%d\n",i,j,k); Yukarıdaki program şu şekilde çalışır. Sayaç değişkenlerinin aldıkları değerler gösterilmektedir. K DONGUSU i=1, j=1, k=1 i=1, j=1, k=1 EKRANA YAZILIR. k++ dan i=1, j=1, k=2 i=1, j=1, k=2 EKRANA YAZILIR. k++ dan i=1, j=1, k=3, 3<3 koşul sağlanmaz, döngü sonlanır. J DONGUSU j++ dan i=1, j=2, k=1 38 gulsen@be.itu.edu.tr

i=1, j=2, k=1 EKRANA YAZILIR. k++ dan i=1, j=2, k=2 i=1, j=2, k=2 EKRANA YAZILIR. k++ dan i=1, j=2, k=3, 3<3 koşul sağlanmaz, döngü sonlanır. j++ dan i=1, j=3 olur, 3<3 koşul sağlanmaz döngü sonlanır. I DONGUSU i++ dan i=2, j=1, k=1 i=2, j=1, k=1 EKRANA YAZILIR. k++ dan i=2, j=1, k=2 i=2, j=1, k=2 EKRANA YAZILIR. k++ dan i=2, j=1, k=3, 3<3 koşul sağlanmaz, döngü sonlanır. j++ dan i=2, j=2, k=1 i=2, j=2, k=1 EKRANA YAZILIR. k++ dan i=2, j=2, k=2 i=2, j=2, k=2 EKRANA YAZILIR. k++ dan i=2, j=2, k=3, 3<3 koşul sağlanmaz, döngü sonlanır. j++ dan i=2, j=3 olur, 3<3 koşul sağlanmaz döngü sonlanır. i++ dan i=3 olur, 3<=2 değildir, döngü sonlanır. Bu durumda k döngüsü 2X2X3 defa, j döngüsü 2X3 defa, i döngüsü ise 2 defa dönecektir. 5.2.3 while Döngüsü Tekrarlam deyimidir. Bir veya birden fazla deyim while kullanarak da tekrar edilebilir. Genel yazım biçimi while(koşul)... deyim; deyim;... ; 39 gulsen@be.itu.edu.tr

Döngünün koşulu hemen while dan sonra verilir. Koşul olumlu olduğu sürece tekrar işlemi devam eder. while döngüsünde birden fazla koşul da kullanılabilir. Bu durumda mantıksal operatörler ile bu koşullar birleştirilmelidir. Döngü içerisinde sadece bir deyim kullanılacaksa parantezlerin kullanımına gerek yoktur. Birden fazla deyim kullanımı durumunda karakterleri kullanılır. Koşulda kullanılan değişkene, yani sayaç değişkenine kesinlikle başlangıç değeri verilmelidir. Herhangi bir değişkene başlangıç değişkeni verilmemesi durumunda, o değişkenin içeriği rastele değer alır. Bu değer koşulu olumsuz kılarsa, hiç döngü içerisine girelmez. Koşul içerinde kullanılan değişkenin yani sayaç değişkeninin attırımı döngü içerisinde yapılmalıdır. Yapılması unutulursa döngü sonsuz çevirime girer. int k; k=1; while(k<2) printf("k=%d",k); Bu programda sonsuz döngüye girilir. Çünkü hiçbirzaman k sayaç değişkeni 2 değerini almaz, başka bir deyişle 2 den büyük olamaz. k değişkeni herzaman 1 olur. Çünkü k sayaç değişkenine attırım işlemi yapılmamıştır. Bu durumda k değişkeni k++ işlemi ile döngü içerisinde arttırılmalıdır. while döngüsüne girmeden önce koşulun sağlanıp sağlanmadığına bakılır. Eğer koşul sağlanır ise döngüye girilir, işlemler yapılır. Ardından sayaç değişkeninin değeri istenilen sayıda arttırılır ve tekrar koşula bakılır. Bu işlemler koşul sağlanmadığı zaman durur ve döngü sonlanır. char kr;.. while((kr=getch())!= );.. Bu programda kr değişkenine kullanıcının klavyeden girdiği karakter atanır ve bu karakter boşluk karakteri ile karşılaştırılır. Kullanıcının girdiği karakter boşluk karakteri olana kadar kullanıcıdan karakter girilmesi istenir. Kullanıcı boşluk karakterini girdiğinde koşul sağlanmaz ve döngü sonlanır. 40 gulsen@be.itu.edu.tr

5.2.4 do while Döngüsü Bu deyimin while dan farkı, koşula döngü sonunda bakılır. Dolayısı ile en az bir kere döngüye girilir. Koşul olumlu olduğu sürece çevrim yinelenir. Birden fazla koşul verilmesi durumda, mantıksal operatörler ile bu koşullar birleştirilmelidir. Buna göre do while yapısıçevrim yinelenir. Birden fazla koşul verilmesi durumda, mantıksal operatörler ile bu koşullar birleştirilmelidir. Buna göre do while yapısı do.. deyim;.. while(kosul); şeklindedir. ; karakteri while dan hemen sonra verilmelidir. Sayaç değişkeni başlangıç değeri ve sayaç değişkeni arttırım işlemleri while döngüsünde olduğu gibidir. Bu döngü tipi daha çok standart girdiden veri istenmesi durumunda kullanılır. Çünkü bu durumda en az bir kere döngüye girilmesi gerekir ki, kullanıcının girdiği değer ile koşul karşılaştırılması yapılabilsin. Sözgelimi, do printf("bir sayi giriniz, cikmak icin 0 a basiniz\n"); scanf("%d",&sayi); while(sayi!=0); Burada sayaç değişkeni sayi isimli değişkendir. Burada sayaç değişkenine bir değer atamak zorunda değiliz. Sayaç değişkeni değerini döngü içerisinde alacaktır. Bu program kullanıcıdan bir değer girmesini ister ve kullanıcı 0 değerini girene kadar da istemeye devam eder. Kullanıcının ne kadar sayıda değer girmek istediğini bilmediğimiz için bu yapıyı kullandık. Sayaç değişkenine arttırım verecek olsak belli bir sayıdan söz etmiş olacaktık. Bu da programımızı esnek olmamasına neden olacaktı. 41 gulsen@be.itu.edu.tr

5.2.5 continue Yapısı Bir döngü içerisinde continue deyimi ile karşılaşılırsa, ondan sonra gelen deyimler veya fonksiyonlar atlanır ve döngü bir sonraki çevirime girer. Sözgelimi, for(i=1;i<10;i++) if(i==5) continue; printf("i=%d",i); i sayaç değişkeni 5 e eşit olduğu zaman continue deyimi çalışacak ve i=5 için olan döngü atlanacaktır. Bu durumda sırası ile ekrana 1 2 3 4 6 7 8 9 yazılacaktır. 5.2.6 break Yapısı Bir döngü içerisinde break deyimi ile karşılaşılırsa, döngü koşula bakılmaksızın sonlanır ve programın akışı döngüden sonra ilk deyime veya fonksiyona atlar. Özel durumlarda döngüden çıkmak için kullanılır. Sözgelimi, do kr = getchar(); if(k== s ) break; while(1); Bu programda while(1) sonsuz döngüye işaret eder. Bu döngü sonsuz bir döngüdür. Burada kullanıcıdan bir karakter girilmesi istenir. Kullanıcı s karakterini girdiği zaman if koşulu sağlanır ve break deyimi çalışır ve sonsuz döngü sonlanır. break ve continue deyimleri while, do while, for, switch deyimlerinden çıkmak için kullanılır. İç içe döngü içerisinde kullanıldığı zaman en içteki döngüden çıkılır. 5.3 Veri Niteleyicileri Özel niteliyiciler (short, unsigned, long gibi) değişken tiplerinin önüne gelerek değişik veri tipleri meydana getirirler. 42 gulsen@be.itu.edu.tr

5.3.1 signed Bütün değişken tipleri öntanımlı olarak signed tanımlıdır. Bu şekilde tanımlı sayılar artı veya eksi işaretli olabilir. 5.3.2 unsigned Özel niteleyicilerden biridir. Bu niteleyici, tam sayı tiplerinin herhangi birinin veya karakter tipdeki değişkenlerin önüne gelebilir. Bunun anlamı yalnızca artı (pozitif) sayılar için çalışacak demektir. Eğer yazılan bir programda kullanılacak değişkenler yalnızca artı değerler alacaksa, değişkenler işaretsiz (unsigned) olarak bildirilebilirler. 5.3.3 short ve long Normal tamsayı 16 bit ise uzun tamsayı 32 bit uzunluğundadır. Kısa tamsayı 16 biti geçmeyecek uzunluktadır. Bu uzunluklar sabit değerler olmayıp, derleyicilerde donanıma bağlı olarak değişebilir. sizeof deyimi kullanılarak bunların bellekte nekadar yer işgal ettikleri öğrenilebilir. long tipinde olan değişkenleri de 16 bitten daha fazla veri saklamaya gereksinim olduğunda kullanılabilir. 5.4 Değişken Bildirim Yerleri ve Türleri C programında değişkenler önceden bildirilmeldir. Değişkenin nerede bildirildiği oldukça önemlidir. Eğer bir değişken, fonksiyonların birçoğunda kullanılacaksa genel (global), yalnızca bir fonksiyon içerisinde kullanılacak ise yerel (local) olarak bildirilmelidirler. Bir değişken genel olarak tanımlanırsa programın tümünde tarafından tanınır, yerel tanımlanırsa sadece tanımladığı yapı içerisinde tanınırlar. Sözgelimi, main () int a,b // a ve b yerel değişken a =1, b=2; int fonk(int k) int d; // d yerel degisken return d; 43 gulsen@be.itu.edu.tr

a ve b değişkenleri main fonksiyonu içerisinde tanımlandıkları için yerel değişkenlerdir. Aynı şekilde d değişkeni de fonk isimli fonksiyon içerisinde tanımlandığı için yerel değişkenlerdir. a ve b değişkeninin fonk fonksiyonu içerisinde bilinmediği gibi, d değişkeni de main fonksiyonu içerisinde bilinmez. int a,b // a ve b genel değişken main () a =1,b=2; int fonk(int k) int d; // d yerel degisken return d; Bu tanımlama da ise a ve değişkenleri genel (global) değişkenlerdir. Çünkü programın en başında main fonksiyonundan önce tanımlanmıştır. Bu durumda bu iki değişken de tüm program boyunca bilinir, fonk isimli fonksiyonda da bu değişkenler tanınır. Yani bu değişkenlerin değerleri bu fonksiyon içerisinde yazdırılabilir, işleme sokulanbilir. Yerel tanımlama yapılmış olsaydı bu mümkün olmayacaktı. 5.5 Matematiksel Fonksiyonlar C dilinde bazı matematiksel fonksiyonlar önceden oluşturuluştur. Trigonemetrik, logaritmik fonksiyonlar gibi fonksiyonlar önceden tanımlanmıştır. Ancak bu fonksiyonları kullandıktan sonra ilgili matematik kütüphanesini programa eklemek gerekmektedir. Linux da derleme esnasında ise -lm parematresi ile bu kütüphaneye bağlantı oluşturarak derleme yapılması gerekmektedir. #include<stdio.h> #include<math.h> int main () float x; x = 1.45536; printf("sin (%f) =%f\n",x,sin(x)); returm 0; Sözgelimi, bu programın adı deneme.c olsun. Bu program gcc deneme.c -lm şeklinde derlenmelidir. Bu programda x değerinin sinüs değeri hesaplanır. 44 gulsen@be.itu.edu.tr