27.05.2008, 19:57
общий
это ответ
<i>Здравствуйте, <b>Корчагин Петр Александрович</b>!</i>
В приложении находится пример вычисления НОД для строк и столбцов квадратной матрицы.
<em>PS</em>
Извините, что не смог ответить раньше - были некоторые проблемы, не позволявшие мне этого сделать ранее.
<em>Удачи!</em>
Приложение:
program q137771;uses Crt;const {Максимальный размер квадратной матрицы} M_SIZE = 50;{Функция нахождения НОД из двух чисел}function nod(a, b: Integer): Integer; begin {Работаем только с положительными значениями a и b} a:= abs(a); b:= abs(b); while (a <> 0) and (b <> 0) do if (a >= b) then a:= a mod b else b:= b mod a; {Результат} nod:= a + b; end;var i, j, n: Byte; A: array[1..M_SIZE, 1..M_SIZE] of Integer; iNOD: Integer;begin {Очистка экрана} ClrScr; {Вводим размерность массива} repeat write(‘N = ‘); readln(n); until ((n > 0) and (n < 51)); {Заполнение массива} for i:= 1 to n do for j:= 1 to n do begin write(‘A[‘, i, ‘, ‘, j, ‘] = ‘); readln(A[i, j]); end; {Вычисление НОД} {Построчно} writeln(‘Stroki:‘); for i:= 1 to n do begin iNOD:= A[i, 1]; for j:= 2 to n do iNOD:= nod(iNOD, A[i, j]); writeln(i, ‘: ‘, iNOD); end; {По столбцам} writeln(‘Stolbcy:‘); for j:= 1 to n do begin iNOD:= A[1, j]; for i:= 2 to n do iNOD:= nod(iNOD, A[i, j]); writeln(j, ‘: ‘, iNOD); end; {Даем пользователю возможность насладиться результатом} writeln; write(‘Press any key...‘); readln;end.