Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.

Benzer bir sunumlar


... konulu sunumlar: "Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz."— Sunum transkripti:

1 Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz

2 Operatörler Operatörler, değişkenler ve sabitler üzerinde matematiksel, karşılaştırma ve mantıksal işlemlerin yapılmasını sağlayan işlemcilerdir. Operatörler bakımından en zengin dillerden biri C/C++ dilidir. Operatörler mikroişlemci tarafından bir faaliyete neden olurlar ve bu faaliyet sonunda da bir değer üretilmesini sağlarlar. Programlama dillerindeki her operatör bir yada birden fazla makine komutuna karşılık gelir. Operatörlerin Sınıflandırılması Operatörler işlevlerine göre: Aritmetik operatörler (Arithmetic op.) İlişkisel operatörler (Relational op.) Mantıksal operatörler (Logical op.) Bit operatörler (Bitwise op.) Gösterici operatörler (Pointer op.) Özel amaçlı operatörler (Special purpose op.)

3 Aritmetiksel operatörler Değişkenler ve sabitler üzerinde temel aritmetik işlemleri gerçekleyen operatörlerdir. C/C++ dilinde bulunan aritmetiksel operatörler; +: toplama -: çıkarma *: çarpma /: bölme %: modül adını taşıyan bölme işleminde kalanı verir --: bir azaltma ++: bir artırma

4 Aritmetiksel operatörler int a,b,c; a=10;/*a değişkenine 10 sayısı*/ b=5;/*b değişkenine 5 sayısı */ c=a+b;/*c değişkenine 15 sayısı*/ printf(“%d C’nin değeri : \n”, c );/*ekrana 15 yazılır*/ c++;/*c’nin değeri 1 artırılır*/ printf(“%d C’nin değeri : \n”, c );/*ekrana 16 yazılır*/ c--;/*c’nin değeri 1 eksiltilir*/ printf(“%d C’nin değeri : \n”, c );/*ekrana 15 yazılır*/

5 Aritmetiksel operatörler Aritmetik işlemler için örnek C/C++ programı; #include void main(void) { int m=10, n=2, t,a,a2,b; t=m+n; a=m++;/*once a=m sonra m=m+1*/ a2=--m;/*once m=m-1 sonra a2=m*/ b=m/2; ++m;/*m=m+1*/ printf("m=%d, t=%d, a=%d, a2=%d, b=%d,",m,t,a,a2,b); }

6 Aritmetiksel operatörler #include main() { int x, y; x=10; y=3; printf(“%d”,x/y); /*ekrana 3 yazdırılır*/ printf(“%d”,x%y); /*ekrana 1 yazdırılır*/ x=1; y=2; printf(“%d %d”,x/y, x%y); /*ekrana 0 1 yazdırılır*/ Return 0; }

7 Aritmetiksel operatörler // Haftalık gelirinizi hesaplar #include main() { float weekly, yearly; printf( “Yıllık gelirin nedir?’\” ); // kullanıcıya mesaj scanf(“%f ”,&yearly); Weekly= yearly/52; // Haftalık gelir hesaplanır printf(“\n\n Haftalık geliriniz %.2f YTL”, weekly); Return 0; } Yıllık gelirin nedir? Haftalık geliriniz YTL

8 Aritmetiksel operatörler C programlama dili önce çarpma, bölme ve mod işlemlerini, daha sonra toplama ve çıkarma işlemlerini gerçekleştirir. Bu bizim ilk okulda öğrenmediğimiz işlemlerdir. 6+2*3-4/ / *4/ / /3+5%2 6+5% Eğer biz var olan sıranın değişmesini istiyorsak parantezler kullanırız. Parantezlerin çarpma, bölme ve mod işlemine göre önceliği vardır. 6+2*(3-4)/2 6+2*-1/2 6+-2/ *4/2+(3-1) 3*4/2+2 12/

9 Aritmetiksel operatörler Örneklerin çalıştırılması sonucunda üreteceği değerleri tahmin edebiliyormuyuz? // Üç notun ortalamasını hesaplama #include main() { float avg, grade1, grade2, grade3; grade1=87.5; grade2=92.4; grade3=79.6; avg=garade1+grade2+grade3/3.0; printf(“\n Ortalama %.1f”, avg); Return 0; } // Üç notun ortalamasını hesaplama #include main() { float avg, grade1, grade2, grade3; grade1=87.5; grade2=92.4; grade3=79.6; avg=(garade1+grade2+grade3)/3.0; printf(“\n ortalama %.1f”, avg); Return 0; }

10 Aritmetiksel operatörler #include int a,b,c; main() { printf(“İlk sayı: "); scanf("%d",&a); printf(“\n İkinci sayı:"); scanf("%d",&b); printf("menu\n"); printf(“1- Toplama \n"); printf(“2- Carpma \n"); printf(“3- Çıkarma \n"); printf(“4- Bölme \n"); scanf("%d",&c); switch (c) { case 1:printf(“Toplam=%d",a+b);break; case 2:printf(“Fark=%d",a-b); break; case 3:printf(“Çarpım=%d",a*b);break; case 4:printf(“Bölüm=%d",a/b);break; }

11 İlişkisel (karşılaştırma) operatörler İlişkisel operatörler aynı tipten olan değişken veya sabit değerleri birbirleri ile karşılaştırmak için kullanılırlar. İlişkisel operatörleri, genel olarak, döngü deyimlerinde dönme koşulu ifadesi veya karşılaştırma deyimlerinde koşul ifadesinde kullanılır. C/C++ dilinde bulunan ilişkisel operatörler; >: büyük >=: büyük eşit <: küçük <=: küçük eşit ==: eşit !=: eşit değil İlişkisel operatörler C/C++ dilinde sayısal, karakter ve mantıksal değerler üzerinde kullanılır. Söz dizisi (string) için kullanılmaz {bu amaçla strcmp() gibi kütüphane fonksiyonları mevcuttur}.

12 İlişkisel (karşılaştırma) operatörler İlişkisel operatörler sırası ile, = ve ==, != öncelik sırasına sahiptir.Ayrıca ilişkisel operatörler aritmetik operatörlerden öncelik sırası olarak sonra gelir. C programlama dilinde ilişkisel operatörlerin ürettiği değerler koşul sağlanması durumunda 1, sağlanmaması durumunda 0 (int) değeri üretir. Örnek 1 a=5; b=4; c=b<=a;/* c=1 */ c=a!=b;/* c=1 */ c=b>a;/* c=0 */ Örnek 2 a=10; b=5; c=a

13 Mantıksal operatörler Mantıksal operatörler genel olarak birden çok karşılaştırma ifadesinin birleştirilip tek bir koşul ifadesi haline getirilmesi veya koşulun tümleyenini (değil) almak için kullanılır. Yani, İki olay arasındaki mantıksal bağıntı değerlendirmek için kullanılır. C/C++ dilinde bulunan mantıksal operatörler; &&: ve (and) ||: veya (or) !: değil (not) Mantıksal işlemlerin yürütülmesi sonucunda doğru veya yanlış değeri döndürülür

14 Mantıksal operatörler Mantıksal operatörler için örnek C/C++ kodu; … if (x<15 && 20

15 #include int a,b,c; float fx, x; void main() { printf(“a,b,c değişkenleri için üç integer değer giriniz :”) scanf(“ %d %d %d”,&a,&b,&c); printf(“ \n x değerini giriniz:” scanf(“ %f”,&x); fx=a*x*x+b*x+c printf(“ fx fonksiyon sonucu: %f”,fx); getch(); }

16 fx=a*(b*x*x+c*x/(d*x+e)-10);

17 Bit düzeyinde işlem yapan operatörler Bit düzeyinde işlem yapmak, bir tamsayı veya karakter değişkenin değeri yerine doğrudan bitler (0,1) üzerinde sınama, değiştirme veya öteleme/kaydırma (shift) yapmak için kullanılır. Örneğin, bilgisayarın iletişim kanalından alınan 8 bitlik bir kısa tamsayının düşük öncelikli üçüncü bitinin ne olduğunu öğrenmek istiyorsak bu operatörleri kullanmamız gerekir. Bu operatörler, kullanıcıya işlemcinin birleştirici dili (assembly) düzeyinde, bitler üzerinde çalışma olanağı verir. C/C++ dilinde bulunan bit düzeyinde işlem yapan operatörler; &: bit düzeyinde ve (bitwise and) | : bit düzeyinde veya (bitwise or) ^: bit düzeyinde ya da (bitwise xor) ~: bir’e tümleme (one’s complement) <<: sola kaydırma (shift left) >>: sağa kaydırma (shift right)

18 Diğer operatörler Atama operatörleri: bir değişkene bir bağıntının sonucunu veya bir değeri eşitlemek için kullanılırlar. C/C++ dilinde bulunan temel basit atama operatörü “=” dir. Ayrıca C/C++ dilinde aşağıda verilen diğer bitişik operatörler de kullanılabilir; +=: ekleyerek atama {t+=m+n  t=t+(m+n)} -=: çıkararak atama {t-=m+n  t=t-(m+n)} *=: çarparak atama {t*=m+n  t=t*(m+n)} /=: bölerek atama {t/=m+n  t=t/(m+n)} %=: bölüp kalanını atama {t%=m+n  t=kalan(t/(m+n))} <<=: sola öteleyerek atama >>=: sağa öteleyerek atama &=: bit düzeyinde ve işlemi yaparak atama |=: bit düzeyinde veya işlemi yaparak atama ^=: bit düzeyinde ya da işlemi yaparak atama ~=: bir’e tümleme işlemi yaparak atama

19 Diğer operatörler ? karşılaştırma operatörü: C/C++ dilinde if-else karşılaştırma deyiminin yaptığı işi sınırlı olarak yapan bir operatördür. Genel yazılım biçimi; (koşul deyimi) ? deyim1 : deyim2 Örnek 1: {m = (a>b) ? a : b;  a>b ise m=a, değilse m=b} Örnek 2: {(m>5) ? a++ : b++;  m>5 ise a=a+1, değilse b=b+1} & ve * işaretçi operatörleri: İşaretçi, bir değişkenin bellekteki adresidir. İşaretçi değişken bu adresin saklanacağı özel bir değişkendir. Bu tip değişkenlere yalnızca bellek adresleri veya diğer işaretçi değişkenler atanabilir. İşaretçiler önümüzdeki dönem verilecek olan C programlama dersinde detaylı olarak verilecektir. Burada sadece bu operatörlerin C/C++ dilinde bildirimini ve kullanımını gösteren basit bir örnek program verilecek;

20 Diğer operatörler #include void main(void) { int *p,*q, n=5, m=10, g; g=n; p=&n; /* n 'nin adresi p' ye ataniyor */ q=&m; /* m 'nin adresi q' ye ataniyor */ *p=m; /* adresi p ile gösterilen yere (yani n) m' in degeri ataniyor */ *q=g; /* adresi q ile gösterilen yere (yani m) g' in degeri ataniyor */ clrscr(); printf("p=%p,n=%d,q=%p,m=%d",p,n,q,m); }

21 sizeof operatörü: daha önce de örnek ile bahsedildiği gibi bir değişkenin veya veri tipinin bellekte kaç byte yer kapladığını verir. Örnekler: {sizeof a, sizeof (int), vb.}

22 İşlem öncelikleri C/C++ dilinde yazılan işlemlerin istenildiği şekilde doğru olarak sonuçlana bilmesi için ifadeler işlem öncelikleri dikkate alınarak yazılmalıdır. Aşağıdaki tabloda operatörlerin C/C++ dilindeki öncekikleri görülmektedir. Ayrıca aynı önceliğe sahip operatörlerin peşi sıra yazılması halinde hangisinin ilk önce değerlendirileceği de aynı tabloda görülmektedir {Bu operatörlerden “->”, “.”, vb. bahsedilmeyen bir kısmı C Programlama dersinde yeri geldiğinde detaylıca ele alınacaktır};

23


"Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz." indir ppt

Benzer bir sunumlar


Google Reklamları