Итоговое задание

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

Кроме матриц могут быть также заданы два одномерных массива.

Функция f, применяемая к элементам матриц, передаётся в подпрограмму с помощью функционального типа. Задание необходимо выполнить для двух вариантов функции f – в качестве первого варианта берём f(x) = x для того, чтобы было легко проверить правильность работы программы, в качестве второго – любую другую функцию одного аргумента (например, sin(x) + cos(x) или x2 – sqrt(x + 5)). В случае равенства вычисленных значений выводить соответствующее сообщение и не осуществлять никакой обработки.

Описание

  1. Для той из матриц, в которой меньше среднее арифметическое элементов, для которых значение f(xij) неотрицательно, подсчитать количество неотрицательных элементов в каждой строке матрицы.
  2. Для той из матриц, в которой больше среднее арифметическое элементов, для которых значение f(xij) неотрицательно, изменить все строки матрицы, в которых отрицателен элемент главной диагонали: к каждому элементу i-ой строки прибавить элемент yi. Подсчитать число изменённых строк матрицы.
  3. Для той из матриц, в которой меньше сумма элементов, для которых значение f(xij) положительно, получить вектор y по правилу: yj = 0, если все элементы j-го столбца матрицы отрицательны, иначе yj = 1. Для другой матрицы найти минимальный элемент ниже главной диагонали.
  4. Для той из матриц, в которой больше сумма элементов, для которых значение f(xij) положительно, изменить матрицу, заменив каждый отрицательный элемент, лежащий выше главной диагонали, его удвоенной абсолютной величиной. Для другой матрицы найти количество строк, содержащих отрицательные элементы.
  5. Для той из матриц, в которой меньше сумма элементов, для которых значение f(xij) положительно, найти общую сумму тех строк матрицы, в которых отрицателен элемент главной диагонали.
  6. Для той из матриц, в которой больше произведение элементов, для которых значение f(xij) отрицательно, получить вектор c по правилу: формула
  7. В каждой из двух матриц найти произведение положительных элементов, находящихся ниже и правее элемента, для которого значение f(xij) максимально.
  8. В каждой из двух матриц изменить элементы, находящиеся ниже и правее элемента, для которого значение f(xij) минимально, разделив каждый отрицательный элемент на номер столбца, в котором он находится.
  9. Для той из двух матриц, в которой есть хотя бы одна строка, сумма элементов которой отрицательна, найти индексы элемента, для которого значение f(xij) минимально. Для другой матрицы найти сумму элементов, лежащих ниже главной диагонали.
  10. Для каждой из двух матриц проверить, есть ли нулевые элементы среди элементов, находящихся выше и левее элемента, для которого значение f(xij) максимально.
  11. Для каждой из двух матриц найти минимальный по модулю элемент среди элементов, находящихся выше и левее элемента, для которого значение f(xij) минимально.
  12. Для той из двух матриц, в которой меньше произведение элементов, для которых значение f(xij) положительно, найти номер столбца с минимальным произведение элементов. Для другой матрицы найти произведение элементов, лежащих выше главной диагонали.
  13. Для той из двух матриц, в которой меньше сумма s элементов, для которых значение f(xij) неотрицательно, сформировать массив из элементов, больших s. Для другой матрицы проверить наличие строк с положительной суммой элементов.
  14. Для каждой из двух матриц поменять на обратный порядок элементов в тех строках, которые находятся выше строки, в которой максимальна сумма элементов, для которых значение f(xij) положительно.
  15. Для той из матриц, в которой больше количество элементов, для которых значение f(xij) отрицательно, подсчитать число таких её строк, элементы каждой из которых упорядочены по возрастанию.
  16. Для той из матриц, в которой больше количество элементов, для которых значение f(xij) положительно, изменить матрицу, прибавляя к каждому отрицательному элементу предыдущий элемент той же строки. К первому элементу, если он отрицателен, прибавить последний элемент строки. Для другой матрицы найти минимальный элемент выше главной диагонали.
  17. Для той из матриц, в которой больше количество элементов, для которых значение f(xij) положительно, найти общую сумму элементов тех столбцов матрицы, сумма элементов в каждом из которых положительна. Для другой матрицы найти количество отрицательных элементов, лежаших выше главной диагонали.
  18. Для той из матриц, в которой меньше среднее арифметическое элементов, для которых значение f(xij) неотрицательно, получить вектор y по правилу: yj = 0, если в j-ом столбце матрицы есть хотя бы один отрицательный элемент, иначе yj = 1. Для другой матрицы найти максимальный элемент.
  19. Для той из матриц, в которой больше среднее арифметическое элементов, для которых значение f(xij) неотрицательно, изменить все столбцы матрицы, в которых равен нулю элемент главной диагонали: i-ый элемент такого столбца увеличивается на yi.
  20. Для той из матриц, в которой меньше количество элементов, для которых значение f(xij) положительно, получить вектор y по правилу: yi = 0, если все элементы i-ой строки и i-го столбца матрицы по модулю меньше 1, иначе yi = 1.
  21. В каждой из двух матриц найти среднее арифметическое положительных элементов, находящихся выше и левее элемента, для которого значение f(xij) максимально.
  22. В каждой из двух матриц изменить элементы, находящиеся выше и левее элемента, для которого значение f(xij) минимально, разделив каждый положительный элемент на номер строки, в которой он находится.
  23. Для той из двух матриц, в которой есть хотя бы один столбец, сумма элементов которого отрицательна, найти индексы элемента, для которого значение f(xij) максимально. Для другой матрицы найти среднее арифметическое положительных элементов.
  24. Для каждой из двух матриц проверить, есть ли отрицательные элементы среди элементов, находящихся ниже и правее элемента, для которого значение f(xij) максимально.
  25. Для каждой из двух матриц найти максимальный по модулю элемент среди элементов, находящихся ниже и правее элемента, для которого значение f(xij) минимально.
  26. Для той из двух матриц, в которой меньше произведение, для которых значение f(xij) положительно, найти номер строки с максимальной суммой элементов. Для другой матрицы найти произведение элементов, лежащих ниже главной диагонали.
  27. Для той из двух матриц, в которой больше среднее арифметическое s элементов, для которых значение f(xij) положительно, сформировать массив из элементов, больших s. Для другой матрицы найти количество элементов, меньших s.
  28. Для той из матриц, в которой больше сумма элементов, для которых значение f(xij) отрицательно, найти сумму тех строк матрицы, в которых сумма элементов положительна.
  29. В каждой из матриц найти сумму положительных элементов, находящихся ниже и правее элемента, для которого значение f(xij) минимально.
  30. Для той из матриц, в которой больше количество элементов, для которых значение f(xij) положительно, найти индексы максимального элемента. Для другой матрицы найти сумму элементов, лежаших выше главной диагонали.
  31. Если количество элементов, для которых значение f(xij) положительно, одинаково в двух матрицах, проверить в какой матрице меньше максимальный элемент.
  32. Изменить ту матрицу, в которой больше сумма элементов, для которых значение f(xij) положительно, разделив элементы каждой строки на элемент главной диагонали, находящийся в той же строке.
  33. Если среднее арифметическое элементов, для которых значение f(xij) неотрицательно, положительно в обеих матрицах, найти сумму произведений положительных элементов матриц, лежащих выше главной диагонали.
  34. Для той из матриц, в которой меньше произведение элементов, для которых значение f(xij) отрицательно, увеличить каждый элемент матрицы, который меньше элемента главной диагонали, находящегося с ним в одной строке, на yi, где i – номер строки. Подсчитать общее число изменённых элементов.
  35. Для той из матриц, в которой меньше количество элементов, для которых значение f(xij) отрицательно, найти среднее арифметическое тех элементов матрицы, каждый из которых больше находящегося с ним в одной строке элемента главной диагонали.
  36. Для той из матриц, в которой меньше среднее арифметическое элементов, для которых значение f(xij) положительно, изменить матрицу, заменив каждый отрицательный элемент, лежащий выше главной диагонали, его абсолютной величиной.