Статические массивы
Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков процедурного программирования на языке C/С++ при решении задач обработки статических массивов.
Задание на программирование: используя технологию процедурного программирования, разработать программу обработки одномерных и двумерных (матриц) статических массивов в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.
2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.
3) Построить схему алгоритма решения задачи.
4) Составить программу на языке C/С++.
5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны задаваться либо с использованием специально подобранных арифметических формул, либо вводиться с клавиатуры по запросу. Датчики псевдослучайных чисел использовать запрещается.
Выходные данные должны выводиться на экран с пояснениями.
6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.
7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
Варианты индивидуальных заданий
1.
1) Дан массив b0, b 1,…, b 2 n-1. Написать программу построения массивов x 0, x 1,…, xn-1 и y 0, y 1,…, yn-1, элементы которых равны соответственно значениям: b 1, b 3,…, b 2 n -1 и b 0, b 2,…, b 2 n-2.
2) В заданной матрице поменять местами первую строку и строку, содержащую наибольший элемент матрицы.
2.
1) Дан целочисленный массив a 0, a 1,…, am-1. Из абсолютных величин его элементов выбрать наибольшую. Далее построить массив, i -й элемент которого равен нулю, если | ai | не совпадает с выбранным значением, и равен 1 в противном случае.
2) В заданной матрице поменять местами последний столбец и столбец, содержащий наименьший положительный элемент матрицы.
3.
1) Написать программу построения массива с элементами:
a 0, a 0+ a 1, a 0+ a 1+ a 2, a 0+ a 1+ a 2+…+ an-1 по заданному массиву a 0, a 1,…, an-1.
2) В заданной матрице поменять местами строку, содержащую максимальный элемент матрицы, и строку, содержащую минимальный элемент матрицы.
4.
1) В вещественном массиве x 0, x 1,…, xn-1 заменить нулем все отрицательные элементы, предшествующие его максимальному элементу.
2) В заданной матрице поменять местами главную и побочную диагонали.
5.
1) Даны массивы a 0, a 1,…, an-1 и b 0, b 1,…, bn-1. Получить новый массив, элементы которого: a 0, b 0, a 1, b 1, a 2, b 2, …, an-1, bn-1.
2) В заданной матрице поменять местами первый столбец со столбцом, содержащим наибольший по абсолютной величине элемент матрицы.
6.
1) Дан вещественный массив x 0, x 1, x2,…, xm. Все его элементы, следующие за наибольшим элементом, заменить значением b.
2) В заданной матрице поменять местами среднюю строку и средний столбец.
7.
1) Даны вещественные массивы x 0, x 1,…, xn-1 и y 0, y 1,…, yn-1. Преобразовать их по правилу: большее из значений xi и yi принять в качестве нового значения xi, а меньшее – в качестве нового значения yi.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей наибольший отрицательный элемент матрицы.
8.
1) Дан целочисленный массив a 0, a 1, a 2,…, an-1. Если в массиве нет ни одной компоненты с заданным значением К, то первую по порядку компоненту этого массива, не меньшую всех остальных компонент, заменить значением К.
2) В заданной матрице поменять местами первую строку и первый столбец.
9.
1) Написать программу, осуществляющую циклический сдвиг компонент массива x 0, x 1, x 2,…, xn-1 (n >2) на одну позицию влево, то есть получающую массив x 1, x 2, x 3,…, xn-1, x 0.
2) В заданной матрице поменять местами последний столбец со столбцом, содержащим наименьший положительный элемент матрицы.
10.
1) Дан вещественный массив a 0, a 1, a 2,…, an-1. Если в этом массиве есть хотя бы один элемент, значение которого меньше Р, то значения всех отрицательных элементов массива заменить их квадратами, в противном случае значений всех элементов массива умножить на число B.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей наименьший по абсолютной величине элемент матрицы.
11.
1) Дан вещественный массив x 0, x 1, x 2,…, xn-1. Определить сумму и количество компонент этого массива, принадлежащих отрезку [ a, b ].
2) В заданной матрице поменять местами первый столбец со столбцом, содержащим наибольший по абсолютной величине элемент главной диагонали.
12.
1) Преобразовать массив а 0, а 1, а 2,…, аn-1 так, чтобы его элементы расположились в обратном порядке: аn-1, аn -2,…, а 0.
2) В заданной матрице поменять местами две строки: строку с указанным номером и строку, содержащую наименьший положительный элемент матрицы.
13.
1) Написать программу выбора среди элементов массива а 0, а 1, а 2,…, аn-1 наибольшего среди остающихся после выбрасывания наибольшего и всех ему равных. Предполагается, что не все элементы равны между собой.
2) В заданной матрице поменять местами последний столбец и побочную диагональ.
14.
1) Из массива а 0, а 1, а 2,…, а 3 n-1 получить массив b 0, b 1,…, bn-1, очередная компонента которого равна среднему арифметическому тройки очередных компонент массива а.
2) В заданной матрице поменять местами столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы.
15.
1) Дан целочисленный массив b 0, b 1,…, bn-1. Если элементы этого массива не образуют убывающей последовательности, то заменить его отрицательные элементы единицами.
2) В заданной матрице поменять местами первую строку и строку, содержащую максимальный отрицательный элемент матрицы.
16.
1) Дан целочисленный массив а 0, а 1, а 2,…, аn-1, среди элементов которого могут быть равные. Из каждой группы равных между собой элементов нужно оставить только один, выбросив все остальные. Освободившийся хвост массива заполнить нулями.
2) В заданной матрице поменять местами первый столбец и побочную диагональ.
17.
1) Дан вещественный массив а 0, а 1, а 2,…, аn-1. Если в этом массиве есть хотя бы один элемент, принадлежащий отрезку [ x, y ], то все элементы, не принадлежащие этому отрезку, заменить значением К.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей минимальный положительный элемент матрицы.
18.
1) Дан массив а 0, а 1, а 2,…, аn-1. Переставить его элементы так, чтобы в начале массива расположились все его неотрицательные элементы, а в конце – отрицательные.
2) В заданной матрице поменять местами последний столбец и столбец, содержащий минимальный по абсолютной величине элемент матрицы.
19.
1) Написать программу выполнения следующего задания: из всех непрерывных участков массива а 0, а 1, а 2,…, аn-1, состоящих из нулей, выбрать наибольший по длине. Вывести индексы его начала и конца.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей максимальный отрицательный элемент матрицы.
20.
1) Написать программу, осуществляющую циклический сдвиг компонент массива
x 0, x 1,…, xn-1 на одну позицию вправо, то есть получающую массив xn-1, x 0, x 1,…, x n-2.
2) В заданной матрице поменять местами последний столбец со столбцом, содержащим максимальный элемент матрицы.
21.
1) Дан вещественный массив x 0, x 1, x 2,…, xm-1. Все его элементы, предшествующие наибольшему элементу, заменить значением c.
2) В заданной матрице поменять местами первую строку и главную диагональ.
22.
1) Дан вещественный массив x 0, x 1, x 2,…, xm-1. Все его положительные элементы, следующие за наименьшим элементом, заменить значением d.
2) В заданной матрице поменять местами главную диагональ и последний столбец.
23.
1) Дан массив b 0, b 1, b 2,…, b 2 m-1. Написать программу построения массива с элементами, соответственно равными: b 2 m-1, b 0, b 2 m -2, b 1, …, bm, bm-1.
2) В заданной матрице поменять местами столбец, содержащий максимальный отрицательный элемент матрицы, и столбец, содержащий минимальный положительный элемент матрицы.
24.
1) Дан массив а 0, а 1, а 2,…, а 2 n-1. Написать программу построения массива с элементами, соответственно равными: а 0, аn, а 1, а n +1,…, аn-1, a 2 n-1.
2) В заданной матрице поменять местами последний столбец и столбец, содержащий минимальный положительный элемент матрицы.
25.
1) Найти сумму и произведение всех элементов массива b 0, b 1, b 2,…, bm-1.
2) В заданной матрице из целых чисел поменять местами первую строку и строку, содержащую максимальный отрицательный элемент матрицы.
26.
1) Найти сумму положительных и число отрицательных элементов массива
а 0, а 1, а 2,…, аn-1.
2) В заданной матрице найти сумму элементов, принадлежащих главной диагонали, и произведение элементов, принадлежащих побочной диагонали.
27.
1) Написать программу вычисления числа положительных и суммы отрицательных элементов массива x 0, x 1, x 2,…, xm-1.
2) В заданной матрице целых чисел найти сумму элементов, лежащих по её периметру (принадлежащих первой и последней строке и первому и последнему столбцу матрицы).
28.
1) Заданы упорядоченный по возрастанию массив y 0 < y 1 <…< ym-1 и величина x. Известно, что y 0 < x < ym-1. Написать программу определения целого числа К, удовлетворяющего условию: yk -1 < x < yk.
2) В заданной матрице целых чисел найти сумму элементов, лежащих выше главной диагонали.