Изучение языка программирования
Турбо Паскаль (Turbo Pascal)

На этом сайте можно: скачать среду программирвания Турбо Паскаль, изучить язык программирования Турбо Паскаль, а так же скачать программы на языке Турбо Паскаль!
Решенные задачи на языке Паскаль



Условие задачи прислали на e-mail.

Даны три квадратные матрицы третьего порядка. Вывести на экран ту из них, норма которой наименьшая. В качестве нормы матрицы взять максимум модулей ее элементов. Нахождение нормы матрицы оформить в виде процедуры.

const
p=3;                                               {порядок матрицы}

type
tip_matr=array[1..p,1..p]of integer;               {тип для матрицы}
var
a,b,c:tip_matr;                                    {три матрицы    }
i,j:integer;                                       {для цикла      }
n_a,n_b,n_c:integer;                               {норма матрицы  }

{процедура - получить норму матрицы
m - матрица в которой находится норма
n - сюда записывается значение нормы матрицы                       }
PROCEDURE get_norma(m:tip_matr; var n:integer);
var
max:integer;
BEGIN
max:=m[1,1];
for i:=1 to p do
for j:=1 to p do if ABS(m[i,j])>max then max:=ABS(m[i,j]);
n:=max;
END;

{процедура печатает матрицу на экран}
PROCEDURE print_array(m:tip_matr);
BEGIN
for i:=1 to p do
 begin
  for j:=1 to p do write('  ',m[i,j]:3);
  writeln;
 end;
writeln;
END;

BEGIN
randomize;
for i:=1 to p do     {загрузка значений элементов во все матрицы}
for j:=1 to p do
 begin
  a[i,j]:=random(50)-random(50);
  b[i,j]:=random(50)-random(50);
  c[i,j]:=random(50)-random(50);
 end;

writeln('ИСХОДНЫЕ МАТРИЦЫ');
writeln('Матрица A:');
print_array(a);
writeln('Матрица B:');
print_array(b);
writeln('Матрица C:');
print_array(c);

{получить длякаждой матрицы её норму}
get_norma(a,n_a);
get_norma(b,n_b);
get_norma(c,n_c);

writeln('Матрица с наименьшей нормой:');
if (n_a <= n_b)and(n_a <= n_c) then print_array(a) else
if (n_b <= n_a)and(n_b <= n_c) then print_array(b) else
if (n_c <= n_b)and(n_c <= n_a) then print_array(a);
readln;
END.
Замечание! Если я правильно понял: норма матрицы - это максимальное значение элемента матрицы взятое по модулю. В противном случае, если норма матрицы это что-то другое, то процедуру PROCEDURE get_norma(m:tip_matr; var n:integer); нужно изменить.
Скачать исходник