Информатика: Методические указания к лабораторным работам № 1-5. Функции. Обработка символьных данных. Организация работы с файлами, страница 7

Вариант 10

Заданы вещественные массивы Z1[8],Z2[14].Найти сумму элементов в ячейках с четными номерами и произведение элементов в ячейках с нечетными номерами в каждом из массивов.

Вариант 11

Заданы вещественные массивы А1[4][3], А2[3][4]. Найти сумму элементов второго столбца и произведение элементов второй строки в каждом из массивов.

Вариант 12

Заданы целые массивы А3[5][5], А4[5][5]. Найти сумму и произведение элементов на главной диагонали в каждом из массивов.

Вариант 13

Заданы вещественные массивы B1[4][3],B2[3][4]. Найти минимальный и максимальный элементы в каждом из массивов.

Вариант 14

Заданы целые массивы C1[3][4],C2[2][3]. Найти сумму элементов после первого нулевого элемента (элементы массивов рассматривать последовательно по строкам) в каждом из массивов.

Вариант 15

Заданы вещественные массивы D1[5][2],D2[4][2].Поменять в них вторую и третью строки.

Вариант 16

Заданы целые массивы E1[3][3],E2[4][4]. Вычислить сумму и произведение элементов во второй строке каждого из массивов.

Вариант 17

Заданы целые массивы K1[3][2],K2[2][3]. Найти произведение и сумму максимальных элементов в каждом столбце в каждом из массивов.

Вариант 18

Сформировать единичные матрицы в массивах L1[4][4],L2[3][3].

Вариант 19

Заданы вещественные массивы M1[3][4],M2[2][3]. Найти сумму элементов  > 2 и произведение элементов  < 1 в каждом из массивов.

Вариант 20

Заданы массивы N1[3][3],N2[3][3]. Найти сумму элементов под главной диагональю в каждом из массивов.

Контрольные вопросы

1.  Как записать заголовок функции?

2.  Назначение оператора return.

3.  Как вызвать функцию?

4.  Какое соотношение между формальными и фактическими параметрами должно выполняться обязательно?

5.  Форма записи и назначение прототипа функции.

6.  Как вернуть из вызываемой функции несколько значений?

7.  В чем разница между ссылочным параметром и указателем?

8.  Как передать в функцию одномерный массив?

9.  Как передать в функцию двумерный массив?

10.  Что такое перегрузка функций?

11.  Как записывается заголовок шаблона?

12.  Какой параметр называется шаблонным?

13.  Как сгенерировать последовательность вещественных псевдослучайных чисел в диапазоне от –2 до 7?

 
 



Лабораторная работа № 2

динамические массивы

Цель работы

1. Знакомство со структурой стандартной библиотеки шаблонов C++ STL.

2. Получение практических навыков работы с последовательным контейнером vectorSTL

Пояснения к работе

Динамические массивы

Динамическим массивом называют массив с переменным размером, т. е. массив, количество элементов которого может изменяться во время выполнения программы.

Для создания динамических массивов применяются операции new и delete. Рассмотрим фрагмент кода создания одномерного динамического массива на 10 элементов:

double *pt = new double [10];

Здесь pt – указатель на выделенный участок памяти под массив вещественных чисел типа double.

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

delete [] pt;

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

При традиционном подходе к работе с динамическими массивами (операции new и delete) вся эта процедура возлагаются на пользова-теля.

Кроме того, что она громоздкая, она и ответственная. Некорректное использование операторов new и delete может привести к непредсказуемым последствиям: зависаниям программы, порче содержимого памяти и др.