|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.05.2009, 16:26 | #1 |
Пользователь
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процедура () | GAGARIN-NEW | Помощь студентам | 3 | 17.12.2007 21:42 |
процедура | Sergik1977 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 28.10.2007 16:36 |