2 курс - Основы алгоритмизации _ вариант 3 / Задания / Лабораторная работа 11
.docЛабораторная работа № 11
Обработка матриц
Цель РАБОТЫ
Закрепить навыки обработки матриц.
порядок выполнения работы
Согласно своему варианту разработать алгоритмы решения каждого из трех заданий. В одной программе должны быть выполнены задания 1.1 и 1.2, во второй – задание 2.
Подготовить набор тестов, позволяющий проверить правильность работы программы. Отладить программу, используя подготовленный набор тестов.
Для получения зачета по работе предъявить отчет и программу. Продемонстрировать выполнение программы с контрольным и тестовым набором данных.
РЕКОМЕНДАЦИИ
Программа должна выводить на экран
фамилию, имя и шифр группы исполнителя,
номер и вариант лабораторной работы
условия заданий.
В программе должно быть обеспечено заполнение матрицы различными способами (для чего необходимо написать соответствующие вспомогательные алгоритмы):
квазислучайными числами (в качестве аргументов передаются размеры матрицы и диапазон);
ввод с клавиатуры (в качестве аргументов передаются размеры матрицы);
заполнение из текстового файла (в качестве аргументов передаются размеры матрицы; самостоятельно продумать обработку случая, когда в файле содержится меньше чисел, чем должно быть в матрице).
Выбор способа заполнения предоставить пользователю посредством меню.
Задания 1.1 и 1.2 должны быть решены с использованием вспомогательных алгоритмов (процедур или функций, в зависимости от того, требуется ли получить одно значение, несколько значений или же преобразовать матрицу), нужные данные для решения задачи должны быть запрошены в основном алгоритме и переданы во вспомогательный как параметры.
При выполнении задания 2 необходимо реализовать два метода (соответственно, две программы):
результат поместить во вторую матрицу, куда перенести элементы из первой в соответствии с условием задания;
без использования второй матрицы, путём сдвига строк (столбцов) и изменения верхней границы доступных элементов.
Алгоритм, реализующий изменение размеров матрицы в соответствии с условиями задания 2 следует оформить в виде вспомогательного алгоритма-процедуры, в который следует передать:
исходную матрицу и матрицу результат (запись в другой массив);
матрицу и верхние границы доступных элементов (сдвиги строк/столбцов).
Для решения задания первым способом необходимо сначала выяснить, какого размера будет результирующий массив, для этого следует написать функцию, принимающую исходную матрицу и возвращающую количество строк/столбцов, подлежащих удалению/вставке. В обоих случаях при необходимости следует написать вспомогательные алгоритмы, соответствующие смыслу задания:
возвращающие номера строк/столбцов, содержащих минимальный/максимальный элемент, имеющих минимальную/максимальную сумму,
функции-предикаты, проверяющие элемент на соответствие некоторому условию и другие.
Признаком того, что задача декомпозирована правильно, является размер вспомогательного алгоритма (не более двух экранов, т.е. не более 40-50 строк)
Критерии оценивания работы
В таблице приведены критерии, по которым студент может оценить свою работу.
Критерии оценивания заданий |
Процент |
При наличии синтаксических ошибок (программа не транслируется) работа не оценивается (0 процентов выполнения) |
(набранные баллы)*0 |
Наличие логических ошибок, например, зацикливание программы или возникновение ошибки времени выполнения |
(набранные баллы)*0 |
Небрежное оформление, отсутствие сведений о разработчике, условий задания, наличие предупреждений, недружелюбный интерфейс (0 процентов выполнения) |
-50% |
Отсутствие тестовых данных |
-50% |
Написаны алгоритмы: |
|
|
5 |
|
5 |
|
5 |
|
5 |
|
15 |
|
15 |
|
25 |
|
25 |
Итого |
100% |
ВАРИАНТЫ ЗАДАНИЯ
Вариант 1
1. Дана целочисленная матрица. Определить:
в каждой строке матрицы сменить знак максимального по модулю элемента на противоположный;
максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
2. Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями.
Вариант 2
1. Дана целочисленная матрица. Определить:
количество строк, не содержащих ни одного нулевого элемента;
максимальное из чисел, встречающихся в заданной матрице более одного раза.
2. Вставить первую строку после каждой строки, в которой находится максимальный элемент.
Вариант 3
1. В заданной целочисленной квадратной матрице
Вычислить сумму элементов, расположенных ниже главной диагонали матрицы;
минимум среди сумм модулей элементов диагоналей, параллельной побочной диагонали матрицы.
2. Вставить первую строку за строкой, в которой находится первый минимальный элемент
Вариант 4
1. Дана целочисленная прямоугольная матрица. Определить:
количество столбцов, содержащих хотя бы один нулевой элемент;
произведение элементов матрицы, выделенных черным цветом (элементы диагоналей входят в произведение):
2. Вставить столбец из нулей после столбцов, в которых все элементы положительны. Если таких столбцов нет, то сообщить об этом.
Вариант 5
1. Дана целочисленная квадратная матрица. Определить:
1) среднее арифметическое элементов всех строк, которые не содержат отрицательных элементов;
2) номер столбца, в котором находится самая длинная серия одинаковых элементов.
2. Вставить строку и столбец из нулей перед каждыми строкой и столбцом, где находится минимальный элемент.
Вариант 6
1. Дана целочисленная прямоугольная матрица. Определить:
количество элементов в каждой строке, больших среднего арифметического элементов этой строки;
есть ли в данной матрице два одинаковых элемента.
2. Вставить после каждого столбца, в котором есть заданное число А, последний столбец.
Вариант 7
1. Дана целочисленная квадратная матрица. Найти:
такие k, что k-я строка матрицы совпадает с k-м столбцом (при отсутствии таковых – сообщить);
сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
2. Вставить перед столбцами, в которых нет отрицательных элементов, столбец, состоящий из нулей.
Вариант 8
1. Дана целочисленная прямоугольная матрица.
найти номера строк, все элементы которых нечетные числа (вывести эти номера на экран), если таких нет, то сообщить об этом;
сумму элементов матрицы, выделенных черным цветом:
2. Удалить столбцы, сумма элементов которых больше 20.
Вариант 9
1. Дана целочисленная прямоугольная матрица.
Определить, есть ли строка, состоящая только из положительных элементов;
Найти минимальный и максимальный элемент матрицы. Полученному максимальному значению присвоить знак, который имеет произведение всех элементов матрицы
2. Удалить строку с номером k1 и столбец с номером k2.
Вариант 10
1. Дана целочисленная прямоугольная матрица.
1) Найти сумму модулей элементов, расположенных выше главной диагонали;
2) Поменять местами k-ую строку и k-ый столбец.
2. Матрица А имеет седловую точку Aij, если Aij является минимальным элементом в i- й строке и максимальным в j–м столбце. Удалить строку и столбец, в котором есть седловая точка.
Вариант 11
1. Дана целочисленная прямоугольная матрица. Для данной матрицы
подсчитать количество локальных минимумов. Примечание: элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей;
найти номер последней из строк, содержащей хотя бы один положительный элемент.
2. Удалить столбец (или строку – по желанию пользователя), в котором находится минимальный элемент.
Вариант 12
1. Дана целочисленная прямоугольная матрица. Для данной матрицы
Определить, сколько в данной матрице строк и столбцов, состоящих только из элементов, принадлежащих промежутку от А до В;
Найти среднее арифметическое элементов расположенных ниже главной диагонали.
2. Удалить столбцы, в которых нет нулей.
Вариант 13
1. В заданной целочисленной прямоугольной матрице
Найти набольший элемент среди элементов нечетных строк этой матрицы;
Последний отрицательный элемент каждого столбца матрицы заменить нулём
2. Удалить каждую строку и столбец, на пересечении которых стоит отрицательный элемент.
Вариант 14
1. В заданной целочисленной прямоугольной матрице
Поменять местами столбцы, содержащие максимальный и минимальный элементы;
Найти сумму элементов двух ближайших диагоналей, параллельных главной.
2. Дана матрица. Удалить строки, в которых положительных элементов столько же, сколько отрицательных.
Вариант 15
1. В заданной целочисленной прямоугольной матрице
найти сумму и количество элементов каждого столбца с заданным условием: элементы, попадающие в промежуток от А до В. Результаты занести в другую матрицу (2 строки, столбцов – столько же, сколько в исходной матрице).
Последнее простое число в каждой строке заменить нулём
2. Вставить последнюю строку после каждой строки, в которой находится максимальный элемент.