1 PROGRAMLAMA I 11. Hafta Özet 1. If – Else Yapısı • İf(koşul

PROGRAMLAMA I
11. Hafta Özet
1. If – Else Yapısı

İf(koşul)
{
İşlem1;
}
Else
{
İşlem2;
}
İf yapısı eğer anlamına gelmektedir. Programlama içerisinde en çok kullanılan fonksiyondur. Yukarıda verilen akış
şemasına ait komut satırı bulunmaktadır. else komutu ise değil anlamındadır. Yani akış şemasında bulunan koşul kara
verme şeklinde program akışına soru sorulacaktır. Sorulan sorudan alınan cevaba istinaden işlem1 veya işlem2 tanımlı
işlem şekline gider ve program bu şekilde devam eder. Bu konuyu bir örnek ile daha iyi anlayabiliriz.

#include<stdio.h>
#include<conio.h>
int main( void )
{
int a;
int b;
if(a<=b)
{
printf("a sayisi b den kucuk veya esittir: %d",a);
}
else
{
printf("b sayisi a dan kucuktur: %d",b);
}
getch();
return 0;
}
1

#include<stdio.h>
#include<conio.h>
int main( void )
{
int girilen_yas;
printf("lutfen yasinizi giriniz> ");
scanf("%d",&girilen_yas);
if( girilen_yas < 18 )
printf("daha cocuk yasdasin. hayatin basindasin.\n");
else if( girilen_yas >= 18 && girilen_yas <= 30 )
printf("gencligin guzelligi bambaska\n");
else if( girilen_yas > 30 && girilen_yas <= 50 )
printf("hepsini bosverin olgunluk iyidir.\n");
else
printf("HATA: Girilen yas uygun degildir!\n");
getch();
return 0;
}
2. Switch Yapısı
Bir önceki konuda işlenen if – else yapısı birden fazla durum oluşturduğunda takip edilmesi zorlaşmaktadır. Switch
yapısı ile bu durum daha kolay olarak yapılmaktadır. Sınırsız sayıda çalışma durumu gerçekleştirebilir.
switch sözcüğünden hemen sonra gelen ifade parantez içinde yer almalı ve bir tamsayı ifade olmalıdır.
PROGRAMLAMA I
12. Hafta Özet
1. For Yapısı
Bir veya birden fazla deyimi istenildiği kadar tekrarlamak için kullanılan bir döngü yapısıdır.
For(baslangic_ifadesi; denetim_ifadesi; değişim_ifadesi)
{
Deyim1;deyim2;deyim3;deyim n;
}
Bu ifade başlangıç ifadesine sahip sayaç, her adımda değişim oluşturmaktadır. Bu değer artı veya eksi yönde
oluşmaktadır. Bu değer ilk belirlenen değere ulaşıncaya kadar sayma işlemi sağlar.
 Başlangic_ifadesi :
for döngüsü sayacının başlangıç değerini ifade eder. Sayma işlemine başlanılması
gereken kısmı belirtir.
- İ = 0;
- İ = 1;
- Sayac=x;
- İlk_sayac=5;
 Denetim İfadesi :
sayacın nereye yada ne aşamaya kadar ilerleyeceğini ifade eder.
- x<10;
- x>20;
- i>x;
- i!=sayı miktari;
 Değişim ifadesi :
başlangıçtan bitişe kadar geçen süreyi hangi adımda yapması gerektiğini belirler.
- İ++;
- İ=i+1;
- İ--;
- İ=i-1;
- Sayac=sayaç*2;
2
2. While Yapısı
For döngüsü ile aynı amaç için kullanılır. Daha esnektir. While komutunun en büyük özelliklerinden biri ise daha
çeşitli yöntemlerde kullanılabilmesidir. While komutu şartlı çalışma yapan bir komuttur. Örneğin bir işlemin yerine
geçmesi için başka bir değişken şartı olmadan işlem yapmaması gerekiyorsa burada while komutu uygulanır. Bu
duruma komutsal örnek aşağıdaki gibidir.

#include<stdio.h>
#include<conio.h>
int main()
{
int i = 0;
while (i<100)
{
printf("sayi %d’dir\n",i,i);
i++;
}
getch();
return 0;
}
Bu program 100 ‘ e gelene kadar sayan program dilidir. Ekranda son sayı değeri 99 olmaktadır. Fakat dikkat edilmesi
gereken durum şudur; Değer 0’dan başlayarak 99 a kadar gelir ve toplamda 100 sayı sayar.
3. Do-While Yapısı
Normal bir while döngüsünden farklı olarak kullanıcının gireceği seçenek kontrol
ettirilmeden döngü bir kez mutlaka çalışır. Genel yapısı ile döngüyü yandaki akış
şemasında görebiliriz. Bu konuyu daha iyi anlamak için bir örnek program aşağıda
hazırlanmıştır.
Örnek:
Kullanıcıdan iki sayı alınsın. Bu iki sayı toplandıktan sonra, sonucu ekrana yazdırılsın.
Yazdırma sonunda "Devam etmek istiyor musunuz?" sorusu sorulsun ve klavyeden
'E' veya 'e' karakterlerinden birisi girilirse, program devam etsin. Yok, farklı bir şey
girilirse, program sonlandırılsın.
C++ Kodu:
#include<stdio.h>
int main( void )
{
int sayi_1, sayi_2;
char devam_mi;
do {
printf("Birinci sayıyı giriniz> ");
scanf("%d",&sayi_1);
printf("İkinci sayıyı giriniz> ");
scanf("%d",&sayi_2);
printf("%d + %d = %d\n", sayi_1, sayi_2, sayi_1 + sayi_2);
printf("Devam etmek ister misiniz? ");
//C'de tek karakter okuma işlemi biraz sıkıntılı
//olduğundan, burada da bir do while kullandık.
do {
scanf("%c",&devam_mi);
}while( devam_mi == '\n' );
printf("\n");
} while( devam_mi == 'E' || devam_mi == 'e' );
return 0;
}
3
4. İç içe Döngü Yapıları
İç içe döngülerin gerekli olabileceği noktalardan bazıları şu şekilde ifade edilebilir.
 Matriste her satır ve sütun için işlem yaptığımız için iç içe döngü kullanılır.
 20 kişinin bulunduğu sınıfta herkesin ayrı ayrı notlarının hesaplanıp ortalamasının alınması zordur. Her
öğrenciye hitap edebilecek bir yapıda olması gerekir.
 Sonsuz ifadelerin bulunduğu bir işlemde sadece tek bir döngü ile sonsuz kadar işlem satırı yapmak gerekir.
Döngüler kendi içinde dönmesi daha sağlıklıdır.
#include <stdio.h>
#include <conio.h>
int main()
{
int i,j;
for (j=1; i<6 ; i++)
//1
{
//2
for (i=1; j<6; j++)
//3
{
//4
printf("%d * %d = %d\n", i,j,i*j);
}
//6
printf("\n");
//7
}
//8
//5
getch();
return 0 ;
}
Bu komutu aslında günlük hayatta kullandığımız ifadelere
çevirerek örneklendirebiliriz. Mesela bir koşucunun dairesel pistte
toplamda 5 tur atması gerekiyor(i). Bu pist 500 metre olsun. Koşucu
her 100 metrede koyulan sensörler ile oradan geçtiği denetleniyor(j).
Koşucu 5 tur attıktan sonra koşusunu bitiriyor. Bu örnekte koşulması
gereken pisti 5 turla tamamlaması gerekiyor. Bu beş turu ise 5
sensörden geçerek tamamlaması gerekiyor. Bu örnekte uygulanan
kodlara eşdeğer olarak bir kod yaparak istenilen değerleri ekranda
görebiliriz. Değişen tek parametre i*j yerine istenilen işlem değerini
girebiliriz.
Bu işlemleri yaparken birçok hata ile karşılaşabiliriz. Bu hatalara örnek
olarak aşağıda sıralanmaktadır.




Sayaç başlangıç parametresini girmemek
Döngülerin, sırasını ve işlevini tam oluşturamamak.
Döngülerin değerlerini içtekine/dıştakine atamak.
Döngüleri ayıran } parantezlerin sırasını değiştirmek.
4