Öğrenilmesi gerekenler: Operatör, operand Öncelik sırası

Slides:



Advertisements
Benzer bir sunumlar
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Advertisements

OPERATÖRLER.
STRİNG FONKSİYONLARI.
Diziler.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
BÖLÜM Atama Deyimi (Assignment)
Karar Verme: Eşitlik ve Karşılaştırma Operatörleri
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Değişkenler ve bellek Değişkenler
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ü
Göstericiler (Pointers)
Nesneye Yönelik Programlama
Makine Müh. & Jeoloji Müh.
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
MODÜLER ARİTMETİK.
TEMEL C PROGRAMLAMA DERSİ 2
Değişken Bildirimleri
Atama ve Girdi/Çıktı Komutları
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
String Kütüphanesindeki Arama Fonksiyonları
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Bölüm 10 Yapılar ve Birleşimler
Operatörler.
Bölüm 3: Göstergeler BTEP 102 – Veri Yapıları ve Programlama
1.BELİRSİZ İNTEGRAL 2.BELİRSİZ İNTEGRALİN ÖZELLİKLERİ 3.İNTEGRAL ALMA KURALLARI 4.İNTEGRAL ALMA METODLARI *Değişken Değiştirme (Yerine Koyma)Metodu.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
İŞLEM ÖNCELİĞİ MATEMATİK 5,6.
Yapısal Program Geliştirme – if, if-else
OPERATÖRLER.
DİZİLER.
Program Kontrol İfadeleri
Fonksiyonlar.
C# Metot Overloading (Aşırı yükleme)
Nesneye Yönelik Programlama (2. Sunu). Konsol Üzerinde Türkçe Karakterler Görebilmek İçin…
DERS 2 MATRİSLERDE İŞLEMLER VE TERS MATRİS YÖNTEMİ
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
FONKSİYONLAR.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
İŞLEM ve MODÜLER ARİTMETİK.
Bilgisayar Programlama
Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Dizi Elemanlarının Sıralanması
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Algoritma & Programlama
DÖNGÜLER(Loop) while, for döngüleri Break ve continue işlevleri
Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
DEYİMLER DEYİM NEDİR? Kaç guruba ayrılır? İf deyimi nasıl çalışır?
İnternet Programlama - 2
Bilgisayar Programlama. Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada.
ORAN.
The if statement. if Şartlı kontrol Koşul değimi doğru (1) yada yanlış (0) değeri üretir. Şartın doğru olması durumunda if satırından sonraki değimler.
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2. HAFTA 2. Hafta.
Algoritmalar ve Programlama I Ders 5: Operatörler
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.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Bölüm 3 Atama ve Girdi/Çıktı Komutları
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Sunum transkripti:

Öğrenilmesi gerekenler: Operatör, operand Öncelik sırası OPERATÖRLER Öğrenilmesi gerekenler: Operatör, operand Öncelik sırası

Operatör nedir? Operatörler, nesneler veya sabitler üzerinde önceden tanımlanmış birtakım işlemleri yapan atomlardır.

C de her ifade en az bir operatör içerir. c=a*b/2; 3 operatör var: =*/ d=fonk(); 2 operatör var: =() c=a>4; 2 operatör var: => ++x; 1 operatör var: ++

Her operatörün operandları vardır Her operatörün operandları vardır. Operandlar operatörlerin işleme soktukları nesneler ya da sabitlerdir. a+b operatör: +, operandları: 2 tane a,b c++ operatör: ++, operandları: 1 tane c b>c operatör: >, operandları: 2 tane b,c

Yüksek Öncelik Düşük Öncelik

UYARI Operatörlerin içinde bir kısmı soldan sağa incelenir, Bir kısmı da sağdan sola incelenir.

> >= < <= soldan sağa == != soldan sağa && soldan sağa Operatörlerin hangi yönde önceliklerine bakılacağını gösteren tablo () soldan sağa ! ++ -- sağdan sola * / % soldan sağa + - soldan sağa > >= < <= soldan sağa == != soldan sağa && soldan sağa || soldan sağa = sağdan sola

Operatörler arasındaki öncelik ilişkisi c=a+b*2; ifadesi derleyici tarafından şu sırada ele alınır. işlem1: b*2; işlem2: a+işlem1; işlem3: c=işlem2;

x=a*b-2/3; işlem1: a*b; işlem2: 2/3; işlem3: işlem1 – işlem2; İşlem4: x=işlem3; Aynı önceliğe sahip olan operatörler arasında işlem sırası iki şekilde de olabilir.

a=x-b/2*c; Bölme ve çarpma operatörleri aynı önceliğe sahiptir. İ1: b/2 İ2: İ1*c İ3: x-İ2 İ4: a=İ3

C de atama operatörü sağdan sola öncelikli operatördür. a=b=c; İ1: b=c İ2: a=İ1

a=(b+2)*80; İ1: (b+2) İ2: İ1*80 İ3: a=İ2

Operatörleri 3 sınıfa sınıflandırılır İşlevlerine göre Operan sayılarına göre Operatörün konumuna göre

İşlevlerine göre operatörler Aritmetik İlişkisel Mantıksal Bit Gösterici Özel amaçlı operatörler İlk 3 tanesi diğer programlama dillerinde olabilir. Bit ve gösterici operatörleri bir çok programlama dillerinde olmazlar.

Aritmetik operatörler Dört işlemle ilgili olan; * çarpma / bölme % mod alma (bölümden kalan) + toplama - çıkartma

İlişkisel(karşılaştırma)operatörleri > büyük < küçük >= büyük yada eşit <= küçük yada eşit == eşit != eşit değil

Mantıksal operatörler ! Değil (not) && ve (and) || veya(or)

Bit operatörleri ~ değil << sola kaydırma >> sağa kaydırma & ve ^ özel veya | veya

Gösterici operatörleri * içerik alma & adres alma [ ] indeks ->

Özel amaçlı operatörler ( ) fonksiyon çağırma ve öncelik değiştirme . Yapı elemanlarına erişme (tür) tür değiştirme ?: koşul = atama +=, *=, /=,… işlemli atama

Aritmetik operatörler Aritmetik operatörler öncelik sırası ++ -- sağdan sola c=10%4+1; İ1:10%4 2 İ2:İ1+1 3 İ3:c=i2 3

Artırma(++) Eksiltme(--) ++, 1 artır -- 1 eksilt anlamındadır. ++a ile a++; ikisi de aynı anlamdadır. a=a+1; --a ile a--; ikisi de aynı anlamdadır. a=a-1;

#include<stdio.h> void main(void) { int a,b; a=10; b=++a; printf("a=%d b=%d\n",a,b); b=a++; printf("a=%d b=%d\n", a,b); } a ve b değerlerini yorumlayınız.

İlişkisel operatörler C’de ilişkisel operatörlerin ürettiği değer, koşul sağlanıyorsa 1, sağlamıyorsa 0 değerini üretir. a=5>2; /*a=1*/ b=3==3 /*b=1*/ c=4<=1 /*c=0*/

z=y<=x+10; /*z değeri nedir?*/ a=5; b=10; c=a==10<b+1; /*c değeri nedir?*/ Ödev: a=10*2+1>=4*4+5==5>5-3*2; /*a değeri nedir?*/ 1 0 1

İ1: 10*2 20 İ2: 4*4 16 İ3: 3*2 6 İ4: İ1+1 21 İ5: İ2+5 21 İ6: 5-İ3 -1 İ7: İ4>=İ5 1 İ8: 5>İ6 1 İ9: İ7==İ8 1 İ10: a=İ9 Sonuç a=1

Mantıksal operatör ! değil tek operandlı && ve iki operandlı || veya iki operandlı İlişkisel operatörlerde; koşul sağlanıyorsa 1, sağlamıyorsa 0 değerini alır. Mantıksalda ise; Sayı 0 ise YANLIŞ, sıfır değil(sıfır dışında bir sayı) ise DOĞRU değerini alır.

a=!6 /*a nin değeri nedir?*/ 6 sayısı sıfır dışı bir sayı olduğu için DOĞRU dur. Ancak “!” ile bunun tersi alınmıştır. Doğrunun tersi yanlıştır. Sonuç yanlış olacaktır.

Ödev 1 b=10+4>5+!2; /*b nin değeri nedir?*/ İ1:!2 0 İ2:10+4 14 İ4:i2>i3 1 İ5:b=i4 1 Sonuç 1 dir.

Ödev 2 a=10; b=!++a>10!=5; /*b nin değeri nedir?*/ i1: ++a 11 i2: !i1 0 i3: i2>10 0 i4: i3!=5 1 i5: b=i4 1 sonuç 1 dir.

Ve(and) - && operatörü İlişkisel operatörlerin hepsinden düşük önceliklidir. Operandların ikisi doğru ise doğru(1) değerini, operandların bir tanesi yanlış ise yanlış değerini(0) alır. a=4 && 0; /*a değeri 0 dir*/ b=10 && -4 /*b değeri 1 dir*/ c=0 && 0 /*c değeri 0 dir*/ Yani bir operand 0 ise sonuç 0 dır.

ödevler a=5; b=!a>10&&fonk()==10; /*b nin değeri nedir?*/ a=15; x=a>=10&&a<=20; /*x nin değeri nedir?*/