Toshkent axborot texnologiyalari universiteti urganch filiali kompyuter injiniringi fakult


Download 183.19 Kb.
bet2/6
Sana27.12.2022
Hajmi183.19 Kb.
#1069202
1   2   3   4   5   6
Bog'liq
10-11-12-Mustaqil ish

Vektorlar va funksiyalar
Siz boshqa qiymatlar kabi vektorlarni funksiya parametri sifatida ishlatishingiz mumkin. Masalan, quyida funksiya flouting member nuqtasi sonlari vektorining umumiy sonini hisoblaydi:
double sum(vector values)
{
double total = 0;
for (int i = 0; i < values.size(); i++)
{
total = total + values[i];
}
return total;
}
Bu funksiya vektor elementlarini aylanib o‘tadi, lekin ularni
o‘zgartirmaydi.
void multiply(vector& values, double factor) // Note the &
{
for (int i = 0; i < values.size(); i++)
{
values[i] = values[i] * factor;
}
}
Ba’zi programmistlar o‘zgartirilmaydigan vektor parametrlari uchun
turg‘un yo‘nalishdan foydalanadilar. (Maxsus mavzu 5.2) masalan:
double sum(const vector& values) // const & added for
efficiency
funksiya vektorni qaytarishi mumkin. YAna vektorlar qolgan
qiymatlardan
boshqacha emas. funksiyada natijani o‘rnating va uni qaytaring. bu
misolda, squares funksiyasi vektorni 0 2 up to (n – 1) 2 qaytaradi :
vector squares(int n)
{
vector result;
for (int i = 0; i < n; i++)
{
result.push_back(i * i);
}
return result;
}
18.3Ko‘p o‘lchamli statik massivlar
C++ tilida massivlar elementining turiga cheklovlar qo‘yil-maydi,
lekin bu turlar chekli o‘lchamdagi ob’ektlarning turi bo‘lishi kerak. CHunki
kompilyator massivning xotiradan qancha joy (bayt) egallashini hisoblay
olishi kerak. Xususan, massiv komponentasi massiv bo‘lishi mumkin («vektorlar-vektori»), natijada matritsa deb nomlanuvchi ikki o‘lchamli massiv hosil bo‘ladi. Agar matritsaning elementi ham vektor bo‘lsa, uch o‘lchamli mas- sivlar - kub hosil bo‘ladi. SHu yo‘l bilan echilayotgan masalaga bog‘liq ravishda ixtiyoriy o‘lchamdagi massivlarni yaratish mumkin.
Ikki o‘lchamli massivning sintaksisi quyidagi ko‘rinishda bo‘ladi:
[] []
Masalan, 20 10 o‘lchamli haqiqiy sonlar massivining e’loni:
float a[10][20];
E’lon qilingan A matritsani ko‘rinishi 7.2-rasmda keltirilgan.

7.2-rasm. Ikki o‘lchamli massivning xotiradagi joylashuvi Endi adres nuqtai - nazaridan ko‘p o‘lchamli massiv element-lariga murojaat qilishni ko‘raylik. Quyidagi e’lonlar berilgan bo‘lsin:
int a[3][2];
float b[2][2][2];
Birinchi e’londa ikki o‘lchamli massiv, ya’ni 2 satr va 3 ustundan
iborat matritsa e’lon qilingan, ikkinchisida uch o‘lchamli - 3 ta 2x2
matritsadan iborat bo‘lgan massiv e’lon qilingan. Uning elementlariga
murojaat sxemasi:



7.3-rasm. Ikki o‘lchamli massiv elementlariga murojaat
Bu erda a[i] ko‘rsatkichda i-chi satrning boshlang‘ich adresi joyla-
shadi, massiv elementiga a[i][j] ko‘rinishidagi asosiy murojaatdan tashqari
vositali murojaat qilish mumkin: *(*(a+i)+j) yoki *(a[i]+j).


Download 183.19 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling