Общие сведения

Тема 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();

}

}