Операции над массивом. Синтаксис C#
Операции над массивом включают в себя
Присвоение значения элементу массива
Изменение элемента массива
Поиск элемента массива
Сортировка элементов массива. Данная операция относится к учебному курсу «Алгоритмы и структуры данных» и в данной лекции рассмотрена не будет.
Присвоение значения элементу массива.
Присвоить значения элементам массива можно при инициализации массива
int[] arr = {10, 5, 6, 3, 4};
Однако для учебных целей, к примеру для оценки быстродействия того или иного алгоритма по сортировке или поиску значения, приходится инициализировать массивы тысячами значений. Для ручного ввода, такая операция, является очень затратной по времени, поэтому используется автоматическая инициализация элементов массива значениями.
Для автоматической инициализации элементов массива значениями используют генератор случайных чисел, следующей конструкции:
static void Main(string[] args)
{
Random rnd = new Random();
int value = rnd.Next(0, 10);
Console.WriteLine("Сгенерированное число " + value);
}
Здесь — rnd, объект класса Random. Классы не входят в рамки этого курса и не будут рассмотрены.
Строка int value = rnd.Next(0, 10); — операция инициализации целочисленной переменной целочисленным значением, которое является результатом вычисления операции rnd.Next(0, 10), где метод— Next(0, 10) определяет диапазон числового ряда.
Для инициализации элементов массива значениями с помощью генератора случайных чисел, достаточно создать цикл с перебором, осуществляющим доступ к элементам массива и поместить в этот цикл генератор случайных чисел. Каждую итерацию, в теле цикла будет генерироваться случайное число и присваиваться элементу массива
static void Main(string[] args)
{
Random rnd = new Random();
int[] arr = new int[5];
for (int i = 0; i < arr.Length; i++)
{
arr[i] = rnd.Next(0, 10);
Console.WriteLine($"Индекс элемента {i}, значение {arr[i]}");
}
}
Переменная « i » последовательно принимает значения числового ряда в диапазоне от нуля до четырех. Изменяясь каждую итерацию, переменная « i », изменяет каждую итерации индекс в выражении arr[i], при первой итерации выражение arr[i] будет заменено на arr[0], а при последнем на arr[4]. Таким образом, в строке arr[i] = rnd.Next(0, 10); происходит три операции
Генерация случайного значения в диапазоне от 0 до 10
Получение доступа к элементу массива по индексу
Присвоение сгенерированного значения элементу массива
В случае, когда значений не много, элементы массива можно случайными значениями с клавиатуры. Напишем программу для хранения названий трех самых высоких гор
static void Main(string[] args)
{
Console.WriteLine("Введите названия трех самых высоких гор");
string[] arr = new string[3];
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("Введите название горы ");
arr[i] = Console.ReadLine();
}
Console.Clear();
Console.WriteLine("Названия трех самых высоких гор");
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
}
Здесь, в первом цикле значения записываются в элементы массива, второй цикл выводит содержимое массива на экран.
Изменение значений в элементах массива
Изменения значений в элементах ничем не отличаются от операции присвоения, и по аналогии с операцией присвоения нового значения переменной, происходит замещение одного значения другим.
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5 };
Random rnd = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = rnd.Next(10, 20);
Console.WriteLine($"Индекс элемента {i}, значение {arr[i]}");
}
}
Самая распространенная операция над элементами массива — поиск значения.
Данная операция нашла широкое применение при сортировке, но сортировка структуры данных — это отдельный учебный курс и не будет рассмотрена.
Для поиска определенного значения достаточно запустить перебор всех элементов, проверяя каждую итерацию результат вычисления логического выражения в теле цикла. В данной программе выводятся четные числа.
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] % 2 == 0)
{
Console.WriteLine(arr[i]);
}
}
}
Здесь переменная « i » будет принимать значения от нуля до значения ограниченное логическим выражением «arr.Length», т.е. конечное значение массива. Меняясь, переменная « i », будет изменять индекс элемента arr[i] и проверять его в отношении «arr[i] % 2 == 0» , тем самым вызывая для проверки, каждую итерацию, значение из нового элемента.
Часто требуется подсчитать вхождения в массив определенного значения.
static void Main(string[] args)
{
int count = 0;
Console.WriteLine("Введите искомое число");
int number = int.Parse(Console.ReadLine());
int[] arr = { 1, 2, 4, 4, 5, -1, 7, 8, 9, 7 };
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == number)
{
count++;
}
}
Console.WriteLine($"Количество вхождений числа {number} = {count}");
}
Используя оператор принудительного окончания — break, можно выйти из цикла при достижении некоторого условия.
Ниже код программы, выводящий значения пока, не встретится значение с определенным характеристиками. В данном случае — отрицательное число.
static void Main(string[] args)
{
int[] arr = { 1, 2, 4, 4, 5, -1, 7, 8, 9, 7 };
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] > 0)
{
Console.WriteLine( arr[i]);
}
else
{
break;
}
}
}
В заключении.
При работе с массивами важным условием является понимание, о том, что доступ к значению возможен лишь только по индексу элемента. Поэтому в операциях над значениями массива, необходимо знать его индекс в формате — имя массива [индекс элемента]
На этом занятие закончено.
Вы можете самостоятельно найти задачи для закрепления теоретического материала или для получения задач с ответами отправьте письмо на basicprog@mail.ru
Удачи в выполнении практических заданий!