C derleyicisinin içeriği

Benzer belgeler
PROGRAMLAMAYA GİRİŞ DERS 2

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

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

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

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

C Programlama Dilinde Değişkenler

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

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

C Programlama Dilininin Basit Yapıları

C PROGRAMLAMA D İ L İ

Temel Giriş/Çıkış Fonksiyonları

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

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

Programlama Dilleri 1. Ders 4: Diziler

Dr. Fatih AY Tel: fatihay@fatihay.net

HSancak Nesne Tabanlı Programlama I Ders Notları

C Programlama printf() Fonksiyonu

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Bigisayar Programlama

Biçem Belirteçleri (Format Specifiers)

Genel Programlama II

C Konsol Giriş Çıkış Fonksiyonları

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

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

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

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

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

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

BÖLÜM 4: DEĞİŞKENLER, SABİTLER VE OPERATÖRLER

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Giriş. ENF102 Jeoloji

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

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

Diziler (Arrays) Çok Boyutlu Diziler

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

Eln 1001 Bilgisayar Programlama I

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

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

Her veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini

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

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

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

BÖLÜM 5: TEMEL GİRİŞ/ÇIKIŞ FONKSİYONLARI

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

Ders 4: Temel Giriş/Çıkış Fonksiyonları

PASCAL PROGRAMLAMA DİLİ YAPISI

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

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

Nesne Yönelimli Programlama

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan

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

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

Ders 2: Veri Tipleri, Değişkenler ve Sabitler

C#(Sharp) Programlama Dili

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

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

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

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

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

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BÖLÜM 11: YAPISAL VERİ TİPLERİ

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

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

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

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

ALGORİTMA VE PROGRAMLAMA I

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Fonksiyonlar -Genel Test- A

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

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

Programlama Dillerinde Kullanılan Veri Tipleri

/*int sayi1, sayi2,toplam=0;

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

Veri Tanımları ve Mantıksal İşlemler

PROGRAMLAMA TEMELLER. C Program Yap s

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Fonksiyonlar (Altprogram)

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Temel Bilgisayar Programlama

Dr. Fatih AY Tel: fatihay@fatihay.net

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

int printf (const char *format [, argument,...]);

BİLDİRİM, TANIMLAMA, DEĞİŞMEZLER ve İŞLEVLER

Hafta 12 Karakter Tutan Diziler

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

HSancak Nesne Tabanlı Programlama I Ders Notları

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

Java da Dizi Tanımlama

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

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

Transkript:

C derleyicisinin içeriği C derleyicileri hız ve verimlilikler assembly diline yakın bir kod üretirler. Ancak, bunun yanı sıra, yüksek seviyeli bir dilin özelliklerini de içerirler C derleyicileri, birleşik nesneler üzerinde işlem yapmaz ( C++ bu konuda farklılaşmıştır), Giriş-Çıkış olanakları sunmaz, dosya erişim yöntemleri sağlamaz. Tüm bu yüksek seviyeli mekanizmalar, ayrıca çağrılacak bir standart fonksiyonlar kütüphanesi ile sağlanır.

Bir C yazılımının içeriği Önişlemci Yönergeleri Genel tanımlamalar Yerel tanımlamalar ifadeler

Her C programı Genel tanımlamalar bölümü ve bir yada birden fazla fonksiyondan oluşur. Genel tanımlamalar bölümü programın başında bulunur ve programın tüm parçalarında kullanılabilir. Her C programı mutlaka en azından bir main fonksiyonu içermelidir. (Kütüphane fonksiyonu derlemeleri hariç) main fonksiyonu programın giriş bölümüdür. Program içindeki main ve diğer fonksiyonlar, tanımlama bölümleri (declaration) ve ifade (statement) bölümlerinden oluşurlar. Fonksiyon içindeki tanımlama bölümleri, yalnızca o fonksiyon içinde kullanılabilecek verileri tanımlar. Bunlara yerel tanımlamalar denir. İfade bölümü, bilgisayarın yapması gereken işleri tanımlar.

Preprocessor Direktifleri Yazılım içinde Önişlemci tarafından işlenen özel komutlar, programın nasıl derleneceğini açıklar (örneğin include direktifi, programın derlenebilmesi için header dosyaları seçili kütüphane dosyalarındaki bilgilere ve fonksiyonlara ihtiyaç duyulacağını anlatır. örneğin <stdio.h>).

İlk C programı /* C dilinde ilk program*/ # include <stdio.h> Global Declaration main (void) { Local declaration printf ( Merhaba Dünya! \n ); Statements return 0; } C dilindeki ilk programın çıktısı : Merhaba Dünya

Açıklamalar (Comments-Program Notları) Bazen kodun anlamı tam olarak açık değildir. Eğer programı yazan kişi kod içerisinde açıklamalar yaparsa, kodu okuyana faydalı olacaktır. Derleyici, programı çalıştırılabilir bir koda dönüştürürken bu açıklama kısımlarını dikkate almayacaktır. Açıklamaları tanıtabilmek için, C açıklama başlatma/* ve açıklama sonlandırma */ atomlarını kullanır. Tek bir satırda verilen açıklamalar için açıklamanın başına yalnızca // karakterini koymak yeterlidir. Bu karakterden sonraki tüm satır açıklama olarak değerlendirilecektir.

Açıklama Örnekleri /* Bu bir açıklamadır */ /* Bu iki satırlık bir açıklamadır */ /* Bu birden fazla satırlık bir açıklamadır /* A=b+c; /* A, b ve c nin toplamıdır. */ A=b+c; // A, b ve c nin toplamıdır.

Açıklamalar programın herhangi bir yerinde olabilir İyi bir programlamada, Program, amacı, gidileri ve çıktıları ifade eden, açıklamalarla başlar. Açıklamalar, kodun algılanmasını artıracak her yere koyulabilir. İç içe açıklamalara izin verilmez.

/* deneme /*...*/...*/ İzin verilmez. İhmal edilir Kapatma atomu

/* İlk Program. Bu program basit bir C programının bazı bileşenlerini temsil etmektedir. Yazan : isminizi buraya yazın Yazma Tarihi : programın yazıldığı tarih */ #include <stdio.h> int main ( void ) { /* Yerel Tanımlamalar */ /* İfadeler */ printf( Merhaba!\n" ) ; return 0 ; } /* main */

Tanıtıcılar Tanıtıcılar, program içinde verileri ve diğer nesneleri tanımlamamızı sağlarlar. Bilgisayardaki her bir veri, tekil bir adreste saklanır Tanıtıcılar kullandığımızda, adreslerle uğraşmak zorunda kalmayız. Derleyiciler adresleri bizim için otomatik olarak takip edecektir. C dilinde, yalnızca aşağıdaki semboller isimlendirmede kullanılabilir : A dan Z ye kadar büyük ve küçük harfler, 0 dan 9 a kadar rakamlar ve altçizgi _ karakteri. Genellikle, ilk karakter olarak alt çizgi kullanılması tercih edilmez, çünkü çoğunlukla kütüphane fonksiyonlarında kullanılan tanıtıcılar bunları kullanır.

Tanıtıcı kuralları İlk karakter alfabetik yada altçizgi olmalıdır.. Alfabetik karakterler, sayılar ve altçizgiden oluşur (Türkçe karakterler kullanılamaz). Tanıtıcının yalnızca ilk 31 karakteri değerlendirilir, gerisi dikkate alınmaz. Anahtar kelimeler yada reserve edilmiş kelimeler kullanılamaz ( main, include, printf & scanf vb..). C küçük büyük harf duyarlıdır, Örneğin Bilgi bilgi.

Geçerli ve Geçersiz isim örnekleri Geçerli İsimler Geçersiz isimler a a1 $sum /* $ geçersiz */ student_name stdntnm 2names /* 2 ile başlıyor */ _asystemname _anthrsysnm stdnt Nmbr /* Boşluk olmamalı*/ TRUE FALSE int /* reserve kelime */

Veri Tipleri type, değerler ve bu değerler üzerine uygulanan işlemler tanımlar. type ile verilen değerler kümesi tipin tanımladığı türler olarak bilinir. C 4 değişik standart tip tanımlar : void char (character kısıltması) int (integer kısaltması) float (floating point (kayan noktalı sayılar) için kısaltma)

Standart Veri Tipleri Standart veri türleri daha küçük alt-tip lere bölünemez. Ancak, standart tipler daha karmaşık türemiş veri tipleri üretmek için kullanılmaz. (pointer, array, union vb..).

void void türü hiçbir değer ve işlem olmaz. Değerler ve işlemler kümesi boştur. integer Kesir kısmı olmayan sayılardır: Tam sayılar. C üç değişik tamsayı türünü tanımlar : short int int long int

Integer Türleri (int)

Tipik Integer Boyutları Type Sign Byte Size Number of bits Minimum value Maximum value short int int long signed unsigned signed unsigned signed unsigned 2 16-32,768 0 2 16-32,768 0 4 32-2,147,483,648 0 32,767 65,535 32,767 65,535 2,147,483,647 4,294,967,295 1. Eğer integer işaretliyse, bir biti işaret için kullanılır (0 pozitif, 1 negatiftir). 2. İşaretsiz tamsayılar bu nedenle, aynı boyuttaki tam sayılara göre iki kat daha büyük değer alırlar.

sizeof ( ) Operatorü Ctanıtıcıların byte cinsinden boyutunu veren, sizeof, isimli bir operatöre sahiptir. ANSI / ISO C aşağıdaki durumun sağlanmasını ister : sizeof (short int) <= sizeof (int) <= sizeof (long int)

Bir karakter bir small integer (0 ile 255 arası) olarak yorumlanabilir. Bu nedenle C char tanımını sıklıkla bir tamsayı olarak değerlendirir. char, başına unsigned terimi eklendiğinde byte karşılığı olarak değerlendirilebilir. Örnekler : Character a x ASCII kod değeri 97(decimal) yada 01100001(binary) 120(decimal) yada 01111000(binary)

Kayan Nokta(Floating point) Kayan noktalı sayı, kesir kısmına sahip sayı olarak tanımlanır. Örnegin 65.32 C üç değişik türde kayan noktalı veri türüne sahiptir. : float, double, long double. sizeof (float) <= sizeof (double) <= sizeof (long double). Floating-point daima işaretlidir.

Tipik Floating-Point boyutları Type Byte Size Number of Bits float 4 32 double 8 64 long double 10 80

Floating-Point Türleri

Tür Özeti void character integer float void char unsigned short int; unsigned int; unsigned long int short int; int; long int Float; double; long double Herbir karakterin bellekte kapladığı yer, türüne göre farklıdır.

C de Mantıksal veri türü Bir mantıksal veri türü, TRUE (Doğru) yada FALSE (Yanlış) değerlerinden birini alabilir. C dilinde mantıksal veri türü yoktur. C de mantıksal veriler tamsayı (integer) türleri ile ifade edilebilir. Burada 0 FALSE, Sıfırdan farklı herhangi bir değer TRUE değerine karşı düşer.

Değişkenler Değişkenler, isim verilmiş bellek bölgeleridir ve int, float yada char gibi türlerdedir. Bir değişken atanan türüne göre boyuta sahip olacaktır. Değişkenler belirli türlere sahip olduklarında bu türler üzerinde işlem yapabilecek operasyonlar mevcuttur. Her bir değişken tanımlanmalı ve deklare edilmelidir.

Değişkenler C dilinde, bir deklarasyon bir nesneyi isimlendirmek için kullanılır. Tanımlamalar, nesneyi oluşturmak için kullanılır. Bir değişken aynı zamanda deklare edilebilir ve tanımlanabilir. Bir değişken oluşturulduğunda, deklarasyon, değişkene sembolik bir isim verirken, tanımlama değişkene bellekte yer ayırır. Bir defa tanımlandığında değişkenler, program için gerekli veriyi tutarlar.

Variables in Memory Bellekteki veriye, adresleri kullanılarak değil, sembolik isimleri kullanılarak erişilir.

Değişkenlerin Tanımlanması Bir değişkenin türü char, int, ve float gibi void haricinde tanımlanabilir. Bir değişkeni yaratabilmek için, türü ve tanıtıcısını vermelisiniz. : float fiyat; int sayi; char deger;

Değişken tanımlama örnekleri short int maxitem; /* Word separator : Capital */ long int national_debt; /* Word separator : underscore */ float payrate; /* Word separator : Capital */ double tax; char code, kind; /* Poor style : multiple variables */ Int a, b; /* Poor style : multiple variables */

Değişkenlerin İlklenmesi Değişkenler ilk tanımlandıklarında, genellikle rasgele değerler içerirler. İlklendirme değişkenler program başlangıcında değer atamaktır. Bir değişken deklare edildiği satırda, ilklenebilir. Basit bir ilklendirme örneği : intcount = 0; Diğer örnek : int count, sum=0; burada yalnızca sum değişkeni ilklenir.

Program 2 /* Bu program üç kullanıcı tarafından klavyeden girilen üç sayının toplamını hesaplar ve ekrana yazar. yazan : isim tarih : */ #include <stdio.h> int main (void) { /* Yerel tanımlamalar */ int a; int b;

int c; int sum; Program 2 /* ifadeler */ printf ( \nmerhaba bu program girdiğiniz\n ); printf ( Girilen üç sayıyı toplar. \n ); printf ( Lütfen sayıları yandaki biçimde giriniz : nnn nnn nnn <Enter>\n ); scanf ( %d %d %d, &a, &b, &c);

Program 2 Results /* Sayılar a, b, c ye girildi, şimdi toplanacaklar. */ sum = a + b + c; printf ( Toplam : %d\n\n, sum); printf ( Teşekkürler.\n ); return 0; } /* main */

Sabitler Sabitler, programın çalışması sırasında değerleri değiştirilemeyecek verilerdir. Değişkenlere benzer olarak sabitlerde türlere sahiptir. C dilinde 4 değişik sabit vardır : Integer sabitler Floating-point sabitler Character sabitleri String sabitleri

Tamsayı sabitlerine örnekleri Literal Value Type +123 123 int -378-378 int -32271L -32,271 long int 76542LU 76,542 unsigned long int Varsayılan türü u yada U ile işaretsiz, l yada L ile uzun (long) türde tanımlayabiliriz.

Float sabitler Literal Value Type 0. 0.0 double.0 0.0 double 2.0 0.0 double 3.1416 3.1416 double -2.0f -2.0 float 3.1415926536L 3.1415926536 long double

Symbolic Names for Special Characters ASCII Character Symbolic Name Null character \0 Alert (bell) \a Backspace \b Horizontal tab \t Newline \n Vertical tab \v Form feed \f Carriage return \r Single quote \ Backslash \\

String Sabitleri Bir string sabiti arasına yerleştirilmiş bir yada daha fazla karakterden oluşur. String örnekleri h merhaba\n Elektronik ve Haberleşme Mühendisliği

Yalın (Literal) sabitler Bir yalın sabit, veriyi tanımlamak için kullanılan isimlendirilmemiş sabitlerdir. Yalın sabit örnekleri A /* a character literal */ 5 /* numeric literal 5 */ a + 5 /* another numeric literal (5) */ 3.1416 /* a float literal */ Hello /* a string literal */

Tanımlanmış sabitler Bu türden sabitler define (define bir önişlemci (preprocessor) anahtar kelşmesidir )ile tanımlanır. Önişlemci komutlar # ile başlar. #define VERGI_ORANI.18 Genellikle program başlarında tanımlanır. İsmi takip eden tanımlamalar, program içinde ismin yerine yerleştirilir. preprocessor kodu herhangi bir şekilde işletmez, sadece atamaları etkiler.

Bellek sabitleri Bellek sabitleri, belirli bir bellek bölgesini sabit bir değerle doldurmak için kullanılır ve bir C tip tanıtıcısı (type qualifier) aracılığıyla tanımlanır. type qualifier const anahtar kelimesi olarak tanımlanır : Örnek const float pi = 3.1416;

Program 3 /* Bu program sabitleri kullanmanın üç biçimini gösterir Yazan : Tarih : */ #include <stdio.h> #define PI 3.1415926536 int main(void) { const double pi = 3.1415926536

/* ifadeler */ printf( Tanımlanış sabit PI: %13.10f\n", PI ) ; printf( Bellek sabiti pi: %13.10f\n", pi ) ; printf("literal sabit: %13.10f\n", 3.1415926536 ); return 0 ; } /* main */ /* Sonuçlar : Tanımlanış sabit PI : 3.1415926536 Bellek sabiti pi : 3.1415926536 Literal sabit : 3.1415926536 */

Formatlanmış Giriş/Çıkış C dilinde, Formatlanmış veri bir text dosya aracılığıyla programa aktarılırken, programdan bir text aracılığıyla dışarıya aktarılır. keyboard standard giriş (text file) dosyası olarak değerlendirilir. monitör ise standard çıkış (text file) dosyası olarak değerlendirilir. Veri, keyboard aracılığıyla C programına yalnızca karakter dizileri olarak girilebilir. C program formatlama fonksiyonlarını kullanır ve veriyi uygun biçimde değiştirir.

Standard dosyalar Standart dosya, genellikle giriş akıntısı (input stream) olarak isimlendirilen geçici bir bellek bölgesine tamponlanır. Giriş akıntısı, tüm satır alınana kadar giriş karakter dizisini saklar. Bu nedenle, giriş dizisini, entera basmadan önce backspace yada delete ile silebiliyoruz.

Formatlanmış Giriş ve Çıkış

Formatlanmış Çıkış (printf) C de standtart formatlı çıkış fonksiyonu printf dir. printf bellekteki karakter ve ikili veriyi kullanıcının okuyabileceği hale getirir. Veriyi basabilmek için, printf iki parametreye ihtiyaç duyar : Formatlama için gerekli talimatlar (format string); Yazılacak veri (data list). format string ( ) karakterleri arasında belirtilir ve yazılacak sabit yazı ve sıfır yada daha fazla sayıda alan tanımlaması (field specification) içerir. Alan Tanımlama lar %karakteri ile başlar.

Alan Tanımlama %[bayrak][genişlik][.kesir]<format karakteri> Bayrak: + ise sayılar daima işaretli olarak yazılır. İşaret + ise +12 gibi yazılır Bayrak ise sayı balirtilen genişliklten küçük ise sayı sola dayalı olarak yazılır Bayrak 0 ise sayı belirtilen genişlikten kısa ise başı 0 ile doldurulur. Genişlik sayının ne kadar uzunluklu bir alana yazılacağını belirtmek için kullanılır. Ancak yazılacak değerin uzunluğu daha fazla ise bu değer ihmal edilir. Eğer sayı float türündeyse kesir kısmının uzunluğu. İle belirtilerek tanımlanır.

Format Karakteri değişkenin yazılış türünü belirtir. d :ondalık tamsayı x yada X: hex formatında sayı s: verilen adresten itibaren null karakterine kadar tüm karakterler f: double ve float türünden yazma c: karakter

Örnek { double x=6.265; int y=100; char *p= DENEME ; printf( Sayılar\n%f\n%5.2f\n /5.1f\n,x,x,x); printf( /05d\n,y); printf( Yazı Örneği\n%10s\n,p); } 6. 2 6 5 0 0 0 6. 2 6 6. 2 0 0 1 0 0 D E N E M E

Formatlanmış Giriş C de standart formatlanmış giriş fonksiyonu scanf scanf aşağıdaki girdileri içerir : Format dizisi verinin türünü açıklar; adres listesi, verinin bellekte tutulacağı yeri gösterir. scanf ( format dizisi, adres listesi ); ( %c.%d..%f.., &a,.&i,..,&x..)

Format dizisi : girilecek bilginin türünü ve nasıl girileceğini belirtir. scanf( %d %d %f, &a, &b, &c) 12 10 6.23 <enter> scanf( %d, %d, %f, &a, &b, &c) 12, 10, 6.23 <enter> scanf( %d- %d- %lf, &a, &b, &c) 12-10- 6.23 <enter> %f 6. digit giriş yapar, %lf long float giriş yapar.

Seçme ve Karar Verme Seçme, iki yada daha fazla olası program akışı arasında karar vermenizi sağlar. Bilgisayar tarafından verilen kararlar 1 ve 0 a indirgenmelidir. Karmaşık kararları programın anlayabileceği 1 ve 0 indirgemek programcının işidir.

Mantıksal veri ve Operatörler C de mantıksal veri türü yoktur. Bunun için int yada char kullanılabilir. Veri değeri sıfır (=0) sıfırdan farklı (>0, <0) Mantıksal Anlamı FALSE TRUE

Mantıksal Operatörler Operatör Anlamı Örnek x=0, y=1 için sonuç! not (değil)!x 1 && and (ve) x && y 0 or (veya) x y 1 not (değil) operatörü TRUE değerini FALSE yapar, yada FALSE değerini TRUE yapar. and (ve) operatörü İşleme giren her iki değer TRUE ise sonuç TRUE değil ise sonuç FALSE dir. or (veya) operatörü İşleme giren her iki değer FALSE ise sonuç false değil ise sonuç TRUE dur.

Mantık değerlerini işleme C mantıksal ifadeleri işlemek için kısadevre yöntemini kullanır. Örneğin bir and işleminin ilk değeri 0 ise diğer değere bakmadan sonucu 0 olarak verir. And ve Or için kısadevre yöntemi

Kısa-devre yönteminin sorunları Kısa-devre yöntemi verimlidir. Ancak, ikinci değere ilişkin etkileri vardır. Örneğin : x && y++ Eğer x TRUE ise, sorun yoktur. Eğer x FALSE, ise ikinci terim işleme girmez, halbuki ikinci terimin değeri işlem sonrasında 1 artıtılmaktadır (++ operatörü). Ancak bu işlem gerçeklenmez. x y++ işlemi için aynı sorun vardır. Eğer x TRUE, ise y artırılmaz.

İlişkisel Operatörler Operatör Anlamı kullanımı x=10, y=20 için sonuç < Küçük x < y 1 <= küçük yada eşit x<=y 1 > büyük x > y 0 <= büyük yada eşit x >= y 0 == eşit x==10 1!= farklı x!=5 1 İlişkisel operatörler karşılaştırabilmek için iki değere ihtiyaç duyar. Sonuç 0 yada 1 dir.

Eşlenikler < eşlenik >= > eşlenik <= == eşlenik!= Örnekler! (x < y) x >= y! (x > y) x <= y! (x!= y) x = = y! (x <= y) x > y! (x >= y) x < y! (x = = y) x!= y

İki yollu seçim Sonuç sıfır ise yapılacak işlemler. Sonuç 1 ise (true) Yapılacak işlemler.

if... else karar komutu if (karar ifadesi) { //doğru ise yapılacak işlemler ifadeler } else Eğer tek bir ifade varsa blok başlatıcılarına gerek yoktur! {//yanlış ise yapılacak işlemler } ifadeler

if... else karar komutu: örnekler if (a==5) y=x+2; else y=x-2; Yanlış ise yapılacak işlemler kısmı kullanılmak zorunda değildir. if (a==5) y=x+2;

if... else karar komutu: Örnekler, Birleşik ifadeler if (a!=b) { x++; y - ; printf( x-y:%d\n,x-y); } else { x--; y++ ; printf( x-y:%d\n,x-y); } Birleşik ifadeler tek bir ifade gibi işlenir. else kısmı gerekirse kullanılır.

Birbirinin Tamamlayıcısı olan if else Durumu if (!ifade) if (ifade) { {...... } } else else { {...... } } Asıl Eşlenik

NULL else Durumu Null else Bazı durumlarda if in yanlış sonuçlarında birşey yapmaya gerek yoktur else ifadesi için program yürümez.

A NULL if Durumu else kısmı ihmal edilebilirken if kısmı için aynı şey yapılmaz. null if olarak ifade edilir. Genellikle null if durumunu iki durumu yer değiştirip ve ifadeyi tamlayıp giderebiliriz. null if durumunu null else durumuna dönüştür

İç içe geçmiş if durumları iç içe geçmiş if sayısında sınırlama yoktur ancak 3 ten sonra programın okuması zorlaşır

Örnek if (a==b) y=x+1; else if (a>b) y=x-1; else if (y==x) sonuc=1; else sonuc=0;

else için oluşabilecek problemler Her if için eşleşmemiş else varsa problem oluşur. C de açıkta kalan else en yakın ifile eşleştirilir. Sonraki slaytta programcı else i ilk if ile eşleştirir. Ancak derleyici else i ikinci if ile eşleştirir. Çözüm : İlk if deki doğru ifade parantez içine alınır.

if (ifade1) if (ifade2) işlem1; else işlem2; C derleyicisi else ifadesini ikinci if ile eşleştirir. Eğer programcı else kısmını 1. if ile eşleştirmek isterse, 2. if ifadesini aşağıdaki gibi blok içine almalıdır. if (ifade1) { } else if (ifade2) işlem1; işlem2;

if ifadesini Basitleştirme Bazen if içindeki kontrol ifadesi basitleştirilebilir. If ( a! = 0 ) durum if ( a = = 0 ) durum sadeleştirme If ( a ) durum if (!a ) durum ( a ) a Doğru (a sıfır değil) (! a ) a Yanlış (a sıfır)