Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Малыхина. Массивы....doc
Скачиваний:
22
Добавлен:
22.05.2015
Размер:
502.27 Кб
Скачать

9.1.2 Примеры

Пример 1. Для целочисленной матрицы размером m*n вычислить сумму элементов в каждой строке (рис. 9.1).

Рисунок 9.1 – Матрица изm строк иn столбцов

Нахождение суммы элементов каждой строки требует просмотра матрицы по строкам. Схема алгоритма приведена на рисунке 9.2, программа – в листинге 1.

Листинг 1- Программа к примеру 1

using System;

namespace ConsoleApplication1

{ class Class1

{ static void Main()

{ const int m = 3, n = 4;

int[,] a = new int[m, n] {

{ 2, 2, 8, 9 },

{ 4, 5, 6, 2 },

{ 7, 0, 1, 1 }

};

Console.WriteLine("Исходный массив:");

for ( int i = 0; i < m; ++i)

{ for ( int j = 0; j < n; ++j )

Console.Write( " " + a[i, j]);

Console.WriteLine();

}

for ( int i = 0; i < m; ++i )

{ int sum = 0;

for ( int j = 0; j < n; ++j )

sum += a[i, j];

Console.WriteLine("В строке {0}сумма элементов {1}",i, sum );

}

Console.Read();

}

}

}

Рисунок 9.2 – Схема алгоритма к примеру 1

Результат работы программы:

Следует обратить внимание на то, что переменная sumобнуляется перед циклом просмотра очередной строки матрицы, поскольку для каждой строки его вычисление начинается заново.

Пример 2. Поиск максимального элемента в двумерном массиве.

Схема алгоритма решения данной задачи представлена на рисунке 9.3, а программа в листинге 2.

Решение поставленной задачи осуществляется с помощью цикла по параметру i, изменяющегося шагом+1от0доm-1с вложенным циклом по параметруj, изменяющемуся шагом+1от0доn-1.

Перед входом в цикл переменной maxприсваивается значениеу[0,0]элемента массива. С каждым изменением параметра jпроисходит переход к новому элементу той же строки массива и сравнение его значения со значением переменнойmax.

Если значение элемента массива больше, то maxприсваивается значение элемента массива с текущим порядковым номером. Когда при данном значении параметраiзавершается цикл по параметруj, происходит изменение параметраiи переход к новой строке двумерного массива.

Рисунок 9.3 – Схема алгоритма к примеру 2

Листинг 2 – Программа к примеру 2

using System;

namespace ConsoleApplication1

{ class Program

{ static void Main(string[] args)

{ const int m = 3, n = 4;

int[,] y = new int[m, n] {

{ 2, 2, 8, 9 },

{ 4, 5, 6, 2 },

{ 7, 0, 1, 1 }

};

Console.WriteLine("Исходный массив:");

for (int i = 0; i < m; ++i)

{ for (int j = 0; j < n; ++j)

Console.Write(" " + y[i, j]);

Console.WriteLine();

}

int max=y[0,0];

for (int i = 0; i < m; ++i)

{ for (int j = 0; j < n; ++j)

if (y[i, j] > max) max = y[i, j];

}

Console.WriteLine("Наибольший элемент в матрице "+ max);

}

}

}

Результаты работы программы: