Методичні вказівки до виконання практичних та лабораторних робіт з курсу «Обчислювальна техніка та програмування», страница 11

Звернення до елементів багатовимірних векторів може вироблятися як класичним засобом - шляхом указівки значень індексів, наприклад,

V[1][2] =3;,

Так із використанням механізму покажчиків

*(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] знайти кількість елементів, що діляться на три, і записати їх в вектор.