Bölüm 7. İfadeler ve atamalar ISBN

Benzer belgeler
İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için,

Bölüm 7. Deyimler ve Atama ifadeleri ISBN

Java da Program Denetimi ve Operatörler

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Nesne Yönelimli Programlama

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Chapter 8. Komut düzeyi kontrol yapıları ISBN

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

OPERATÖRLER Alıştırmalar

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Java da İşleçler, Ders #3 (4 Kasım 2009)

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

C++ Operatörler (Operators)

Bölüm 5. İsimler, Bağlama, Tür Kontrolü ve Kapsam(Etki Alanı) ISBN

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

BIM Bahar Programlama Dilleri

Nesne Tabanlı Programlama

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN

Dr. Fatih AY Tel: fatihay@fatihay.net

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Bölüm 9. Altprogramlar ISBN

Bağlama (Binding) Kavramı

Bölüm 10. Altprogramların gerçeklenmesi ISBN

Nesne Tabanlı Programlama

Bölüm 3 Yapısal Programlama

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

Programlama Dilleri 3

Adım Adım C-II. Eksik kalmış konular

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

JAVASCRIPT JAVASCRIPT DİLİ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Pointer Kavramı. Veri Yapıları

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Koşullu Önermeler (if else)

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

Bölüm 15. Fonksiyonel Programlama Dilleri ISBN

Göstericiler (Pointers)

C Programlama Dilininin Basit Yapıları

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Bölüm1. İlk Bilgiler ISBN

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

BÖLÜM 3 OPERAT A ÖRLER

BİL-142 Bilgisayar Programlama II

Bölüm 6. Veri Tipleri ISBN

Genel Programlama II

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

YZM 2105 Nesneye Yönelik Programlama

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Program Akış Kontrol Yapıları

Mantıksal (Logic) Operatörler

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Operatörler. 6.1 Operatör Nedir?

PASCAL PROGRAMLAMA DİLİ YAPISI

Bölüm 4 C de Program Kontrolü

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Bilgisayar Programlama

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

Bölüm 6. Veri Türleri ISBN

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız:

Bölüm 5. İsimler, Bağlamalar, Tip Kontrolü, Etki Alanları ISBN

Öğr. Gör. Serkan AKSU 1

Dr. Fatih AY Tel: fatihay@fatihay.net

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım

Dekleratif Programlama. Örnek : Aile Ağacı. SWI-Prolog. Prolog Dekleratif programlama dili

ALGORİTMA VE PROGRAMLAMA II

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1 PROGRAMLAMAYA GİRİŞ

MAK 210 SAYISAL ANALİZ

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

C PROGRAMLAMA DİLİNE GİRİŞ

BLM 111 Algoritma ve Programlama I Güz 2018

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

Transkript:

Bölüm 7 İfadeler ve atamalar ISBN 0-321-49362-1

7. Bölüm konuları Giriş Aritmetik ifadeler Çok anlamlı (overloaded) operatörler Tip dönüşümleri (conversions) İlişkisel ve Boolean İfadeler Kısa-devre hesaplama Atama komutları Karışık-mod atamalar

Giriş İfadeler programlama dillerinde temel hesap gösterim yolu İfadeleri doğru anlamak için operatör önceliğini ve işlenenlerin (operand) hangi sırada işlendiğini bilmek lazım Komutlu dillerde atamanın rolü büyüktür

Aritmetik ifadeler Aritmetik hesap yapma ilk programlama dillerindeki motivasyonlardan biri Arithmetic ifadeler operatörlerden, işlenenlerden (operands) (operatörlerin parametrelerinden), parantezlerden ve fonksiyon çağırmalarından oluşur.

Aritmetik ifadelerin tasarım problemleri Operatör öncelik kuralları Operatör birleşebilirlik (associativity) kuralları İşlenen hesaplanma sırası kuralları (order of operand evaluation) İşlenen hesaplamasının yan etkileri Çok anlamlı operatörler (Operator overloading) İfadelerde değişik tiplerin olması

Aritmetik ifadeler: operatörler Tekli (unary) İkili (binary) Üçlü (ternary)

Aritmetik ifadeler: Operatör önceliği kuralları Ayni ifade içinde farklı operatörlerden hangisin daha önce işleme konulacağını belirtir Tipik öncelik seviyeleri parantezler tekli operatörler ** (üs operatörü) *, / +, -

Aritmetik ifadeler: Operatör birleşebilirlik kuralları İki tane ayni operatörün yanyana kullanıldığı durumlarda hangisinin önce işleme gireceğini belirleyen kurallar. Tipik birleşebilirlik kuralları Soldan sağa, ** hariç (sağdan sola) Tekli operatörler bazen sağdan sola APL farklı; tüm operatörler eşit öncelikte ve sağdan sola birleşirler Parantez kullanarak öncelik ve birleşebilirlik kurallarını geçersiz kılabiliriz

Aritmetik ifadeler: Şartlı ifadeler C-tabanlı diller (ör: C, C++) Örnek average = (count == 0)? 0 : sum / count Aşağıdaki ile ayni if (count == 0) average = 0 else average = sum /count

Aritmetik ifadeler: Yan etkiler Fonksiyonel yan etkiler: fonksiyon giriş-çıkış parametresini veya lokal olmayan değişkeni değiştirdiğinde meydana gelir Yan etkilerin olumsuz neticeleri: Bir fonksiyon içinde bulunduğu ifadenin değişkenini değiştirise işlenenlerin (operand) işlenme sırası önem kazanır a = 10; /* fun ın parametresini değiştirdiğini farzedelim */ b = a + fun(a);

Çok amaçlı (overloaded) operatörler Birden çek amaç için kullanılan operatörler Yaygın olarak kullanılan lara örnek: tamsayı ve kayan nokta için + C++, Ada, Fortran 95, ve C# kullanıcıtanımlı çok amaçlı operatör tanımlanmasına olanak sağlarlar Olası problem: Okunabilirlik zaafiyete uğrayabilir. Ayni görünen operatörler farklı işler yapıyor.

Tip dönüşümleri Daraltan dönüşüm: yeni tipin değerleri eski tipin altkümesi. ör: float dan int e Genişleten dönüşüm: : eski tipin değerleri yeni tipin altkümesi. ör: int den float a

Tip dönüşümleri: Karışık mod Karışık mod ifade: içinde değişik türden işlenen var Zorlama: derleyicinin otomatik olarak yaptığı tip dönüşümü Zorlamaların dezavantajı: Derleyicinin tip hatalarını bulma yeteneğini azaltır Birçok dilde sayısal tipler zorlama yolu ile daha geniş tiplere dönüştürülürler Ada dilinde hemen hemen hiç zorlama yoktur.

Açık tip dönüşümleri Kullanıcı tarafından yapılır Kalıplama (casting) diye adlandırılır Örnekler C: (int)angle Ada: Float (Sum)

Tip dönüşümleri: ifadelerde hatalar Sebepler Aritmetiğin kendi sınırları (sıfırla bölme vs.) Bilgisayar aritmetiğinin sınırları (taşma vs.)

İlişkisel ve Boolean ifadeler <, >, >=, <=,!=, ==,.NE., <>

İlişkisel ve Boolean ifadeler... Boolean ifadeler İşlenenler ve netice Boolean Örnek operatörler FORTRAN 90 C Ada and && and or or not! not xor

İlişkisel ve Boolean ifadeler: C dilinde Boolean yok C dilinde 0=yanlış, 0 dışında bir değer: doğru a < b < c ifadesinin anlamı ne?

Kısa devre hesaplama Tüm operatörleri ve işlenenleri kullanmadan neticeyi bulma Örnek: (13*a) * (b/13 1) a sıfır ise (b/13-1) değerini hesplamaya gerek yok

Kısa devre hesaplama... C, C++, ve Java dillerinde: && ve kısa devre olarak hesaplanır, bit operatörleri & ve ise tam olarak hesaplanır Kısa devre hesaplamanın yanetkiler ile etkileşimini iyi düşünmek gerekir ör: (a > b) (b++ / 3)

Atama ifadeleri Genel sentaks <hedef_değişken> <atama_operatörü> <ifade> <expression> Atama operatörü = FORTRAN, BASIC, ve C-tabanlı diller := ALGOL, Pascal, Ada

Atama ifadeleri: şartlı hedefler Perl dilinde ($flag? $total : $subtotal) = 0 Eşdeğeri if ($flag){ $total = 0 } else { $subtotal = 0 }

Atama ifadeleri: Bileşik operatörler a = a + b yerine a += b

Atama ifadeleri: Tekli atama operatörleri Artırma ve atama işlemlerini birleştirir Örnekler sum = ++count (önce-artırma) sum = count++ (sonra-artırma) count++ -count++ (count önce artırma, sonra eksi)

İfade olarak atama komutu C, C++, ve Java dillerinde atama işlemi netice verebilir ve bu netice işlenen olarak kullanılabilir Örnek: while ((ch = getchar())!= EOF){ }

Liste atamaları Perl ve Ruby dillerinde: ($first, $second, $third) = (20, 30, 40);

Karışık mod atama Örnek int a, b; float c; c = a / b; Fortran, C, ve C++ dillerinde herhagi nümerik değer herhangi nümerik tipteki değişkene atanabilir Java dilinde sadece genişleten atama zorlamaları var Ada dilinde atama zorlaması yok

Özet İfadeler Operatör önceliği ve birleşebilirliği Çok amaçlı operatörler Karışık-tip ifadeler Değişik atama türleri