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

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Hafta 12 Karakter Tutan Diziler

Yrd. Doç. Dr. Caner ÖZCAN

Eln 1001 Bilgisayar Programlama I

PROGRAMLAMAYA GİRİŞ DERS 2

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

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

C Konsol Giriş Çıkış Fonksiyonları

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

C Programlama Dilininin Basit Yapıları

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

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

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

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

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

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

C Programlama Dilinde Değişkenler

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

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Hafta 13 Fonksiyonlar

Yrd. Doç. Dr. Caner ÖZCAN

C PROGRAMLAMA D İ L İ

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

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

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,

Yrd. Doç. Dr. Caner ÖZCAN

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

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

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

Temel Giriş/Çıkış Fonksiyonları

Yrd. Doç. Dr. Caner ÖZCAN

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

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

Genel Programlama II

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

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

Yrd. Doç. Dr. Caner ÖZCAN

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

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

ALGORİTMA VE PROGRAMLAMA (Bölüm 3)

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

Hafta 11 Çok Boyutlu Diziler

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

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

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

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

ALGORİTMA VE PROGRAMLAMA I DERS#4

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

Hafta 4 Döngü Yapıları

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

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

ALGORİTMA VE PROGRAMLAMA I

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

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

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

Yrd. Doç. Dr. Caner ÖZCAN

C Programlama printf() Fonksiyonu

BİL1001 Bilgisayar Bilimlerine Giriş 1

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

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

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

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

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

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

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

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

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

Algoritmalar ve Programlama. DERS - 2 Yrd. Doç. Dr. Ahmet SERBES

BİL1001 Bilgisayar Bilimlerine Giriş 1

Diziler (Arrays) Çok Boyutlu Diziler

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

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

Giris {\} /\ Suhap SAHIN Onur GÖK

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

Giriş. ENF102 Jeoloji

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

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

C PROGRAMLAMA D İ L İ

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

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

Temel Bilgisayar Programlama

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

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

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

Programlama Dilleri 1. Ders 4: Diziler

HSancak Nesne Tabanlı Programlama I Ders Notları

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

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

Transkript:

BLM-111 PROGRAMLAMA DİLLERİ I Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/

Temel Veri Tipleri C dilinde kullanılacak değişkenler ve veri tipleri programda önceden bildirilmek zorundadır. C de temel veri tipleri int tam sayılar float virgüllü sayılar double daha uzun ve çok hassas virgüllü sayılar char - karakterler 2

Tam Sayılar (Integer) int: Tam sayıları ifade eder. Pozitif veya negatif olabilirler. Integer niteleyicileri: long, short, veya unsigned Örnek: int toplam; /* işaretli tam sayı */ toplam = 60; /* positif olabilir */ toplam = -10; /* negatif olabilir */ int toplam = 8500; /* kodlama sırasında */ /* ilk değer verilebilir */ 3

Tam Sayılar (Integer) int türünün hafızada kapladığı alan her sistemde aynı değildir. Tamsayı türleri C'de donanıma bağlıdır. Tamsayı türünün uzunluğu çalıştığınız sisteme ilişkin mikroişlemcinin bir kelimesi (Word) kadardır. Örneğin, 16 bitlik bir mikroişlemciye sahip bir sistemde int türü 16 bit, 32 bit işlemcide ise 32 bit uzunluğundadır. 4

Tam Sayılar (Integer) Tamsayı türleri için aralık değeri nasıl hesaplanır. Örneğin 8 bit uzunluğunda işaretsiz bir değişken için En küçük sayı 0000 0000 0 En büyük sayı 1111 1111 255 8 bit uzunluğunda işaretli değişken olursa bu durumda en soldaki bit işaret biti olur. İşaret biti 1 ise sayı negatif, 0 ise pozitif olur. 5

Tam Sayılar (Integer) Bir sayının negatifini bulmak için önce 1'e tümleyeni bulunur sonra 1 eklenerek 2'ye tümleyeni bulunur. Sayının 1'e tümleyeni 1'lerin 0, 0'ların 1 yapılmasıdır. Örneğin işaretli bir değişken için 000 1010 +10 1111 0110-10 0001 1111 +31 1110 0001-31 6

Tam Sayılar (Integer) Dolayısıyla bir tamsayı türünde tutulabilecek en büyük ve en küçük sayı nasıl bulunur? 8 bitlik işaretli tamsayı için 0111 1111 +127 (en büyük pozitif sayı) Sayının 2'ye tümleyeni 1000 0001 2'ye tümleyenden 1 çıkarılırsa 1000 0000-128 (en küçük negatif sayı) 7

Küsüratlı Sayılar (float) Gerçek sayıları ifade eder (virgüllü kısmıyla) Positif ve negatif olabilir Örnek: float a; a = 0.16; /* positif olabilir */ a = -146.76; /* negatif olabilir */ float a = 8.123; /* kodlama sırasında */ /* ilk değer verilebilir */ 8

Daha Hassas Küsüratlı Sayılar (double) Pozitif ve negatif gerçek sayıları ifade etmek için kullanılır. Float türünden 2 kat daha duyarlıklıdır. Hemen her sistemde 64 bit = 8 byte yer kaplar. long double ise 10 byte uzunluktadır ve double türünden daha duyarlıklıdır ancak her C derleyicisinde geçerliliği yoktur. double b; b = 4.45E+5; /* 445000.0 */ d = -73.567; /* negatif */ double b = 2.345; /* ilk değer ataması */ 9

Karakter - char Uzunluğu en kısa olan türdür. 8 bit yer kaplar. C'de char türünün short, int ve long türünden farkı sadece uzunluğudur. C'de char türü diğer türlerle aritmetik, mantıksal vs. işlemlere girebilir. Türün isminin char olması bu türün uzunluğunun sistemlerde kullanılan karakter uzunluğuna eşit olmasındandır. Karakter uzunluğu her sistemde 1 byte = 8 bittir. 10

Karakter - char Karakterler Alfabedeki büyük ve küçük harler 0 dan 9 a kadarki 10 numara Özel semboller örneğin +#@½%&$.*?! =-:/*^(){}[]~;,<> char c; c = 'A'; /* A Harfi */ c = 9 ; /* 9 rakamı*/ char c = c ; /* ilk değer verme */ 11

Karakter - char Karakterlerin (char değişkenleri) ASCII tablosundaki değerleri 12

Temel Veri Tipleri Veri tipi Boyut(bit) Aralık [signed] char 8 [-128, +127] [signed] short [int] 16 [-32768, +32767] [signed] int 32 [-2147483648, +2147483647] long [int] 32 [-2147483648, +2147483647] unsigned char 8 [0, +255] unsigned short [int] 16 [0, +65535] unsigned [int] 32 [0, +4294967295] unsigned long [int] 32 [0, +4294967295] float 32 3.4E-38 to 3.4E+38 double 64 1.7E-308 to 1.7E+308 long double 80 3.4E-4932 to 1.1E+4932 13

C Dilinin Yapısı #include #define typedef struct const veri_tipi fonksiyon main () { }.. ; Kütüphane çağırma ; Eşdeğer ifade atama ; Yeni veri tipi tanımlama ; Veri yapısı tanımlama ; Sabit tanımlama değişken adı; Değişken bildirimleri..; Alt program Ana program (ana fonksiyon) 14

C Dilinin Yapısı Değişken, sabit ve fonksiyon adları anlamlı kelimelerden seçilip yeterince uzun olmalıdır. Eğer bu isimler bir kaç kelimeden oluşacak ise, kelimeler alt çizgi ( _ ) ile ayrılmalıdır veya her kelime büyük harfle başlamalıdır. Örneğin: int son_alinan_bit; void KesmeSayisi(); float OrtalamaDeger = 12.7786; Sabitlerin bütün harfleri büyük harfle yazılmalıdır #define PI = 3.14; int STATUS 0x0379; 15

C Dilinin Anahtar Kelimeleri 16

C'de giriş/çıkış fonksiyonları C'de tüm giriş/çıkış işlemleri bayt akışı anlamına gelen stream ile yapılır. Giriş işlemlerinde bir cihazdan (örn. Klavye) hafızaya bayt transferi gerçekleşir. Çıkış işlemlerinde hafızadan bir cihaza (örn. Ekran, yazıcı) bayt transferi gerçekleşir. C programı çalıştığında otomatik olarak 3 stream programa bağlanır. Standard input klavye Standard output ekran Standard error ekran 17

C'de giriş/çıkış fonksiyonları I/O fonksiyonları standart input/output C Kütüphanesinde tanımlanmış stdio.h En önemli giriş/çıkış fonksiyonları printf ve scanf fonksiyonlarıdır. Bu fonksiyonlar standart input stream 'den veri alır (scanf) ve standart output stream'e veri gönderir (printf) Diğer giriş/çıkış fonksiyonları gets, puts, getchar ve putchar 18

printf fonksiyonu printf Ekrana veriyi biçimlendirerek yazabilen bir fonksiyondur. Dönüşüm tanımlayıcıları: bayraklar, alan genişliği, hassasiyet. Yuvarlama, sütunları hizalama, sağa/sola dayama, üssel gösterim, onaltılık gösterim, istenen genişlik ve hassasiyetle biçimleme printf( "biçim ifadesi", diğer argümanlar); 19

printf fonksiyonu Biçim ifadesi : Çıkışın biçimini belirler. Diğer argümanlar: Biçim ifadesinde yer alan her dönüşüm tanımlayıcısı ile ilişkili bir argüman yer alır. Biçim ifadesinde, dönüşüm tanımlayıcıları, bayraklar, alan genişliği, hassasiyet bilgisi ve karakterler yer alır. Dönüşüm tanımlayıcıları % işareti ile birlikte tanımlanırlar. 20

Tam sayıları biçimlendirme 21

Tam sayıları biçimlendirme

Kayan noktalı (floating point) sayıları biçimlendirme Kayan noktalı sayıları 3 farklı dönüşüm tanımlayıcısı ile biçimlendirilir (e, f ve g) E veya e ile biçimlendirme üssel gösterim kullanır. 1.504582 x 10 2 1.504582E+02 Bilimsel gösterim Bilgisayar sistemlerinde f ile biçimlendirmede sabit noktalı gösterim kullanılır. f ile formatlamada ön tanımlı olarak virgülden sonra 6 hane gösterilir. 23

Kayan noktalı (floating point) sayıları biçimlendirme G veya g ile formatlamada sayı ya f'e göre ya da e ile formatlamaya göre formatlanır. Eğer sayının üs değeri -4 ten küçük ise veya 6'ya eşit veya 6 dan büyük ise bu durumda üssel gösterim gerçekleştirir. Diğer durumlarda f ile formatlama biçimini kullanır. Aşağıdaki sayıları g ile formatlanırsa şu sonuçlar elde edilir: 0.0000875 8.75e-05 8750000.0 8.75e+06 8.75 8.75 87.50 87.5 875 875 E, e veya g ile formatlamada sayı yuvarlanırken, f ile formatlamada yuvarlama yapılmaz. 24

Kayan noktalı (floating point) sayıları biçimlendirme 25

Kayan noktalı (floating point) sayıları biçimlendirme 26

Karakter ve string formatlama Karakter yazdırmak için c, string yazdırmak için s dönüşüm tanımlayıcıları kullanılır. s kullanıldığında null karaktere rastlayana kadar tüm karakterler ekrana basılır. Karakterler tek tırnak arasında belirtilirken string ise çift tırnak arasında belirtilir ve son karakteri null '\0' karakteridir. Örn : 'a' karakterdir, "a" ise 'a' ve '\0' karakterlerden oluşan bir string ifade eder. 27

Diğer Dönüşüm tanımlayıcılar %p Adres bilgisini onaltılık sistemde yazdırır. Ekrana % işareti yazdırmak için ise %% kullanılır. 28

Alan Genişliği Ayırarak Yazdırma Alan Genişliği Verinin yazıldığı alanın genişliğidir (sütun sayısı) Eğer genişlik veriden daha büyük ise otomatik olarak sağa dayalı yazılır. Eğer alan genişliği olması gerekenden daha küçük ise veriye uymak içi verinin genişliğine uydurulur. Eksi işareti de bir karakter yer tutar. Dönüşüm tanınmayıcısı ile % işareti arasında tamsayı ile belirtilir. %4d 4 sütun alan ayırır. %-4d 4 sütun alan ayırır sola dayalı yazdırır. 29

Alan Genişliği ile Hassasiyet Biçimleme Kayan noktalı sayılar Virgülden sonra kaç hane görünmesi gerektiğini belirtir (e ve f için) Virgülden önce ve sonra toplam gösterilecek rakam sayısı (g için) Eğer sayının kendi hassaiyetinden daha küçük değer ile gösterim yapılırsa yuvarlama gerçekleşir. 123.94536 sayısı için; %.3f 123.945 %.3e 1.239e+02 %.3g 124 30

Alan Genişliği ile Hassasiyet Biçimleme Alan genişliği ile hassasiyet birleştirilerek formatlama yapılabilir. %alan_genişliği.hassaiyet %5.3 5 sütunda virgülden sonra 3 hane ile sağa dayalı %-5.3 5 sütunda virgülden sonra 3 hane ile sola dayalı 31

scanf fonksiyonu Klavyeden veri alarak belirtilen değişkenin hafozadaki adres bölgesine yerleştirir. Biçim ifadesi : Girişin biçimini belirler. Diğer argümanlar: Verinin saklanacağı değişkenlerin adresleri scanf( "biçim ifadesi", diğer argümanlar); 32

scanf fonksiyonu 33

scanf fonksiyonu 34

scanf fonksiyonu 35

scanf fonksiyonu Giriş stream'den istenen kadar karakter okumak için scanf fonksiyonunun dönüşüm tanımlayıcısında alan genişliği kullanılır. 36

scanf fonksiyonu Girilen karakterlerden istenenler görmezden gelienebilir. Örneğin 11-10-2016 şeklinde girilen tarih bilgisinde tire işaretleri okunmak istenmiyorsa dönüşüm tanımlayıcısında belirtilir. scanf( "%d-%d-%d", &month, &day, &year ); Ancak 10/11/2016 şeklinde girilen tarih için yukarıdaki ifade çalışmaz. Her tür karakter için eleminasyon yapılmak isteniyorsa; scanf( "%d%*c%d%*c%d", &month, &day, &year ); 37

Kaynak J. G. Brookshear, Computer Science: An Overview 10th Ed., Addison Wisley, 2009 Kaan Aslan, A dan Z ye C Klavuzu 8. Basım, Pusula Yayıncılık, 2002 "C How to Program", Paul J. Deitel, Harvey Deitel. 38