BİLİŞİM - BİLGİSAYAR - EĞİTİM
  C de Bazı Deyimler
 

10. Daha Önce Geçmeyen Konular:

Deyimler

continue: Döngünün herhangi bir satırında iken, bir sonraki döngü admını geçilmesini sağlar.

 

Örnek 10.1:

#include <stdio.h>

int main()

{

int i;

for(i = 1 ; i < 10 ; i++)

{

if (i == 5)

break;

printf("%dn", i);

}

for(i = 1 ; i < 10 ; i++)

{

if (i == 5)

continue;

printf("%dn", i);

}

}

gotoxy(x, y) : İmleci metin ekranında istenilen noktaya taşır.

void gotoxy(int x, int y)

gotoxy(25, 23);

printf("Bir tuşa basınız.");

wherex(), wherey() : Bulunulan yer

exit: Herhangi bir yerde programın çalışmasını sonlandırır.

void exit(int durum); : Dosyalar kapatılır, durum parametresinin değeri programın çağırıldığı yere geri gönderilir.

goto : Programın herhangi bir yerinden başka bir yere atlanmasını sağlar ( aynı işlev içerisinde).

Gidilecek yerin tanımlanması gerekir. Kulanım şekli;

goto son programın akışı son: etiketinin alduğu yerden devam eder

...

son :

return;

 

Örnek: Matriste sıfırdan küçük değerli ilk elemanın yerini bulan program.

#include <stdlib.h>

main()

{

int a[10][10];

int i, j;

randomize();

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

for (j = 0; j<10; j++)

a[i][j] = (rand() % 100) - 20;

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

for (j = 0; j<10; j++)

if (a[i][j] < 0)

goto bulundu;

printf("Sıfırdan küçük sayı yokn");

goto son;

bulundu:

printf("Sayının konumu ve değeri (%d, %d) = %d n",i, j, a[i][j]);

son:

return 0;

}

? : İşleci

değişken = mantıksal ifade ? ifade1 : ifade2

mantıksal ifade doğru is değişkene ifade1, yanlış ise ifade2 değeri atanır.

a = (i == 5) ? 1 : 0;

Eğer i'nin değeri 5 ise a'ya 1, aksi halde 0 atanır. Aynı ifade açık olarak yazılırsa;

if (i ==5)

a = 1;

else

a = 0;

 

Örnek 10.2:

main()

{

int a;

int i, j;

scanf("%d%d", &i, &j);

a = (i > j) ? i : j;

printf("%dn", a);

}

Bileşik Atama İşleci

a = a + b işlemi a += b şeklinde de yazılabilir. = işleci ile birlikte bu şekilde kullanılabilen diğer işleçler;

* / % + - << >> & ^ |

Bu işleçler için

a = a işleç b ile

a işleç= b

aynı anlamı taşır.

Virgül İşleci

Şu ana kadar kullanılan biçim dışında,

Birden fazla deyimin aynı ifadede yürütülmesini sağlar. İfade tek bir sonuç verecek ise parantez içerisine alınmalıdır. İfadeler soldan sağa yürütülür ve son ifade parantez içi ifadenin değeri olur.

i = (5, 3, ; i = 8

i = (j = 2; j = j + 5); i = 7

for döngüsünün bölümlerinde birden fazla deyim yürütmede kullanılır.

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

t = t + i;

Geçici Veri Tipi Değiştirme

(type cast)

Bir değerin tipinin geçici olarak değiştirmek mümkündür. Kullanım şekli,.

(veri tipi) ifade;

ifade (değişken, sabit) tipi belirtilen tipe dönüştürülür.

Örnek 10.3:

#include <stdlib.h>

main()

{

float a, b;

int i, j;

i = 500;

j = 500;

a = i * j;

b = (float) i*j;

printf("%f %fn", a, b);

}

-12144.000000 250000.000000

İfade İçerisinde Atama Deyimi Kullanma

#include <stdlib.h>

main()

{

char c;

while ((c=getch()) != 'S')

printf("%c", c);

printf("n%c tuşuna bastınızn", c);

getch();

}

((c=getch()) != 'S') ifadesinde ilk önce en içteki parantez c = getch() yürütülür. Daha sonra karşılaştırma işlemi yapılır.

++ / -- İşleçleri

İfade içerisinde değişkenin

ardında ise değişkenin değeri ifadede kullanılır ve değeri bir arttırılır

önünde ise değişkenin değeri değeri bir arttırılır ve yeni değeri ifadede kullanılır.

i = 2;

k = 5*i++; --> k = 10

k = 5*++i; --> k = 15

#define Önişlemcisi

define önişlemcisi ile işlev benzeri makrolar yazmalar mümkündür.

#define kub(x) ((x)*(x)*(x))

main()

{

int i;

i = 5;

printf("%d n", kub(i));

}

Makro tanım satırında parametrelerin parantez içerisine alınması unutulmalı.

Makro kub(i+1) biçiminde çağırıldığında, i=2 için

((x)*(x)*(x)) --> (i+1)*(i+1)*(i+1) --> 27

(x * x * x) --> (i+1* i+ 1* i+1) --> 6

#define ustal(a, b) (pow((a), (b)))

 
 
  Bugün 122 ziyaretçi (184 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol