16 Nisan 2015 Perşembe

C Programlama Ders 3 - Temel Giriş/Çıkış İşlemleri

Derse başlamadan önce , bir önceki derste vermiş olduğum ödevlerin cevaplarını paylaşalım:
1-  #include <stdio.h>
     #include <conio.h>
     int main(){
     int sayi = 12; // tam sayi olduğu için integer ile yazıyoruz.
     float ondalik = 2.14; // ondalıklı sayı olduğu için float ile yazıyoruz.
     char karakter = 'd'; // karakter olduğu için char tipinde tanımlıyoruz.
     getch();
     return 0;
     }
     
2-

 Programda main e göre okuma yapacaktır.
 İlk int tanımlandığında 2 byte yer ayırır ve 12 i belleğe yazar.
 sonra  float tanımlandığında 4 byte yer ayırır ve 2.14 ü belleğe yazar.
 sonra da karakter tanımlandığından 1 byte yer ayırır ve belleğe yazar. 

NOT= Belleğe tabikide d yazmaz d nin sayısal olarak tutulduğu karşılığı yazar . Bellekte d harfi 99 da tutulur.  Bununla ilgili bilgiyi ilerideki derslerde vereceğim. ASCİİ ye bir göz atınız.
3-  a) 2AD  tip isimlerinde başta sayı kullanılmaz.
     b) Arac* tip isimlerinde özel karakterler kullanılmaz. ( _ dışında)
     c) satır   tip isimlerinde Türkçe karakter kullanılmaz (ı gibi)
     d) double tip isimlerinde program fonksiyon adları kullanılmaz.
     e) birSayi tip isimlerinde büyük harf kullanılabilir yani doğru şık e olacaktı. Bu ismi bir_sayi şeklindede yazabilirdik.  

4-   a) float ....%f....
      b) char ....%c.... (karakter için)
      c) int    ....%d....
      d) char ....%s.... (string ifade için(örneğin bir cümle girdisi gibi))
      e) int    ....%p.... (adresi heksadesimal olarak yazdırmak için)
      f) char  ....%d.... (adresi desimal olarak yazdırmak için)
      g) int    ....&(Ampersand).... (adres yazdırmak için değişken başına gelen ifade)                                         
 Klavyeden bir değer girişi yapmak için veye ekrana bir ifade çıkarmak için kullandığımız fonksiyonlardır.

printf() Fonksiyonu
printf() fonksiyonu konsol ekran çıkışına yazmak için en çok kullanılan fonksiyondur.
printf("");  şeklinde bir ifadenin "" arasına yazılan değerleri ekrana basar.
Örneğin printf("Merhaba Dünya"); bunu zaten ilk ders söylemiştik.

   Program içinde tanımladığımız değerleri ekrana yazdırmak içinde bu fonksiyonu kullanabiliriz.
Örneğin x=5 program içinde bize verilsin bunu ekranda göstermek için %d ifadesi kullanılır. Buradaki % ifadesine tip belirleyicisi d de decimal dır. Yani programa ekranda gösterilen tipin bir decimal sayi olduğunu söylüyoruz.
Ekranda yazdırmak için ise printf("bu bir tamsayidir : %d ",x); şeklinde yazıyoruz.

Aynı şekilde karakter için %c  , ondalıklı bir sayı için %f tanımlayabiliriz.Şimdi bununla alakalı bir örnek yazalım.

#include <stdio.h>
#include <conio.h>     
int main(){                         
int x=13;
float y=2.34;
char z='k';
printf("int x : %d\n",x);
printf("int y : %f\n",y);
printf("int z : %c",z);
getch();
return 0;
}

Yukarıdaki programın ekran çıktısı yandaki gibi olacaktır.
NOT=float virgülden sonraki 6 sayıyı ekrana gösterir bu yüzden sayının sonuna 4 sıfır daha ekledi.
Bununla ilgili işlemleri sonraki derslerde bahsedeceğim.

Yukarıdaki programı tek printf kullanarak da yazılabilirdi.

printf("int x : %d\nint y : %f\nint z : %c",x,y,z);

\n kullanarak bir alt satıra geçiyoruz.

"",  işaretinden sonra tip belirleyicilere karşılık gelen değişkeni yazıyoruz. %d  x %f  y %c icin z yazıyoruz.

printf fonksiyonu içerisinde /n gibi başka kontrol karakterleri de vardır.
Bunlardan bazıları:
\a program içerisinde bir bip sesi üretir
\t bir tab karakteri kadar boşluk bırakır.
\v bir tab karakteri kadar dikey olarak boşluk bırakır.
\"  çift tırnak ekranda yazdırmak için kullanılır.
\'   tek tırnak ekranda yazdırmak için kullanılır.
\\  printf("\\"); yazıldığında ekrana \ yazar.
%%  printf("%%"); yazıldığında ekrana % yazar.

puts() Fonksiyonu
Bu fonksiyonda printf gibi ekrana string ( karakter topluluğunu ) ekrana yazdırır.
puts fonksiyonunun printf fonksiyonundan farkı ekrana yazdırdıktan sonra bir satır atlaması. Yani bir nevi \n yapması. Fakat printf deki gibi programdaki bir değeri ekrana yazdıramaz.
Örneğin:
    puts("program yazıyorum"); // bu doğru bir kullanımdır. İmleç bir satır aşağıdan başlar.
    puts("program yazıyorum %d",x); //bu şekilde bir kullanım yapılamaz.

 scanf() Fonksiyonu
scanf fonksiyonu klavyeden veri okumak için kullanılır.

scanf("değişken tipi","değişken adresi");

örneğin:  int x tipinde klavyeden bir değer okumak istiyoruz.

scanf("%d",&x);  ampersand işareti kullanarak x in adresini yazabiliriz.
 Bu ifade x için klavyeden bir değer girmemizi isteyecektir. 10 girdiğimizi varsayalım. Ram de &x (x in adresine ) 10 değeri yazılacaktır.Bir resimle bunu sanal bir şekilde yapalım.












Aynı şeyi diğer tipler için de yapabiliriz.

scanf("%f",&x);
scanf("%c",&x);

İki değeri aynı anda da okuya biliriz.

scanf("%d %f",&x,&y);

Bir örnek yapalım:

#include <stdio.h>
#include <conio.h>
int main(){
int x;
scanf("%d",&x);
printf("%d",x);
getch();
return 0;
}

Yukarıdaki programda scanf ile klavyeden x için bir değer okuyoruz. Sonra bu değeri printf ile ekrana yazdırıyoruz.

gets() Fonksiyonu
Bu fonksiyonda printf-puts arasında olan bağlantı gibi scanf ile bağlantısı benzerliği vardır.
Klavyeden string bir ifadenin okunmasını sağlar.
Örneğin:
#include <stdio.h>
#include <conio.h>
int main(){
char x[10];
gets(x);
printf("%s",x);
getch();
return 0;
}

Yukarıda kullanılan x[10] ifadesi bir dizidir bunu dizilerle alakalı dersimizde göreceğiz. Siz sadece gets fonksiyonunun klavyeden string bir ifadenin okunmasını sağladığını bilin yeter.

getchar() Fonksiyonu
Bu fonksiyon klavyeden bir karakter okumamızı bekler.
#include <stdio.h>
#include <conio.h>
int main(){
char x;
x = getchar(); /*Program bu satıra gelince klavyeden bir değer girmenizi ister , değeri yazıp enter yaptığınızda bu değeri x e aktarırız.*/
printf("%c",x); // sonrada bu karakter printf ile ekrana yazdırırız.
getch();
return 0;
}

Bu dersimizin de sonuna geldik...

ÖDEV(Cevaplar bir daha ki ders verilecektir)
1- Aşağıdaki ekran çıktısını veren programı ( \n ,\t ,\\ ile ) printf kullanarak tek satırda yazınız.













2- Aşağıdaki ifadelerin doğru olanlarının yana D yanlış olanların yanına Y yazınız ve yanlış olanları açıklayınız.
  a) printf("%d %f",xy); ..................
  b) puts("Programlama yazarak ogrenilir."); ................. 
  c) scanf("%d",x); ................
  d) gets(&x); ................

3- Aşağıdaki programda kırmızı yazılar yanlış yazılmıştır. Doğru yazıp derleyiniz.
   
#include <stdio.h>
#include <conio.h>
int main(){
int x=3,y;
printf("x= %c\n",x); \\ Bu bir yorum satırıdır.
scanf("%d",y);
printf("y= %d\n",);
puts("Sayilar yukarida verilmistir.);
getch();
return 0;
}


Hiç yorum yok:

Yorum Gönder