Kayıtlar

koşullu durumlar etiketine sahip yayınlar gösteriliyor

18 : Sayi Pozitif mi? Fonksiyonda enum döndürme

Fonksiyonların bir sayı döndürdüğünü görmüştük. Ya da bir fonksiyon bir değer döndürmeyip void şeklinde de tanımlanabilir. Dönüş değeri bunların yanında yapısal tipte de olabilir. Sayısal tiplerin haricinde şuana kadarki örneklerde sadece enumeration kullandığım için yine bu şekilde örnekleyeceğim. Daha sonra struct gibi tiplerin örneklerini verdiğimizde fonksiyonlarda da nasıl kullanıldığından bahsedebiliriz. Bu örnekte bir enumeration oluşturacağız. Bu enumeration sayının pozitif, negatif ya da sıfır olduğunu gösterecek. Yine kullanıcıdan bir sayı girmesini isteyeceğiz. Bu sayıyı doğrudan fonksiyona göndereceğiz. Bu sayıyı fonksiyonda kontrol edip hangi durumda olduğunu enumeration ile döndürüp bir switch case yapısı ile yazdıracağız. kontrol.c #include <stdio.h> enum sayi_durumu { sifir = 0, negatif, pozitif }; enum sayi_durumu kontrol (int val); int main() { int val1 = 0; int val2 = 0; printf("Ilk degeri giriniz: "); scanf("%d", &val1); ...

14 : Konsol Giriş Kısıtlama - Karakter harici girişleri engelleme

Kod yazarken en önemli konulardan biri yazılan kodun hataya açık olmamasıdır. Hata çözme ilk olarak kodu yazarken yapılır. Kodu yazan kişi bütün açık kapıları düşünmelidir. Daha sonra çok kez test yapılır ve tekrar gözden geçirilir. Önceki örneklerimizde bir işlem yaparken bir limit belirleyip ve bunu son kullanıcıdan istiyoruz. Örneğin aritmetik işlem yaptırırken kullanıcıdan sayı girmesini bekliyoruz. Son kullanıcı bilerek ve ya bilmeyerek sayı girmesi gerekirken her hangi bir karakter girebilir. Bu gibi durumları kontrol etmediğimiz durumlarda kodda problemler oluşacaktır. Şuan bildiğimiz konulardan bir örnekle göstermek gerekirse, kullanıcının sadece küçük harf girmesini isteyelim. kucukharf.c #include<stdio.h> int main() { char islem; printf("Kucuk harf giriniz: "); do{ scanf("%c", &islem); }while (islem < 97 || islem > 122); return 0; } Burada bahsetmek istediğim ikinci bir konu ise do while döngüsü. Do w...

13 : Faktoriyel Hesabı

Bir sayının faktoriyel hesabı 1' den o sayıya kadar olan tam sayıların çarpımı ile bulunur. Negatif sayıların faktoriyeli yoktur. 0 faktoriyel ise 1' e eşittir. Bu bilgiler ışığında kodu yazalım. faktoriyel.c #include <stdio.h> int main() { int sayi, i; unsigned long long faktoriyel = 1; printf("Bir sayi giriniz: "); scanf("%d",&sayi); if (sayi < 0) { printf("Negatif sayilarin faktoriyeli yoktur.\n"); } else { for(i=2; i<=sayi; ++i) { faktoriyel *= i; } printf("%d faktoriyel = %llu \n", sayi, faktoriyel); } return 0; } Faktoriyel sonucunu atadığımız değişkeni unsigned long long seçtik çünkü sonuç hem negatif olamaz hem de bir çok tamsayı çarpımı olabileceği için çok büyük sayılar çıkabilir. Sayıyı kullanıcının girmesini istedikten sonra ilk kontrolümü negatif mi kontrolü. Çünkü daha önce söylediğimiz gibi...

9 : Sayi Aralık Dışında mı? - Veya işleci

Önceki örneklerde VE (&&) işlecini göstermiştik. VEYA işlecinin de bulunduğundan bahsetmiştik. VEYA işleci nasıl çalışır merak edip anlamayamayanlar için küçük bir örnek verelim. Bir sayi isteyeceğiz ve bu sayının 50 ile 500 arasında olup olmadığını kontrol edeceğiz. aralik.c #include <stdio.h> int main() { int val1 = 0; printf("Bir sayi giriniz: "); scanf("%d", &val1); if ((val1 < 50) || (val1 > 500)) { printf("Deger aralik disindadir. \n"); } else { printf("Deger beklenen araliktadir. \n"); } return 0; } Burada VEYA işlecinin yapısından dolayı val1 değerinin 50' den küçük olması yada 500' den büyük olması koşullarından herhangi biri geçerli olması durumunda ilk koşul sağlanmış olur. Bu şekilde birden çok koşul kontrol edilecekse parantezler ile gruplamak hataları önlemede önemli olacaktır. VE ile VEYA işleçleri ve diğer işleçler de birlikte kullanılabilir.

8 : Koşul İfadesi ile Büyük Sayı "? :"

if else yada switch case koşullu durumları kontrol etmede gayet yeterli olsa da çok basit işler için uzun kod satırlarına ihtiyaç duyuyorlar. Daha basit koşullar için kullanılabilecek bir ifade daha var: "? :" Örnekle görelim.  buyuksayi.c #include <stdio.h> int main() { int val1 = 0; int val2 = 0; int temp = 0; printf("Bir sayi giriniz : "); scanf("%d",&val1); printf("Bir sayi daha giriniz : "); scanf("%d",&val2); temp = (val2>val1) ? val2 : val1; printf("Buyuk olan sayi : %d \n", temp); return 0; } Burada yine önce sayıları alıyoruz. Sonra koşulu değerlendiriyoruz. Bu bölüm şurada yapılıyor: (val2>val1) Eğer bu koşul doğruysa ilk ifade, değilse ikinci ifade çalışır ve temp değerine atanır. val2 : val1

7 : Dört İşlem

    Koşullu yapılar kurmak için if else yapısı haricinde bir yapı da kullanabiliriz. Bu yapıda gelen değerlerin ne olduğunu ön görmemiz gerekiyor. Ön göremediklerimiz ile ya ilgilenmiyoruz ya da hepsi için aynı tepkiyi veriyoruz. Bu yapı switch case yapısı olarak isimlendiriliyor.  dortislem.c # include <stdio.h> int main() { char islem; double sayi1, sayi2; printf("Islemi seciniz (+, -, *, /): "); scanf("%c", &islem); printf("Ilk sayiyi giriniz: "); scanf("%lf", &sayi1); printf("Ikinci sayiyi giriniz: "); scanf("%lf", &sayi2); switch(islem) { case '+': printf("%g + %g = %g\n",sayi1, sayi2, sayi1 + sayi2); break; case '-': printf("%g - %g = %g\n",sayi1, sayi2, sayi1 - sayi2); break; case '*': printf("%g * %g = %g\n",sayi1, sa...

6 : Üç Sayı Arasında En Büyük

   Koşullu durumları kontrol etmeyi bir önceki örnekte gördük. Ancak bazı durumlarda bir kaç koşulu aynı anda kontrol etmek gerekebilir. Bu örnekte bu durumlarda nasıl hareket edeceğimizi göreceğiz.  enbuyuk.c #include<stdio.h> int main() { int val1 = 0, val2 = 0, val3 = 0; int temp = 0; printf("Ilk sayiyi giriniz: \n"); scanf("%d",&val1); printf("Ikinci sayiyi giriniz: \n"); scanf("%d",&val2); if (val2 > val1) { temp = val1; val1 = val2; val2 = temp; } printf("Ucuncu sayiyi giriniz: \n"); scanf("%d",&val3); if (val3 > val1) { temp = val1; val1 = val3; val3 = temp; temp = val2; val2 = val3; val3 = temp; } else if ((val3 > val2) && (val3 < val1)) { temp = val2; val2 = val3; val3 = temp; } printf("en buyuk : %d \n", val1); printf("orta : %d...

Koşullu durumlar - 5 : Sayı Tek mi Çift mi?

Resim
Bir program çalışırken bazı dış etkenlerin durumuna göre yön değiştirebilir. Örneğin bir fonksiyonun çıktısına göre hangi işi yapacağınıza karar verebilirsiniz. Giriş parametrelerinin durumları yine sizin için fark yaratıyor olabilir. Bu durumlarda gerekli iş yapılmadan önce bazı kontroller yapmak gerekir. Sıradaki örnek girilen bir sayının tek ya da çift olduğunu yazdıracak.  tekcift.c #include<stdio.h> int main() { int sayi = 0; printf ("Bir sayi giriniz : \n"); scanf("%d",&sayi); if (sayi % 2 == 0) { printf("Girilen sayi cifttir. \n"); } else { printf("Girilen sayi tektir.\n"); } return 0; } Burada girilen sayi if ile kontrol ediliyor. Kontrol için mod alma işlemi kullanılıyor. Mod işlemi ilk sayının ikinci sayıya bölümünden kalan demektir. Eğer çıkan sonuç 0' a eşitse girilen sayı çifttir denir. Eğer 0' a eşit değilse if bölümü değil else bölümü çalışır. Girilen sayının tek o...