değişken tanımlamaları

33

Upload: long

Post on 15-Jan-2016

102 views

Category:

Documents


0 download

DESCRIPTION

Değişken Tanımlamaları. 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 önceki değer silinir, yeni değer onun yerine yerleşir. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Değişken Tanımlamaları
Page 2: Değişken Tanımlamaları

2

DeğişkenlerDeğ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

önceki değer silinir, yeni değer onun yerine yerleşir.

Hafızadan değişkenleri okumak ile değerleri değişmez.

Page 3: Değişken Tanımlamaları

3

tamsayi1 45

tamsayi2 72

tamsayi1 45

tamsayi2 72

toplam 117

•Şekilsel gösterim

Page 4: Değişken Tanımlamaları

Temel Değişken Tipleri C dilinin değişken tipleri tanımlamak

için aşağıdaki komutlar kullanılır.  • int (integer) - tamsayı • float (floating point) - ondalıklı

sayı • double – çift duyarlıklı ondalıklı

sayı • char (character) – karakter

türünde veri

Page 5: Değişken Tanımlamaları

Temel Değişken Tipleri ve veri aralıkları

Page 6: Değişken Tanımlamaları

İşaretli (Signed) ve İşaretsiz (Unsigned) Değişken KavramlarıDeğişkenler bellekte kapladıkları alanla orantılı

olarak değer alabilirler. Yani değişken bellekte ne kadar çok yer kaplıyorsa o kadar geniş bir değer aralığına sahiptir. Ancak bu değer aralığını genişletmenin bir yöntemi daha var. O da ‘unsigned’ yani ‘işaretsiz’ tanımlaması. Eğer tanımlayacağımız değişkenin negatif değer alma ihtimali yoksa; örneğin yaş, boy, nüfus, yakıt durumu, yüzde gibi veriler kullanılacaksa, bu durumda ‘unsigned’ tanımlanması tercih edilebilir. Bir değişkeni ‘unsigned’ tanımladığımız zaman değişkenin tüm bitlerini değer aralığı için kullanabiliriz. Aksi taktirde değişkenin en soldaki biti ‘negatif - pozitif’ durumunu kontrol etmek için kullanılır.

Page 7: Değişken Tanımlamaları

Örnek#include <stdio.h>main(){

unsigned int sayi;printf(" sayı giriniz:");scanf("%d",&sayi);printf("%d",sayi);

}

Page 8: Değişken Tanımlamaları

Değişken tanımlamakProgramcı ne tür bir program yazıyor olursa olsun, programın

tasarlanması aşamasında en çok dikkat etmesi gereken faktörlerden biri değişken tanımlamalarıdır. Değişkenin tipinin ve isminin yanlış seçilmesi o an için bir problem teşkil etmeyebilir ancak aradan belli bir zaman geçtikten sonra çok büyük sorunlara neden olabilir. Öyle ki kesirli işlemler yapılacağı halde birtakım değişkenler tamsayı belirlenmişse ve test aşamasında şansa kesirli sonuçlar vermeyen değerler girildiğinde o an için program düzgün çalışıyormuş gibi gözükebilir. Ayrıca değişkenlere anlamsız isimler verildiğinde yine o an için bir sorun çıkmasa da programcının üç beş ay sonra yeniden aynı programla uğraşmaya başladığında hangi değişkenin ne amaçla kullanıldığını bulabilmek için programı başından sonuna adım adım takip etmesi gerekebilir. Büyük bir projede karmaşa yüzünden adım adım takip de mümkün olmayabilir. Bu tür durumlarla karşılaşmamak için değişkenlere her zaman anlamlı isimler vermek daha doğrudur. O anda ‘x yolu’ diye aklınızdan geçen bir şey varsa o değişkene ‘x’ adını vermek yerine ‘yol’ demek sonrası için daha iyi olacaktır.

Page 9: Değişken Tanımlamaları

Değişken tanımlama kurallarıC dili komutları değişken adı olarak verilemez.

(Örneğin if, for, case gibi)Değişken isimi birden çok kelimeden oluşacaksa

aralarına boşluk verilmez. Örneğin “maksimum sayi” adında bir değişken tanımlamaz ama “maksimum_sayi” yada “MaksimumSayi” gibi değişken tanımlanabilir.

Değişken adları sayı ile başlamaz. Örneğin “2sayi” gibi bir değişken adı olmaz.

NOT: C dili değişken isimlendirmede küçük harf büyük harf duyarlıdır. O yüzden büyük harfle tanımladığınız değişkeni program içinde aynen kullanınız.

Page 10: Değişken Tanımlamaları

Değişken tanımlama örnekleri1: int x;2: int a,b,c;3: float OrtalamaNot;

Page 11: Değişken Tanımlamaları

Değişkenlere değer atama1: int x=5;2: int a=2,b=5,c=1;3: float OrtalamaNot=50.5;

Page 12: Değişken Tanımlamaları

Örnek#include <stdio.h>main(){char karakter = 65;printf(" %c",karakter);}Bu program ekrana 65 sayısının ascii

karakter kodu olan A harfini yazar.

Page 13: Değişken Tanımlamaları

Örnek#include <stdio.h>main(){int pi = (int)3.1415926535;printf(" %d",pi);}Bu örnekte pi değeri int tipine

dönüştürülüyor.

Page 14: Değişken Tanımlamaları

#define önişlemci komutu ile değişken tanımlamaBu önişlemci komutu, kaynak dosyada bir

isim yerine başka bir isimin yerleştirilmesini sağlar. Programda kullanılan bu sembolik isimler başta ana program olmak üzere bütün alt programlarda da aynı değere sahiptir. Yani #define önişlemcisi ile tanımlanan her ne olursa olsun, tanımlama bütün fonksiyonlarda kullanılabilir. Bir çeşit genel (global) bildirim gibi davranır.

Page 15: Değişken Tanımlamaları

#define önişlemci komutu ile değişken tanımlama örneği-1#include <stdio.h>#define KISA short int main(){KISA sayi =5;printf(" %d",sayi);}

Page 16: Değişken Tanımlamaları

#define önişlemci komutu ile değişken tanımlama örneği-2#include <stdio.h>#define PROGRAM main()#define BASLA {#define BITIR }#define YAZ printfPROGRAMBASLA YAZ("Merhaba C!..\n");BITIR

Page 17: Değişken Tanımlamaları

#define önişlemci komutu ile değişken tanımlama örneği-1#include <stdio.h>#include <conio.h>

#define USHORT unsigned short int

main(){

USHORT kenarA = 10;USHORT kenarB = 7;printf("Dikdortgenin Alani = %d\n", kenarA *

kenarB);printf("Devam etmek icin bir tusa basiniz...\n");

}

Page 18: Değişken Tanımlamaları

18

Aritmetik Hesaplamalar-OperatörlerAritmetik 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ğiBazı aritmetik operatörler diğerlerinden önce işleme

girerler. Öncelik sırası çarpma, bölme, toplama, çıkarma şeklindedir. Yalnız öncelik sırası değiştirilmek istenirse parantezler kullanılmalıdır.

Örnek: a, b ve c değişkenlerinin ortalamasının bulunması (a + b + c ) / 3 şeklindedir.

Page 19: Değişken Tanımlamaları

19

Aritmetik operatörler

Operatörlerin öncelik kuralları:

C işlemi

Aritmetik 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ö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.

*, /,veya % Çarpım, bölüm, mod alma İkinci olarak hesaplanır. Eğer birden fazla varsa soldan sağa doğru hesaplanır.

+veyar - Toplama, çıkartma

En son hesaplanırlar. Eğer birden fazla varsa, soldan sağa doğru hesaplanırlar.

Page 20: Değişken Tanımlamaları

Değişkenlere değer atamaProgram içerisinde bir değişkene değer atama

örnekleri aşağıda verilmiştir.A=5;B=a/2;a = 11 % 7;miktar *= birimSayisi; (miktar = miktar *

birimSayisi;)para /= kisiSayisi; (para = para / kisiSayisi;)saniye += 4; (saniye = saniye + 4;)toplam -= kayip; (toplam = toplam - kayip;)faz %= peryod; (faz = faz % peryod;)

Page 21: Değişken Tanımlamaları

Değişkenlere değer atama-2 ++ ve – operatörleri ile bir değişkenin değeri artırılıp

azaltılabilir. x++; (x = x + 1;) y--; (y = y – 1;)

Örnek: x = 10; a = x++;  Burada a = 10, x = 11 olacaktır. ‘a’ ‘x’e eşitlenir ve ‘x’in değeri bir

arttırılır. Örnek-2 x = 10; a = ++x;   Burada ise a = 11, x = 11 olacaktır. Burada öncelikle ‘x’ bir arttırılır,

değeri 11 olur ve daha sonra bu yeni değer ‘a’ya eşitlenir. NOT: ‘++’ ve ‘--' operatörleri değişkenlerden önce yazıldıklarında

‘prefix’, sonra yazıldıklarında ‘postfix’ isimlerini alırlar.

Page 22: Değişken Tanımlamaları

Değişkenlere değer atama-örnek#include <stdio.h>#include <conio.h>

main() { int a=3,b,c; b = c = a; printf("%d",b);}

Page 23: Değişken Tanımlamaları

Örnek #include <stdio.h> #include <conio.h>   main() { int a, b; a = b = 10; printf("a:%d\nb:%d\n\n", a, b); a++; ++b; printf("a:%d\n b:%d\n\n", a, b); printf("a:%d\n b:%d\n\n", a++, ++b); printf("a:%d\n b:%d\n\n", a, b); }  

Page 24: Değişken Tanımlamaları

Örnek Sonucu a:10

b:10

a:11b:11

a:11b:12

a:12b:12

Page 25: Değişken Tanımlamaları

Mantıksal OperatörlerOperatö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

Page 26: Değişken Tanımlamaları

Mantıksal BağlaçlarVE(and) Bağlacı: Birden çok şart olduğunda ve

her şartın doğru olması durumunda işlemlerin yapılması istenirse ve bağlacı kullanılır. C Dilinde VE bağlacı & işaretiyle gösterilir.

Örneğin a,b ve c sayılarının klavyeden girildiği varsayılsın. Bu 3 sayının eşit olma durumu VE bağlacıyla şöyle ifade edilir.

(a==b)&&(a==c) yada (a==b)&&(a==c)&&(b==c)

şeklinde yazılır.

Page 27: Değişken Tanımlamaları

Mantıksal BağlaçlarVEYA(or) Bağlacı: Birden çok şart olduğunda

ve her şartlardan herhangi birisinin doğru olması durumunda işlemlerin yapılması istenirse veya bağlacı kullanılır. C Dilinde VEYA bağlacı || işaretiyle gösterilir.

Örneğin a,b ve c sayılarının klavyeden girildiği varsayılsın. Bu 3 sayıdan yanlızca ikisinin eşit olma durumu VEYA bağlacıyla şöyle ifade edilir.

(a==b)||(a==c)||(b==c) şeklinde yazılır.

Page 28: Değişken Tanımlamaları
Page 29: Değişken Tanımlamaları

İf Blok YapısıC dilinde karşılaştırma işlemleri için if blok

yapısı kullanılır. En basit kullanımı şu şekildedir.

if(koşul) {

... deyimler; (küme) ...

}

Page 30: Değişken Tanımlamaları

İf-else yapısıif(koşul) { ... deyimler;(küme1) ... } else { ... deyimler;(küme2) ... }

Page 31: Değişken Tanımlamaları

İf-elseif yapısıif(koşul) { ... deyimler;(küme1) ... } else if { ... deyimler;(küme2) ... } else if { ... deyimler;(küme3) ... } . . . else { ... deyimler;(kümeN) ... }

Page 32: Değişken Tanımlamaları

ÖrnekKlavyeden girilen 2 sayının birbirine göre büyük küçük yada eşit olma

durumlarını yazan programı if-else kullanılmadan yanlızca if yapısı kullanarak yazınız.

#include <stdio.h> int x, y; main() {

printf("\nBir tamsayı değeri girin, x: ");

scanf("%d", &x);

printf("\nBir tamsayı değeri girin, y: ");

scanf("%d", &y);

if (x == y) printf("x, y ye eşit\n");

if (x > y) printf("x, y den büyük\n");

if (x < y) printf("x, y den küçük\n");

}

Page 33: Değişken Tanımlamaları

SoruKlavyeden girilen 3 sayının eşkenar, ikizkenar yada çeşitkenar oluşturup

oluşturmadıklarını bulan program. (Matematiksel detay kurallar göz önünde bulundurulmayacaktır.)