Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка С#.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.13 Mб
Скачать

Робота з двовимірними масивами. Організація введення / виводу елементів двовимірного масиву Мета роботи

Метою даної лабораторної роботи є придбання навичок обробки двовимірних масивів: уведення/вивід елементів двовимірного масиву, зміна значень елементів масиву, визначення мінімального і максимального значень рядків і стовпців масиву, зміна розташування елементів двовимірного масиву.

Завдання

1. Скласти алгоритм і написати програму обробки двовимірного масиву відповідно до індивідуального завдання. Варіанти завдань надано в додатку 11. Номер варіанта призначається викладачем.

2. Здійснити налагодження програми і її тестування.

3. Скласти звіт про роботу.

Вказівки до виконання завдання

Двовимірний масив являє собою масив масивів. Наприклад, оголошення

double x[5][6];

створює масив х, що має п'ять елементів, кожний з яких є масивом, що складається із шести елементів типу double. Масив х можна представити як масив, що складається з п'яти рядків і шести стовпців. Зміна другого індексу приводить до переміщення уздовж рядка, зміна першого – до переміщення уздовж стовпця.

Для обробки масиву використовується два оператори циклу for, вкладених один в один. Один цикл організовує зміну індексу рядка, інший – стовпця. Наприклад, для введення елементів двовимірного масиву з клавіатури в програмі буде записаний наступний блок операторів:

int і,j;

double x[5][6];

for(і=0;і<5;і++) /* цикл, що змінює індекс рядків */

for(j=0;j<6;j++) /* цикл, що змінює індекс стовпців */

{

printf(“Уведіть x[%d][%d]\n”, і, j);

scanf(“%lf”,&x[i][j]);

}

Цей приклад організовує введення масиву построчно. Для організації введення масиву по стовпцях треба зробити перестановку циклів місцями.

Крім введення елементів двовимірного масиву з клавіатури, можна ініціалізувати масив у програмі. Це можна зробити двома способами: ввести підряд у рядок усі дані, наприклад:

int s[2][3]={5,6,7,8,9,10};

або ввести всі дані, уклавши їх рядками у фігурні дужки, наприклад:

int s[2][3]={

{5,6,7},

{8,9,10}

};

Обидва способи ініціалізують однаковий масив. Розходження між способами ініціалізації необхідно враховувати в тому випадку, якщо вводиться менша кількість значень, чим указано в оголошенні масиву. Наприклад, у випадку такої ініціалізації

int x [2][3]={5,6,7,10};

одержимо масив, у якому в першому рядку будуть знаходитися елементи 5, 6, 7, а в другому – 10, 0, 0. Якщо застосувати другий спосіб:

int x[2][3]={

{5,6},

{7,10}

};

то в першому рядку масиву будуть елементи 5, 6, 0, а в другому – 7, 10, 0.

Способи обробки елементів двовимірного масиву розглянемо на наступних прикладах.

Приклад 1. Дано масив чисел із дробовою частиною а(4,5). Знайти добуток мінімальних елементів стовпців.

#include <stdio.h>

#define I 4

#define J 5

int main ()

{

/* ініціалізація масиву */

double a[4][5]={1.,1.1,1.,1.4,1.,1.6,1.,1.8,1.,1.,1.1,1.3,1.,1.,1.6,1.7,1.8,1.9,1.1,1.2};

double min, pr=1; /* min – мінімальне значення у стовпці */

/* pr добуток мінімальних елементів */

int і,j;

for(j=0;j<J,j++) /* цикл, що змінює індекс стовпця */

{

min=a[0][j]; /* приймаємо, що перший елемент стовпця буде мінімальним */

for(і=0;і<I;і++) /* цикл, що змінює індекс рядків */

if(a[і][j]<min) /* призначаємо мінімальне значення у стовпці */

min=a[i][j];

pr=pr*min;

}

printf (“ Добуток мінімальних значень стовпців pr=%lf.\n”,pr);

return 0;

}

Приклад 2. Дано масив цілих чисел а(5,5). Поміняти рядки і стовпці місцями, подвоївши елементи масиву.

#include <stdio.h>

#define I 5

#define J 5

int main ()

{

int a[5][5]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7};

int i, j, k;

for(i=0;i<I;i++)

for(j=i;j<J;j++)

{

k=a[j][і]; /* змінюємо */

a[j][і]=2*a[і][j]; /* елементи */

a[і][j]=2*k; /* місцями */

}

/* роздруківка двовимірного масиву у вигляді матриці */

for(i=0;i<I;i++)

{

for(j=0;j<J;j++)

printf(“ %4d “, a[і][j]; /* роздруківка рядка масиву */

printf (“\n”); /* перехід на інший рядок */

return 0;

}

Коментарі до програми: у циклі for, що змінює індекс стовпця, початковим значенням є індекс рядка. Це дозволяє виключити повторну перестановку елементів масиву.

Звіт про роботу повинний містити стислий опис роботи, алгоритм розв’язання завдання, текст програми і результати її роботи.