06 Массивы двумерные
.pdf3. ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ
За час, відведений для виконання лабораторної роботи (2 академічні години), студент повинен:
1.Розробити алгоритм розв’язання задачі, запропонованої для програмування.
2.Здійснити програмну реалізацію розробленого алгоритму.
3.Здійснити налаштування програми, виправивши синтаксичні та логічні помилки.
4.Підібрати тестові дані для перевірки програми, включаючи виняткові випадки.
5.Оформити звіт до лабораторної роботи.
6.Відповісти на контрольні запитання.
7.Здати викладачу працездатну програму з демонстрацією її роботи на декількох варіантах вихідних даних.
4. ВАРІАНТИ ЗАДАЧ
1. |
Дано натуральне число n і дійсну квадратну матрицю A (aij ) |
порядку n |
||
|
(n 10). Одержати квадратну |
матрицю B (bij ) порядку n, в |
якої для |
|
|
i 1, 2, , n, j 1, 2, , n |
|
|
|
|
aij |
|
при i j, |
|
|
bij |
|
у противному випадку. |
|
|
a |
ji |
|
|
|
|
|
|
|
2. |
Дано натуральне число n (n 10) і дійсну квадратну матрицю порядку n. |
|||
|
Сума елементів якої з діагоналей більше, – головної або побічної? Від- |
|||
|
повіддю повинне бути значення 1 для головної діагоналі і значення –1 для |
|||
|
побічної діагоналі. |
|
|
|
3. |
Дано натуральні числа m, n ( m, n 10 ) і дійсну матрицю розміру m×n. |
|||
|
Знайти суму найменших значень елементів її стовпців. |
|
||
4. |
Дано натуральні число m, |
n ( m, n 10 ) і цілочислову матрицю розміру |
||
|
m n . Змінити матрицю так, щоб у рядках залишилися елементи, які зу- |
|||
|
стрічаються більше одного разу, а інші замінити нулями. |
|
||
5.Дано натуральні числа m, n ( m, n 10 ) і цілочислову матрицю A (aij )mn .
Замінити в матриці A нулями елементи, що стоять у рядках або стовпцях, де
11
є нулі. Дозволено використати один одновимірний допоміжний масив з m або n елементів.
6.Дано натуральні числа m, n ( m, n 10 ) і дійсну матрицю A (aij )mn . Заміни-
ти в матриці кожен елемент aij мінімальним з елементів підматриці, правий верхній кут якої збігається з елементом aij, а лівий нижній – з лівим нижнім кутом матриці A.
7.Дано натуральні числа m, n ( m, n 10 ) і дійсну матрицю розміру m n . У
кожному стовпці матриці знайти кількість елементів, менших середнього арифметичного всіх елементів цього стовпця.
8.Дано натуральні числа m, n ( m, n 10 ) і дійсну матрицю розміру m n . Визначити кількість її стовпців, усі елементи яких утворюють монотонні послідовності (монотонно зростальні або монотонно спадні).
9.Дано квадратний масив порядку n (n 10). Знайти номери рядків, елементи кожного з яких утворюють симетричні послідовності (паліндроми).
10.Дано натуральні числа m, n ( m, n 10 ) і дійсну матрицю розміру m n . Визначити мінімальний серед елементів тих рядків, які впорядковані хоч за зростанням, хоч за убуванням.
11.У двовимірному масиві поміняти місцями рядки, що містять максимальний та мінімальний елементи.
12. Дано натуральні числа m, n ( m, n 10 ) і цілочислову матрицю розміру m n . Визначити номер останнього стовпця, в якому кількість додатних і від’ємних елементів однакова. Якщо такий стовпець відсутній, то результатом повинне бути число –1.
13.Дано натуральні числа n, p, q (n 10, 1 p n, 1 q n) і дійсну квадратну матрицю порядку n . Поміняти місцями одночасно p-й і q-й рядки і p-й і q-й стовпці матриці.
14.Дано натуральні числа m, n (m, n 10) і двовимірний цілочисловий масив розміром m n . Знайти номер останнього за порядком стовпця, в якому міститься найбільша кількість різних чисел.
15.У двовимірному масиві видалити рядок і стовпець, на перехресті яких знаходиться елемент, що є найближчим до середнього арифметичного усіх елементів масиву.
16.Дано натуральне число n (n 10) і дійсний квадратний масив розміру n n . Знайти значення індексів мінімального елементу з тих, що знаходяться в зафарбованій на рис. 5.1 частині масиву, включаючи фрагменти діагоналей.
12
Рис. 5.1. Варіанти частин масивів
17.Дано натуральне число n (n 10) і дійсний квадратний масив розміру n n . Обернути відносно вертикальної осі вміст зафарбованої на рис. 5.2 частини масиву, включаючи фрагменти діагоналей.
Рис. 5.2. Обертання відносно вертикальної осі
18.Дано натуральне число n (n 10) і дійсний квадратний масив розміру n n . Обернути відносно горизонтальної осі вміст зафарбованої на рис. 5.3 частини масиву, включаючи фрагменти діагоналей.
Рис. 5.3. Обертання відносно горизонтальної осі
19. Дано масив дійсних чисел розміру n n (n 10).
а) Знайти суму елементів головної та побічної діагоналей.
б) Знайти найменше зі значень елементів побічної діагоналі та двох сусідніх з нею ліній.
5.КОНТРОЛЬНІ ЗАПИТАННЯ
1.Яку структуру даних імітує двовимірний масив?
2.Як описується двовимірний масив та масив з більшою кількістю вимірів?
3.Як задається діапазон змінення індексів в описі багатовимірних масивів?
4.Чи можна в описі багатовимірних масивів використовувати змінні?
13
5.Чи є правильним твердження, що в рядках двовимірного масиву вміщуються елементи тільки одного типу?
6.Чи можна в різні рядки двовимірного масиву записати дані відмінних один від одного типів?
7.Як здійснюється звертання до елементів багатовимірного масиву?
8.Як розміщуються в пам’яті елементи двовимірного масиву?
9.Опишіть реалізацію розміщення в пам’яті елементів масивів з кількістю вимірів, більшою двох.
10.Чи можна при звертанні до елементів багатовимірного масиву використовувати вирази?
11.Як здійснюється ініціалізація багатовимірного масиву в C++ ?
12.Чи можна при ініціалізації багатовимірного масиву в C++? Зробіть пояснення.
13.Яке обмеження існує для обсягу пам’яті, що може бути відведена під багатовимірний масив?
14.Нижче наведений фрагмент тексту програми. double a[3][4];
int i, j;
for (j = 0; j < 4; j++)
for (i = 0; i < 3; i++)
a[i][j] = (i + 1) * 10 + j + 1;
Чи є помилки в наведеному вище тексті? Зробіть необхідні пояснення.
15.Знайдіть помилки (якщо вони є) у наведених нижче оголошеннях масивів і зробіть необхідні пояснення.
int x[2][3] = {{-2, |
-1}, |
{0, |
1}, {2, 3}}; |
||
|
|
|
|||
int x[2][3] = {{-2, |
-1, 0}, {1, |
2, 3}}; |
|||
|
|
||||
int x[2][3] = {{-2, |
-1, 0, 1}, {2, 3}}; |
||||
|
|
|
|||
int x[2][3] = {-2, -1, |
0, 1, 2, |
3}; |
|||
|
|
|
|
|
|
const int |
SIZE = 4; |
|
|
|
|
int x[2 * |
SIZE][SIZE + |
4]; |
|
|
|
|
|
|
|
|
|
const int |
SIZE = 4; |
|
|
|
|
int x[2 * |
SIZE][SIZE - |
4]; |
|
|
|
|
|
|
|
|
|
16.Нижче наведений фрагмент тексту програми. double a[3][4];
int i, j;
14
for (j = 0; j < 4; j++)
for (i = 0; i < 3; i++)
a[j][i] = (i + 1) * 10 + j + 1;
Чи є помилки в наведеному вище тексті? Зробіть необхідні пояснення.
СПИСОК ЛІТЕРАТУРИ
1. Страуструп, Б. Язык программирования Си++ : Второе издание /
Б. Страуструп. – К. : ДиаСофт, 1993. – Ч. 1. – 264 с. ; Ч. 2. – 296 с.
2.Керниган, Б. Язык программирования Си / Б. Керниган, Д. Ритчи. – М. : Финансы и статистика, 1992. – 272 с.
3.Либерти, Джесс. Освой самостоятельно С++ за 21 день : учеб. пособ. / Джесс Либерти. – М. : Вильямс, 2001. – 816 с.
4.Подбельский, В. В. Программирование на языке Си / В. В. Подбельский, С. С. Фомин. – М. : Финансы и статистика, 1999. – 600 с.
5.Подбельский, В. В. Язык Си++ / В. В. Подбельский. – М. : Финансы и ста-
тистика, 1999. – 560 с.
6.Савитч, Уолтер. Язык C++. Курс объектно-ориентированного программирования / Уолтер Савитч. – М. : Вильямс, 2001. – 704 с.
15
Навчальне видання
Методичні вказівки до лабораторної роботи
«Використання багатовимірних масивів у програмах мовою C++»
зкурсу «Програмування» для студентів напряму 6.040302 – Інформатика і курсу «Програмування та алгоритмічні мови» для студентів напряму
6.040303 – Системний аналіз
Укладачі: БЕЗМЕНОВ Микола Іванович, БЕЗМЕНОВА Ольга Миколаївна
Відповідальний за випуск О. С. Куценко Роботу до видання рекомендував О. В. Горелий
За авторською редакцією
План 2013 р., поз. 6
Підписано до друку __.__.2013 р. Формат 60 84 1/16. Папір офсетний. Друк – ризографія. Гарнітура Таймс. Ум. друк. арк. _______.
Обл.-вид. арк. 1,5. Тираж 50 прим. Зам. №___ . Ціна договірна.
_________________________________________________________________________________________________________
Видавничий центр НТУ «ХПІ».
Свідоцтво про державну реєстрацію № 3657 від 27.12.2009 р. 61002, Харків, вул. Фрунзе, 21.
_________________________________________________________________________________________________________
Друкарня НТУ «ХПІ»
61002, Харків, вул. Фрунзе, 21.
