Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
19.08.2022
Размер:
97.28 Кб
Скачать

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

Обработка матриц

  1. Цель РАБОТЫ

Закрепить навыки обработки матриц.

  1. порядок выполнения работы

    1. Согласно своему варианту разработать алгоритмы решения каждого из трех заданий. В одной программе должны быть выполнены задания 1.1 и 1.2, во второй – задание 2.

    2. Подготовить набор тестов, позволяющий проверить правильность работы программы. Отладить программу, используя подготовленный набор тестов.

    3. Для получения зачета по работе предъявить отчет и программу. Продемонстрировать выполнение программы с контрольным и тестовым набором данных.

  1. РЕКОМЕНДАЦИИ

    1. Программа должна выводить на экран

  • фамилию, имя и шифр группы исполнителя,

  • номер и вариант лабораторной работы

  • условия заданий.

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

  • квазислучайными числами (в качестве аргументов передаются размеры матрицы и диапазон);

  • ввод с клавиатуры (в качестве аргументов передаются размеры матрицы);

  • заполнение из текстового файла (в качестве аргументов передаются размеры матрицы; самостоятельно продумать обработку случая, когда в файле содержится меньше чисел, чем должно быть в матрице).

Выбор способа заполнения предоставить пользователю посредством меню.

    1. Задания 1.1 и 1.2 должны быть решены с использованием вспомогательных алгоритмов (процедур или функций, в зависимости от того, требуется ли получить одно значение, несколько значений или же преобразовать матрицу), нужные данные для решения задачи должны быть запрошены в основном алгоритме и переданы во вспомогательный как параметры.

    2. При выполнении задания 2 необходимо реализовать два метода (соответственно, две программы):

  • результат поместить во вторую матрицу, куда перенести элементы из первой в соответствии с условием задания;

  • без использования второй матрицы, путём сдвига строк (столбцов) и изменения верхней границы доступных элементов.

    1. Алгоритм, реализующий изменение размеров матрицы в соответствии с условиями задания 2 следует оформить в виде вспомогательного алгоритма-процедуры, в который следует передать:

  • исходную матрицу и матрицу результат (запись в другой массив);

  • матрицу и верхние границы доступных элементов (сдвиги строк/столбцов).

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

  • возвращающие номера строк/столбцов, содержащих минимальный/максимальный элемент, имеющих минимальную/максимальную сумму,

  • функции-предикаты, проверяющие элемент на соответствие некоторому условию и другие.

Признаком того, что задача декомпозирована правильно, является размер вспомогательного алгоритма (не более двух экранов, т.е. не более 40-50 строк)

Критерии оценивания работы

В таблице приведены критерии, по которым студент может оценить свою работу.

Критерии оценивания заданий

Процент

При наличии синтаксических ошибок (программа не транслируется) работа не оценивается (0 процентов выполнения)

(набранные баллы)*0

Наличие логических ошибок, например, зацикливание программы или возникновение ошибки времени выполнения

(набранные баллы)*0

Небрежное оформление, отсутствие сведений о разработчике, условий задания, наличие предупреждений, недружелюбный интерфейс (0 процентов выполнения)

-50%

Отсутствие тестовых данных

-50%

Написаны алгоритмы:

  • Процедура для заполнения матрицы с помощью генератора случайных чисел

5

  • Процедура для заполнения матрицы путём ввода с клавиатуры

5

  • Процедура для заполнения матрицы из файла

5

  • Процедура для вывода матрицы на экран

5

  • Алгоритм(ы) реализующие задание 1.1

15

  • Алгоритм(ы) реализующие задание 1.2

15

  • Алгоритм(ы) реализующие задание 2 (перезапись массива)

25

  • Алгоритм(ы) реализующие задание 2 (сдвиг)

25

Итого

100%

  1. ВАРИАНТЫ ЗАДАНИЯ

Вариант 1

1. Дана целочисленная матрица. Определить:

  1. в каждой строке матрицы сменить знак максимального по модулю элемента на противоположный;

  2. максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

2. Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями.

Вариант 2

1. Дана целочисленная матрица. Определить:

  1. количество строк, не содержащих ни одного нулевого элемента;

  2. максимальное из чисел, встречающихся в заданной матрице более одного раза.

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

Вариант 3

1. В заданной целочисленной квадратной матрице

  1. Вычислить сумму элементов, расположенных ниже главной диагонали матрицы;

  2. минимум среди сумм модулей элементов диагоналей, параллельной побочной диагонали матрицы.

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

Вариант 4

1. Дана целочисленная прямоугольная матрица. Определить:

  1. количество столбцов, содержащих хотя бы один нулевой элемент;

  2. произведение элементов матрицы, выделенных черным цветом (элементы диагоналей входят в произведение):

2. Вставить столбец из нулей после столбцов, в которых все элементы положительны. Если таких столбцов нет, то сообщить об этом.

Вариант 5

1. Дана целочисленная квадратная матрица. Определить:

1) среднее арифметическое элементов всех строк, которые не содержат отрицательных элементов;

2) номер столбца, в котором находится самая длинная серия одинаковых элементов.

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

Вариант 6

1. Дана целочисленная прямоугольная матрица. Определить:

  1. количество элементов в каждой строке, больших среднего арифметического элементов этой строки;

  2. есть ли в данной матрице два одинаковых элемента.

2. Вставить после каждого столбца, в котором есть заданное число А, последний столбец.

Вариант 7

1. Дана целочисленная квадратная матрица. Найти:

  1. такие k, что k-я строка матрицы совпадает с k-м столбцом (при отсутствии таковых – сообщить);

  2. сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

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

Вариант 8

1. Дана целочисленная прямоугольная матрица.

  1. найти номера строк, все элементы которых нечетные числа (вывести эти номера на экран), если таких нет, то сообщить об этом;

  2. сумму элементов матрицы, выделенных черным цветом:

2. Удалить столбцы, сумма элементов которых больше 20.

Вариант 9

1. Дана целочисленная прямоугольная матрица.

  1. Определить, есть ли строка, состоящая только из положительных элементов;

  2. Найти минимальный и максимальный элемент матрицы. Полученному максимальному значению присвоить знак, который имеет произведение всех элементов матрицы

2. Удалить строку с номером k1 и столбец с номером k2.

Вариант 10

1. Дана целочисленная прямоугольная матрица.

1) Найти сумму модулей элементов, расположенных выше главной диагонали;

2) Поменять местами k-ую строку и k-ый столбец.

2. Матрица А имеет седловую точку Aij, если Aij является минимальным элементом в i- й строке и максимальным в j–м столбце. Удалить строку и столбец, в котором есть седловая точка.

Вариант 11

1. Дана целочисленная прямоугольная матрица. Для данной матрицы

  1. подсчитать количество локальных минимумов. Примечание: элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей;

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

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

Вариант 12

1. Дана целочисленная прямоугольная матрица. Для данной матрицы

  1. Определить, сколько в данной матрице строк и столбцов, состоящих только из элементов, принадлежащих промежутку от А до В;

  2. Найти среднее арифметическое элементов расположенных ниже главной диагонали.

2. Удалить столбцы, в которых нет нулей.

Вариант 13

1. В заданной целочисленной прямоугольной матрице

  1. Найти набольший элемент среди элементов нечетных строк этой матрицы;

  2. Последний отрицательный элемент каждого столбца матрицы заменить нулём

2. Удалить каждую строку и столбец, на пересечении которых стоит отрицательный элемент.

Вариант 14

1. В заданной целочисленной прямоугольной матрице

  1. Поменять местами столбцы, содержащие максимальный и минимальный элементы;

  2. Найти сумму элементов двух ближайших диагоналей, параллельных главной.

2. Дана матрица. Удалить строки, в которых положительных элементов столько же, сколько отрицательных.

Вариант 15

1. В заданной целочисленной прямоугольной матрице

  1. найти сумму и количество элементов каждого столбца с заданным условием: элементы, попадающие в промежуток от А до В. Результаты занести в другую матрицу (2 строки, столбцов – столько же, сколько в исходной матрице).

  2. Последнее простое число в каждой строке заменить нулём

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