Презентация по основам алгоритмизации на тему "Многомерные массивы"
- Рубрика: Презентации / Другие презентации
- Просмотров: 0
Презентация для классов "Презентация по основам алгоритмизации на тему "Многомерные массивы"" онлайн бесплатно на сайте электронных школьных презентаций uchebniki.org.ua
Многомерные массивы
ГПОУ «Ленинск-Кузнецкий политехнический техникум»
Преподаватель Щеглова Алена Александровна
Теоретическое занятие
для студентов II курса
Основы алгоритмизации
и программирования
Ленинск-Кузнецкий, 2023
Массивы характеризуются таким понятием, как ранг или количество измерений
Одномерные массивы имеют одно измерение (ранг = 1) – это массивы в виде ряда (строки или столбца)
У многомерных массивов количество измерений (ранг) больше 1.
44
22
10
11
14
30
19
Многомерный массив
Двумерный массив
Массивы которые имеют два измерения (ранг равен 2) называют двухмерными.
Двумерный массив – это таблица
Элементы двумерного массива
Строка
Столбец
44
22
10
14
30
19
Объявление двумерного массива:
тип[,] имя_массива = new тип[количество_строк, количество_столбцов];
Например:
int[,] а = new int[4, 5];
5 столбцов
4 строки
Объявление двумерного массива
Инициализация
1)
тип[,] имя_массива = new тип[размер_строк, размер_столбцов]{{значения_строки0},{значения_строки1}…};
Например:
int[,] myArr = new int[4, 5] { {1,5,2,5,7},{1,8,4,9,7 }, {6,5,4,8,7 },{9,5,7,3,1 } };
Инициализация
2)
тип[,] имя_массива = new тип[,]{{значения_строки0},
{значения_строки1}…};
Например:
int[,] myArr = new int[,] { {1,5,2,5,7},{1,8,4,9,7 }, {6,5,4,8,7 },{9,5,7,3,1 } };
Инициализация
3)
тип[,] имя_массива = new [,]{{значения_строки0},
{значения_строки1}…};
Например:
int[,] myArr = new [,] { {1,5,2,5,7},{1,8,4,9,7 }, {6,5,4,8,7 },{9,5,7,3,1 } };
Ввод элементов массива с клавиатуры
for (int i = 0; i < Количество_строк; i++)
{
for (int j = 0; j < Количество_столбцов; j++)
{
Имя_массива[i,j]= int.Parse(Console.ReadLine());
}
}
Ввод и вывод случайных чисел
int[,] m = new int [Количество_строк, Количество_столбцов];
Random ran = new Random();
for (int i = 0; i < Количество_строк; i++)
{
for (int j = 0; j < Количество_столбцов; j++)
{
m[i, j] = ran.Next(1, 15);// случайные числа от 1 до 15
Console.Write("{0}\t", m[i, j]);
}
Console.WriteLine();
}
Вывод элементов массива
for (int i = 0; i < Количество_строк; i++)
{
for (int j = 0; j < Количество_столбцов; j++)
{
Console.Write("{0}\t", a[i, j]);
}
Console.WriteLine();
}
Доступ к элементам массива
for (int i = 0; i < Количество_строк; i++)
{
for (int j = 0; j < Количество_столбцов; j++)
{
a[i, j] + =1; // увеличение элементов массива на 1
}
Console.WriteLine();
}
Ввод и вывод символьного массива
char[,] а = new char[3, 5] { { 'A', 'B', 'C', 'D', 'E' },
{ '8', '-', '=', '>', '+' },
{ '~', 'U', '&', '\\', '@' } };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
Console.Write("{0}\t", а[i, j]);
}
Console.WriteLine();
}
Основные понятия
Ранг - количество измерений массива
Длина измерения - длина отдельного измерения массива
Длина массива - количество всех элементов массива
Например:
int[,] n = new int[3, 4];
Массив n двухмерный - имеет два измерения [3, 4], поэтому его ранг равен 2.
Длина первого измерения – 3
Длина второго измерения - 4.
Длина массива - общее количество элементов - 12.
Объявление многомерных массивов
Объявление трехмерного массива:
int[,,] a = new int[2, 2, 2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 2; k++) {
a[i, j, k] = int.Parse(Console.ReadLine()); } } }
Объявление четырехмерного массива:
int[,,] a = new int[2, 2, 2,2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 2; k++) {
for (int l = 0; l < 2; l++) {
a[i, j, k, l] = int.Parse(Console.ReadLine()); } } }
На практике используются одномерные и двухмерные массивы.
Пример инициализации трехмерного массива целых чисел размером 2×3×4
// инициализация трехмерного массива целых чисел
int[, ,] B = {
{
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 }
},
{
{ 13, 14, 15, 16 },
{ 17, 18, 19, 20 },
{ 21, 22, 23, 24 }
}
};
Инициализация многомерных массивов
При переборе элементов массива надо учитывать, что длина такого массива - это совокупное количество элементов
Например:
int[,] n = { { 1, 2, 3 }, { 4, 5, 6 }};
foreach (int i in n)
Console.Write($"{i} "); Длина массива n равна 6.
Цикл foreach выводит все элементы массива в строку
1 2 3 4 5 6
Перебор многомерных массивов
имя_массива.Length - количество элементов
Например:
int[,] M =new int[3,4] { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 } };
int t = M.Length;
Console.Write("Количество элементов:{0}\t", t);
Результат: 12
Длина массива
Имя_массива.GetUpperBound(0) + 1; - количество строк в массиве
Например:
int[,] M =new int[,] { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 } };
int t = M.GetUpperBound(0) + 1;
Console.Write("Количество элементов:{0}\t", t);
Результат: 3
имя_массива.GetLength(0);
Количество строк в массиве
Имя_массива.Length / Количество_строк; - количество столбцов
Например:
int[,] M =new int[,] { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 } };
int t = M.GetUpperBound(0) + 1;
int c = M.Length / t;
Console.Write("Количество элементов:{0}\t", c);
Результат: 4
имя_столбца.GetLength(1);
Количество столбцов в массиве
В ступенчатом массиве количество элементов каждой строки может отличаться
Массив массивов (зубчатый массив)
Общая форма объявления ступенчатого массива:
тип [][] имя_массива = new тип[размер][];
Инициализация подмассивов
имя_массива[Номер_строки] = new int[] { значения};
где
тип – тип элементов массива;
размер – количество строк в массиве
Например:
int[][] n = new int[3][];
n[0] = new int[] { 1, 2 };
n[1] = new int[] { 1, 2, 3 };
n[2] = new int[] { 1, 2, 3, 4, 5 };
Массив массивов (зубчатый массив)
int[][] A = new int[4][]; // выделение памяти для каждой строки
A[0] = new int[5]; // в строке с индексом 0 есть 5 элементов
A[1] = new int[3]; // в строке с индексом 1 есть 3 элемента
A[2] = new int[6];
A[3] = new int[4];
Массив массивов (зубчатый массив)
Способ 1. Объявление прямоугольного массива с именем M.
int[,] M = new int[5,100]; // выделяется 500 ячеек типа int
Способ 2. Объявление ступенчатого массива.
int[][] M = new int[5][]; // выделяется 50+100+30+60+40 = 280 ячеек типа int
M[0] = new int[50];
M[1] = new int[100];
M[2] = new int[30];
M[3] = new int[60];
M[4] = new int[40];
Сравнение объявления массивов