Многомерным называется такой массив, в котором для получения доступа к элементам применяется несколько индексов.
Например, предположим, что требуется хранить в памяти оценки 20 студентов по 4 предметам. Позицию в матрице можно задать двумя координатами — строка – номер экзамена, столбец – номер студента. Эти две координаты можно представить в виде индексов.
Объявить и инициализировать двумерный массив ball типа int можно следующим образом:
int [,] ball = new int[4,20];
Пример задачи с матрицей
Задана матрица A целых чисел размера MхN, 2≤M≤10, 2≤N≤6. Получить вектор B, каждый элемент которого является минимальным элементом соответствующего столбца матрицы A.
Таблица спецификаций:
Входные величины | Выходные величины | ||||
Имя | Назначение | Диапазон | Имя | Назначение | Диапазон |
M | Число строк матрицы A | Целое | B | Вектор размером N | Целые числа |
N | Число столбцов матрицы A | Целое число | |||
A | Матрица размером MхN | Целые числа |
Словесное описание алгоритма:
|
|
1. Ввод M
2. Ввод N
3. I=1
4. ПОКА I<=M ВЫПОЛНИТЬ
4.1. J=1
4.2. ПОКА J<=N ВЫПОЛНИТЬ
4.2.1. Ввод AI,J
4.2.2. J=J+1
ПОКА ВСЕ
4.3. I=I+1
ПОКА ВСЕ
5. J=1
6. ПОКА J<=N ВЫПОЛНИТЬ
6.1. BJ=A1,J
6.2. I=1
6.3. ПОКА I<=M ВЫПОЛНИТЬ
6.3.1. ЕСЛИ AI,J< BJ ТО
6.3.1.1. BJ= AI,J
ЕСЛИ ВСЕ
6.3.2. I=I+1
ПОКА ВСЕ
6.4. J=J+1
ПОКА ВСЕ
7. I=1
8. ПОКА I<=N ВЫПОЛНИТЬ
8.1. Вывод BI
8.2. I=I+1
ПОКА ВСЕ
Программа:
int N,M,i,j;
int [,]A=new int[10,6];
int[]B=new int[6];
Console.WriteLine("Введите число строк");
M=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите число столбцов");
N=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите матрицу");
for (i=0;i<M;i++)
for (j=0;j<N;j++)
{A[i,j]= Convert.ToInt32(Console.ReadLine());}
for (j=0;j<N;j++)
{B[j]=A[0,j];
for(i=0;i<M;i++)
if (A[i,j]<B[j])
B[j]=A[i,j];}
Console.WriteLine("Выходной вектор");
for (i=0;i<N;i++)
Console.Write(" {0} ",B[i]);
Console.WriteLine();
Console.ReadKey();