Home Eğitim C Programlama Dili Dersi #3.2

C Programlama Dili Dersi #3.2

C Programlama Dili Dersi #3.2
96
0

Ders 3 biraz uzun olduğu için  2 parçaya böldüm, kaldığımız yerden devam edelim.

Break,Continue,goto yapıları

Break:İçinde bulunduğu döngüyü bitirir ve döngü dışına çıkar.Genelde sonsuz döngülerden çıkış amacıyla kullanılır. Ya da Switch-case yapısında istenilen ilk sağlandığı zaman döngünün bitmesi için tercih edilir.

Örnek:

int main()

{

int i=2;

switch (i){

  case 1:

    printf("Case1 ");

  case 2:

    printf("Case2 ");

  case 3:

    printf("Case3 ");

  case 4:

    printf("Case4 ");

   default:

    printf("Default ");

}

return 0;

 }

 

 

Eğer burada break kullansaydık düzgün bir şekilde çalışacaktı. Fakat şuan case2,3,4 ve default çalışacak.

 

Continue: kendisinden önce verilen şartı atlar geçer ve diğer şartları yaptırır.

Örnek :

 

int i=5;

for(i=5;i<10;i++){

if(i==7)

continue;

printf(“%d”,i);

}

 

Bu döngünün sonucunda çıktı olarak alacağımız sayılar  5 6 8 9 dur .7 sayısı için continue deyimini kullanarak 7’yi atlayıp döngüye devam ettik.

Goto: Belirleyeceğiniz şartlar sayesinde programın bir yerinden başka bir yerine atlamanıza olanak sağlar.Goto bir döngü değildir ancak döngü olarak da kullanılabilir.

Goto etiket alarak çalışır . Etiket aldırmak için ise etiketi yazıp iki nokta koyarsınız.

Örnek :

int i =5;

baslangic:

printf(“%d”,i);

i++;

if(i<15) goto baslangic: 

 

 

i değişkeni 15 e ulaşmadığı sürece yani i 15den küçük olduğu sürece hep en başa dönecek.

 

Konu anlatımımızın sonuna geldik şimdi farklı sorularla pekiştirelim.

SORULAR

Soru1: Verilen bir sayının basamak sayısını hesaplayan programı hesaplayınız.

Cevap 1:

int sayi;

int counter=0;

printf(“Lütfen bir sayı giriniz”);

scanf(“%d”,&sayi);

while(sayi != 0){

sayi /=10;

counter+=1;

}

printf(“Sayının basamak değeri : %d”,counter);

 

 

 

Soru2:Verilen sayıyı ters çeviren programı yazınız.

Cevap 2:

int n, tersSayi = 0, eldeKalan;

printf("Sayi Giriniz: ");

scanf("%d", &n);

while(n != 0){

eldeKalan = n%10;

tersSayi = tersSayi*10 + eldeKalan;

n /= 10;

}

printf("Ters hali = %d", tersSayi);

return 0;

 

 

 

Soru 3: Verilen bir sayının mutlak değerini bulan programı yazınız.

Cevap 3:

int sayi;

printf("Sayi Giriniz: ");

scanf("%d", &sayi);

if(sayi > 0){

printf("Sayinin mutlak değeri = %d",sayi);

}

else {

printf("Sayinin mutlak değeri = %d",sayi=sayi*(-1));

}

 

 

Soru 4: Verilen bir sayının asal sayı olup olmadığını kontrol edin

Cevap 4:

int n, i, kontrol = 0;

printf("Pozitif bir tam sayı giriniz: ");

scanf("%d",&n);

for(i=2; i<=n/2; ++i){

// asal olmayan sayı için şart

if(n%i==0){

kontrol=1;

break;

   }

}

 

if (kontrol==0) {

printf("%d asal sayıdır.",n);

}

else {

printf("%d asal sayı değildir.",n);

}

return 0;

 

 

 

Soru 6: Aşağıdaki şekli for döngüsü yardımıyla yapınız

*

* *

* * *

* * * *

* * * * *

Çözüm 6:

 

int i, j, satir;

printf("Satir sayisini girin: ");

scanf("%d",&satir);

 

 for(i=1; i<=satir; ++i){

    for(j=1; j<=i; ++j){

       printf("* ");

}

    printf("\n");

}

  return 0;

 

 

 

Soru 7: For döngüsü yardımıyla aşağıda görünen yıldızlardan piramidi yapın

*

* * *

* * * * *

* * * * * * *

* * * * * * * * *

 

Cevap 7:

int i, bosluk,satir, k=0;

 

printf("Satir sayisini giriniz: ");

scanf("%d",&satir);

 

for(i=1; i<=satir; ++i, k=0){

     for(bosluk=1; bosluk<=satir-i; ++bosluk){

          printf("  ");

}

  while(k != 2*i-1){

     printf("* ");

     ++k;

    }

 

     printf("\n");

}

 

return 0;

 

 

Soru 8 : Kenar uzunluğunu kullanıcıdan alarak yıldızlar yardımıyla içi boş kare yapın

Çözüm 8:

int kenar, i, j;

printf("Karenin kenar sayısını girin\n");

scanf("%d", &kenar);

 



for(i = 0; i < kenar; i++){

       for(j = 0; j < kenar; j++){

            if(i==0 || i==kenar-1 || j==0 || j==kenar-1)

                    printf("*");

             else

                    printf(" ");

           }

        printf("\n");

}

return 0;

 

 

96 kez okundu.

Bedirhan Yıldırım 1996 yılında İstanbul‘da doğdum. Haydarpaşa Anadolu Teknik Lisesi Bilişim Teknolojileri bölümünden mezun oldum ve Fatih Sultan Mehmet Vakıf Üniversitesi Bilgisayar Mühendisliği bölümünde eğitim görmekteyim. Lisede bilgisayar konusunda kendimi geliştirmeye başladım ve tasarım alanında; photoshop, illustrator, after effect ve cinema 4D, internet alanında; html, css, jquery ve php kodlamayı öğrendim. Ardunio dünyasını keşfettikten sonra java ve c++ kodlama dillerini öğrenmeye başladım. Donanıma olan merakla kendimi robotik konusunda geliştiriyorum.

Yorum Yapın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir