Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2009, 16:26   #1
honest
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 11
Вопрос Процедура

Составьте программу, вычисляющую следующее выражение:
A = 3*С + 2*( B*D +В)
где B, C и D - квадратные матрицы размером (n x n).
Ввод элементов матриц, вывод матриц на экран, вычисление cуммы, произведения двух матриц и умножения матриц на число оформите в виде процедур.

Вот мои наработки, здесь что-то не так:


type
Tmatr=array[1..5,1..5]of integer;
var
n,k,m,i,j:integer;
A,B,C,D,F,G,T,W:Tmatr;

procedure vvod(var B:Tmatr);
begin
for i:=1 to n do
for j:=1 to n do
begin
write('[',i,'',j,']=');
readln(B[i,j]);
end;
end;

procedure umnozhenie(C,B:Tmatr; var G:Tmatr);
var i,j,k,S:integer;
begin
for i:=1 to n do begin
for j:=1 to n do begin
S:=0;
for k:=1 to n do begin
S:= S+B[i,j]*D[i,j];
end;
G[i,j]:=S;
write(' ',G[i,j]);
writeln;
end;
end;
end;

procedure symma(B,G:Tmatr; var F:Tmatr);
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to n do begin
F[i,j]:= B[i,j]+G[i,j];
write(' ',F[i,j]);
writeln
end;
end;
end;

procedure umnozhenienazhislo(m:integer; F:Tmatr; var T:Tmatr);
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to n do begin
T[i,j]:=m*F[i,j];
write(' ',T[i,j]);
writeln
end;
end;
end;

procedure vivod(var A:Tmatr);
begin
for i:=1 to n do
for j:=1 to n do
A[i,j]:= T[i,j]+W[i,j];
for i:=1 to n do begin
for j:=1 to n do
write(' ',A[i,j]);
writeln
end
end;

begin
write('n='); read(n);
write('k='); read(k);
write('m='); read(m);

writeln('vvedite matr C');
vvod(C);
writeln;
writeln('vvedite matr B');
vvod(B);
writeln;
writeln('vvedite matr D');
vvod(D);
writeln;

writeln('rezyltat C*B=');
umnozhenie(C,B,G);
writeln;

writeln('rezyltat B+D=');
symma(B,D,F);
writeln;

writeln('rezyltat m*F=');
umnozhenienazhislo(m,F,W);
writeln;

writeln('rezyltat k*G=');
umnozhenienazhislo (k,G,T);
writeln;

writeln('rezyltat T+W=');
symma(T,W,A);
writeln;

writeln('rezyltat matr A=');
vivod(A);

readln;
readln

end.
honest вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура () GAGARIN-NEW Помощь студентам 3 17.12.2007 21:42
процедура Sergik1977 Паскаль, Turbo Pascal, PascalABC.NET 7 28.10.2007 16:36