Dastur tuzish davomida dasturga kiritish – chiqarish oqimi sarlavha faylini chaqirish quyidagi amalga oshiriladi:
#include
Turbo C va Borland C++ kompilyatorlarida grafik kutubxona bilan bog’lanish uchun graphic.h – sarlavhali fayl qo’llaniladi.
Agar dasturda bir nechta funksiyalardan foydalanilsa, funksiyalar ta’rifi tanasi bilan birga alohida fayllarda saqlash qulaydir. Hamma funksiyalar tanasiga va main() funksiyasi tanasiga chaqirilayotgan funksiyalar prototiplari joylashtirilsa, dastur tanasida funksiyalarni ihtiyoriy joylashtirish mumkin. Bu holda dastur faqat protsessor buyruqlaridan ham iborat bo’lishi mumkin.
Belgilab oluvchi direktiva va undan foydalanish
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 ro’yhati) almashtiriluvchi_qator
Bu erda nom – makros nomi. Parametrlar ro’yhati – vergul bilan ajratilgan identifikatorlar ro’yhati. Makrota’rifning klassik misoli:
#define max(a,b) (a
Bu makrosdan foydalanganda kompilyator max (a,b) ifodani (x
#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 yo’li 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 N 4
# define M 5
# 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));
}
}
0>
Do'stlaringiz bilan baham: |