Вопрос № 126265: Здраствуйте!
С помощью процедуры и функции реализовать такую программу: просчитать и представить в виде векторов суммы позитивных элементов каждого рядка матриц А(m,n), B(k,r)...
Вопрос № 126.265
Здраствуйте!
С помощью процедуры и функции реализовать такую программу: просчитать и представить в виде векторов суммы позитивных элементов каждого рядка матриц А(m,n), B(k,r)
Отвечает: Verena
Здравствуйте, Щербаков Евгений Николаевич!
Функция в моей программе вычисляет сумму положительных элементов вектора a размерности n. Процедура же формирует вектор сумм для каждой строки матрицы (обратите внимание, что возвращаемый параметр sv передан через var, как и сама матрица a, но для неё это сделано, чтобы большой массив данных не находился в памяти два раза, т.е. не копировался туда как при передачи по значению). Чтобы можно было использовать функцию, работающую с вектором, в случае со строкой матрицы, я описала тип матрицы как вектор из векторов:
Type vect = array [1..20] of integer;
matr = array [1..20] of vect;
Со строками (столбцами) матрицы, объявленной таким образом, мы можем работать как с самостоятельными векторами. В данном случае это очень удобно, поскольку нам не приходится передавать в функцию целую огромную матрицу, используя при этом только одну её строку. Остальное, думаю, будет ясно из комментариев.
Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 06.03.2008, 21:03 Оценка за ответ: 5
Отвечает: Попов Владимир Иванович
Здравствуйте, Щербаков Евгений Николаевич!
Раз в программе предусматривается расчёт по двум матрицам, то очевидно, будет рационально использовать подпрограммы-процедуры. В предложенном варианте их две : для ввода матриц - с проверкой ОДЗ входных данных и для расчёта сумм положительных элементов рядков заданных матриц - с выводом результата в виде вектор-столбца. В главной программе организован цикл на повторный запуск. Допустимая размерность матриц регулируется значением константы Nmax. Исходник - в приложении. Успехов.
Приложение:
--------- Physics forever !
Ответ отправил: Попов Владимир Иванович (статус: 3-ий класс)
Ответ отправлен: 07.03.2008, 16:45 Оценка за ответ: 5