C++ tilida so’zlar massivlari ikki o’lchovli simvolli massivlar sifatida ta'riflanadi. Misol uchun:
Char Name[4][5].
Bu ta'rif yordamida har biri 5 ta harfdan iborat bo’lgan 4 ta so’zli massiv kiritiladi. So’zlar massivlari qo’yidagicha initsializatsiya qilinishi mumkin:
Char Name[3][8]={“Anvar”,”Mirkomil”,”Yusuf”}.
Bu ta'rifda har bir so’z uchun xotiradan 8 bayt joy ajratiladi va har bir so’z oxiriga ‘\0’ belgisi qo’yiladi.
So’zlar massivlari initsializatsiya qilinganda so’zlar soni ko’rsatilmasligi mumkin. Bu holda so’zlar soni avtomatik aniqlanadi:
Char comp[][9]={“komp'yuter”, “printer”, “kartridj”}.
Quyidagi dasturda berilgan harf bilan boshlanuvchi so’zlar ruyxati bosib chiqariladi:
#include void main()
{ char a[10][10]; char c;
for (int i=0;i<10;i++) gets(a[i]);
c=getchar();
for (i=0;i<10;i++) if (a[i][0]==c) puts(a[i]);
}
Qo’yidagi dasturda fan nomi, talabalar ruyxati va ularning baholari kiritiladi. Dastur bajarilganda ikki olgan talabalar ruyxati bosib chiqariladi:
#include void main()
{ char a[10][10]; char s[10]; int k[10];
gets(s);
for (int i=0;i<10;i++) gets(a[i]);
for (i=0;i<10;i++) {Cin>>(“%d”,k[i]};
for (int i=0;i<10;i++) if (k[i]==2) puts(a[i]);
}
Ko’rsatkichlar massivlari.
Ko’rsatkichlar massivlari qo’yidagicha ta'riflanadi:
*[]
Misol uchun int *pt[6] ta'rif int tipidagi ob'ektlarga olti elementli massivni kiritadi. Ko’rsatkichlar massivlari satrlar massivlarini tasvirlash uchun qulaydir. Misol uchun familiyalar ruyxatini kiritish uchun ikki o`lchovli massivdan foydalanishi kerak.
char fam[][20]={“Olimov”,”Rahimov”,”Ergashev”}
Xotirada 60 elementdan iborat bo’ladi, chunki har bir familiyagacha 0 lar bilan to’ldiriladi. Ko’rsatkichlar massivi yordamida bu massivni qo’yidagicha ta'riflash mumkin:
Char *pf[]= {“Olimov”,”Rahimov”,”Ergashev”}.
Bu holda ruyxat xotirada 23 elementdan iborat bo’ladi, chunki har bir familiya oxiriga 0 belgisi qo’yiladi.
Ko’rsatkichlar massivlari murakkab elemenlarni sodda usulda tartiblashga imkon beradi. Quyidagi misolda matritsa satrlari birinchi elementlari o’sishi tartibida chiqariladi. Bu misolda yordamchi ko’rsatkichlar massivi yaratilib, shu massiv tartiblanadi va massiv asosida matritsa elementlari chiqariladi.
# include void main()
{int n=2;
int m=3; array[][3]={(1,3,5),(3,1,4),(5,7,1)};
int *pa[n];
for (I=0;I{for (int k=I=1;ka[k][1]
{ int *pp=pa[I]; pa[I]=pa[k];pa[k]=pp;}; for (I=0;I{Cout<<(“\n%I”,I+1);
for (int j=0;jCout<<(“%I”,pa[I][j]);}
};
Ko’rsatkichlar massivlari funksiyalarda matritsalar qiymatlarini o’zgartirish uchun mumkin. Quyidagi misolda matritsani transponirlash funksiyasi ishlatiladi.
Void trans(int n,double *p[]);
{ double x;
for (int I=0;I{x=p[I][j]; p[I][j]=p[j][I]; p[j][I]=x;}
};
void main()
{double a[3,3]={11,12,13,21,22,23,31,32,33};
double ptr={(double*)&a[0], (double*)&a[1], (double*)&a[2]};
int n=3; trans(n,ptr);
for (int I=0;I{ Cout<<(“\n %i”,i+1); for (int j=0;jCout<<(“\n %f”,a[I][j]);};
};