|
Информатика Pdf ko'rish
|
bet | 163/308 | Sana | 30.05.2024 | Hajmi | 7,16 Mb. | | #257687 |
Bog'liq ИнформатикаKo`rsatkichlar
massivlari.
Ko`rsatkichlar
massivlari
quyidagicha
ta`riflanadi
*[]
Masalan,
int *pt[6]
ta`rif int tipidagi ob`yektlarga olti elementli massivni
kiritadi. Ko`rsatkichlar massivlari satrlar massivlarini tasvirlash uchun qulaydir.
Masalan, familiyalar ro`yxatini kiritish uchun ikki o`lchovli massivdan foydalanish
kerak.
char fam[][20]={“Olimov”,”Rahimov”,”Ergashev”}
Xotirada 60 elementdan iborat bo`ladi, chunki har bir familiya gacha 0 lar
bilan to`ldiriladi. Ko`rsatkichlar massivi yordamida bu massivni quyidagicha
ta`riflash mumkin.
Char *pf[]= {“Olimov”,”Rahimov”,”Ergashev”}.
Bu holda ro`yxat xotirada 23 elementdan iborat bo`ladi, chunki har bir
familiya oxiriga 0 belgisi qo`yiladi. Ko`rsatkichlar massivlari murakkab
elementlarni 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.
56-listing. Output:
…
{int n=2;
int m=3;
268
array[][3]={(1,3,5),(3,1,4),(5,7,1)};
int *pa[n];
for (I=0;Ifor (I=o;I{for (int k=I=1;kif a[I][1]>a[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.
57-listing.
Output:
void trans(int n,double *p[]);
{ double x;
for (int I=0;Ifor (int j=I+1;j{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
269
{cout<<(“\n %i”,i+1);
for (int j=0;j cout<<(“\n %f”,a[I][j]); }; };
|
| |