Общие сведения
Тема 6. Массивы
В примерах программ, представленных ранее, использовались лишь несколько переменных. Однако в программах часто требуется представлять значительно большее количество похожих элементов. Как же эффективно и удобно представить в программе большое количество однотипных элементов данных? Можно было бы попытаться объявлять такие элементы друг за другом так, как это делалось прежде. Однако это слишком трудоемкое занятие и имеет следующие недостатки:
1. Написание программы требует не только большого количества времени, но и необходимости помнить о том, что написано в тысячах строк исходного кода.
2. По такому списку переменных нельзя пройти с помощью оператора цикла, поскольку в программе используется 3000 различных имен. Чтобы создать цикл, требуется одно имя переменной и индекс, который мог бы увеличиваться для доступа к различным элементам. Только переменная типа string позволяет просматривать ее символы в цикле с использованием одного имени и индекса, указываемого в квадратных скобках.
Для выполнения этих задач необходима конструкция, которая содержит весь набор (коллекцию) однородных элементов данных и обладает следующими характеристиками:
1. Конструкция может быть объявлена с использованием одной или двух строк текста исходной программы вне зависимости от количества элементов, которые она представляет.
2. К каждому элементу коллекции доступ осуществляется через одно имя с уникальным индексом, допускающее использование простого цикла для просмотра всего списка элементов.
Класс array (массив) обладает этими и многими другими свойствами, что дает ему возможность представлять как небольшие, так и достаточно большие коллекции элементов данных одного и того же типа.
Массив является именованной структурой данных (или объектом), для которой задано соответствие между множеством индексов и ячеек, называемых элементами массива.
Все элементы массива должны принадлежать одному и тому же типу. Тип элементов массива называется типом массива, или базовым типом массива.
Элементы массива иногда называют индексированными переменными или просто элементами.
Количество элементов в массиве называют длиной массива или его размерностью.
Синтаксический блок:
Объявление массива ::= <Базовый тип> [] <Идентификатор массива>
Создание массива ::= <Базовый тип>[ Длина массива ]
Присваивание ссылки на массив:
<Идентификатор массива> ::= new [ Длина массива ]
<Объявление массива>::= new <Базовый тип> [Длина массива]
Доступ к элементу массива ::=
<Идентификатор массива>[<Числовое выражение> ]
Примечания:
<Базовый тип> в объявлении должен быть идентичен <Базовый тип>
в операторе порождения объекта.
<Длина массива> должна быть положительна и принадлежать к типу
неявно преобразуемому к типу int.
Квадратные скобки являются частью синтаксиса.
Пример. Написать программу, которая: объявляет массив длиной пять элементов, обеспечивает ввод элементов массива с клавиатуры, выводит значения элементов массива в обратном порядке.
using System;
class mass
{
public static void Main()
{
int [] qqq = new int [5];
for (int i = 0; i<qqq.Length; i++)
{
Console.WriteLine("Введите элемент массива номер"+ i);
qqq[i]=Convert.ToInt32(Console.ReadLine());
}
for (int i = qqq.Length-1; i>=0; i--)
{
Console.WriteLine("Элемент массива номер {0} равен {1}",i, qqq[i]);
}
Console.ReadLine();
}
}
Пример. Написать программу, которая выводит только четные элементы массива. Размерность массива должна быть задана с клавиатуры.
using System;
class mass
{
public static void Main()
{
int n;
Console.WriteLine("Введите размерность массива");
n=Convert.ToInt32(Console.ReadLine());
int [] qqq = new int [n];
for (int i = 0; i<qqq.Length; i++)
{
Console.WriteLine("Введите элемент массива номер"+ i);
qqq[i]=Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i<qqq.Length; i++)
{
if (qqq[i]%2==0)
Console.WriteLine("qqq[i]);
}
Console.ReadLine();
}
}