Слайд 1Лекция 9.
Массивы
дисциплина «Программирование»
Козьминых Н.М.
Слайд 2Понятие массива
Козьминых Н.М.
Массив - структура данных, позволяющая хранить под одним
именем совокупность данных любого, но только одного какого-то типа
С массивом
связаны следующие его свойства:
имя;
тип;
размерность;
размер.
Слайд 3Виды массивов
Козьминых Н.М.
Массивы в C#:
одномерные массивы;
многомерные массивы;
массивы массивов (ступенчатые, зубчатые
массивы).
Слайд 4Одномерные массивы
Козьминых Н.М.
Объявление:
[ ] ;
int[ ] a, b, c;
Объявление
с инициализацией:
Явная инициализация:
double[ ] x = {5.5, 6.6, 7.7};
Инициализация
с вызовом конструктора массива (ноль для арифметики, пустая строка для строковых массивов):
int[ ] d = new int[5];
Слайд 5Одномерные массивы
Пример
Козьминых Н.М.
Инициализация массива:
с использованием ключевого слова new:
int[] myArr =
new int[] {10,20,30,40,50};
без использования ключевого слова new:
string[] info = {
"Фамилия", "Имя", "Отчество" };
с использованием new и указанием размера:
char[] symbol = new char[4] { 'X','Y','Z','M' };
Слайд 6Одномерные массивы
Пример
Козьминых Н.М.
// Инициализация массив
int[] arr = new int[3];
// Определение
значений элементов массива вручную
arr[0] = 100;
arr[1] = 23;
arr[2]
= -6;
Слайд 7Свойство Length
Козьминых Н.М.
Свойство Length – содержит значение количества элементов, из
которых состоит массив
int[] arr =new int[4];
for (int i =
0; i < arr.Length; i++)
a[i] = (i + 1) * 2;
Слайд 8Класс Random
Козьминых Н.М.
Класс Random содержит средства для генерации случайных чисел
Две
реализации конструктора:
генерация неповторяющейся серии случайных чисел – начальный элемент строится
на основе текущей даты и времени
public Random()
генерация повторяющейся серии случайных чисел
public Random (int)
Слайд 9Методы класса Random
Козьминых Н.М.
Слайд 10Одномерные массивы
Пример
Козьминых Н.М.
Слайд 11Одномерные массивы
Пример
Козьминых Н.М.
private void btn_Click(object sender, EventArgs e){
Random rand = new Random();
int[] arr = new int[8];
for (int i = 0; i < arr.Length; i++)
arr[i] = rand.Next(-10, 10);
grv.Rows.Clear();
grv.RowCount = 1;
grv.ColumnCount = arr.Length;
for (int i = 0; i < arr.Length; i++)
{
grv.Columns[i].Name = (i + 1).ToString();
grv.Columns[i].Width = 30;
grv.Rows[0].Cells[i].Value = (arr[i]).ToString();
}
}
Слайд 12Многомерные массивы
Козьминых Н.М.
Многомерным называется такой массив, который отличается двумя или
более измерениями, причем доступ к каждому элементу такого массива осуществляется
с помощью определенной комбинации двух или более индексов
Многомерный массив индексируется двумя и более целыми числами
Слайд 13Двумерные массивы
Козьминых Н.М.
Простейшей формой многомерного массива является двумерный массив
Местоположение любого
элемента в двумерном массиве обозначается двумя индексами
Двумерный массив можно представить
в виде таблицы, на строки которой указывает один индекс, а на столбцы — другой
Слайд 14Двумерные массивы
Козьминых Н.М.
// Инициализация массива
int[,] myArr = new int[4, 5];
Random ran = new Random();
// Определение значений элементов массива
случайным образом
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
myArr[i, j] = ran.Next(1, 15);
}
}
Слайд 16Массивы трех и более измерений
Козьминых Н.М.
Общая форма инициализации многомерного массива:
тип[,...,]
имя_массива = new тип
[размер1, размер2, ... размеры];
int[,,] myArr =
new int[5,5,5];
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
for (int k = 0; k < 5; k++)
myArr[i, j, k] = i + j + k;
Слайд 17Инициализация многомерных массивов
Козьминых Н.М.
тип[,] имя_массива = {
{val,
val, val, ..., val},
{ val, val, val,
..., val},
{val, val, val, ..., val}
};
int[,] myArr = {
{1,10},
{2,20},
{3,30},
{4,40}
};
Слайд 18Массивы массивов
(ступенчатые массивы)
Козьминых Н.М.
Ступенчатый массив представляет собой массив массивов,
в котором длина каждого массива может быть разной
Объявление:
тип [][] имя
массива = new тип[размер] [];
, где размер обозначает число строк в массиве
Слайд 19Массивы массивов
(ступенчатые массивы)
Козьминых Н.М.
int i = 0;
// Инициализация
ступенчатого массива
int[][] myArr = new int[4][];
myArr[0] = new
int[4];
myArr[1] = new int[6];
myArr[2] = new int[3];
myArr[3] = new int[4];
// Определение значений элементов массива
for (; i < 4; i++) myArr[0][i] = i;
for (i = 0; i < 6; i++) myArr[1][i] = i;
for (i = 0; i < 3; i++) myArr[2][i] = i;
for (i = 0; i < 4; i++) myArr[3][i] = i;
Слайд 20Массивы массивов
(ступенчатые массивы)
Козьминых Н.М.
Слайд 21Вопросы…
Спасибо за внимание
Козьминых Н.М.