Звернення до елементів багатовимірних векторів може вироблятися як класичним засобом - шляхом указівки значень індексів, наприклад,
Так із використанням механізму покажчиків
*(V [1] +2) =3; //V[1][2] =3.
Використання механізму покажчиків для доступу до деякого i, j, k-ого елементу тривимірного вектора зручно розглянути на прикладі наступних еквівалентних звернень
BV[i][j][k]==*(BV[i][j] +k)==*(*(BV[i] +j) +k)==*(*(*(BV+i) +j) +k)
В цих зверненнях використаний той факт, що ім'я багатовимірного вектора є покажчиком-константою на вектор покажчика - констант вектора рядка, перший елемент якого є теж покажчик - константа рядка. Елементи багатовимірних векторів зберігаються в пам'яті в порядку зростання самого правого індексу - за рядками.
Аналогічно одновимірним векторам багатовимірні можуть бути також иніціалізовані при їхньому описі, наприклад:
float BV[3][3][3] ={1. 1.1. 2.1. 3,
2.1, 2.2, 2.3,
3.1, 3.2, 3.3};
В цьому випадку, набір початкових значень, що задається при описі вектору, співпадає з порядком розміщення елементів у пам'яті.
Приклад програми обчислення суми елементів головної діагоналі матриці
#include<stdio. h>
void main ()
{int V[][3] ={1, 2.3,
4.5, 6,
7.8, 9};
int i, s, s2; s1=0; s2=0;
for (i=0; i<3; i++)
s1+=V[i][i];
for (i=0; i<3; i++)
s2+=*(*(V+i) +i);
printf (“s1=%d s2=%d“, s1, s2);
}
2.3 Варіанти завдань до лабораторної роботи №2.
Вхідні числові дані вибираються довільно.
1. Обчислити суму додатних і кількість від’ємних елементів багатовимірного вектора v[5][5].
2. Задані два вектори X і Y , що містять по десять елементів. Трактуючи їх як координати крапок площини, обчислити відстань між ними.
3. Заданий вектор X[20]. Додатні числа переписати в масив Y, а від’ємні в т масив W.
4. Змінити місцями мінімальний і максимальний елементи головної діагоналі матриці (багатовимірного вектора v[5][5]).
5. В векторі з 20 елементів переставити елементи так, щоб спочатку розташувались всі від’ємні елементи, а після цього всі інші елементи, без порушення порядку їхнього слідування.
6. В цілочисельній квадратній матриці (багатовимірного вектора v[5][5]) визначити номери рядків (значення векторів покажчиків на вектори), всі елементи яких парні, знайти суми елементів цих рядків.
7. Знайти твір двох матриць (багатовимірних векторів) 5x6 і 6x5 елементів.
8. В багатовимірному векторі 4x6 елементів знайти мінімальний елемент і його індекси.
9. В матриці (багатовимірному векторі) 4x6 елементів змінити місцями стовпці, що містять мінімальний та максимальний елементи. Врахувати особливості мови С++.
10. Відсортувати елементи третього рядка матриці (багатовимірного вектора) 5x6 елементів за зростанням значень. Врахувати особливості мови С++.
11. В багатовимірному векторі V[4][5] замінити нулем максимальний і одиницею максимальний елементи.
12. Замінити від'ємні елементи багатовимірного вектора V[4][5] нулями, та знайти їхню кількість.
13. В векторі V [23] змінити місцями максимальний і мінімальний елементи.
14. В векторі V[23] є однакові числа. Знайти кількість чисел які часто зустрічаються.
15. Знайти суму трьох багатовимірних векторів розміром 4x6 елементів.
16. В векторі V [23] знайти твір додатних елементів, що розташовані на парних місцях, і кількість всіх від’ємних елементів.
17. В векторі V [23] знайти середнє арифметичне всіх від’ємних і середнє геометричне додатних чисел.
18. В кожному рядку матриці (вектора покажчиків на вектори) V[4][5] знайти кількість елементів, що діляться на три, і записати їх в вектор.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.