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:
- Düz metin (literal string): yazdırılmak istenen ileti.
Örneğin: printf("Ben gelmedim kavga için..."); gibi. - 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
Karakter | Anlamı |
\a | Ses üretir (alert) |
\b | imleci bir sola kaydır (backspace) |
\f | Sayfa atla. Bir sonraki sayfanın başına geç (formfeed) |
\n | Bir alt satıra geç (newline) |
\r | Satır başı yap (carriage return) |
\t | Yatay TAB (horizontal TAB) |
\v | Dikey TAB (vertical TAB) |
\" | Çift tırnak karakterini ekrana yaz |
\' | Tek tırnak karakterini ekrana yaz |
\\ | \ karakterini ekrana yaz |
%% | % karakterini ekrana yaz |
- 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 Karakteri Anlamı Yazdırılacak veri tipi %c tek bir karakter char %s karakter dizisi (string) char %d işaretli ondalık tamsayı int, short %ld uzun işaretli ondalık tamsayı long %u işaretsiz ondalık tamsayı unsigned int, unsigned short %lu işaretsiz uzun tamsayı unsigned long %f Gerç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ür | Adı | Boyut-Tür | Açıklama | Max ve Min aralık yada değeri |
Değer Tipleri | sbyte | 1 Byte | işaretli tamsayı | -128 ile 127 |
short | 2 Byte | işaretli tamsayı | -32.768 ile 32.767 | |
int | 4 Byte | işaretli tamsayı | -2.147.483.648 ile 2.147.483.647 | |
long | 8 Byte | işaretli tamsayı | -9.223.372.036.854.775.808 ile9.223.372.036.854.775.807 | |
byte | 1 Byte | işaretsiz tamsayı | 0 ile 255 | |
ushort | 2 Byte | işaretsiz tamsayı | 0 ile 65.535 | |
uint | 4 Byte | işaretsiz tamsayı | 0 ile 4.294.967.295 | |
ulong | 8 Byte | işaretsiz tamsayı | 0 ile 18.446.744.073.709.551.615 | |
float | 4 Byte | tek kayan sayı | +yada – 1,5*10-45 : + ya da – 3,4*1038 | |
double | 8 Byte | çift kayan sayı | +yada – 5*10-324 : + ya da – 1,7*10308 | |
decimal | 16 Byte | ondalıklı sayı | +yada – 1,5*10-28 : + ya da – 7,9*1028 | |
bool | ——- | —— | true ya da false | |
char | 2 Byte | Unicode karakterler | U + u + ffff 0000 | |
Referans Tipleri | string | Değişken | Karakter Katarı | ——- |
Object | Bü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ör | Açıklama | Örnek | Anlamı |
+ | toplama | x + y | x ve y nin toplamı |
- | çıkarma | x - y | x ve y nin farkı |
* | carpma | x * y | x ve y nin çarpımı |
/ | bölme | x / y | x ve y nin oranı |
% | artık bölme | x % y | x / 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
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ör | Açıklama | Örnek | Anlamı |
= | atama | x = 7; | x = 7; |
+= | ekleyerek atama | x += 3 | x = x + 3 |
-= | eksilterek atama | x -= 5 | x = x - 5 |
*= | çarparak atama | x *= 4 | x = x * 4 |
/= | bölerek atama | x /= 2 | x = x / 2 |
%= | bölüp, kalanını atama | x %= 9 | x = x % 9 |
++ | bir arttırma | x++ veya ++x | x = x + 1 |
-- | bir azaltma | x-- veya --x | x = 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 HOLDERYer 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 =13for 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 if, else deyimlerinde ve daha sonra işlenecek for ve while gibi döngü deyimlerinde de geçerlidir.Buna göre aşağıdaki kullanımif(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