You are on page 1of 37

1

C Dili ile Programlamaya Giriş

 Giriş
 Basit C Programları: Bir Metni Yazdırmak
C dili değişken tipleri
 Basit C Programları: İki Tam Sayıyı Toplamak
 Hafıza Konuları
 C’de Aritmetik
 Karar Verme : Eşitlik ve Karşılaştırma Operatörleri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
2

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

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
3

Giriş
 C programlama dili
Program tasarımı için yapısal ve disiplinli bir yaklaşım
sunar.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
4

Basit C Programları:Bir Metni Yazdırmak

C diline hosgeldiniz.

 Yorumlar
 C Derleyicisi /* ve */ arasındaki metinlere işlem yapmaz
 Programın okunurluluğunu artırmak için kullanılır.
 #include <stdio.h>
 Önişlemci talimatı
İstenilen bir dosya içeriğinin bilgisayara yüklemesini sağlar.
 <stdio.h> standart giriş/çıkış işlemlerinin yapılmasını sağlar.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
5

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.

Parentez kullanılması 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.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
6

Basit C Programları: Bir Metni Yazdırmak


• printf( "C diline hosgeldiniz.\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

\t tab sekme karakteri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
7

Basit C Programları: Bir Metni Yazdırmak


printf içerisinde çift tırnak kısmında
% işareti özel anlam içerir.
%d - ekrana bir tamsayı değişkeni
değeri yazılır
%f - ekrana bir reel sayı değişkeni
değeri yazılır.
%s - ekrana bir metin değişken değeri
yazılır.
eğer bu ifadeler kullanılmışsa ""
sonra virgül konularak bunlar hangi
değişkenlere aitse o değişkenlerin
ismi virgül ile ayrılarak yazılır.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
8

C Programları:Bir Metni Yazdırmak

Ç ıkış Sıra sı 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.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
9

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

Sol küme parantezi {
main fonksiyonun başlandığını gösterir.

Sağ küme parantezi }
main fonksiyonun bitişini gösterir.

Bağlayıcı

Fonksiyon çağrı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 byfonksiyon
© Copyright 1992–2004 bulamadığından
Deitel & Associates, hata
Inc. and Pearson Education Inc.üretir.
All Rights Reserved.
C Dili Değişken Tipleri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
12

C Programları -İki Tam Sayıyı Toplamak


• Önceki programlar gibi
– Yorumlar, #include <stdio.h> ve main
• int sayi1, sayi2, toplam;
– Değişken tanımı
• Programın kullanabileceği bir değerin saklandığı hafıza konumlarıdır.
– int değişkenlerin sadece tamsayı değerlerini saklamasını sağlar(-
1, 3, 0, 47)
– Değişken isimleri
 sayi1,sayi2, toplam
Isimler harf ile başlar,rakam ile başlanılmaz ve alt çizgi( _ )
haricinde bir karakter (*,-,’,” gibi) kullanılmaz.
Büyük küçük harf duyarlılığı vardır.
Değişken ismine boşluk olamaz.
– Bildirimler çalıştırılabilir ifadelerden önce yazılmalıdır.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
13

C Programları :İki Tam Sayıyı Toplamak


 scanf( "%d", &sayi1 );

Kullanıcıdan bir değer girmesini ister

scanf standart giriş (çoğunlukla klavye) kullanır.

scanf ifadesinin iki argümanı (bağımsız değişkeni) vardır.

%d – verinin tamsayı olması gerektiğini belirtir.

&sayi1 – değişken değerinin saklanacağı hafıza yerini belirtir.

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.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
14

C Programları :İki Tam Sayıyı Toplamak



= (atama operatörü)

Bir değişkene değer atama işlemi için

İki operatör kullanılmışsa
toplam = sayi1 + sayi2;

Değişken ismi eşitliğin sol tarafında, yapılan işlem ise


eşitliğin sağ tarafına yazılır.
printf( “Toplam %d\n", toplam );
%d bir tamsayının yazdırılacak anlamında kullanılır.

toplam hangi değişken değerinin yazılacağını belirler.


printf ifadesinin içinde aritmetik hesaplama işlemleri
oluşturulabilir.
printf( “Toplam %d\n", tamsayi1 + tamsayi2 );

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
15

C Programları :İki Tam Sayıyı Toplamak

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
16

C Programları :İki Tam Sayıyı Toplamak

Toplama işleminin
çıktı ekranı

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
17

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,
mesala), öncki 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

sayi1 45

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
18

Hafıza Konuları

•Şekilsel gösterim (devam)

sayi1 45
sayi1 45

sayi2 72
sayi2 72

toplam 117

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
19

Aritmetik
 Aritmetik hesaplamalar

* çarpma işlemi , / bölme işlemi için kullanılır.

Tamsayı bölümünde kalan gözardı edilir ve sonuç bölüm olur.

7 / 5 sonucu 1 olur.
-3/2 sonucu -1 olur.


Mod operatörü (%) bölüm işleminde kalanı geri dönderir.

7 % 5 sonucunu 2 olarak verir
 Operatör önceliği
– Bazı aritmetik operatörler bazılarından önce işleme girerler.
– Örneğin çarpma ve bölme toplama ve çıkarma işleminden
önce gelir. Öncelikli olarak parantez işlemleri yapılır.
– Ö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
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
20

Aritmetik Operatörler
 Arithmetik operatörler:

C işlemi Arittmetik Matematiksel C deyimi


operatör deyim
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

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
21

Aritmetik Operatörler
 Operatörlerin öncelik kuralları:

Operatör(l İşlem(ler) Öncelik sırası


er)
() 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, İkinci olarak hesaplanır. Eğer birden fazla varsa soldan sağa
mod alma doğru hesaplanır.
+ or - Toplama, En son hesaplanırlar. Eğer birden fazla varsa, soldan sağa
çıkartma doğru hesaplanırlar.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
22
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 ilerki
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 kelimeler

Tanımlayıcı yada değişken adları olarak kullanılmazlar.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
23

IF
karşılaştırma işlemi için if kullanılır. İf ifadesinde koşul yazıldıktan sonra ;
kullanılmaz. Aşağıda belirtilen şekillerde kullanılabilir.
if (koşul ifadesi yazılır) veya if (koşul ifadesi yazılır)
{ işlem veya işlemler yazılır. işlem yazılır
}
{-başla }-bitir sembolleri birden fazla işlem varsa zorunludur. Yoksa zorunlu
değildir. {} varsa içeride yazan tüm ifadeler if e bağlıdır. Eğer başla bitir
yoksa sadece ilk ifade if e bağlıdır.
if (x<y)--- eğer x y den küçükse x ile y nin toplamı z yi verir.
z=x+y; --- if e ait olan kısım ilk gelen komuttur.
if (x<y)--- yukarıdaki ile aynı işlemi yapar.
{z=x+y; } ---başla ve bitir arasındaki tüm ifadeler if e aittir.
Örnek: x=5 y=3 z=0
if (x<y) if(x<y)
z=x+y; --if e ait { z=x+y;
© z=z-3; z=?-3 by Deitel & Associates,
Copyright 1992–2004 z=z-3;} z=?0
Inc. and Pearson Education Inc. All Rights Reserved.
24

C Programları :İki Tam Sayıyı Karşılaştırmak

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
25

C Programları :İki sayıyı karşılaştırma

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
26
Karar Verme: Eşitlik ve Karşılaştırma
Operatörleri
Operatör C dili C dili Anlamı
karşılığı örneği

= == x==y x eşittir y

= != x!=y x eşit değildir y

> > x>y x büyüktür y

< < x<y x küçüktür y

>= >= x>=y x büyüktür veya


eşittir y

<= <= x<=y x küçüktür veya


eşittir y

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
27
Karar Verme: Eşitlik ve Karşılaştırma
Operatörleri

Operatörler İşleyişleri
* / % Soldan sağa
+ - Soldan sağa
< <= > >= Soldan sağa
== != Soldan sağa
= Sağdan sola
Şu ana kadar anlatılan operatörlerin öncelikleri ve işleyişleri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
28
C dilinin Reserved Kelimeler (değişken ismi
olarak verilemeyen kelimeler)

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Hızlı Değer Atama İşlemleri
i+=5 // i=i+5
i-=5 //i=i-5
i*=5// i=i*5
i/=5//i=i/5
printf(“%d”,i++);// önce mevcut değer yazılır ,sonra değer arttırılır.
printf(“%d”,++i);// önce değer arttırılır sonra yazdırılır.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Farklı sayı sistemlerinde değer atama ve
Typecasting
int a=61 ; //10 luk sayı sistemi
int b=0b01000001;ikilik sayı sistemi
int c=0x12;//onaltılık sayı sistemi

int sayi1,sayi2;
int z;
float x;
double=y;
z=sayi1/sayi2;
x=(float) sayi1/sayi2
y=(double) sayi1/sayi2

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Getch ve putchar
char a;
a=getchar(); /*komutu ile 1 adet karakteri alır ve a
değişkenine atar.*/
putchar(a); //ekrana yazdırır.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Karakter Dizileri
char k=‘Z’;
printf(“%c\n”,k);
char mesaj[]=“merhaba C DİLİ”;
printf(“%s”,mesaj);
printf(“%d”,strlen(mesaj));
printf(“%d”,sizeof(mesaj));

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Karakter dizisi işlemleri
#include<string.h>
char ad[20]=“MUSTAFA KEMAL”
char soyad[]=“ATATÜRK”
char adsoyad[40];
strcat(ad,soyad);//soyadı ad’a ekler ve ad’da saklar
printtf(“%s”,ad);
strcpy(adsoyad,ad);// ad adsoyada kopyalanır
printf(“%d”,strcmp(ad,adsoyad);
printf(“%d”,strcmp(ad,soyad);
printf(“%d”,strcmp(adsoyad,ad);
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Kullanıcı tanımlı değişkenler
Struct (Structure- Yapı)
struct kisibilgisi{
char ad[20],soyad[30];
int yas;float maas;
};
struct kisibilgisi kisi;
strcpy(kisi.ad,”ali”);
strcpy(kisi.soyad,”ay”);
kisi.yas=17;kisi.maas=3750;
struct kisibilgisi kisi2={“canan”,”can”,23,2730};

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Union yapısı
union veri{
int a;
float b;
char s[20];};
union veri v;
v.a=34; v.b=27.3;
strcpy(v.s,”türkiye cumhuriyeti”);
printf(“%d”,sizeof(v));
printf(“%d\n”,v.a); printf(“%.2f\n”,v.f);
printf(“%s\n”,v.s);
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
Enum yapısı
enum sayi{pozitif,notr,negatif};
enum sayi durum=pozitif;

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

You might also like