Veri Tipleri    Sabitler    De�i�kenler     Belirleyiciler   

Matematiksel �fadeler    Bir C Program�n�n Genel Yap�s�    Mant�ksal �fadeler

1. Veri Tipleri

C de Tan�ml� Veri Tipleri

Tip

Aral�k

Uzunluk(Byte)

Unsigned char

char

enum

unsigned int

short int

int

unsigned long

long

float

double

long double

0 .. 255

-128 .. 127

-32,768 .. 32,767

0 .. 65,535

-32,768 .. 32,767

-32,768 .. 32,767

0 .. 4,294,967,295

-2,147,483,648 .. 2,147,483,647

3.4 * (10**-38) .. 3.4 * (10**+38)

1.7 * (10**-308) .. 1.7 * (10**+308)

3.4 * (10**-4932) .. 1.1 * (10**+4932)

1

1

2

2

2

2

4

4

4

8

10

Kullan�c� Tan�ml� Veri Tipleri

Enumerated (S�ral�, Numaraland�r�lm��) Tipler

Program�n okunabilirli�ini artt�rmak i�in de�erlerin s�ral� bir k�me olarak tan�mlanmas�.

enum [tip_adi] { sabit ad� [= de�er],...} [de�i�ken listesi];

de�er:Sabite otomatik atanan de�er.

Belirtilmez ise 0'dan ba�lar. S�radaki sabit �ncesinin bir fazlas�na e�ittir.

Belirtilen tipte tan�ml� bir de�i�ken ancak listedeki de�erleri al�r.

enum renk {BEYAZ, SARI, SIYAH};

tan�mlamas� ile olu�an enum renk tipinde BEYAZ 0, SARI 1 ve SIYAH 2 de�erlerine e�it sabitlerdir.

Listedeki sabitler belirleyici olmal�d�r. Say�sal, karakter ve string bilgi yaz�lamaz.

enum renk = {"Beyaz", "Sari"}; X

enum renk = {0, 1, 2}; X

�li�kisel operat�rler tan�ml�d�r. Beyaz < Siyah, Sari > Beyaz

Bu tip de�i�kenler switch ve for deyimlerinde kontrol de�i�keni olarak kullan�labilir.

Bu tipte bir de�i�ken bilinen yap�da tan�mlan�r.

enum renk {BEYAZ, SARI, SIYAH};

enum renk a;

a de�i�keni BEYAZ, SARI ve SIYAH de�erlerinden birini alabilir.

�rnek: Enum kullan�m�.

main()

{

enum gunler {PAZAR,PAZARTESI,SALI,CARSAMBA,PERSEMBE,CUMA,CUMARTESI };

enum gunler gun;

clrscr();

for (gun = PAZAR; gun <= CUMARTESI; gun++)

printf("%d ", gun);

printf("\n");

for (gun = PAZAR; gun <= CUMARTESI; gun++)

switch (gun) {

case PAZAR: printf("Pazar"); break;

case PAZARTESI: printf("Pazartesi"); break;

case SALI: printf("Sali"); break;

case CARSAMBA: printf("Carsamba"); break;

case PERSEMBE: printf("Persembe"); break;

case CUMA: printf("Cuma"); break;

case CUMARTESI:printf("Cumartesi"); break;

} /* Case */

}

�rnek: Sabitlere farkl� de�erler atama

enum renkler { sari = 4, mavi, kirmizi };

enum renkler i;

main()

{

i = mavi;

printf("%d \n", i);

} Program sonucunda ekrana 5 yazar.

2. Sabitler (CONST)

CONST (sabit) : De�eri program�n �al��mas� boyunca de�i�tirilemez. Kullan�m bi�imi

const tip Belirleyici=de�eri;

const float PI=3.14; UYARI: E�er tip belirtilmez ise tamsay� kabul edilir.

3. De�i�kenler

De�eri program�n �al��mas� boyunca de�i�tirilebilir. Kullan�m bi�imi:

Tip Belirleyici [,Belirleyici] ; int i; float alan;

4. Belirleyiciler (Identifier)

Bile�enlere isim verme. (Sabit, de�i�ken, altprogram, etiket, tipler (kullan�c� tan�ml�)).

Belirleyici nas�l olmal� veya olmamal�d�r?

5. Matematiksel �fadeler

Matematiksel ifadeleri g�nl�k hayattaki bi�imde bilgisayarda yazamad���m�z i�in belli bir kurallar uymam�z gerekir. Kulland���m�z matematiksel i�lemler ve anlamlar� ��yledir:

+ , - , * , / toplama, ��karma, �arpma, b�lme

% tamsay� b�lme sonucundaki kalan� verir (mod)

7. / 2 ---> 3.5 (nokta say�n�n ger�el yorumlanmas�n� sa�lar)

7 / 2 ---> 3 (say�lar int kabul edilip sonu�ta int tipine d�n��t�r�l�r)

7 % 2 ---> 1 2 % 7 ---> 2 2 / 7 ---> 0 gibi...

Matematiksel ifadeler hesaplan�rken �u ad�mlar izlenir;

1.�nce parantez i�indeki ifadeler hesaplan�r. �� i�e parantezler var ise hesaplamaya en i�teki parantezden ba�lan�r.

2. ilk �nce * , / ve % i�lemleri daha sonra + ve - i�lemleri yap�l�r.

3.�ncelik s�ras� ayn� olan i�lemlerde hesaplama soldan sa�a do�ru yap�l�r. 5./2*3 --> 7.5

 

6. Bir C Program�n�n Genel Yap�s�

Atama Deyimi (Assignment)    printf Fonksiyonu    Bi�imli Yazd�rma     scanf Fonksiyonu

main()

{

sabitler ; sabitlerin tan�mlama b�l�m�

de�i�kenler; de�i�kenleri tan�mlama b�l�m�

deyimler; Program g�vdesi

}

Atama Deyimi (Assignment)

Bir de�i�kene bir de�er vermek.

De�i�kenAd� = de�er;

x = 8 ;

y = x + 15 ;

y = (8 - x) / (2 - x) ;

�rnek : 5x2+2 fonksiyonunun x=4.8 noktas�ndaki de�erini

main()

{

float x, y ;

x = 4.8;

y = 5 * x * x + 2;

}

�rnek: Vize ve final notlar�n�ndan ge�me notu

Main()

{

float vize, final, ort;

vize = 50;

final = 60;

ort = vize * 0.4 + final * 0.6;

}

�rnek: 2000 y�l�na kadar ge�en g�n say�s�

main()

{

float gun;

int yil = 2000;

gun = 365 * yil;

gun = gun + yil / 4;

}

 

printf Fonksiyonu

Program i�inde istenen de�erleri ��kt� birimlerine g�ndermek i�in kullan�l�r. Normal kullan�m�nda ��kt� birimi olarak ekran kabul edilir. Kullan�m bi�imi:

prinf( kontrol, <parametreler>)

<kontrol> ile belirtilen bilgiye g�re parametreleri yazar. Kontrol metni iki k�s�mdan olu�ur.

printf(" sonu� = %d", k);

integer de�er yaz�lacakt�r

ekrana aynen aktar�l�r

D�n���m belirlemek i�in �nce % karakteri ve ard�ndan d�n���m�n nas�l

olaca��n� belirten karakter verilir. Bu karakterlerden baz�lar�:

d : decimal (integer)

u : unsigned decimal

c : char (tek karakter)

s : string

e : float/double say�y� bilimsel g�sterimde yaz

f : float/double say�y� [-] mmm.nnnnn bi�iminde yaz

ld : long integer

lu : unsigned long integer

Le,Lf : long double

Program par�as� Ekranda g�r�nen / imle�in konumu

i = 5 ;

printf("%d",i) ; 5

printf("'i=%d",i) ; i=5

printf("i=\n") ;i=

printf("%d",i) ; 5 alt sat�ra ge�er

printf('i=%d\n",i) ; i=5 alt sat�ra ge�er

printf("%d - %d",i, 5*i) ; 5 - 25

Bi�imli Yazd�rma

% karakteri ile d�n���m karakteri aras�na a�a��daki karakterler de kullan�labilir.

- : sola dayal� yaz

m : yaz�lacak de�er i�in ay�r�lan alan

n : de�erin ka� karekteri yaz�laca��

s = "ABCDEF"

printf("%10s ",s); . . . . A B C D E F

printf("%10.3s ",s); . . . . . . . A B C

x = 128.5 ;

printf("%7.2f",x) ; # 128.50

x = 85.47 ;

printf("%6.3f",x) ; 85.470

�rnek : ax2+bx+c=0 tipi bir denklemin k�klerini veren program� yaz�n�z.

Girdi : a, b ve c katsay�lar�

��kt� : denklemim k�kleri

Algoritma :

1. a, b ve c katsay�lar�n� oku.

2. Delta= de�erini hesapla.

3. x1 ve x2 de�erlerini hesapla.

4. K�kleri yaz.

Program�n kodlanmas�:

#include <stdio.h> /* printf fonksiyonu i�in */

#include <math.h> /* sqrt fonksiyonu i�in */

main()

{

float a, b, c;

float x1, x2;

float d;

a = 1;

b = -3;

c = 2;

d = b * b - 4 * a * c;

x1 = (-b + sqrt(d)) / (2 * a);

x2 = (-b - sqrt(d)) / (2 * a);

printf("K�kler = %f , %f",x1, x2);

}

C dilinde karek�k almak i�in bir deyim yoktur. �rnekte bunu yerine getiren C diline eklenmi� olan sqrt() fonksiyonu kullan�lm��t�r. A�a��da buna benzer art�k C derleyicilerinde standart olmu� baz� fonksiyonlar verilmi�tir. Bu fonksiyonlar math.h ba�l�k dosyas�nda tan�ml�d�r.

Fonksiyon        x ,y                         Sonu�

abs(x)        int int                 x'in mutlak de�eri

fabs(x)        double double         x'in mutlak de�eri

pow(x, y)        double double x y

sqrt(x)        double double x'in karek�k�

exp(x)        double double         ex de�eri

log(x)        double double         ln(x) de�eri

log10(x)        double double         log10(x) de�eri

ceil(x)        double double x ten b�y�k ilk tamsay�

floor(x)        double double x ten k���k ilk tamsay�

�rnekler:

ceil(5) = 5 ceil(5.2) = 6 ceil(-5.2) = -5

floor(5) = 5 floor(5.2) = 5 floor(-5.2) = -6

scanf Fonksiyonu

Klavyeden veri okumak i�in kullan�l�r. Yap� olarak printf fonksiyonu ile hemen hemen ayn�d�r.

Kullan�m bi�imi:

scanf( kontrol, <de�i�kenler>) �eklindedir.

Girilen karakterler <kontrol> metininde belirtilen bi�imlere g�re de�i�kenlere aktar�l�r.

De�i�kenler pointer tipinde olmal�d�r. Yani parametre olarak de�i�kenin adresi g�nderilmelidir.

Ay�r�c�lar bo�luk, tab, enter

scanf("%f %f %f ", &a, &b, &c);

int a,b,c;

float m,n;

scanf("%d", &a); Klavyeden tamsay� okur. Girilen de�er a de�i�kenine aktar�l�r.

scanf("%d %d",&a,&b); Klavyeden girilen ilk de�er a, ikinci de�er b de�i�kenine aktar�l�r.

scanf("%f %d", &m, &a); Klavyeden ilki ger�el, ikincisi tamsay� olmak �zere iki de�er okur.

�kinci dereceden denklem ��z�m�n�n yap�ld��� �rnekte katsay�lar� klavyeden okutmak istersek

scanf("%f %f %f ", &a, &b, &c);

Farkl� kullan�c� ara y�z�nde yazarsak

printf(�Katsay�lar� s�ras�yla giriniz (a b c) :� ); scanf("%f %f %f ", &a, &b, &c);

gibi bir kullan�m s�z konusudur.

 

7. Mant�ksal �fadeler

Sonucu Do�ru veya Yanl�� olan ifadelerdir. Sonu� s�f�r ise yanl�� aksi halde do�ru kabul edilir.

�li�kisel operat�rler(operat�r) : iki de�er aras�ndaki ili�kiyi test etmek i�in kullan�l�r.

operat�r anlam�

> b�y�k �rnek:

>= b�y�k � e�it x=8, y=5 i�in

== e�it x > y Do�ru

< k���k x < y Yanl��

<= k���k � e�it x !=y Do�ru

!= e�it de�il

Mant�ksal operat�rler iki mant�ksal ifade aras�ndaki ili�ki �zerindeki ili�kide kullan�l�r.

Operat�r Anlam� �rnek:

&& Ve (And) (X>0) && (X>Y)

|| Veya (Or) (X>0) || (Y>0)

�fadelerde operat�rlerin y�r�t�lme s�ras�

( ) ! *, /, % +, - <, <=, >=, > = =, != &&, || =

�eklindedir.