Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
17.04.2013
Размер:
35.84 Кб
Скачать

Лабораторная работа № 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 элементов.

Соседние файлы в папке С++.ЭКТ1