14 Nisan 2015 Salı

C Programlama Ders 2 - Değişken ve Sabitler

Derse başlamadan önce geçen derste vermiş olduğumuz ödevin cevaplarını yazalım :

1-
   #include <stdio.h>

    int main(){
    printf("Bu benim ilk dersim \nİkinci dersi sabırsızlıkla bekliyorum...");

    return 0;
    }

2- 
  #include <stdio.h> // stdio.h kütüphanesi printf ifadesini kullanmak için dahil ettik.

    int main(){ // Her programda bulunması gereken main kodumuz.
    printf("Bu benim ilk dersim \nİkinci dersi sabırsızlıkla bekliyorum..."); /* Printf ile ekrana yazı yazdırmak için printf("");  tırnakları arasında ifadelerimizi yazarız. Programda bir alt satıra geçmek için /n ifadesini kullanırız . printf ile işimiz bittiğinde sonuna ; koyarak fonksiyonu sonlandırırız. */

    return 0; // programın bittiğini gösterir. 
    }

Değişken = Program içinde değiştirebileceğimiz değerlerdir. Programda değişkende karakter (character) , tam sayı (integer ) , ondalıklı sayı (float) değerlerini atayabiliriz. 

Sabitler = Program içinte değiştiremediğimiz değerlerdir. Programda tam sayı (integer) olarak bir sabit 5 sabitini tanımlayalım, bunun için  değişkenin başına const anahtar sözcüğü getirilir.

Değişken Kullanımı :
 1- Anahtar Sözcüğü Değişken Tipi Değişken Adı = Değişken Değeri ;
     Genel manada bütün değişkenler bu yolla tanımlanır.
 2- integer (tam sayı)  int şeklinde 
     ondalıklı sayi         float şeklinde
     karakter                  char şeklinde
     daha büyük ondalıklı sayılar  double şeklinde tanımlanır.  
3- Değişken yazıldığında ; ile sonlandırılır.
   
Yukarıda verdiğimiz 2 maddeyi baz alarak bir örnek yazalım :
 Anahtar Sözcüğü Değişken Tipi Değişken Adı = Değişken Değeri ;
 /*Bu kısmı const          int              sayi             =   5;
 gibi özel anahtar
 sözcük
ekleyeceğimiz 
zaman kullanacağı
                       */

Yukarıda integer yani tam sayı tipinde sayi adında bir değişkene 5 değerini atadık.
örnekleri çoğaltalım :

int x = 5;
float pi = 3,14;
char k = 'a' ; // Bir karakter tanımlamak için ' '  arasına yazılır.

Birden fazla değişken yan yana tanımlanabilir.
int x=5,y=4,z=3; // x y ve z tam sayıdır
char a='k',b='m'; //  a ve b karakterdir.

Değişken İsimlendirme :
1- Başında sayı bulunamaz  int 3ad;  gibi
2- Türkçe karakter bulunamaz  int ş; gibi
3- Değişken adları veya programda kullanılan fonksiyonlar değişken adı olamaz int float : gibi
4- Değişken adına _ haricinde diğer özel ifadeler kullanılmaz. 
   int _ad; , char asd_asd; , float asd_; kullanılabilir.
5- Büyük harf kullanılabilir.

Programcılar uzun adları genelde 2 şekilde kullanırlar :
1-  "_ " kullanmak  örneğin :  int tam_sayi;  ya da  char kalin_sesli_yazi; gibi...
2-  Büyük harf kullanmak :  int tamSayi ya da  char kalinSesliYazi: gibi...

Değişken boyutları :
Değişkenler RAM de farklı boyutlarda tutulur.
int 2 byte 
char 1 byte
float 4 byte
double 8 byte ta tutulur.

Bazı sistem ve derleyicide int 4 byte olarakta tutulabilir. Bu yüzden biz bu değerleri elle girmek yerine sizeof  fonksiyonuyla bilgisayar bu değerleri ölçer. Aşağıdaki örneği inceleyin :

#include <stdio.h>
#include <conio.h>
int main(){
  printf( "\nint : %d byte", sizeof( int ));
  printf( "\nchar : %d byte", sizeof( char ));
  printf( "\nfloat : %d byte", sizeof( float ));
  printf( "\ndouble : %d byte", sizeof( double ));
getch();
return 0;
}


Yukarıdaki örneğin kafanızı karıştırmasına izin vermeyin sadece anlatmak istediğimi anlayın yeter, oradaki sizeof fonksiyonu değişken tiplerinin  boyutlarını ölçer.

Değişkenlerin programda kullanılması : 
Arkadaşlar klavyeden bir değer almak veya ekrana bir değer yazdırmak için her değişkene karşılık gelen bir ifade vardır. Bu ifadeler kafanızı karıştırmasın sadece bilin .

int   %d olarak
float  %f olarak
char  karakter tutulacaksa %c  string bir ifade kullanılacaksa(bir cümle gibi) %s kullanılır.

Şimdilik bunları bilmeniz yeterlidir.

Şimdi örneklerle açıklayalım :

#include <stdio.h>
#include <conio.h>
int main(){
  int x=5;
getch();
return 0;
}

x=5 dediğimizde ramde 2 byte lık bir adres ayırır o adrese 5 değerini yazar.
Adresi görüntülemek için değişkenin başına & işaretini kullanırız. &x gibi.
Programı çalıştırdığımızda:

printf("%p",&x); Buradaki %p heksadesimal bir sayi olara yazdırmak için kullanırız. Yani 16 lık tabanda yazdırmak için %d deseydik desimal olarak yazdıracaktı yani 10 luk tabanda.
Ram benim bilgisayarımda x i 0x23FE4C gibi bir adres de tutuyor.Sizin bilgisayarınız da daha farklı bir adres gözükebilir.Bilgisayar bu adresi rastgele atamaktadır.

Şimdi bu Ram de olan olayı bide sanal olarak anlatalım.



Soldaki RAM olsun biz x=5 dediğimizde Ram de x adresinde yani benim bilgisayarımda 0x23FE4C de tutuluyor. Genel olarak mantığı bu şekildedir. O tutulan hücre 2 byte veya 4 byte 5 sayısı neden 2 byte tutuluyor veya ne kadar büyük değerler saklaya biliriz bunları önümüzdeki derslerde açıklayacağım.

Sabitlerin kullanılması:
Bir değişkenin başına const anahtar sözcüğü getirildiğinde o değeri program içinde değiştirmeye çalıştırdığımız da program hata verecektir.
















Yukarı ki örnekte PI yı 12 yapmaya çalıştığımızda programın hata verdiğini görmekteyiz.
 * Sabitleri büyük harflerle yazarsak program içinde daha rahat kullanırız bu sadece bir tavsiyedir küçük de yazabiliriz.

ÖDEV(Cevaplar sonraki derste verilecektir)
1- 12 , 2.14 sayılarını ve d karakterini sırasıyla sayi , ondalik ve karakter adli değişkenlerde tutan programı yazınız.
2- Yukarıdaki programı sanal olarak gösteriniz.
3- Aşağıdaki isimlendirmelerden hangisi doğrudur.
   a) 2AD  b) Arac* c) satır  d) double  e) birSayi
4- Aşağıdaki değişkenlere gelen karşılıkları yazınız %d ,%f ... gibi
   a) float ....?....
   b) char ....?.... (karakter için)
   c) int    ....?....
   d) char ....?.... (string ifade için(örneğin bir cümle girdisi gibi))
   e) int    ....?.... (adresi heksadesimal olarak yazdırmak için)
   f) char  ....?.... (adresi desimal olarak yazdırmak için)
   g) int    ....?.... (adres yazdırmak için değişken başına gelen ifade)

Bu dersimizin de sonuna geldik zamanla bu konuyla ilgili eklemeler yapabilirim.

#include <stdio.h>
#include <conio.h>
int main(){
int x=3;
printf("%d. Derste gorusuruz :)",x);
getch();
return 0;
}

Hiç yorum yok:

Yorum Gönder