- •2. Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Следование
- •Варианты индивидуальных заданий Выполнить поразрядные логические операции над машинными кодами
- •Пример программы
- •Лабораторная работа №2 Операторы ветвления
- •Варианты индивидуальных заданий
- •Пример разработки математической модели и схемы алгоритма решения задачи для варианта задания вида:
- •Текст программы
- •Варианты индивидуальных заданий
- •Лабораторная работа №3 Операторы цикла
- •Пример программы
- •Лабораторная работа №4 Статические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №5 Динамические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №6 Методы сортировки
- •Варианты индивидуальных заданий Методы сортировки
- •Области сортировки элементов матриц
- •Примеры программ
- •Лабораторная работа №7 Передача имён функций в качестве параметров
- •Текст программы
- •Лабораторная работа №8 Строки и текстовые файлы
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №9 Структуры и файлы структур
- •Пример программы
- •Лабораторная работа №10 Линейные списки
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №11 Стек, дек, очередь
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №12 Классы
- •Варианты индивидуальных заданий
- •Примеры программ
- •Литература
Лабораторная работа №5 Динамические массивы
Цель лабораторной работы: изучение структурной организации динамических массивов и способов доступа к их элементам с использованием указателей; совершенствование навыков процедурного программирования на языке C/С++ при решении задач обработки динамических массивов.
Задание на программирование: используя технологию процедурного программирования, разработать программу обработки одномерных и двумерных (матриц) динамических массивов в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.
2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.
3) Построить схему алгоритма решения задачи.
4) Составить программу на языке C/С++.
5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны задаваться либо с использованием специально подобранных арифметических формул, либо вводиться с клавиатуры по запросу. Датчики псевдослучайных чисел использовать запрещается.
Выходные данные должны выводиться на экран с пояснениями.
6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.
7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
Варианты индивидуальных заданий
1 2
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] (см. рисунок).
