Эх проблема начинающих программистов
Ну если нет опыта переваривания огромных кусков, то старайтесь разбить на логически законченные части программу.
Проблема начинающих в том что они новый функционал пытаются влепить в старый, в итоге получаем нагромождение циклов, проверок... очень сложный код.
Сделайте отдельные процедуры:
1. Инициализацию матрицы вынесем в отдельную процедуру, чтобы не мельтешил мелкий код.
2. Процедура поиска минимального значения в массиве и возврата оного.
3. Процедура использующая 2 для прогона всех строк матрицы и возврата вектора.
Поверьте осмыслить по частям задачу гораздо проще и проверять тоже
