Лабораторная
работа № 4
Составление
программ с использованием массивов
Цель работы:
1) изучить описание, ввод и вывод
статических массивов на языке С++; 2)
освоить обработку массивов с использованием
вложенных циклов.
Теоретические
сведения
Массив
- это множество однотипных переменных,
занимающих смежные ячейки памяти и
обозначенных одним именем.
1.
С++ позволяет изменять размер массива.
Т.е добавлять элемент.
2.
В памяти элементы многомерных массивов
расположены последовательно в ячейках
в следующем порядке: сначала располагается
первая строка, за ней - вторая, третья
и т.д.
3.
Необходимо использовать для массивов
только предопределенные типы.
4.
Одномерные массивы
Одномерный массив
или вектор - это множество переменных,
совместно использующих одно и то же
имя (имя массива). В одномерном массиве
доступ к отдельной переменной
осуществляется по индексу (порядковому
номеру).
Синтаксис для
объявления одномерного массива:
тип_элемента_массива
имя_массива [число_элементов];
Пример 1. Объявление
одномерных массивов
int
MyArr
[10]; char
Literal [31]; double
x_arr [100];
При объявлении
одномерных массивов в языке С++ необходимо
соблюдение правил:
1) в объявлении
массива указывается количество
элементов;
2) индекс первого
элемента массива равен 0. Это значение
нельзя изменить или переопределить;
3) индекс последнего
элемента определяется как количество
элементов минус 1.
Доступ к элементам
массива осуществляется через имя
массива и индекс элемента, указываемый
в квадратных скобках: a[1],
b[25].
При работе с
массивами рекомендуется проверять
допустимость значения индекса массива.
Допустимыми являются значения индексов
в диапазоне от 0 до число_элементов –
1.
Ввод массива
осуществляется с использованием цикла:
Если начальных
значений задано меньше, чем элементов
в массиве, компилятор присвоит оставшимся
элементам массива значение 0. Если
количество начальных значений больше,
чем число в квадратных скобках, компилятор
выдаст сообщение об ошибке.
Точное число
начальных значений можно не указывать,
так как язык С++ позволяет задавать
размер массива автоматически, используя
количество элементов в соответствующем
списке начальных значений. Следовательно,
число в квадратных скобках при описании
массива может отсутствовать. В этом
случае размер массива определит
компилятор, например, double x[ ]= {1,2,3};
Многомерные
массивы
В многомерном
массиве каждый дополнительный индекс
обеспечивает дополнительное средство
доступа к конкретному элементу, или
дополнительное измерение. Наиболее
распространенным видом многомерного
массива являются двумерные массивы
или матрицы.
Общий
синтаксис для объявления двумерных и
трехмерных массивов:
тип_элемента
имя_массива [размер_1] [размер_2];
тип_элемента
имя_массива [размер_1 ] [размер_2] [размер_3];
Как и в одномерных
массивах, каждый индекс имеет нижнюю
границу, равную 0, а число элементов для
каждого уровня индекса определяется
при объявлении многомерного массива.
Пример 5.
Объявление многомерных массивов
double
matrix
A
[100][10];
char
table
[41][22][3];
int
index
[7][12];
Большинство
компиляторов хранит элементы многомерного
массива друг за другом, т.е. как длинный
одномерный массив. Исполняемый модуль
вычисляет, где расположен искомый
элемент в этом массиве.
Однако заполнение
и обработку многомерных массивов чаще
всего производят пользуясь вложенными
циклами.
С++ дает возможность
инициализировать многомерный массив
способом, аналогичным инициализации
одномерных массивов. Для этого нужно
использовать список значений,
расположенных в той же последовательности,
в которой элементы многомерного массива
хранятся в памяти ЭВМ.
При обработке
матриц чаще всего встречаются следующие
типы задач:
работа с матрицей
в целом;
работа со строкой
(столбцом) матрицы;
работа с диагональными
элементами.
При работе с
матрицей в целом, в качестве объекта
для сравнения выбирают элемент с
индексами (0,0), затем, последовательно
перебирая все элементы матрицы, выполняют
необходимые действия. Перебор элементов
происходит с использованием вложенных
циклов.
5. допустимы
объявления:
int
hats [3]= {10,20,30};
int
caps
[ ] = {5,7,9},компилятор автоматически
вычислит размер массива и создаст
массив из 3 элементов.