Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИДПО_ИИИС / Лекция 6.docx
Скачиваний:
52
Добавлен:
19.05.2015
Размер:
126.8 Кб
Скачать

Многомерные массивы

Многомерные массивы могут иметь любое количество измерений (не путать с размерностью массива), два измерения - двумерными, три измерения - трехмерные, ..., N измерений - N _мерные. Наибольшее распространение получили массивы, имеющие два измерения - двумерные многомерные массивы. Многомерные массивы (в том числе двумерные) бывают двух типов:

  • Прямоугольные массивы

  • "Ломаные" (jagged) массивы

Ниже рассмотрим примеры, касающиеся только двумерных массивов.

using System;

namespace Test

{

class Test

{

static void Main()

{

string title = "*****************************

***************\n"

+ "\tДвумерные массивы:\n"

+ "****************************

****************\n";

Console.WriteLine(title);

//*********************************************************

// Создаем ссылку типа int на двумерный массив

// Используются для измерений общие скобки

int[,] array1;

// Запросим память у системы для

// Для фиксированного количества элементов

array1 = new int[6,5];

Console.WriteLine("Прямоугольный массив [6,5],

полученный по\n"

+ "синтаксису массива прямоугольного типа:");

// Заполним и выведем массив с поэлементной индексацией

// Метод GetLength() используется для определения

// количества элементов в указанном измерении массива

for(int i = 0; i < array1.GetLength(0); i++)

{

for(int j = 0; j < array1.GetLength(1); j++)

{

array1[i,j] = i * j;

Console.Write(array1[i,j] + "\t");

}

Console.WriteLine();// На новую строку экрана

}

//*********************************************************

// Используются для измерений индивидуальные скобки

int[][] array2;

// Запросим память у системы для

// Для неопределенного количества элементов

// по второму измерению

array2 = new int[6][];

Console.WriteLine("\n\nПрямоугольный массив [6][5],

полученный по\n"

+ "синтаксису массива ломаного типа:");

// Вначале запросим память для второго измерения

// Используются для измерения индивидуальные скобки

for(int i = 0; i < array2.Length; i++)

array2[i] = new int[5];

// Заполним и выведем массив с поэлементной индексацией

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

{

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

{

array2[i][j] = i * j;

Console.Write(array2[i][j] + "\t");

}

Console.WriteLine();// На новую строку экрана

}

//*********************************************************

// Используются для измерений индивидуальные скобки

// Запросим память у системы для

// Для неопределенного количества элементов

// по второму измерению

array2 = new int[6][]; // Используем старую ссылку

// массива ломаного типа, старую ссылку

// массива прямоугольного типа применять нельзя

Console.WriteLine("\n\nМассив ломаного

типа [6][]:");

// Вначале запросим память для второго измерения

// Используются для измерения индивидуальные скобки

for(int i = 0; i < array2.Length; i++)

array2[i] = new int[i + 2];

// Заполним и выведем массив с поэлементной индексацией

for(int i = 0; i < array2.Length; i++)

{

for(int j = 0; j < array2[i].Length; j++)

{

array2[i][j] = i * j;

Console.Write(array2[i][j] + "\t");

}

Console.WriteLine();// На новую строку экрана

}

while(true);

}

}

}

Листинг 20.41 . Двумерные массивы

Результат выполнения примера

********************************************

Двумерные массивы:

********************************************

Прямоугольный массив [6,5], полученный по

синтаксису массива прямоугольного типа:

0 0 0 0 0

0 1 2 3 4

0 2 4 6 8

0 3 6 9 12

0 4 8 12 16

0 5 10 15 20

Прямоугольный массив [6][5], полученный по

синтаксису массива ломаного типа:

0 0 0 0 0

0 1 2 3 4

0 2 4 6 8

0 3 6 9 12

0 4 8 12 16

0 5 10 15 20

Массив ломаного типа [6][]:

0 0

0 1 2

0 2 4 6

0 3 6 9 12

0 4 8 12 16 20

0 5 10 15 20 25 30

Соседние файлы в папке ИДПО_ИИИС