РАБОТА С ДВУМЕРНЫМИ МАССИВАМИ

При решении математических, экономических, статистических задач информация располагается в таблицах, образующих двумерные массивы. Если в одномерных массивах каждый элемент содержит только один индекс, то в двумерных массивах каждый элемент имеет координаты, состоящие из номера строки и номера столбца. В математике квадратные или прямоугольные таблицы называются матрицами.

На рис. 133 представлен общий вид квадратной матрицы 5x5. Каждый элемент матрицы имеет имя А. Первый индекс — это номер строки, второй индекс — номер столбца. Диагональ матрицы А0о — А44 называется главной, а диагональ Ао4_А40 — побочной. N — количество столбцов, М — количество строк.

о

10 1N—1

О

о

ао

а02

аоз

а04

*и>

а

а2

*13

а4

о

ГД

а2

а22

а2Ъ

а 24

азо

аз

аЪ2

азз

а34

а40

а4

а42

а43

а44

М— 1

Рис. 133. Общий вид квадратной матрицы

Все операции по обработке, вводу-выводу элементов двумерного массива осуществляются поэлементно, с использованием сложного циклического процесса.

Двумерные массивы инициализируются в объявлениях с использованием того же процесса и тех же форм записи, которые используются для одномерных массивов. Например, двумерный массив а с 5 строками и 5 столбцами можно объявить следующим образом:

Например:

int[;] а;

а = new int[5, 5];

Если элементы массива заранее известны, то, используя фигурные скобки (список инициализаторов), можно объявить двумерный массив следующим образом:

int[,] а = new int[/] [1];

Возможно объявление массива и другими способами:

int[,] Ь = [1];

int[,] а = new int[4,5] [1];

Задача. В двумерном массиве произвольных целых чисел найдите сумму всех элементов. Ввод элементов осуществите вручную.

Разработка алгоритма решения задачи представлена на рис. 134.

Алгоритм решения задачи

Рис. 134. Алгоритм решения задачи

В листинге 107 приведен код процедуры, написанной как консольное приложение, отвечающий за решение задачи, а на рис. 135 показан результат ее выполнения.

Листинг 107

namespace ConsoleApplicationl

{

class Program

{

static void Main(string[] args)

{

int[,] a;

a = new int[4, 4];

int sum = 0;

string[,] con;

con = new string[4,4];

Console.WriteLine("Введите элемент массива"); for (int i — 0; i < 4; i++)

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

{

con[i,j] = Console.ReadLine(); a[i,j] = Convert.ToIntl6(con[i,j]); sum += a[i,j];

}

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

{

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

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

Console.WriteLine();

}

Console.WriteLine("Сумма элементов массива^ " + sum); Console.ReadLine();

}

}

Результат выполненной программы

Рис. 135. Результат выполненной программы

В листинге 108 приведен код процедуры, в которой элементы массива заранее известны и находятся в списке инициализаторов.

Листинг 108

namespace ConsoleApplicationl

{

class Program

{

static void Main(string[] args)

{

int[,] a; a = new int[4, 4]

[4];

int sum = 0;

string[,] con;

con = new string[4,4];

Console.WriteLine("Исходный массив"); for (int i — 0; i < 4; i++)

{

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

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

Console.WriteLine();

}

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

for (int j = 0; j < 4; j++) sum += a[i, j];

Console.WriteLine("Сумма элементов массива^ " + sum); Console.ReadLine();

}

}

Результат выполнения программы представлен на рис. 136.

Результат выполненной программы

Рис. 136. Результат выполненной программы

В листинге 109 приведен код программы «Найдите сумму всех элементов матрицы», написанной как Windows-приложение. В программе используется генератор случайных чисел.

Листинг 109

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

Random a = new Random(); int[,] b;

b = new int[ 4, 4];

int sum = 0;

textBoxl.Clear();

for (int і = 0; і < 4; i++)

{

textBoxl.AppendText(" " + " "); for (int j = 0; j < 4; j++)

{

b[і, j] = a.Next(1, 5);

textBoxl.AppendText(b[і , j] + " ");

sum += b[i, j] ;

}

}

MessageBox.Show("Сумма элементов массива^ " + sum.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

  • [1] 1, 2, 3}, {4, 5, 6
  • [2] 1, 2, 3}, {4, 5, 6
  • [3] 1, 2, 3}, {4, 5, 6
  • [4] 1,2,3,4},

    {5,6,7,8},

    {9,10,11,12},

    {13,14,15,16

 
< Пред   СОДЕРЖАНИЕ     След >