Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

Benzer belgeler
1 PROGRAMLAMAYA GİRİŞ

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

HSancak Nesne Tabanlı Programlama I Ders Notları

Dr. Fatih AY Tel: fatihay@fatihay.net

Bigisayar Programlama

C++ Dersi: Nesne Tabanlı Programlama

Sınav tarihi : Süre : 60 dak.

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Internet Programming II

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

PROGRAMLAMAYA GİRİŞ DERS 2

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

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

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

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

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ü

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

C Programlama Dilininin Basit Yapıları

Fen ve Mühendislik Uygulamaları ile MATLAB

C++ Dersi: Nesne Tabanlı Programlama

Fonksiyonlar (Altprogram)

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Programlama Dilleri 1. Ders 4: Diziler

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Lab Notları 4. for ( ilklenme yeri bir kez çalışır ; Kontrol yeri her döngüde bakılır ; Güncelleme yeri her döngüde )

Bölüm 2 - C ile Programlamaya Giriş

BİL-142 Bilgisayar Programlama II

C PROGRAMLAMA D İ L İ

Programlama Dili Prensipleri. Lab Notları 4

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

C++ Operatörler (Operators)

API v1.0

Diziler İndisli Değişkenler

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Visual Studio ve C++ Programlama BLGM 211 Nesneye Dayalı Programlama DENEY - 0

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

BİL-142 Bilgisayar Programlama II

3/3/2011. ENF-102 Jeoloji 1. Akış Diyagramı. Akış Diyagramı Şekilleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

BİLGİSAYAR PROGRAMLAMA DERSİ

Nesne Yönelimli Programlama

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

ALGORİTMA VE PROGRAMLAMA I

Dr. Fatih AY Tel: fatihay@fatihay.net

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

BLM 111 ALGORİTMA VE PROGRAMLAMA I

#ifndef COMPLEX_H #define COMPLEX_H

BİLGİSAYAR PROGRAMLAMA DERSİ

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

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

4. Bölüm Programlamaya Giriş

Algoritma ve Programlama: Karar Yapıları ve Döngüler

GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

C Konsol Giriş Çıkış Fonksiyonları

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

PROGRAMLAMAYA GİRİŞ DERSİ II. ÖDEVİ

Pointers (İşaretçiler)

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Giriş. ENF102 Jeoloji

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

C++ Dersi: Nesne Tabanlı Programlama

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Diziler (Arrays) Çok Boyutlu Diziler

/* Çember alanını hesaplar */

ALGORİTMA VE PROGRAMLAMA I DERS#3

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

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

Genel Programlama II

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Göstericiler (Pointers)

SIMAN KULLANIM KILAVUZU

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

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

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Temel Bilgisayar Programlama

ALGORİTMA VE PROGRAMLAMA I

Veri Yapıları ve Algoritmalar

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

Kaynak kitaplar C How to Program C++ How to Program C by Example The C Programing Language C Programlama Dili, Standart C Programlama Dili

Fonksiyonlar -Genel Test- A

Üst Düzey Programlama

Hafta 13 Fonksiyonlar

C PROGRAMLAMA DİLİ. Hedefler

Transkript:

C ++ Ders 9 C ++ Ön İşlemciler Prof. Dr. M. Serdar ÇELEBİ, İTÜ

C ++ Önişlemciler Giriş #include Önişlemci Direktifi #define Önişlemci Direktifi: Sembolik Sabitler #define Önişlemci Direktifi : Makrolar Şartlı Derleme #error ve #pragma Önişlemci Direktifleri # ve ## Operatörleri Satır Numaraları Önceden Tanımlı Sembolik Sabitler Assert

C ++ Giriş Önişlemler Program derlenmeden önce meydana gelirler Diğer dosyaların dahil edilmesi Sembolik sabitlerin tanımı ve makrolar, Program kodunun şartlı derlenmesi Önişlemci direktiflerin şartlı çalıştırılması Önişlemci direktiflerinin formatı: # ile başlayan satırlar Satırlarda direktifler öncesi boşluk karakterler C++ ifadesi değiller noktalı virgül (;) konmaz

C ++ #include Önişlemci Direktifi #include Belirtilen dosyanın kopyası direktifin yerine yerleştirilmiştir #include <filename> - dosya için standart kütüphaneyi arar (standart kütüphane dosyaları için kullanılır) #include "filename" öncelikle bulunulan dizinde arar, sonra standart kütüphanede arar (kullanıcı tanımlı dosyalar için kullanılır) Aşağıdaki durumlarda kullanılır başlık dosyalarının yüklenmesinde (#include <iostream>) birden fazla kaynak dosyayla birlikte derlenecek programlarda Başlık dosyası - ortak deklarasyonlar ve tanımlar(sınıflar, yapılar, fonksiyon prototipleri) Her dosyada #include ifadesi

C ++ #define Önişlemci Direktifi: Sembolik Sabitler #define önişlemci direktifi sembolik sabitler ve makrolar oluşturmak için kullanılır. Sembolik Sabitler Program derlendiği zaman, tüm sembolik sabitlerin olduğu yerler atama teksti ile yer değiştirilir Format: #define belirteç atanacak-text Örnek: #define PI 3.14159 Belirtecin sağındaki herşey yerleştirilecek text olarak kullanılır #define PI = 3.14159 "PI" " = 3.14159 ile yer değiştirir, muhtemelen hata ile sonuçlanır sembolik sabitler daha fazla #define ifadeleri ile tekrar tanımlanamamazlar.

C ++ #define Önişlemci Direktifi: Macrolar Macro #define da tanımlanan operasyon C programları için tasarlanmıştır argümanlarsız makro: sembolik sabitlerdeki gibi davranılır argümanlı makro: argümanlar yer değiştirileck metinin yerini alır, macro genişletilir Text yer değiştirme işlemi yapar veri türü kontrolü olmaz Örnek: #define CIRCLE_AREA( x ) ( PI * ( x ) * ( x ) ) area = CIRCLE_AREA( 4 ); aşağıdaki duruma gelir area = ( 3.14159 * ( 4 ) * ( 4 ) );

C ++ #define Önişlemci Direktifi: Makrolar (II) Parantez kullanımı: parantezsiz, #define CIRCLE_AREA( x ) PI * ( x ) * ( x ) area = CIRCLE_AREA( c + 2 ); aşağıdaki gibi olur area = 3.14159 * c + 2 * c + 2; ve bu hesap yanlıştır çoklu argümanlar: #define RECTANGLE_AREA( x, y ) ( ( x ) * ( y ) ) rectarea = RECTANGLE_AREA( a + 4, b + 7 ); aşagıdaki gibi olur rectarea = ( ( a + 4 ) * ( b + 7 ) ); #undef Daha sonra tanımlanabilecek sembolik sabit ve macroyu tanımsız hale getirir

C ++ Şartlı Derleme Şartlı Derleme Önişlemci direktiflerini ve derlemeyi kontrol eder Tür değiştirme ifadeleri, sizeof, numaralandırılmış sabitler hesaplanamaz If e benzer yapı #if!defined( NULL ) #define NULL 0 #endif Sembolik değişken NULL un tanımlanmışlığını belirler Eğer NULL tanımlı ise, defined(null), 1 değerini alır eğer NULL tanımlı değilse, NULL u 0 olarak tanımlar tüm #if ler #endif ile biter #ifdef, #if defined(name) in kısaltılmış şeklidir

C ++ Şartlı Derleme (II) Diğer İfadeler: #elif - if yapısında else if in aynısıdır #else - if yapısında else in aynısıdır "Comment out" kodu /*... */ kullanılamaz Aşağıdaki kullanılır #if 0 Yorum içine alınacak kod #endif kod kullanılmak isteniyorsa 0, 1 le değiştirilmeli

C ++ Şartlı Derleme (III) Hatadan arındırma #define DEBUG 1 #ifdef DEBUG cerr << "Variable x = " << x << endl; #endif DEBUG un tanımlanması kodu çalışır kılar. Kod doğrulandıktan sonra, #define ifade silinir ve hata arındırma ifadeleri göz ardı edilir

C ++ #error ve #pragma Önişlemci Direktifi #error tokenları token boşluklarla ayrılmıs ard arda gelen karakter dizileri "I like C++" da üç token vardır mesajları ve tokenları yazar (uygulamaya bağlıdır) örneğin: ne zaman #error ile karşılaşılırsa, token gösterilir ve önişlemler durur (program derlenmez) #pragma tokenları Uygulama tanımlı faaliyet (derleme dokumantasyonuna yardımcı olur) Derleyici tarafından tanınmayan pragma lar ignore edilir

C ++ # ve ## Operatörleri # - atama text tokenı çift tırnaklı diziye dönüştürülür #define HELLO( x ) cout << "Hello,# ye " #x dikkat << endl; HELLO(John) becomes cout << "Hello, " "John" << endl; Boşluklarla ayrılmış diziler cout kullanılarak birleştirilir ## - iki tokenı birleştirir #define TOKENCONCAT( x, y ) x ## y TOKENCONCAT( O, K ) OK şeklini alır

C ++ Satır Numaraları #line Ardışık kod satırlarını tamsayı değerden başlayarak numaralandırır dosya ismi içerilebilir #line 100 "myfile.c" sonraki kaynak kod dosyasından başlanarak satırlar 100 üzerinden numaralandırılır Hata amaçlı, dosya ismi "myfile.c dir hataları daha anlamlı kılar satır numaraları kod dosyada belirmez

C ++ Önceden Tanımlı Sembolik Sabitler Beş önceden tanımlı sembolik sabit vardır #define veya #undef da kullanılamazlar Sebbolik Sabit LINE FILE Tanimi bulunulan kaynak kod satûrûn satûr numarasû(bir tamsayû sabi t). Kaynak dosyanûn varsayûlan ismi (bir dizi). DATE Kaynak dosyanûn derlendi i tarih ( "Mmm dd yyyy", "Jan 19 2001" gibi). TIME Kaynak dosyanûn derlendi i zaman ("hh:mm:ss"formumdaki dizi).

C ++ Assert Assert makrosu <cassert> başlık dosyası İfadelerin değerlerini test eder eğer 0 (false) ise hata mesajı yazılır ve abortçağrılır assert( x <= 10 ); eğer NDEBUG tanımlıysa,bütün sonraki assert ifadeler göz ardı edilir #define NDEBUG