Понятие и описание типа массив

Понятие структурированного типа данных

Одномерные массивы

Результат работы программы

 

Введите a и b, где b больше a: 2 4

Введите степень n: 3

Значение определенного интеграла при a = 2 и b = 4 равно 67328,1534


Синонимами названия «базовый тип» являются названия «стандартные», «предопределенные». Реализация этих типов заложена в стандарте языка, и программист не вправе изменить предопределенное. Производным типом (определяемым программистом) является такой тип, который должен быть описан пользователем перед употреблением. К производным типам можно отнести массивы, перечисления, функции, структуры, ссылки, объединения и классы. Полезно помнить, что тип данного определяет его размещение в памяти и набор операций.

Структурированный тип представляет собой набор элементов - данных, объединенных программистом в единый блок в соответствии с особенностями решаемой задачи. Данные, входящие в блок, могут быть однотипными или разнотипными, весь блок данных имеет общее имя. Каждый элемент отличается от других либо порядковым номером (индексом) - в массиве, либо своим именем и, возможно, типом - в структуре.

Любой из структурированных типов данных характеризуется множественностью образующих этот тип элементов. Переменная или константа структурированного типа всегда имеет несколько компонент. Каждая из этих компонент, в свою очередь, может принадлежать структурированному типу, что позволяет говорить о возможной вложенности типов.

В С++ можно выделить следующие структурированные типы: массивы, структуры, объединения, классы, файлы.

При использовании простых переменных каждой области памяти для хранения данных соответствует своё имя. Если с группой величин одинакового типа требуется выполнять однообразные действия, им дают одно имя, а различают по порядковому номеру. Это позволяет компактно записывать множество операций с помощью циклов. Конечная именованная последовательность однотипных величин называется массивом. Описание массива в программе отличается от описания простой переменной наличием после имени квадратных скобок, в которых задается количество элементов массива (размер).

Общий вид описания массива:

тип_данных имя_массива [количество_элементов 1]…[количество_элементов n];

Здесь:

1) тип_данных – это тип элементов массива. Это может быть любой стандартный или ранее определённый пользователем тип данных. Например, можно определить массив координат точек на плоскости, тогда один элемент массива содержит две координаты одной точки. Можно определить массив сведений о студенте, тогда один элемент массива содержит разнообразные сведения о студенте, например, фамилия, имя, возраст, адрес и прочие. В этих случаях для определения типа одного элемента массива используется также производный тип, например, массив или структура;

2) имя_массива – правильный идентификатор;

3) количество_элементов – это константа, заданная явно или именованная (константное выражение). Использовать переменные нельзя!;

4) n– размерность массива.

При n = 1 описание соответствует одномерному массиву (вектору),

n = 2 – двумерному массиву (матрице),

n > 2 – многомерный массив.

На размерность массивов ограничений не налагается.

Размерность массива всегда равна количеству индексов (измерений).

Под размером обычно понимают количество элементов массива.

Пример фиксированного массива на С/С++

float a[10]; // описание одномерного массива из 10 вещественных чисел

int Array[10]; // одномерный массив целых чисел с размером 10

// нумерация элементов от 0 до 9

double Array[12][15]; // Двумерный массив вещественных чисел двойной

// точности размера 12 на 15. Нумерация

// по строкам от 0 до 11, по столбцам от 0 до 14

Замечание. При описании массивов квадратные скобки являются элементом синтаксиса, а не указанием на необязательность конструкции.

Элементы массива номеруются с нуля. Инициализирующие значения для массивов записываются в фигурных скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, элементы, для которых значения не указаны, обнуляются:

int b[5] = {3, 2, 1};//b[0] = 3, b[1] = 2, b[2] = 1, b[3] = 0, b[4] = 0

Замечание. К каждому элементу массива имеется прямой доступ. Для этого необходимо указать имя массива и номер элемента (индекс) в квадратных скобках.

Размер массива вместе с типом его элементов определяет объем памяти, необходимый для размещения массива, которое выполняется на этапе компиляции, поэтому размер может быть задан только целой положительной константой или константным выражением. Если при описании массива не указан размер, должен присутствовать инициализатор, в этом случае компилятор выделит память по количеству инициализирующих значений.