Массивы. Многомерные массивы — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

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

2017-11-16 163
Массивы. Многомерные массивы 0.00 из 5.00 0 оценок
Заказать работу

Массивом называют упорядоченную совокупность одного типа. Каждый элемент массива имеет свой порядковый номер (индекс). Количество элементов определяет размерность массива. Индексы элементов задаются целочисленным типом данных. Массивы бывают статические и динамические.

Многомерные массивы имеют сходные объявления с одномерные, при этом размерность массива задается за счет использования запятых. Число запятых, увеличенное на 1 задает размерность массива. Одномерные массивы позволяют задавать такие математические структуры как векторы. Двумерные - матрицы. Трехмерные - кубы данных. Массивы большей размерности - многомерные кубы данных.

static void Main(string[] args)

Пример:

static void Main(string[] args)

{

int[,] matrix1 = { { 1, 2 }, { 3, 4 } };

int[,] matrix2 = new int[3, 3];

int i, j;

Console.Write("\nmatrix1: \n");

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

{

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

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

Console.Write("\n");

}

// Инициализация генератора случайных чисел

Random rand = new Random();

Console.Write("\nmatrix2: \n");

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

{

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

{

matrix2[i, j] = rand.Next(10);

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

}

Console.Write("\n");

}

Console.ReadKey();

}

Массивы. Массивы массивов

Массивом называют упорядоченную совокупность одного типа. Каждый элемент массива имеет свой порядковый номер (индекс). Количество элементов определяет размерность массива. Индексы элементов задаются целочисленным типом данных. Массивы бывают статические и динамические.

Массивы массивов можно рассматривать как одномерный массив, элементы которого являются массивы. Элементы, которых в свою очередь, снова могут быть массивами и так может продолжаться до некоторого уровня вложенности. Эти массивы могут применяться для представления деревьев, у которых узлы могут иметь произвольное число потомков. Если при объявление многомерных массивов для указания размерности используются запятые, то для массивов массивов применяться совокупности пар квадратных скобок.

Пример объявления массива массивов:

Объявление и инициализация

int[][] M= new int[3][]{new int[] {5,7,9,11}, new int[] {2,8} new int[] {6,12,4}};

Массив массивов имеет два уровня на верхнем уровне расположено 3 элемента, каждый из которых является массивом. Для каждого вложенного массива необходимо использовать команду new что бы создать внутренний массив. В данном примере элементы внутренних массивов получат конкретные значения при объявление массива. Допустимо так же объявлять массивы массивов без инициализации элементов

int[][]M1= new int[3][] {new int[4], new int[2], new int[3]};

Пример:

static void Main(string[] args)

{

//массив массивов -"Отцы и дети"

int Fcount = 3;

string[] Fathers = new string[Fcount];

Fathers[0] = "Николай";

Fathers[1] = "Сергей";

Fathers[2] = "Петр";

string[][] Children = new string[Fcount][];

Children[0] = new string[] { "Ольга", "Федор" };

Children[1] = new string[] { "Сергей", "Валентина", "Ирина", "Дмитрий" };

Children[2] = new string[] { "Мария", "Ирина", "Надежда" };

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

{

Console.WriteLine("Отец: {0}; Его дети:", Fathers[i]);

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

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

Console.WriteLine();

}

Console.ReadKey();

}

Массивы. Класс Array

Массивом называют упорядоченную совокупность одного типа. Каждый элемент массива имеет свой порядковый номер (индекс). Количество элементов определяет размерность массива. Индексы элементов задаются целочисленным типом данных. Массивы бывают статические и динамические.

На платформе.Net все массивы происходят от одного общего (базового) класса Array. Поэтому все созданные в программе массивы обеспечиваются специальным набором методов для создания, управления, поиска и сортировки элементов массива.

Свойства:

int Lenght — Возвращает целое число представляющее общее количество элементов во всех измерениях массива.

int Rank — Возвращает целое число обозначающие количество измерений массива (размерность).

Методы:

Array Createlnstance(тип, колличество_эп_int, количество_эп_int); - метод (один из вариантов), создает массив элементов заданного типа и определенной размерности.

 

 

int GetLenght(номер_размерности_int); - возвращает количество элементов заданной параметром размерности. Нумерация размерности массива начинается с нуля.

void SetValue(значение, позиция_х_int, позиция_у_int); - присваивает элементам массива значения.

GetValue(позиция_х_int,позиция_у_int); - извлекает значение из массива.

Clear — выполняет начальную инициализацию элементов.

GetLowerBound, GetUpperBound — возвращает верхнюю и нижнюю границу по указанному элементу.

Copy — копирует часть массива и весь массив в другой массив.

CopyTo — Копирует все элементы одномерного массива, в другой одномерный массив, начиная с заданного индекса.

IndexOf — выполняет поиск вхождения элемента в массив, если элемент в массиве отсутствует метод вернет 1, иначе будет возвращена позиция искомого элемента в массиве.

LastIndexOf — выполняет тоже, что и IndexOf, но поиск элементов выполняется с конца массива.

BinarySearch — выполняет поиск элементов, в массиве основываясь на двоичном представление значение.

Reverse — меняет порядок элементов массива на обратный

Sort — выполняет сортировку элементов

Clone — позволяет создать копию массива.

Методы перегружены и имеют ряд модификаций. Подробная информация по методам класса доступна в справочной системе через F1. Статические методы вызываются через имя класса, динамические через имя объекта этого класса.

Пример:

static void Main(string[] args)

{

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

Array myArray = Array.CreateInstance(typeof(String), 2, 4);

myArray.SetValue("Каждый ", 0, 0);

myArray.SetValue("охотник ", 0, 1);

myArray.SetValue("желает ", 0, 2);

myArray.SetValue("знать,", 0, 3);

myArray.SetValue("Где ", 1, 0);

myArray.SetValue("сидит ", 1, 1);

myArray.SetValue("фазан.", 1, 2);

myArray.SetValue("", 1, 3);

// Показали содержимое массива.

Console.WriteLine("Массив myArray:");

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

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

Console.WriteLine("\t[{0},{1}]:\t{2}", i, j, myArray.GetValue(i, j));

// Показали содержимое массива.

Console.WriteLine("Массив myArray:");

for (int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++)

for (int j = myArray.GetLowerBound(1); j <= myArray.GetUpperBound(1); j++)

Console.WriteLine("\t[{0},{1}]:\t{2}", i, j, myArray.GetValue(i, j));

//объявление массивов с отложенной инициализацией

int[] u, v;

u = new int[3];

for (int i = 0; i < 3; i++) u[i] = i + 1;

v = new int[4];

v = u; //допустимое присваивание - массив v стал включать 3 элем.

Console.WriteLine("Массив u:");

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

Console.WriteLine("\t[{0}]:\t{1}", i, u[i]);

Console.WriteLine("Массив v:");

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

Console.WriteLine("\t[{0}]:\t{1}", i, v[i]);

Console.ReadKey();

}


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.024 с.