Динамические массивы
Цель лабораторной работы: изучение структурной организации динамических массивов и способов доступа к их элементам с использованием указателей; совершенствование навыков процедурного программирования на языке C/С++ при решении задач обработки динамических массивов.
Задание на программирование: используя технологию процедурного программирования, разработать программу обработки одномерных и двумерных (матриц) динамических массивов в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.
2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.
3) Построить схему алгоритма решения задачи.
4) Составить программу на языке C/С++.
5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны задаваться либо с использованием специально подобранных арифметических формул, либо вводиться с клавиатуры по запросу. Датчики псевдослучайных чисел использовать запрещается.
Выходные данные должны выводиться на экран с пояснениями.
6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.
7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
Варианты индивидуальных заданий
12
8 3
7 4
6 5
1.
1) Дан массив b0, b1, b2,…, bn-1. Определить сумму значений всех его положительных элементов и количество отрицательных элементов, лежащих между максимальным по абсолютной величине элементом и первым положительным элементом после него.
2) В заданной квадратной матрице размера 2n*2n найти среднее арифметическое значение элементов области 1 (см. рисунок).
2.
1) Дан массив a0, a1, a2,…, an-1. Определить произведение значений всех его положительных элементов, лежащих между максимальным отрицательным и минимальным положительным элементами массива.
2) В заданной квадратной матрице размера 2n*2n найти среднее геометрическое значение элементов области 2 (см. рисунок).
3.
1) Дан массив x0, x1, x2,…, xn-1. Определить сумму значений всех его элементов, лежащих между минимальным положительным элементом и первым отрицательным элементом после него.
2) В заданной квадратной матрице размера 2n*2n найти среднее геометрическое значение отрицательных элементов области 3 (см. рисунок).
4.
1) Дан массив x0, x1, x2,…, xn-1. Определить сумму значений максимального и минимального элементов массива и количество элементов, лежащих между ними.
2) В заданной квадратной матрице размера 2n*2n найти сумму абсолютных значений элементов области 4 (см. рисунок).
5.
1) Дан массив y0, y1, y2,…, yn-1. Определить произведение значений максимального по абсолютной величине и минимального по абсолютной величине элементов массива и сумму значений элементов, лежащих между ними.
2) В заданной квадратной матрице размера 2n*2n найти среднее арифметическое значение положительных элементов области 5 (см. рисунок).
6.
1) Дан массив x0, x1, x2,…, xn-1. Определить произведение значений элементов массива с чётными номерами и сумму значений элементов с нечётными номерами.
2) В заданной квадратной матрице размера 2n*2n найти среднее геометрическое значение положительных элементов области 6 (см. рисунок).
7.
1) Дан массив c0, c1, c2,…, cn-1. Определить произведение абсолютных значений элементов массива с чётными номерами и сумму значений элементов с нечётными номерами, номера которых больше номера элемента с максимальным значением.
2) В заданной квадратной матрице размера 2n*2n найти сумму значений отрицательных элементов области 7 (см. рисунок), умноженную на их количество.
8.
1) Дан массив b0, b1, b2,…, bn-1. Определить произведение суммы значений отрицательных элементов массива, лежащих между элементами с максимальным и минимальным значениями, на их количество.
2) В заданной квадратной матрице размера 2n*2n найти сумму абсолютных значений элементов области 8 (см. рисунок), умноженную на количество отрицательных элементов, принадлежащих этой области.
9.
1) Дан массив a0, a1, a2,…, an-1. Определить количество и произведение элементов массива, лежащих между элементами с максимальным по абсолютной величине значением и с минимальным по абсолютной величине значением.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк областей 1 и 2 (см. рисунок) с одинаковыми номерами.
10.
1) Дан массив x0, x1, x2,…, xn-1. Определить произведение значений положительных элементов массива, лежащих между элементами с максимальным по абсолютной величине значением и с минимальным значением.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов столбцов областей 3 и 4 (см. рисунок) с одинаковыми номерами.
11.
1) Дан массив y0, y1, y2,…, yn-1. Определить количество и произведение значений отрицательных элементов массива, лежащих между элементами с минимальным по абсолютной величине значением и с максимальным значением.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов столбцов областей 7 и 8 (см. рисунок) с одинаковыми номерами.
12.
1) Дан массив z0, z1, z2,…, zn-1. Определить количество и сумму значений положительных элементов массива с чётными номерами, лежащих между элементами с минимальным значением и с максимальным значением.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк областей 5 и 6 (см. рисунок) с одинаковыми номерами.
13.
1) Дан массив a0, a1, a2,…, an-1. Определить произведение значений положительных элементов массива, лежащих между элементом с минимальным по абсолютной величине значением и элементом с номером n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк областей 3 и 8 (см. рисунок) с одинаковыми номерами.
14.
1) Дан массив b0, b1, b2,…, bn-1. Определить сумму абсолютных значений элементов массива, лежащих между элементом с минимальным положительным значением и элементом с номером n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк областей 4 и 7 (см. рисунок) с одинаковыми номерами.
15.
1) Дан массив c0, c1, c2,…, cn-1. Определить произведение абсолютных значений отрицательных элементов массива, лежащих между элементом с максимальным отрицательным значением и элементом с номером n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов столбцов областей 1 и 6 (см. рисунок) с одинаковыми номерами.
16.
1) Дан массив d0, d1, d2,…, dn-1. Определить количество и сумму значений отрицательных элементов массива, лежащих между элементом с минимальным положительным значением и элементом с номером n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов столбцов областей 2 и 5 (см. рисунок) с одинаковыми номерами.
17.
1) Дан массив x0, x1, x2,…, xn-1. Определить количество и произведение значений положительных элементов массива, лежащих между элементом с максимальным абсолютным значением и элементом с номером n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 2 и элементов столбцов области 8 (см. рисунок) с одинаковыми номерами.
18.
1) Дан массив y0, y1, y2,…, yn-1. Определить сумму значений элементов массива с чётными номерами, лежащих между элементом с минимальным положительным значением и элементом с номером n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 8 и элементов столбцов области 6 (см. рисунок) с одинаковыми номерами.
19.
1) Дан массив z0, z1, z2,…, zn-1. Определить произведение значений элементов массива с нечётными номерами, лежащих между элементом с минимальным значением и первым положительным элементом с номером большим, чем n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области [1+2] и элементов столбцов области [7+8] (см. рисунок) с одинаковыми номерами.
20.
1) Дан массив a0, a1, a2,…, an-1. Определить сумму значений элементов массива с чётными номерами, лежащих между элементом с максимальным значением среди отрицательных элементов массива и последним отрицательным элементом с номером меньшим, чем n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области [1+2+3] и элементов столбцов области [6+7+8] (см. рисунок) с одинаковыми номерами.
21.
1) Дан массив b0, b1, b2,…, bn-1. Определить произведение значений элементов массива с чётными номерами, лежащих между элементом с максимальным абсолютным значением и последним отрицательным элементом с номером меньшим, чем n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области [5+6+7] и элементов столбцов области [2+3+4] (см. рисунок) с одинаковыми номерами.
22.
1) Дан массив c0, c1, c2,…, cn-1. Определить количество и сумму абсолютных значений элементов массива с чётными номерами, лежащих между элементом с минимальным положительным значением и первым отрицательным элементом с номером большим, чем n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 6 и элементов столбцов области 4 (см. рисунок) с одинаковыми номерами.
23.
1) Дан массив d0, d1, d2,…, dn-1. Определить сумму значений элементов массива с чётными номерами, лежащих между первым положительным элементом и последним отрицательным элементом массива.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 1 и элементов столбцов области 7 (см. рисунок) с одинаковыми номерами.
24.
1) Дан массив x0, x1, x2,…, xn-1. Определить абсолютную величину суммы значений элементов массива, лежащих между элементом с минимальным положительным значением и первым положительным элементом с номером большим, чем n/2.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 7 и элементов столбцов области 5 (см. рисунок) с одинаковыми номерами.
25.
1) Дан массив y0, y1, y2,…, yn-1. Определить сумму значений элементов массива с нечётными номерами, лежащих между элементом с минимальным по абсолютной величине значением и последним положительным элементом массива.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 5 и элементов столбцов области 3 (см. рисунок) с одинаковыми номерами.
26.
1) Дан массив z0, z1, z2,…, zn-1. Определить произведение суммы значений положительных элементов массива, лежащих между элементом с максимальным значением среди отрицательных элементов массива и последним отрицательным элементом массива, на их количество.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 3 и элементов столбцов области 1 (см. рисунок) с одинаковыми номерами.
27.
1) Дан массив a0, a1, a2,…, an-1. Определить произведение суммы значений отрицательных элементов массива, предшествующих последнему положительному элементу, на общее количество отрицательных элементов массива.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 4 и элементов столбцов области 2 (см. рисунок) с одинаковыми номерами.
28.
1) Дан массив b0, b1, b2,…, bn-1. Определить произведение суммы абсолютных значений элементов массива с чётными номерами, предшествующих последнему отрицательному элементу массива, на общее количество положительных элементов массива.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области [5+6] и элементов столбцов области [3+4] (см. рисунок) с одинаковыми номерами.
29.
1) Дан массив c0, c1, c2,…, c2m-1. Написать программу преобразования массива в массив с элементами, соответственно равными: c2m-1, c2m-2,…, cm, c0, c1, …, cm-1. Дополнительные массивы не использовать.
2) В заданной квадратной матрице размера 2n*2n найти среднее арифметическое значение элементов области [5+6+7] (см. рисунок).
30.
1) Дан массив d0, d1, d2,…, d3m-1. Написать программу построения массива с элементами, равными: d0, d3, d6, …, d3m-3, d1, d4, …, d3m-2, d2, d5, …, d3m-1.
2) В заданной квадратной матрице размера 2n*2n найти среднее геометрическое значение элементов области [8+1+2] (см. рисунок).