C & C++ ' a Giriş 2
22/11/2008 ·
Operatörler II
Karşılaştırma Operatörleri:
Bunların teker teker ne olduğunu söylemeye gerek yok. İfadeler gayet basittir. Burada dikkat etmemiz gereken önemli bir şey var: " >=* <=* ==* !=" notasyonlarını kullanırken iki notasyon arasında boşluk bırakmamalıyız. Buna dikkat edelim!
Eşitleme ( Atama) Operatörleri:
Bunlarıda liste halinda verelim.
Operatörler III
Mantıksal Operatörler (Lojik Operatör Sembolleri) :
Burası biraz Soyut Matematik* biraz değinmek istiyorum. Yukarıda gördüğümüz mantıksal operatörler* Doğru (1) yada Yanlış (0) sonucunu argümanlara bakarak üretirler. Mantıksal Değil (!)* değeri tersine çevirir. Ve ( && ) operatörü ise yalnızca her iki ifadede Doğru (1) ise sonuç Doğru (1) ` dur; diğer durumlarda Yanlış (0)` dır. Veya` da ( || ) ise yalnızca iki ifadenin Yanlış (0) durumunda sonuç Yanlış (0) olur diğer durumlarda Doğru (1)`dur.
Ne diyorlardı? En iyi programcılar matematikçilerden çıkar
. Arkadaşlar umarım zorlanmıyorsunuzdur. Olabildiğince ince eliyorum ve anlayacağınız şekle indirgemeye çalışıyorum. Bunun üstüne bir çay içerim. Geldiğimde devam edeceğim...
Bit bazında İşlem Yapan Operatörler :
Bu kısımda Soyut Matematiğin daha da ayrıntılarına girilmesi gerekiyor. Ben size kısaca bunu anlatayım. Çok karışıklık da sizi yoracaktır. Örnekleri yaparken yine üstünde dururuz.
Bit bazında işlem yapan operatörler şunlardır: AND (Ve ( & ) * OR (Veya ( ~ ))* XOR ( ^ ).
And (&) operatörü; bitleri karşılaştırır. Eğer her ikisi de Doğru (1) ise sonuç Doğru (1)* aksi halde Yanlış (0)`dır.
OR (~) operatörü; iki biti karşılaştırır ve eğer ikisi de Doğru (1) ise yada birisi Doğru (1) ise sonucu Doğru (1) yapar. OR işlemi belirli bir bit i Doğru (1) e çekmek için kullanılabilir.
XOR (^) operatörü; bit düzeyinde EXCLUSIVE OR (dışında tutan veya) (Türkçe'sini çevirince saçma oluyor) işlemi yalnızca karşılaştırılan bitler bir birinden farklı ise Doğru (1) üretir* aksi halde Yanlış (0) üretir.
! işareti ise her bir bit i ters çevirir.
Not: Bunlar yeni başlayanlar için yorucu olabilir. Son iki bölümün fazla üstünde durmayın
< Bir de bize C++ile gelmiş olan operatörlerden bahsetmek istiyorum. Bunlar;
" :: " Erim çözünürlüğü (Scope resolution operatörü).
" * " Dolaylı adresleme (Pointerlerle kullanacağız).
" & " Adres operatörü (Pointerlerle kullanacağız).
" new " Dinamik bellek ayırma .
" sizeof " Nesne Boyutu.
İlerde fonksiyonlara geçince* bunları ve diğerlerini de göreceğiz. Şu an için sizi bunlarla yormak istemiyorum.
Program Kontrol ve Döngü Komutları
Daha önceki bölümlerde* standart veri tiplerini öğrendik* bununla birlikte diğer dillerde olmayan fakat C/C++`a özgü işlemleri de tanıdık. Şimdi ise C/C++ mantıksal kontrol yapılarını öğreneceğiz. Bu komutların bir çoğu diğer yüksek seviyeli dillerde de mevcuttur. Örneğin; if* if-else* switch* for* while ve do-while döngüleri. Fakat ?:* break* ve continue komutları gibi yalnızca C/C++`a özgü kontrol komutları da vardır. Ne demiştik C++ * C yi kapsar. O halde C de olan tüm mantıksal kontrol yapıları C++ da da mevcuttur.
Programlar (algoritmalar) üç temel blok kullanılarak gerçekleştirilebilirler. Bunlar; artarda* bir koşula bağlı olarak ve sonlu sayıda yineleme (döngü) dür.
Biz şimdi bu Mantıksal ifadeleri teker teker ele alacağız. Hem Bu sayede hepsine daha çok yer vermiş olacağız ve de örneklerle bunu pekiştireceğiz. Şimdiye kadar geldiğimiz bölümleri iyi bilip* Mantıksal ifadelerin yapılarını da öğrendiğimizde* bayağı bir yol kat etmiş olacağız.
If Komutu
if komutu anlaşılması ve yazılımı en basit olanıdır. if komutu* bir grup komutun koşullu olarak yürütülmesi amacıyla kullanılır. Buna bir örnek verecek olursak; düşünün ki bir sınav yapılıyor ve 50 ve üzeri alanlar geçecek. Bunun için if i kullanırsak not 50 ye eşit veya büyükse (büyük eşit) geçer not olacak.
//not.cpp
// 50 ve 50 den yukarsı geçiyor.
#include
main()
{
int not;
cout << "Notu yazınız:";
cin >> not;
if ( not >= 50 )
cout << "Geçtiniz!";
} Sanırım bu örnekte ne dediğimi anlamış olacaksınız.
if ( not >= 50 )
cout << "Geçtiniz!";
if (ifade)
{
Komut;
Komut;
...
} Burda görüldüğü gibi if (ifade) ve sonraki komutlarda { } bloğunun içine yazılır. Şimdi if`e bir de şu açıdan yaklaşalım. if in kelime anlamı "eğer" dir. Mantık şudur: eğer belirtilen parametre doğruysa* if komutu* if ten sonra gelen bloktaki fonksiyonları gerçekleştirir. Doğru değilse* if den sonraki bloğu yok sayar. Burada bir detaya daha inmek istiyorum. Ne demiştik* mantık işlemlerinde olay ya doğrudur (1) ya da yanlıştır (0). Şimdi yukarıdaki if in genel kullanım şekline tekrar bakalım. Bunu* eğer parametre doğru ise kullanabiliriz. Bir de bunun tersini düşünelim. Bit bazında işlemlerde sanırım ( ! ) bunu görmüştük. Her bir biti ters çevirir.
if (!ifade)
{
komut (yanlış (0));
Komut (yanlış (0));
....
} Derdimi anlamış olduğunuzu ümit ediyorum . Ama bence buranın üstünde biraz daha duralım. Çünkü bunu anlarsak diğerlerinde zorlanmayız. Son yaptığımızda ifadeyi tersine çevirdik.
//pozitif.cpp
// Bunada açıklama yaptırmayın ( yapamadımda)
#include
main()
{
int x;
cout << "Bir sayı girin:" ;
cin>> x;
if ( x > 0 )
cout << "Pozitif" ;
} Aynısının negatif ini de siz yapın. Şimdi bir de iç içe if örneğine bakalım:
//gecti.cpp
// Buna açıklama yapmıycam!
#include
main()
{
int not;
cout << "Notunuzu giriniz:";
cin >> not;
if ( not> 50)
cout << "Geçtiniz!" ;
if (not < 50)
cout << "Kaldınız!" ;
if ( not==50)
cout << "zar zor geçtin ";
} Anlamış olduğunuzu umut ederek if komutunu burada bitiriyorum.
If-else Komutları
if-else komutu iki işlemden hangisinin uygulanacağına karar verir. Else kısmı seçimlidir* gerekmiyorsa kullanılmayabilir. Yazılım kuralı ile şöyledir;
if ( ifade)
komut1;
else
komut2; daha genel şekliyle
if ( ifade )
{
komut1;
komut2;
...
}
else
{
komut1;
komut2;
...
} Veya lojik olarak baktığımızda sanırım daha iyi anlayacaksınız
if (ifade)
blok_dogru (1);
else
blok_yanlis (0); Sanırım artık açıklama yapmama gerek kalmayacak. Şimdi örneklerle bunu pekiştirmeye çalışalım.
//tekcift.cpp
//sayı tekmi çiftmi onu görüceğiz
#include
main()
{
int sayi;
cout<< "Bir sayı giriniz:";
cin >> sayi;
if (sayi %2==1 )
cout <<"tek";
else
cout << "çift" ;
} Bir örnek daha verelim:
//ifelse.cpp
#include
main()
{
int not;
cout<< "Notu giriniz:";
cin >> not;
if (not >= 50)
cout << "Geçti!";
else
cout << "Kaldı!";
} if kısmından anlatmaya başlayacağım. Eğer notumuz 50 ye eşit veya 50 den büyük ise geçiyoruz aksi halde kalıyoruz.
Bir de bir if-else in altında bir tane daha if-else kullanalım.
//sinav.cpp
// alt alta if-else
#include
main()
{
int not;
cout<< "Not`u giriniz:";
cin >> not;
if (not >= 50)
cout << "Geçtiniz!";
else
{
cout <<"Bütten alınan not:";
cin >>not;
if( not>=60 )
cout << "Geçtiniz!";
else
cout <<"Kaldınız!";
}
} Burada da şunu inceledik: diyelim ki sınava girdik ve notumuzu öğrendik* notu giriyoruz 50 nin altındaysa kalıyoruz. ve bütünleme sınavına giriyoruz. Bütte de geçer not en az 60. Sanırım bu basit örneklerle olayı iyice kavramışızdır. if-else i de burada bitiriyoruz.
Ekleyen: Serdar Demir

