Algoritmalar ve Programlama I Ders 5: Operatörler

Slides:



Advertisements
Benzer bir sunumlar
BÖLÜM Atama Deyimi (Assignment)
Advertisements

Karar Verme: Eşitlik ve Karşılaştırma Operatörleri
Değişkenler ve bellek Değişkenler
Öğrenilmesi gerekenler: Operatör, operand Öncelik sırası
OPERATÖRLER Programlama dillerinde tanımlanmış sabit ve değişkenler üzerinde işlemler yapmayı sağlayan karakter ya da karakter topluluklarına operatör.
Nöbetçi Kontrollü Döngü
Kontrol İfadeleri : 2.Kısım
Göstericiler (Pointers)
Makine Müh. & Jeoloji Müh.
Bölüm 2 C Dilinin Temelleri
switch - case Yapısı Döngü Yapıları
String Diziler(Katarlar)
TEMEL C PROGRAMLAMA DERSİ 2
Atama ve Girdi/Çıktı Komutları
Bölüm 2: Program Denetimi
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
String Kütüphanesindeki Arama Fonksiyonları
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Bölüm 10 Yapılar ve Birleşimler
Karar ifadeleri ve Döngüler
Operatörler.
Yapısal Program Geliştirme – if, if-else
OPERATÖRLER.
Program Kontrol İfadeleri
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
FONKSİYONLAR.
DEĞİŞKENLER.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
BİL 102 BİLGİSAYAR PROGRAMLAMA
İnternet Programlama - 2
PROGRAM DENETİM DEYİMLERİ
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
Nesne Tabanlı Programlama 2
Bu Günkü Konular If yapısı ve karşılaştırma operatörleri
Algoritma, bir işin hangi aşamalardan geçilerek yapılacağını gösteren çalışma planıdır. Algoritma Nedir ?
2. HAFTA 2. Hafta.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Algoritmalar ve Programlama I Ders 10: ALTPROGRAM KAVRAMI ve FONKSİYON
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Değişkenler Programda Değişken Tanımlama. Değişken nedir? (Variables) Program içinde kullanılan veri(data)nin tutulduğu alanın adıdır. Her veri bir tür.
BİLGİSAYAR programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
VB’DE OPERATÖRLER. VB’DE ARİTMETİK İŞLEMLERİN BAZILARI OPERATÖRLERLE YAPILIRKEN BAZILARI DA FONKSİYONLARLA YAPILIR. VB’DE KULLANILAN ARİTMETİK VE LOJİK.
BİLGİSAYAR PROGRAMLAMA Ders 4: Koşula Göre İşlem Yapma Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Bölüm 4 Seçme Komutları Alıştırmalar
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları 1.
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Programlama BIL 107
Fonksiyonlar ve Diziler
C Programlama Dili Bilgisayar Mühendisliği.
METHODLAR VE KOŞULLAR.
Bölüm 2 C Dilinin Temelleri
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
YAPISAL PROGRAMLAMA Hafta-6
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
Bilgisayar Programlamasına ve Veri Analizine Giriş
Bölüm 2: Program Denetimi
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bölüm 2 C Dilinin Temelleri
Aritmetik Operatörler
Sunum transkripti:

Algoritmalar ve Programlama I Ders 5: Operatörler Doç. Dr. Cemil Öz Algoritmalar ve Programlama I Ders 5: Operatörler   SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz

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.)  

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

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*/  

Aritmetiksel operatörler    Aritmetik işlemler için örnek C/C++ programı;   #include <stdio.h> 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); }

Aritmetiksel operatörler    #include <stdio.h> 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; }  

Aritmetiksel operatörler    // Haftalık gelirinizi hesaplar #include <stdio.h> 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? 38000.00 Haftalık geliriniz 730.77 YTL  

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/2 6+6-4/2 6+6-2 12-2 10 3*4/2+3-1 12/2+3-1 6+3-1 9-1 8 20/3+5%2 6+5%2 6+1 7 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/2 6-1 10 3*4/2+(3-1) 3*4/2+2 12/2+2 6+2 8

Aritmetiksel operatörler Örneklerin çalıştırılması sonucunda üreteceği değerleri tahmin edebiliyormuyuz? // Üç notun ortalamasını hesaplama #include <stdio.h> 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 <stdio.h> 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; }

Aritmetiksel operatörler  #include<stdio.h> #include<math.h> #include<conio.h> 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; }

İ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}.

İ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<b+3;   Burada b+3  8 a<8  0 c=0 olur. Genellikle if vb fonksiyonlarla kullanılırlar … if (x<15) ... if(z==12) … if(x<=y) …

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

Mantıksal operatörler    Mantıksal operatörler için örnek C/C++ kodu; … if (x<15 && 20<y) if (!(m<5))

#include<stdio.h> #include<conio.h> 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(); }

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

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)

+= : ekleyerek atama {t+=m+n  t=t+(m+n)} 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

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;

p=&n; /* n 'nin adresi p' ye ataniyor */ Diğer operatörler    #include <stdio.h> 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); }

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.}

İş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};