C/C++ Hileleri

 C/C++ Programlama Hilleleri ve İpucları 

1- For dongusu diğer dillere oranla C dili ve türevi olan dillerde fazlası ile esnektir ve programcının hayal güçünü programlamaya yansıtır.
C de klasik olarak for dongusu şöyledir

for (i=0;i<=100;i++)

fakat istenirse for döngüsü parçalana bilir

Örnek

int i=0;
for(;i<=100;i++)

Yukarıdaki örnekte döngünün döngü değişkenin ilk değeri değişken tanınlanırken verilmiştir ve döngü içerisinde tekrar edilmesine gerek yoktur

C++ da şöyle bir tanımlada da hata yoktur fakat C de hata dır.

for(int i=0 ;i<=100;i++)

istenirse for döngüsü while döngüsü  şeklinde de kullanıla bilir.
Örnek

int i=0;
for(;i!=100 ;)
i++;

for döngüsünün gövdesinin olması zorunlu değildir.
for(;;);
bu sonsuz bir döngü demek tir.

2- Koşul Operatörü (?)
Aşağıdaki program Kullanıcıdan bir sayi girilmesini ister ve girilen sayının +mı -mi 0 mı olduğunu bulur

int x;
printf(”Sayi Giriniz\n”);
scanf(”%i”,&x);
x <0 ? printf(”\nNegatifsayi”) : x >0 ? printf(”\nPozitif Sayi”) : printf(”\nSifir”);

aynı işlemi if ile yapmak istersek

printf(”Bir sayi Giriniz”);
scanf(”%d”,&i);
if(i<0)printf(”Negatif”);
if(i>0)printf(”Pozitif”);
else
printf(”Sıfır”);
? Operatörü ile birlikte mantıksal operatörlerde kullanıla bilir

Örnek
Aşağıdaki kod üç tamsayıyı karşılaştırıp en büyüğünü ekrana yazar
x >y && z ? printf(”%i”,x) : y > z ? printf(”%i”,y) :printf(”%i”,z);
#define ile makrolarda kullanıla bilir
 

#define Buyuksayi(s1,s2,s3)((s1>s2)&&(s1>s3)? s1 :(s2>s3)? s2 :s3)

Diğer örnek ise sayının tekmi? çiftmi olduğunun bulunması

s % 2 ? printf(”Tek”):printf(”Cift”);

? Operatörü fonksiyon çağrısı içinde kullanıla bilir !

scanf(”%d%d”,&i,&j);
printf(”\nBuyuk Sayi%d”,i>j ? i : j);

Koşul operandı fonksiyondan dönüşte de kullanıla bilir

return(x<y?10:20);

Hüseyin Bora ABACI

0 Yanıt, “C/C++ Hileleri”


  1. Yorum yapılmamış

Yorum Yapın

Yorum yapabilmeniz için giriş yapmanız gerekli.




 

Ağustos 2007
M T W T F S S
« Jul   May »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Top Clicks

  • Hiçbiri