Добавил:
Education Must Be Free Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / LR_6_Obrabotka_massivov.docx
Скачиваний:
12
Добавлен:
22.09.2021
Размер:
218.7 Кб
Скачать

У тверждаю

Ректор университета

_______________ О.Н. Федонин

« ___ » _____________2017 г.

Алгоритмические языки обработка массивов

Методические указания

к выполнению лабораторной работы

Брянск 2017

У ДК 004.432.2

Алгоритмические языки. Обработка массивов [Электронный ресурс]: методические указания к выполнению лабораторной работы. – Брянск: БГТУ, 2017. –23с.

Разработали:

А.П. Горлов, канд.техн.наук., доц.

М.Л. Гулак, канд.техн.наук., доц.

Рекомендовано кафедрой «Системы информационной безопасности» БГТУ (протокол № 11 от 28.08.2017).

Научный редактор М.Ю. Рытов

Компьютерный набор А.П. Горлов

Методические указания публикуются в авторской редакции

Подписано в печать 28.08.17 г. Формат 60х84 1/16.

Усл. печ.л. 1,33 Уч.-изд.л. 1,33

Брянский государственный технический университет

Кафедра «Системы информационной безопасности», 58-83-54

241035, Брянск, бульвар 50 лет Октября, 7.

1. ЦЕЛЬ РАБОТЫ

Цель работы получение навыков работы с операторами циклов while, for и do while.

Продолжительность работы: 4 ч.

2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

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

Примеры описания массива:

int mas[10]; //описан массив с именем mas, состоящий из 10 //целочисленных элементов

double A[5], B[7]; //описаны два вещественных массива A и B, //состоящие из 5 и 7 элементов

При описании массива используются те же модификаторы класса памяти, const, что и для простых переменных. [класс памяти][const]тип идентификатор[размер][инициализация];

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

const int N = 100;

double Ar1[N];

long int Ar2[2*N];

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

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

Например,

int mas[10] = {-3, 1, 5};

//первые 3 элемента массива mas

//инициализируются значениями -3, 1, 5,

//а остальные значением 0

double A[5] = {0.1, 0.2, 0.3, 0.4, 0.5}, B[7] = {0.0};

//все элементы массива A инициализированы

//значениями из списка, все 7 элементов

//массива B инициализированы значением 0

Если при описании в квадратных скобках опущен размер массива, то обязательно должна присутствовать инициализация массива. В этом случае размер массива будет равен количеству инициализирующих значений. int C[] = {9, 5, 1}; //описан массив C из трех элементов

Для доступа к элементу массива используется операция индексации: после имени массива в квадратных скобках указывается индекс (номер) элемента. Элементы массива нумеруются с нуля, т.е. индекс может принимать значения от 0 до количества элементов массива минус единицу. Обработка массива, как правило, производится в циклах. Например,

A[0] = A[0] + 10;

A[1] = A[2]*B[6];

for (int i = 0; i < 10; i++) mas[i] *= 2;

В оперативной памяти элементы массива располагаются непрерывно в соседних ячейках.

mas[0]

mas[1]

mas[2]

mas[3]

mas[4]

mas[5]

mas[6]

-3

1

5

0

0

0

0

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

Рассмотрим принципы работы с одномерными массивами на следующих примерах.

Пример 1. Вычисление суммы квадратов элементов массива.

#include "iostream"

int main()

{

const int N = 10;

int i;

double mas[N] = {0.0}, Sum = 0.0;

//ввод массива

cout << "Введите элементы массива:\n";

for (i = 0; i < N; i++)

{

cout << "mas[" << i << "] -> ";

cin >> mas[i];

}

//подсчет суммы квадратов элементов массива

for (i = 0; i < N; i++) Sum = Sum + mas[i]*mas[i];

cout << "Сумма квадратов элементов равна " << Sum << "\n";

return 0;

}

Пример 2. Вычисление диапазона значений элементов массива (диапазон значений равен разности значения максимального элемента и значения минимального элемента).

... const int N = 10;

int i;

double mas[N], masMin, masMax, range;

//ввод массива

...

//находим минимальное и максимальное значение элементов массива

masMin = mas[0];

masMax = mas[0];

for (i = 1; i < N; i++)

{

if (mas[i] < masMin) masMin = mas[i];

if (mas[i] > masMax) masMax = mas[i];

}

//вычисляем диапазон

range = masMax – masMin;

Пример 3. Поиск индекса минимального элемента.

... const int N = 10;

int i, indMin;

double mas[N];

...

//находим индекс минимального элемента массива

indMin = 0;

for (i = 1; i < N; i++) if (mas[i] < mas[indMin]) indMin = i;

...