• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Написание программы с помощью процедур

avatar3000

Ученик
Регистрация
24 Дек 2010
Сообщения
9
Реакции
0
Баллы
0
Написание программы с помощью процедур

Здравствуйте уважаемые форумчане!!
Получить матрицу [Cij] i,j=от 1 до M из матриц [Aij] i,j=от 1 до M и [Bij] i,j=от 1 до M путем умножения элементов каждой строки матрицы [Aij] на максимальный элемент соответствующей строки матрицы [Bij].

Вот прога,ее нужно переписать,с помощью процедур.

program labo4;
CONST M=4;
VAR
A,B:Array[1..M,1..M] of Real;
Max:Array[1..M] of Real;
i,j:Byte;
BEGIN
For i:=1 to M do
For j:=1 to M do
begin
Write('A[',i,',',j,']= ');
ReadLn(A[i,j]);
end;
For i:=1 to M do
For j:=1 to M do
begin
Write('B[',i,',',j,']= ');
ReadLn(B[i,j]);
end;
WriteLn('Initial matrices:');
For i:=1 to M do
begin
For j:=1 to M do
Write(A[i,j]:6:1);
Write(' ');
For j:=1 to M do
Write(B[i,j]:6:1);
WriteLn;
end;
For i:=1 to M do
begin
Max:=B[i,1];
for j:=2 to M do
if B[i,j]>Max then Max:=B[i,j];
end;
WriteLn;
Write('Maximum values: ');
For i:=1 to M do
Write(Max:6:1);
WriteLn;
WriteLn;
WriteLn('Modified matrix:');
For i:=1 to M do
begin
For j:=1 to M do
Write(A[i,j]*Max:12:1);
WriteLn;
end;
ReadLn;
END.

Помогите у кого время есть,заранее бесконечное спасибо)))
 
Ну вот, раз уж обещал:
Код:
program labo4a;

CONST
 M=4;

TYPE
 Mtr=Array[1..M,1..M] of Real;
 Vct=Array[1..M] of Real;

VAR
 A,B,C:Mtr;
 Max:Vct;

Procedure Enter_Matrix(Nm:Char; var Em:Mtr);
var i,j:Byte;
begin
 For i:=1 to M do
  For j:=1 to M do
   begin
    Write(Nm,'[',i,',',j,']= ');
    ReadLn(Em[i,j]);
   end;
 WriteLn;
end;

Procedure Show_Matrix(Nm:Char;Sm:Mtr);
var i,j:Byte;
begin
 WriteLn('Matrix '+Nm+':');
 For i:=1 to M do
  begin
   For j:=1 to M do
    Write(Sm[i,j]:8:3);
   WriteLn;
  end;
 WriteLn;
end;

Procedure Form_Vector(Fm:Mtr; var Fv:Vct);
var i,j:Byte;
begin
 For i:=1 to M do
  begin
   Fv[i]:=Fm[i,1];
   for j:=2 to M do
    if Fm[i,j]>Fv[i] then Fv[i]:=Fm[i,j];
  end;
 WriteLn('Maxima: ');
 For i:=1 to M do Write(Fv[i]:8:3);
 WriteLn;
 WriteLn;
end;

Procedure New_Matrix(Mm:Mtr;Vm:Vct; var Nt:Mtr);
var i,j:Byte;
begin
 For i:=1 to M do
  For j:=1 to M do
   Nt[i,j]:=Mm[i,j]*Vm[i];
end;

BEGIN
 Enter_Matrix('A',A);
 Enter_Matrix('B',B);
 Show_Matrix('A',A);
 Show_Matrix('B',B);
 Form_Vector(B,Max);
 New_Matrix(A,Max,C);
 Show_Matrix('C',C);
 ReadLn;
END.
 
Примного благодарен))
 
Назад
Сверху