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

Статические массивы

Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков процедурного программирования на языке C/С++ при решении задач обработки статических массивов.

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

Порядок выполнения работы:

1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.

2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.

3) Построить схему алгоритма решения задачи.

4) Составить программу на языке C/С++.

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

Выходные данные должны выводиться на экран с пояснениями.

6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.

7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.

8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.


Варианты индивидуальных заданий

1.

1) Дан массив b0, b1,…, b2n-1. Написать программу построения массивов x0, x1,…, xn-1 и y0, y1,…,yn-1, элементы которых равны соответственно значениям: b1, b3,…, b2n-1 и b0, b2,…, b2n-2.

2) В заданной матрице поменять местами первую строку и строку, содержащую наибольший элемент матрицы.

2.

1) Дан целочисленный массив a0, a1,…, am-1. Из абсолютных величин его элементов выбрать наибольшую. Далее построить массив, i-й элемент которого равен нулю, если |ai| не совпадает с выбранным значением, и равен 1 в противном случае.

2) В заданной матрице поменять местами последний столбец и столбец, содержащий наименьший положительный элемент матрицы.

3.

1) Написать программу построения массива с элементами:

a0, a0+a1, a0+a1+a2, a0+a1+a2+…+an-1 по заданному массиву a0, a1,…, an-1.

2) В заданной матрице поменять местами строку, содержащую максимальный элемент матрицы, и строку, содержащую минимальный элемент матрицы.

4.

1) В вещественном массиве x0, x1,…, xn-1 заменить нулем все отрицательные элементы, предшествующие его максимальному элементу.

2) В заданной матрице поменять местами главную и побочную диагонали.

5.

1) Даны массивы a0, a1,…, an-1 и b0, b1,…, bn-1. Получить новый массив, элементы которого: a0, b0, a1, b1, a2, b2, …, an-1, bn-1.

2) В заданной матрице поменять местами первый столбец со столбцом, содержащим наибольший по абсолютной величине элемент матрицы.

6.

1) Дан вещественный массив x0, x1, x2,…, xm. Все его элементы, следующие за наибольшим элементом, заменить значением b.

2) В заданной матрице поменять местами среднюю строку и средний столбец.

7.

1) Даны вещественные массивы x0, x1,…, xn-1 и y0, y1,…, yn-1. Преобразовать их по правилу: большее из значений xi и yi принять в качестве нового значения xi, а меньшее – в качестве нового значения yi.

2) В заданной матрице поменять местами последнюю строку со строкой, содержащей наибольший отрицательный элемент матрицы.

8.

1) Дан целочисленный массив a0, a1, a2,…, an-1. Если в массиве нет ни одной компоненты с заданным значением К, то первую по порядку компоненту этого массива, не меньшую всех остальных компонент, заменить значением К.

2) В заданной матрице поменять местами первую строку и первый столбец.

9.

1) Написать программу, осуществляющую циклический сдвиг компонент массива x0, x1, x2,…, xn-1 (n>2) на одну позицию влево, то есть получающую массив x1, x2, x3,…, xn-1, x0.

2) В заданной матрице поменять местами последний столбец со столбцом, содержащим наименьший положительный элемент матрицы.

10.

1) Дан вещественный массив a0, a1, a2,…, an-1. Если в этом массиве есть хотя бы один элемент, значение которого меньше Р, то значения всех отрицательных элементов массива заменить их квадратами, в противном случае значений всех элементов массива умножить на число B.

2) В заданной матрице поменять местами последнюю строку со строкой, содержащей наименьший по абсолютной величине элемент матрицы.

11.

1) Дан вещественный массив x0, x1, x2,…, 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,…, а3n-1 получить массив b0, b1,…, bn-1, очередная компонента которого равна среднему арифметическому тройки очередных компонент массива а.

2) В заданной матрице поменять местами столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы.

15.

1) Дан целочисленный массив b0, b1,…, 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) Написать программу, осуществляющую циклический сдвиг компонент массива

x0, x1,…, xn-1 на одну позицию вправо, то есть получающую массив xn-1, x0, x1,…, xn-2.

2) В заданной матрице поменять местами последний столбец со столбцом, содержащим максимальный элемент матрицы.

21.

1) Дан вещественный массив x0, x1, x2,…, xm-1. Все его элементы, предшествующие наибольшему элементу, заменить значением c.

2) В заданной матрице поменять местами первую строку и главную диагональ.

22.

1) Дан вещественный массив x0, x1, x2,…, xm-1. Все его положительные элементы, следующие за наименьшим элементом, заменить значением d.

2) В заданной матрице поменять местами главную диагональ и последний столбец.

23.

1) Дан массив b0, b1, b2,…, b2m-1. Написать программу построения массива с элементами, соответственно равными: b2m-1, b0, b2m-2, b1, …, bm, bm-1.

2) В заданной матрице поменять местами столбец, содержащий максимальный отрицательный элемент матрицы, и столбец, содержащий минимальный положительный элемент матрицы.

24.

1) Дан массив а0, а1, а2,…, а2n-1. Написать программу построения массива с элементами, соответственно равными: а0, аn, а1, аn+1,…, аn-1, a2n-1.

2) В заданной матрице поменять местами последний столбец и столбец, содержащий минимальный положительный элемент матрицы.

25.

1) Найти сумму и произведение всех элементов массива b0, b1, b2,…, bm-1.

2) В заданной матрице из целых чисел поменять местами первую строку и строку, содержащую максимальный отрицательный элемент матрицы.

26.

1) Найти сумму положительных и число отрицательных элементов массива

а0, а1, а2,…, аn-1.

2) В заданной матрице найти сумму элементов, принадлежащих главной диагонали, и произведение элементов, принадлежащих побочной диагонали.

27.

1) Написать программу вычисления числа положительных и суммы отрицательных элементов массива x0, x1, x2,…, xm-1.

2) В заданной матрице целых чисел найти сумму элементов, лежащих по её периметру (принадлежащих первой и последней строке и первому и последнему столбцу матрицы).

28.

1) Заданы упорядоченный по возрастанию массив y0 < y1 <…< ym-1 и величина x. Известно, что y0 < x < ym-1. Написать программу определения целого числа К, удовлетворяющего условию: yk-1 < x < yk.

2) В заданной матрице целых чисел найти сумму элементов, лежащих выше главной диагонали.