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

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

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

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

PROGRAMLAMAYA GİRİŞ DERS 2

C Programlama Dilininin Basit Yapıları

Dr. Fatih AY Tel: fatihay@fatihay.net

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

Bölüm 4 C de Program Kontrolü

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

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

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

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

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

Bigisayar Programlama

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

Temel Giriş/Çıkış Fonksiyonları

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

BİL1001 Bilgisayar Bilimlerine Giriş 1

Genel Programlama II

Bölüm 3 Yapısal Programlama

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

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

C PROGRAMLAMA D İ L İ

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

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

Eln 1001 Bilgisayar Programlama I

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

Giriş. ENF102 Jeoloji

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

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

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

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

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

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

ALGORİTMA VE PROGRAMLAMA I

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

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

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

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

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

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

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

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

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

Nesne Yönelimli Programlama

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

Temel Bilgisayar Programlama

Fonksiyonlar (Altprogram)

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

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

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

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

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

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

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

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

C Programlama Dilinde Değişkenler

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

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

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

Dr. Fatih AY Tel:

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

C Programlama. Öğr. Grv. Mustafa AKSOĞAN. Akçadağ MYO

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

BMT 106 Algoritma ve Programlama II Bahar Dönemi

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

PASCAL PROGRAMLAMA DİLİ YAPISI

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

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

Diziler (Arrays) Çok Boyutlu Diziler

Hafta 12 Karakter Tutan Diziler

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

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Nesne Tabanlı Programlama

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

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

Program Akış Kontrol Yapıları

YZM 2105 Nesneye Yönelik Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

C Konsol Giriş Çıkış Fonksiyonları

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

C Programlama printf() Fonksiyonu

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

Temel Bilgisayar Bilimleri Ders Notu #2

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

PROGRAMLAMA DİLLERİ I

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

Nesne Tabanlı Programlama

Transkript:

1 Bölüm 2 - C ile Programlamaya Giriş Başlıklar 2.1 Giriş 2.2 Basit C Programları: Bir Metni Yazdırmak 2.3 Basit C Programları: İki Tam Sayıyı Toplamak 2.4 Hafıza Konuları 2.5 C de Aritmetik 2.6 Karar Verme : Eşitlik ve Karşılaştırma Operatörleri

Amaçlar 2 Bu bölüm bize ne kazandıracak? C ile basit programlar yazabilmek Basit giriş/çıkış ifadelerini kullanabilmek Temel veri tiplerini tanımak Bilgisayar hafızasını kullanmayı anlamak Aritmetik operatörleri kullanabilmek Aritmetik operatörlerin önceliklerini anlamak Basit karar verme ifadelerini yazabilmek

3 2.1 Giriş C programlama dili Program tasarımı için yapısal ve disiplinli bir yaklaşım sunar. Yapısal Programlama 3. ve 4. bölümlerde detaylı anlatılacak. Kitabın geri kalan kısmında yapısal programlama yaklaşımı kullanılacak.

2.2 Basit C Programları: Bir Metni Yazdırmak 1 /* Şekil 2.1: fig02_01.c 2 C ile ilk program */ 3 #include <stdio.h> 4 5 /* program çalışmaya main fonksiyonundan başlar */ 6 int main() 7 { 8 printf( "C diline hoşgeldiniz!\n" ); 9 10 return 0; /* programun başarı ile sonlandığını gösterir */ 11 12 } /* main fonksiyonunun bitişi */ C diline hoşgeldiniz! 4 Yorumlar Derleyici /* ve */ çevrili metinlere işlem yapmaz Programın okunurluluğunu artırmak için kullanılır. #include <stdio.h> Önişlemci talimatı Belirli bir dosyanın içeriğini bilgisayara yüklemesini söyler. <stdio.h> standart giriş/çıkış işlemlerine izin verir.

2.2 Basit C Programları: Bir Metni Yazdırmak int main() C programları bir yada daha fazla fonksiyon içerebilirler. Ama bunların içinden mutlaka bir tanesi main olmak zorundadır. Parentezler fonksiyon olduğunu gösterir. int tamsayı değerinde main fonksiyonun bir değer döndüreceği anlamına gelir. Küme parantezi ({ ve }) bir blok olduğunu gösterir. Her fonksiyonun gövde kodları küme parantezleri içinde yazılır. 5

2.2 Basit C Programları: Bir Metni Yazdırmak printf( "C diline hoşgeldiniz!\n" ); Komutu bilgisayara bir iş yaptırır. Yaptırdığı iş: tırnak içindeki (" ") karakterleri ekrana yazdırmaktır. Bu satıra ifade (statement) denir. Her ifade noktalı virgül (;) ile bitmelidir. Ters bölü (\) printf olağan dışı bir şeyler yapıyor. \n yeni satır karakteri 6

2.2 Basit C Programları: Bir Metni Yazdırmak 7 Çıkış Sırası Tanım \n Yeni satır. İmleci yeni satırın başına geçirir. \t Yatay sekme. İmleci bir sonraki sekme başlangıcına taşır. \a Alarm. Sistem zili sesi. \\ Ters bölü. printf içinde ters bölü karakterini yazdırır. \" Çift tırnak. printf içinde tırnak karakterini yazdırır. Fig. 2.2 Bazı çıkış sıraları.

2.2 Basit C Programları: Bir Metni Yazdırmak return 0; Fonksiyondan çıkış için bir yöntem return 0, bu durumda, program normal olarak sonlandırıldı anlamını taşır. Sağ küme parantezi } main fonksiyonun bitişini gösterir. Bağlayıcı (Linker) Fonksiyon çağarıldığı zaman, bağlayıcı fonksiyonu kütüphanede arar. Uygun kütüphane fonksiyonlarının kodlarını programa yerleştirir. Böylece makine diline çevrilmiş program tamamlanır. Eğer fonksiyon ismi yanlış yazılmış ise, bağlayıcı kütüphanede o isimde fonksiyon bulamadığından hata üretir. 8

1 /* Şekil 2.3: fig02_03.c 2 Tek bir satıra iki ayrı printf ifadesi ile yazdırma yapmak */ 3 #include <stdio.h> 4 5 /* Program main çalıştırılarak başlar. */ 6 int main() 7 { 8 printf( "C diline " ); 9 printf( "hoş geldiniz\n" ); 10 11 return 0; /* programun başarı ile sonlandığını gösterir */ 12 13 } /* main fonksiyonunun bitişi */ C diline hoş geldiniz Outline fig02_03.c Program Çıktısı 9

1 /* Şekil 2.4: fig02_04.c 2 Tek bir printf ile birden fazla satırda yazdırma işlemi yapmak */ 3 #include <stdio.h> 4 5 6 int main() 7 { 8 printf( "C diline\n hoş geldiniz\n" ); 9 10 return 0; 11 12 } Outline fig02_04.c 10 C diline hoş geldiniz Program Output

1 /* Şekil 2.5: fig02_05.c 2 Toplama programı */ 3 #include <stdio.h> 4 5 /* Program main çalıştırılarak başlar. */ 6 int main() 7 { 8 int tamsayi1; 9 int tamsayi2; 10 int toplam; 11 12 printf( "İlk tamsayıyı giriniz\n" ); /* ekrana mesaj yazdırma */ 13 scanf( "%d", &tamsayi1 ); /* ilk tamsayının okunması */ 14 15 printf( "İkinci tamsayıyı giriniz\n" ); /* ekrana mesaj yazdırma */ 16 scanf( "%d", &tamsayi2 ); /* ikinci tamsayının okunması */ 17 18 toplam = tamsayi1 + tamsayi2; /* toplamın hesaplanması */ 19 20 printf( "Toplam %d dir\n", toplam ); /* toplamın ekrana yazdırılması */ 21 22 return 0; 23 24 } /* main fonksiyonun bitişi */ Outline fig02_05.c 11

İlk tamsayıyı giriniz 45 İkinci tamsayıyı giriniz 72 Toplam 117 dir Outline Program Çıktısı 12

2.3 Basit C Programları : İki Tam Sayıyı Toplamak 13 Önceki programlar gibi Yorumlar, #include <stdio.h> ve main int tamsayi1, tamsayi2, toplam; Değişken tanımı Programın kullanabileceği bir değerin saklandığı bellek konumlarıdır. int değişkenlerin tamsayı değeri saklamasını sağlar(-1, 3, 0, 47) Değişken isimleri Tamsayi1,tamsayi2, toplam İsimler: harf, rakam (rakam ile başlanılmaz) ve alt çizgi( _ ) Büyük küçük harf duyarlılığı vardır. Bildirimler çalıştırılabilir ifadelerden önce yazılmalıdır. Örn: 12. satırdan sonra bildirimleri yapsaydık, programda yazım hatası olacaktı. Bu hataya derleyici hatası da denir.

2.3 Basit C Programları : İki Tam Sayıyı Toplamak scanf( "%d", &tamsayi1 ); Kullanıcıdan bir değer ister scanf standart giriş (klavye) kullanır. scanf ifadesinin iki argümanı vardır. %d verinin tamsayı olması gerektiğini belirtir. &tamsayı1 değişken değerinin saklanacağı hafıza yerini belirtir. & operatörü başlangıçta karışık gelebilir şimdilik, scanf ifadelerinde değişkenle beraber kullanılması gerektiğini hatırlamanız yeterlidir. Program çalışmaya başladığı zaman kullanıcı scanf ifadesine rakam yazarak cevap verir, ardından enter (geridönüş) tuşuna basarak sayıyı bilgisayara gönderir. 14

2.3 Basit C Programları : İki Tam Sayıyı Toplamak = (atama operatörü) Bir degeri bir değişkene atama İki operatör kullanılmış toplam = degisken1 + degisken2; Toplam degisken1 + degisken2 elde edilmiş; Değişken değerini eşitliğin sol tarafında alır. printf( Toplam %d\n", toplam ); scanf benzer %d bir tamsayının yazdırılacak anlamında kullanılır. toplam hangi değerin yazılacağını belirler. Hesaplamalar printf ifadesinin içindede oluşturulabilir. printf( Toplam %d\n", tamsayi1 + tamsayi2 ); 15

16 2.4 Hafıza Konuları Değişkenler Değişkenler bilgisayar hafızasındaki yerlere karşılık gelen konumları belirtir. Her değişkenin bir ismi, tipi, boyutu ve bir değeri vardır. Bir değişkene yeni bir değer atandığı zaman (scanf, mesela), önceki değer silinir, yeni değer onun yerine yerleşir. Hafızadan değişkenleri okumak ile değerleri değişmez. Şekilsel gösterimi tamsayi1 45

2.4 Hafıza Konuları 17 Şekilsel gösterim (devam) tamsayi1 45 tamsayi2 72 tamsayi1 45 tamsayi2 72 toplam 117

2.5 Aritmetik 18 Aritmetik hesaplamalar * çarpma işlemi ve / bölme işlemi için kullanılır. Tamsayı bölümü, kalanı iptal ederek sonucu verir. 7 / 5 sonucunu 1 olarak verir Mod operatörü (%) bölüm işleminde kalanı geri döndürür. 7 % 5 sonucunu 2 olarak verir Operatör önceliği Bazı aritmetik operatörler bazılarından önce işleme girerler. (i.e., çarpım toplamdan önce gelir) İhtiyaç oldukça parantezler kullanılmalı Örnek: a, b ve c değişkenlerinin ortalamasının bulunması Bu şekilde kullanmayın: a + b + c / 3 Doğrusu: (a + b + c ) / 3

2.5 Aritmetik 19 Aritmetik operatörler: C işlemi Arittmetik operatör Matematiksel deyim C deyimi toplama + f + 7 f + 7 çıkarma - p c p - c çarpma * bm b * m bölme / x / y x / y Mod alma % r mod s r % s Operatörlerin öncelik kuralları: Operatör(ler) İşlem(ler) Öncelik sırası ( ) Parentez İlk önce hesaplanır. Eğer parantezler içice yazılmış ise, en içteki parantez ilk önce hesaplanır. Eğer bir satırda birden fazla parantez varsa (iç içe değillerse) bunlar soldan sağa doğru hesaplanır. *, /, or % Çarpım, bölüm, mod alma İkinci olarak hesaplanır. Eğer birden fazla varsa soldan sağa doğru hesaplanır. + or - Toplama, çıkartma En son hesaplanırlar. Eğer birden fazla varsa, soldan sağa doğru hesaplanırlar.

2.6 Karar Verme: Eşitlik ve Karşılaştırma Operatörleri Step 1. y = 2 * 5 * 5 + 3 * 5 + 7; 2 * 5 is 10 (Leftm ost multip lic ation) 20 Step 2. y = 10 * 5 + 3 * 5 + 7; 10 * 5 is 50 (Leftm ost multip lic ation) Step 3. y = 50 + 3 * 5 + 7; (Multip lic ation before ad dition) 3 * 5 is 15 Step 4. y = 50 + 15 + 7; (Leftm ost ad dition) 50 + 15 is 65 Step 5. y = 65 + 7; (Last a dd ition) 65 + 7 is 72 Step 6. y = 72; (Last op era tio n p la ce 72 in y)

2.6 Karar Verme: Eşitlik ve Karşılaştırma Operatörleri Çalıştırabilir ifadeler İşlem gerçekleştirir (hesaplamalar, verinin giriş/çıkış işlemleri) Karar verilir Sınav notuna göre geçti yada kaldı yazdırmak isteyebiliriz. if kontrol ifadesi Bu bölümde basit versiyonu anlatılacak, detaylı anlatım ileri bölümlerde ele alınacak. Eğer koşul doğru ise, if yapısının gövde kısmı çalışır. 0 yanlış(false), 0 olmayan değerler ise (doğru) true If yapısından sonraki ifade ile programın çalışması devam eder. Anahtar Kelimeler C için ayrılmış özel kelimler Tanımlayıcı yada değişken adları olarak kullanılmazlar. 21

2.6 Karar Verme: Eşitlik ve Karşılaştırma Operatörleri 22 Operatörler C deki karşılığı C de örneği C de anlamı Eşitlik Operatörleri = == x == y x eşittir y!= x!= y x eşit değildir y Karşılaştırma Operatörleri > > x > y x büyüktür y < < x < y x küçüktür y >= >= x >= y x büyüktür yada eşittir y <= <= x <= y x küçüktür yada eşittir y

1 /* Şekil. 2.13: fig02_13.c 2 if yapılarını,karşılaştırma ve eşitlik operatörlerini 3 kullanmak */ 4 #include <stdio.h> 5 6 /* Program main çalıştırılarak başlar. */ 7 int main() 8 { 9 int sayi1; 10 int sayi2; 11 12 printf( "İki tamsayı girin\n" ); 13 printf( "Bu iki sayının karşılaştırması yapılacaktır:" ); 14 15 scanf( "%d%d", &sayi1, &sayi2 ); /* iki tamsayiyi okuma */ 16 17 if ( sayi1 == sayi2 ) { 18 printf( "%d eşittir %d\n", sayi1, sayi2 ); 19 } 20 21 if ( sayi1!= sayi2 ) { 22 printf( "%d eşit değil %d\n", sayi1, sayi2 ); 23 } 24 Outline fig02_13.c (Part 1 of 2) 23

25 if ( sayi1 < sayi2 ) { 26 printf( "%d küçük %d\n", sayi1, sayi2 ); 27 } 28 29 if (sayi1 > sayi2 ) { 30 printf( "%d büyük %d\n", sayi1, sayi2 ); 31 } 32 33 if (sayi1 <= sayi2 ) { 34 printf( "%d küçük yada eşit %d\n", sayi1, sayi2 ); 35 } 36 37 if (sayi1 >= sayi2 ) { 38 printf( "%d büyük yada eşit %d\n", sayi1, sayi2 ); 39 } 40 41 return 0; 42 43 } /* main fonksiyonun bitişi */ Outline fig02_13.c (Part 2 of 2) 24 İki tamsayı girin Bu iki sayının karşılaştırması yapılacaktır : 3 7 3 eşit değildir 7 3 küçüktür 7 3 küçük yada eşit 7 Program Output

İki tamsayı girin Bu iki sayının karşılaştırması yapılacaktır 22 12 22 eşit değil 12 22 büyük 12 22 büyük yada eşit 12 Outline Program Output (continued) 25 İki tamsayı girin Bu iki sayının karşılaştırması yapılacaktır 7 7 7 eşit 7 7 küçük yada eşit 7 7 büyük yada eşit 7

2.6 Karar Verme: Eşitlik ve Karşılaştırma Operatörleri 26 Operatörler İşleyişleri * / % Soldan sağa + - Soldan sağa < <= > >= Soldan sağa ==!= Soldan sağa = Sağdan sola Fig. 2.14 Şu ana kadar anlatılan operatörlerin öncelikleri ve işleyişleri

2.6 Karar Verme: Eşitlik ve Karşılaştırma Operatörleri 27 Anahtar Kelimeler auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Fig. 2.15 C nin anahtar kelimeleri.