Итоговое задание
  1. Сначала разработайте обший алгоритм решения задачи и выделите в нём абстракции.
  2. Реализуйте выделенные абстракции с помощью подпрограмм.
  3. Определите тип подпрограмм – процедура или функция.
  4. Продумайте состав параметров подпрограмм и категории параметров.
  5. Функция, упоминающаяся в задании, должна применяться к элементу матрицы и, соответственно, должна получать один параметр.
  6. Используйте параметры программы.
  7. Не забывайте проверять наличие параметров программы и существование файла с исходными данными.
  8. Разрабатывайте как можно более полный набор тестовых примеров.
  9. Для удобства выводите исходные данные в выходной файл.
  10. Если матрица была изменена, также выводите её в выходной файл.
  11. Изменять следует существующую матрицу, создвать новую не нужно.
  12. При проверках наличия/отсутствия каких-либо элементов не забывайте использовать досрочный выход из цикла.
  13. При необходимости найти что-то в каждом столбце, поменяйте местами циклы for.
  14. Если проверка условия для строки не требует использования цикла (например, нужно обработать строки, в которых отрицателен первый элемент), проверяйте это условие до внутреннего цикла.