1 – dars. C++ Dasturlash tilining kelib chiqishi xaqida ma’lumot



Yüklə 0,69 Mb.
səhifə62/121
tarix02.01.2022
ölçüsü0,69 Mb.
#37187
1   ...   58   59   60   61   62   63   64   65   ...   121
aaaaKitob majmuasiiii

49 - DARS. MAKROSLAR.
Makros ta'rifiga ko’ra bir simvollar ketma – ketligi bilan almashtirishdir. Eng sodda makro ta'rif

# define identifikator almashtiruvchi satr.

Bu direktiva yordamida foydalanuvchi asosiy tiplar uchun yangi nomlar kiritishi mumkin.

Masalan: # define Real Long double

Dastur matnida Long double tipidagi o’zgaruvchilarni Real sifatida ta'riflash mumkin.

Masalan: # define Range((int _ Max)-(int _ Min)+1)

Parametrli makrota'riflardan foydalanish yanada kengroq imkoniyatlar yaratadi:

# define nom (parametrlar ruyhati) almashtiriluvchi_qator

Bu erda nom – makros nomi.

Parametrlar ruyhati – vergul bilan ajratilgan identifikatorlar ruyhati.

Makrota'rifning klassik misoli :

# define max (a,b) (a

Bu makrosdan foydalanganda kompilyator max (a,b) ifodani (x
Yana bir klassik misol:

# define ABS(x) (x<0 ? –(x):x)

Misol uchun dasturdagi ABS(E-Z) ifoda (E-Z<0 ? (E-Z):E-Z) ifoda bilan almashtiriladi.

Makroslar ko’p o’lchovli massivlar bilan ishlashda yordam beradi. Matritsalar bilan ishlaganda quyidagi chegaralar mavjud. Jadvallarning birinchi indeksidan boshqa hamma indekslari elementlari soni ko’rsatilishi shart. Massivlar elementlari nomerlari 1 dan emas 0 dan boshlanadi.

Birinchi cheklanishdan kutulish yuli matritsa o’rniga bir o’lchovli massiv kiritish , lekin bu massiv bilan matritsa shaklida amallar bajarish. Bu vazifani makros bajarish imkoniyatini beradi. Makros ikkinchi chegarani engish imkonini ham beradi.

Misol:


# define N4

# define M5

# define A(I,j) x [M(I-1)+(j-1)]

# include

void main ()

{ double x[NM];

int I, j, k;

for (k=0 ; k

x[k]=k;

for (I=1; I<=N; I++)

{ Cout<< (“\n stroka%d: “,i);

for (j=1; j<=M; j++)

Cout<< (“% 6.1f “, A(I,j));

}

}



Dasturda Cout<< (“% 6.1f “, A(I,j)); ifoda makros joylashdan so’ng quyidagi ko’rinishga keladi.

Cout<< (“% 6.1f “, x[5(I-1)+(y-1)]);





Yüklə 0,69 Mb.

Dostları ilə paylaş:
1   ...   58   59   60   61   62   63   64   65   ...   121




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin