220 likes | 446 Views
Karar Verme: Eşitlik ve Karşılaştırma Operatörleri. Çalıştırılabilir C ifadeleri 2 iş yaparlar. İ şlem gerçekleştirir.( hesaplamalar, veri girdi/çıktısı) K arar verir. Örneğim; bir kişinin bir sınavdan aldığı not 60’tan büyükse yada 60’a eşitse ‘tebrikler geçtiniz’ yazdirabiliriz.
E N D
Karar Verme: Eşitlik ve Karşılaştırma Operatörleri • Çalıştırılabilir C ifadeleri 2 iş yaparlar. • İşlem gerçekleştirir.( hesaplamalar, veri girdi/çıktısı) • Karar verir. • Örneğim; bir kişinin bir sınavdan aldığı not 60’tan büyükse yada 60’a eşitse ‘tebrikler geçtiniz’ yazdirabiliriz. • If kontrol yapısı • Bir koşulun doğruluğu yada yanlışlığına karar veren, if kontrol yapısı öncelikle basit bir biçimde tanıtılacaktır. Daha detaylı olarak sonra. • Eğer koşul doğru ise, if yapısının gövdesindeki ifade çalıştırılır. • Yanlışsa, if yapısının gövdesindeki ifade çalışmaz. • Çalıştırma süreci if yapısından hemen sonraki ifadeyle devam eder.
Genel Programlama Hataları • ==, !=, >= ve<= operatörleri arasında boşluk kullanılması yazım hatasına sebep olur. • !=, >= ve<= operatörlerinin ters çevrilerek =!, => ve =< şeklinde kullanılması yazım hatasına sebep olur. • ==operatörünün = ile karıştırılması.
#include <stdio.h> #include <conio.h> int main() { int num1, num2; printf( "Iki tam sayigirin.\n" ); printf( "Bu ikisayininkarsilastirmasiyapilacaktir: " ); scanf( "%d%d", &num1, &num2 ); if ( num1 == num2 ) printf( "%d esittir %d\n", num1, num2 ); if ( num1 != num2 ) printf( "%d esitdegildir %d\n", num1, num2 ); if ( num1 < num2 ) printf( "%d kucuktur %d\n", num1, num2 ); if ( num1 > num2 ) printf( "%d buyuktur %d\n", num1, num2 ); if ( num1 <= num2 ) printf( "%d kucukturya da esittir%d\n", num1, num2 );
if ( num1 >= num2 ) printf( "%d buyukturya da esittir%d\n", num1, num2 ); getch(); return 0; }
Şu ana kadar anlatılan operatörlerin öncelikleri ve işleyişleri
if Seçim Yapısı • Seçim yapısı • Bir işin değişik yönlerinden birini seçmek için kullanılır. • Sahte kodu(pseudocode) Eğer (if) ögrenci notu 60’dan büyükse ya da 60’a eşitse ‘Geçtiniz’ yazdır. • Eğer koşul doğru ise • ‘Geçtiniz’ yazdırılır ve diğer sahte koda geçilir. • Değilse, yazdırma yaptırılmaz ve doğrudan diğer sahte koda geçilir.
if Seçim Yapısı • Sahte kodu C’e yazarsak • if ( not>= 60 ) printf("Gectiniz\n" ); • Sahte kod, C koduna oldukça yakındır. • Elmas Sembolü( Karar İşareti) • Burada bir kara verileceğini gösterir. • Bir koşul içerir ve bu koşul doğru ya da yanlış olabilir. • Koşulu test et, uygun yolu seç.
İf/else Seçim Yapısı • İf • Koşul doğru ise belirlenen işi yapar, yanlış ise belirlenen iş atlar. • if/else • Programcıya koşul doğruysa belirli işler, yanlışsa belli işleri yaptırabilme fırsatı verir. • Sahte kod Eğer ( if ) öğrencininnotu, 60 ya da dahabüyükse “Geçtiniz“ yazdır aksitakdirde ( else ) “Kaldınız” yazdır
İf/else Seçim Yapısı • C kodu if ( not >= 60 ) printf( "Geçtiniz\n" ); else printf( "Kaldınız\n" ); • Üçlü koşul operatörü (?:) • Üç argüman(operand) alır.( koşul, doğruysa deyimin değeri, yanlışsa değimin değeri) • printf ( "%s\n", not >= 60 ? "Geçtiniz" : "Kaldınız" ); • (not >= 60)? printf ( "Geçtiniz\n") : printf ( "Kaldınız\n" );
İf/else Seçim Yapısı • Yuvalı if/else seçim yapıları • if/else yapıları içerisine başka if/else yapıları yerleştirerek birden fazla koşulu aynı anda test etmemizi sağlar. • Bir koşul sağlandığında, geriye kalan tüm ifadeler geçilir.
İf/else Seçim Yapısı • Yuvalı if/else yapısı için sahte kod: Eğer(if) öğrencininnotu 90'a eĢitya da 90'dan büyükse “A” yazdır Aksitakdirde(else) Eğer(if) öğrencininnotu 80'a eĢitya da 80'dan büyükse “B” yazdır Aksitakdirde(else) Eğer(if) öğrencininnotu 70'a eĢitya da 70'dan büyükse “C” yazdır Aksitakdirde(else) Eğer(if) öğrencininnotu 60'a eĢitya da 60'dan büyükse “D” yazdır Aksitakdirde(else) “F” yazdır
İf/else Seçim Yapısı • Yuvalı if/else yapısı için C kodu: if ( not >= 90 ) printf("A\n"); else if ( not >= 80 ) printf("B\n"); else if (not >= 70) printf("C\n"); else if ( not >= 60 ) printf( "D\n" ); else printf("F\n" );
İf/else Seçim Yapısı • Birleşik ifade • İfadeler küme parantezi içine alınır. • Örneğin; if ( not >= 60 ) printf( "Geçtiniz\n" ); else { printf(" Kaldınız\n" ); printf(" Bu dersitekraralmalısınız\n" ); }
while Döngüsü • Döngü yapısı • Programcıya bir koşul doğru olduğu sürece bir işlemi tekrarlatma imkanı sağlar. • Sahte kodu alışverişlistemdebirdenfazlamalzemebulunduğusürece ( while ) bir sonrakimalzemeyi al vealışverişlistemden bu malzemeyiçıkart • Bu işlem koşul doğru olduğu sürece tekrarlanır. • Örneğin; carpim = 2; while ( carpim <= 1000 ) carpim = 2 * carpim;
Genel Programlama Hataları • while koşulunu yanlışhale getirecek işlemi,while yapısının gövdesinde bulundurmamak. Normal olarak bu döngü yapısı hiç bir zamansonlanmaz. Bu hataya “sonsuz döngü” hatası denir.
Sayıcı Kontrollü Döngü • Sayıcı Kontrollü Döngü • Sayaç(sayıcı) belli bir değere ulaşana kadar döngü tekrarlanır. • Belirli döngüler: Döngü başlamadan önce döngünün kaçıncı tekrardan sonra sonlanacağı bilinir. • Örneğin; Bir sınıftaki 10 kişi bir sınava girmiştir. Notlar(0’dan 100’ e kadar tamsayılar) size verilmiş ve bu sınavın sonucunda sınıfın ortalamasını bulmanız istenmiştir.
Sayıcı Kontrollü Döngü • Sahte Kodu: toplamı 0'a ata sayıcı 'yı 1'e ata sayıcı 10' e git ya da 10'dan küçükken (while) Diğer notu gir. Girilen notu, toplama ekle sayıcı‟ ya 1 ekle Sınıf ortalamasını, toplamı 10'a bölerek bul Sınıf ortalamasını yazdır.
#include <stdio.h> #include <conio.h> int main() { int counter, grade, total, average; total = 0; counter = 1; while ( counter <= 10 ) { printf( "Not girin: " ); scanf( "%d", &grade ); total = total + grade; counter = counter + 1; } average = total / 10; printf( "SınıfOrtalaması: %d\n", average ); getch(); return 0; }