3 Ekim 2016 Pazartesi

Printf() Fonksiyonu:

Standart C kütüphanesinde bulunan printf() fonksiyonu, değişkenlerin tuttuğu değerleri, onların adreslerini veya bir mesajı ekrana belli bir düzenle (format) standart çıkışa (stdout), yani ekrana, yazdırmak için kullanılan fonksiyondur. Daha önce yazılan örnek programlarda printf() fonksiyonundan yararlanmıştık. Şimdi bu fonksiyonun nasıl kullanıldığına bakalım.
Genel yazım biçimi:
      int printf(const char *format, ...);
Basit olarak ekrana Hata oluştu!.. şeklinde bir mesaj yazırma işlemi:
      printf("Hata Oluştu!..");
şeklindedir. Çoğu zaman ekrana, programda kullanılan bir değişkenin değeri yazdırılmak istenebilir. Örneğin ekrana bir tamsayı değişkeninin içeriğini basırımak için, printf()
      ....
      int x = 12;
      printf("x in değeri %d dir", x);
      ....
gibi kullanılır. Bu program parçasının ekran çıktısı şöyle olacaktır:
      x in değeri 12 dir
Bu örnekte printf fonksiyonuna iki parametre aktarılmıştır. Birincisi ekranda gösterilecek ve çift tırnaklar arasına yazılan ifadeler, ikincisi ise ekranda sayısal değeri gösterilmek istenen değişken (x).
*format üç kısımdan oluşmaktadır:
  1. Düz metin (literal string): yazdırılmak istenen ileti.
    Örneğin: printf("Ben gelmedim kavga için..."); gibi.
  2. Konrol karakterleri (escape squence): değişkenlerin ve sabitlerin nasıl yazılacağını belirtmek veya imlecin alt satıra geçirilmesi gibi bazı işlemlerin gerçekleştirilmesi için kullanılır. Bu karakterler Tablo 4.1'de listelenmiştir.
    Örneğin: printf("\tDostun evi gönlüdür...\n"); gibi.
Tablo 4.1: Kontrol karakterleri
KarakterAnlamı
\aSes üretir (alert)
\bimleci bir sola kaydır (backspace)
\fSayfa atla. Bir sonraki sayfanın başına geç (formfeed)
\nBir alt satıra geç (newline)
\rSatır başı yap (carriage return)
\tYatay TAB (horizontal TAB)
\vDikey TAB (vertical TAB)
\"Çift tırnak karakterini ekrana yaz
\'Tek tırnak karakterini ekrana yaz
\\\ karakterini ekrana yaz
%%% karakterini ekrana yaz

  1. Tip belirleyici (conversion specifier): % işareti ile başlar ve bir veya iki karakterden oluşur (%d gibi). Ekrana yazdırılmak istenen değişkenin tipi, % işaretinden sonra belirtilir (Bkz. Tablo 4.2) Örneğin: printf("x in değeri %d dir"); gibi.Tablo 4.2: Tip karakterleri
    Tip KarakteriAnlamıYazdırılacak veri tipi
    %ctek bir karakterchar
    %skarakter dizisi (string)char
    %dişaretli ondalık tamsayıint, short
    %lduzun işaretli ondalık tamsayılong
    %uişaretsiz ondalık tamsayıunsigned int, unsigned short
    %luişaretsiz uzun tamsayıunsigned long
    %fGerçel sayıfloat
    %lfÇift duayarlı gerçel sayıdouble
Tip karakterlerini kullanarak, birden çok veri tipi yazdırılabilir. Örneğin:
      ...
      int    not= 12;
      float  pi = 3.14;
      char   kr = 'A';

      printf(" not = %d , pi = %f ve kr = %c dir", not, pi, kr);
      ...
gibi.
printf() fonksiyonu esnektir. Parametreler herhangi bir C deyimi olabilir. Örneğin x ve y nin toplamı şöyle yazılabilir:
      printf("%d", x+y);
printf fonksiyonu kullanımı Program 4.1'de verilmiştir.
Program 4.1: printf() fonksiyonunun kullanımı
01: 
02: 
03: 
04: 
05: 
06: 
07: 
08: 
09: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
/* 04prg01.c
   Sayısal değerleri ekrana yazdırmak için printf fonksiyonunun kullanımı */

#include <stdio.h>

main()
{

   int   a = 2,    b = 10,   c = 50;
   float f = 1.05, g = 25.5, h = -0.1, yuzde;

    printf("3 tamsayi       : %d %d %d\n", a, b, c);
    printf("3 tamsayi [TAB] : %d \t%d \t%d\n", a, b, c);

    printf("\n");

    printf("3 reel sayi (yanyana) : %f %f %f\n", f, g, h);
    printf("3 reel sayi (altalta) : \n%f\n%f\n%f\n\n", f, g, h);

    yuzde = 220 * 25/100.0;
    printf("220 nin %%25 i %f dir\n", yuzde);
    printf("%f/%f isleminin sonucu = %f\n", g, f, g / f);

    printf("\nprogram sonunda beep sesi cikar...\a");

    return 0;
}
ÇIKTI

3 tamsayi       : 2 10 50
3 tamsayi [TAB] : 2     10      50

3 reel sayi (yanyana) : 1.050000 25.500000 -0.100000
3 reel sayi (altalta) :
1.050000
25.500000
-0.100000

220 nin %25 i 55.000000 dir
25.500000/1.050000 isleminin sonucu = 24.285715

program sonunda beep sesi cikar...

printf fonksiyonunun geri dönüş değeri int tipindedir. Bu geri dönüş değeri çıktının kaç karakter olduğunu gösterir. Yani, printf fonksiyonu, *format ile tanımlanmış karakter topluluğunun kaç bayt olduğu hesaplar[6]. Program 4.2, printf'in bu yönünüde ortaya çıkaran bir programdır.

Program 4.2: printf() fonksiyonunun kullanımı
01: 
02: 
03: 
04: 
05: 
06: 
07: 
08: 
09: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
/* 04prg02.c
   printf fonksiyonunun geri dönüş değerini gösterir */

#include <stdio.h>

int main()
{
   int karSay;
   int sayi = 1234;

   karSay = printf("Ugurlu sayim = %d\n",sayi);

   printf("Ust satirda karakter sayisi: %d dir\n", karSay);

   return 0;
}
ÇIKTI

Ugurlu sayim = 1234
Ust satirda karakter sayisi: 20 dir

11. satırdaki işlemle, hem ekrana Ugurlu sayim = 1234 iletisi bastırılmakta, hem de karSay değişkenine bu iletinin uzunluğu atanmaktadır. Ekrana basılan karakterlerin sayısı (\n karakteri dahil) 20 dir.

scanf() Fonksiyonu:
Birçok programda ekrana verilerin bastırılmasının yanısıra klavyeden veri okunması gerekebilir. scanf() fonksiyonu klavyeden veri okumak için kullanılan fonksiyondur. printf() gibi scanf() fonksiyonuda Tablo 4.1 ve Tablo 4.2'de verilen karakterleri kullanır. Örneğin klaveden bir x tamsayısı okumak için:
      scanf("%d",&x);
satırını yazmak yeterli olacaktır. Burada & işareti adres operatörü olarak adlandırılır ve Böüm 11'de ayıntılı olarak açıklanacaktır. Klavyeden iki farklı sayı okunmak istendiğnde scanf() fonksiyonu şöyle kullanılabilir:
      scanf("%d %f",&x,&y);
veriler klavyeden
      16 1.56
yada
      16    1.56
veya
      16 
      1.56
şekilinde girilebilir. Program 4.3'de scanf() fonsiyonunun kullanımı gösterilmiştir.
Program 4.3: scanf() fonksiyonun kullanımı
01: 
02: 
03: 
04: 
05: 
06: 
07: 
08: 
09: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
/* 04prg03.c
    scanf() fonksiyonu ile int ve float tipindeki verilerin okunması */

#include <stdio.h>

main()
{
    int    t;
    float  g;

    printf("Bir gercel sayi girin: "); scanf("%f",&g);
    printf("Bir tamsayi girin    : "); scanf("%d",&t);

    printf("\n");

    printf("\t %f * %f = %f\n",g,g,g*g);
    printf("\t %d * %d = %d\n",t,t,t*t);

 return 0;
}
ÇIKTI

Bir gercel sayi girin: 1.34
Bir tamsayi girin    : 12

         1.340000 * 1.340000 = 1.795600
         12 * 12 = 144

C# Dilinde Kullanılan Temel Veri Tipleri
TürAdıBoyut-TürAçıklamaMax ve Min aralık yada değeri
Değer Tiplerisbyte1 Byte işaretli tamsayı-128  ile 127
short2 Byteişaretli tamsayı-32.768 ile 32.767
int4 Byteişaretli tamsayı-2.147.483.648 ile 2.147.483.647
long8 Byteişaretli tamsayı-9.223.372.036.854.775.808 ile9.223.372.036.854.775.807
byte1 Byteişaretsiz tamsayı0 ile 255
ushort2 Byteişaretsiz tamsayı0 ile 65.535
uint4 Byteişaretsiz tamsayı0 ile 4.294.967.295
ulong8 Byteişaretsiz tamsayı0 ile 18.446.744.073.709.551.615
float4 Bytetek kayan sayı+yada – 1,5*10-45 : + ya da – 3,4*1038
double8 Byteçift kayan sayı+yada – 5*10-324 : + ya da – 1,7*10308
decimal16 Byteondalıklı sayı+yada – 1,5*10-28 : + ya da – 7,9*1028
bool——-——true ya da false
char2 ByteUnicode karakterlerU + u + ffff 0000
Referans TipleristringDeğişkenKarakter Katarı——-
ObjectBütün veri tiplerinin türediği temel sınıf
                                  OPERATÖRLER
Operatörler, değişkenler veya sabitler üzerinde matematiksel ve karşılaştırma işlemlerini yapan simgelerdir. Yani bir operatör bir veya daha fazla nesne (değişken) üzerinde işlem yapan sembollerdir. Bu kısımdam aritmetik operatörler, atama operatörleri vesizeof operatörü anlatıcaktır. Karşılaştırma Operatörleri, Mantıksal Operatörler ve Bit Düzeyinde işlem yapan operatörler daha sonraki bölümlerde incelenektir.

3.1   Aritmetik Operatörler
Değişken veya sabitler üzerinde temel aritmetik işlemleri gerçekleyen operatörlerdir. Bunlar Tablo 3.1'de listelenmiştir.
Tablo 3.1: Aritmetik Operatörler

OperatörAçıklamaÖrnekAnlamı
+toplamax + yx ve y nin toplamı
-çıkarmax - yx ve y nin farkı
*carpmax * yx ve y nin çarpımı
/bölmex / yx ve y nin oranı
%artık bölmex % yx / y den kalan sayı

3.2   Atama Operatörleri
Bu operatörler bir değişkene, bir sabit vaya bir aritmetik ifade atamak (eşitlemek) için kullanılır.
Birleşik atama: bazı ifadelerde işlem operatörü ile atama operatörü birlikte kullanılarak, ifadeler daha kısa yazılabilir. Eğer ifade
          değişken = değişken [operatör] aritmetik ifade;
şeklinde ise, daha kısa bir biçimde
          değişken [operatör]= aritmetik ifade;
olarak yazılabilir. Bu operatörler Tablo 3.2'de listelenmiştir.
Tablo 3.2: Atama Operatörleri

OperatörAçıklamaÖrnekAnlamı
=atamax = 7;x = 7;
+=ekleyerek atamax += 3x = x + 3
-=eksilterek atamax -= 5x = x - 5
*=çarparak atamax *= 4x = x * 4
/=bölerek atamax /= 2x = x / 2
%=bölüp, kalanını atamax %= 9x = x % 9
++bir arttırmax++ veya ++xx = x + 1
--bir azaltmax-- veya --xx = x - 1

Bu tanımlamalara göre, aşağıdaki atamaları inceleyiniz:
     /* bir arttırma işlemleri */
     i++;
     ++i;
     i += 1;
     i = i + 1;


     /* karmaşık atamalar */
     f *= i;      // f = f * i; anlamında
     f *= i+1;    // f = f * (i+1); anlamında
     z /= 1 + x;  // z = z / (1+x); anlamında
Bir arttırma veya eksiltme operatörlerini kullanırken dikkatli olunmalıdır. Çünkü aşağıdaki türden atamalar bazen karışıklığa neden olur.
     a = 5;    // a = 5
     b = a++;  // a = 6 ve b = 5
     c = ++a;  // a = 7 ve c = 7

3.3   sizeof Operatörü
Veri tiplerinin, değişkenlerin ve dizilerin bellekte kapladığı alan sizeof operatörü ile öğrenilebilir. Genel kullanımı:
     sizeof(nesne)
şeklindedir.
PLACE HOLDER
      Yer tutucuları kullandığınız işlevleri türüne bağlı olarak, değerlerin ne tür girişini olacak zaman belirlemek için kullanılır. "%" biçiminde işareti vardır. Bazı belirteçler:
   %d   -   int
   %ld  -   long int
   %lf  -  çift
   %c   -  char
   %s   -  dize
   %x   -  onaltılık
Örnek
#include <stdio.h>
void main()
{
int sayi;
sayi = 8+5;
printf("Sayimiz = %d",sayi);
}
Sonuç
Sayimiz =13
for Döngüsü
Bu deyim, diğer döngü deyimleri gibi bir kümeyi bir çok kez tekrarlamak için kullanılır. Koşul sınaması while da olduğu gibi döngüye girmeden yapılır. Bu döngü deyimin içinde diğerlerinden farklı olarak başlangıç değeri ve döngü sayacına sahip olmasıdır. Bu deyimin kullanımı Program 7.3 de gösterilmiştir Genel yazım biçimi:
      for( başlangıç ; koşul ; artım )
      {
       ...
        döngüdeki deyimler;
       ...
      }
Program 7.3: for döngüsü
01: 
02: 
03: 
04: 
05: 
06: 
07: 
08: 
09: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
/* 07prg03.c: for döngüsü ile faktoriyel hesabı. */

#include <stdio.h>

int main()
{
   long  i, n, faktor;

   printf("Faktoriyeli hesaplanacak sayi girin : ");
   scanf("%ld",&n);

   faktor=1;
   for(i=1; i<=n; i++){
         faktor *= i;     /* n! = 1 x 2 x 3 x ... x n */
   }

   printf("%ld! = %ld\n", n, faktor);

 return 0;
}
ÇIKTI

Faktoriyeli hesaplanacak sayi girin : 4
4! = 24
ÇIKTI

Faktoriyeli hesaplanacak sayi girin : 15
15! = 2004310016
if, if-else Yapısı
Bu deyimler, koşullu işlem yapan deyimlerdir. if ve else tek bir karşılaştırma deyimi olup else kullanımı isteğe bağlıdır. Eğer bu koşul olumlu ise if den sonraki bölüm yürütülür ve else den sonraki bölüm atlanır. Koşul olumsuz ise if den sonraki küme atlanır ve eğer varsa, else den sonraki kümedeki işlemler gerçekleştirilir.
if deyiminin yapının genel biçimi şöyledir:
     if(koşul)
     {
       ...                     
        deyimler; (küme)
       ...                    
     }
if deyimi kullanılırken kümenin başlangıcı ve bitişini gösteren, küme parantezleri kullanılmasında kullanıcıya bir esneklik sunulmuştur. Eğer if deyiminden sonra icra edilecek deyimler tek satırdan oluşuyorsa, bu işaretlerin kullanılması zorunlu değildir. Yani,if deyimden sonra { ve } işaretleri kullanılmamışsa, bu deyimi takip eden sadece ilk satır işleme konur. Bu durum, else ifelse deyimlerinde ve daha sonra işlenecek for ve while gibi döngü deyimlerinde de geçerlidir.
Buna göre aşağıdaki kullanım
      if(x == y){
        puts("x ve y esit");
      }
ile
      if(x == y)
        puts("x ve y esit");
eşdeğerdir.
if deyiminin else ile birlikte kullanımı şu şekildedir:
      if(koşul){
        ...
        deyimler; (küme1)     
        ...
      }
   
      else{
        ...
        deyimler; (küme2)
        ... 
      }

Hiç yorum yok:

Yorum Gönder