Написал прогу,не могли бы проверить.Не могу понять в чем дело,не запускается!?Очень срочно нужно!!!
Uses CRT; const n = 5; m = 5; type mas1=array[1..n] of real; mas2=array[1..n,1..m] of real; mas3=array[1..m] of real;
var i, j, k: integer; a:mas1;b:mas2; c:mas3; T: real; Procedure outvec (VAR C:mas3;n:integer); VAR i:integer; begin for i:=1 to m do write(C[i]:7:2,' '); writeln; end; Procedure Umnoz(VAR A:mas1;B:mas2;C:mas3;n,m:integer); begin for j:=1 to m do begin C[j]:=0; for k:=1 to n do C[j]:=C[j]+A[k]*B[k,j]; end; Begin clrscr; writeln('Vvedite massiv A [',n,']:'); for i := 1 to n do readln(A[i]);
for i:=1 to m do for j := 1 to n do if i < j then B[i, j] := i + j else B[i, j] := (i - j) / (i + 1);
for i := 1 to m do begin for j := 1 to n do write(B[i,j]:5:2); writeln; end;
Umnoz(A,B,C,m,n); writeln('C before sort:'); Outvec(C,m); writeln;
for i := 1 to m do for j := m downto i + 1 do if Abs(C[j - 1]) > Abs(C[j]) then begin T := C[j - 1]; C[j - 1] := C[j]; C[j] := T; end;
writeln('C after sort'); Outvec(C,m); writeln; END.
Артемий
7.05.2007 23:24
program ad; Uses CRT; const n = 5; m = 5; type mas1=array[1..n] of real; mas2=array[1..n,1..m] of real; mas3=array[1..m] of real;
var i, j, k: integer; a:mas1;b:mas2; c:mas3; T: real; Procedure outvec (VAR C:mas3;n:integer); VAR i:integer; begin for i:=1 to m do write(C[i]:7:2,' '); writeln; end; Procedure Umnoz(VAR A:mas1;B:mas2;C:mas3;n,m:integer); begin for j:=1 to m do begin C[j]:=0; for k:=1 to n do C[j]:=C[j]+A[k]*B[k,j]; end; end; Begin clrscr; writeln('Vvedite massiv A [',n,']:'); for i := 1 to n do readln(A[i]);
for i:=1 to m do begin for j := 1 to n do if i < j then B[i, j] := i + j else B[i, j] := (i - j) / (i + 1); end;
for i := 1 to m do begin for j := 1 to n do write(B[i,j]:5:2); writeln; end;
Umnoz(A,B,C,m,n); writeln('C before sort:'); Outvec(C,m); writeln;
for i := 1 to m do begin for j := m downto i + 1 do if Abs(C[j - 1]) > Abs(C[j]) then begin T := C[j - 1]; C[j - 1] := C[j]; C[j] := T; end; end;
writeln('C after sort'); Outvec(C,m); writeln; END.
??
Tan
7.05.2007 23:26
Procedure Umnoz(VAR A:mas1;B:mas2;C:mas3;n,m:integer); begin for j:=1 to m do begin C[j]:=0; for k:=1 to n do C[j]:=C[j]+A[k]*B[k,j]; end; end;
Тут ты упустил 1 end.
Старающийся
7.05.2007 23:49
Большое спасибо!!!
Старающийся
8.05.2007 0:09
У меня теперь другая проблема.Раньше без процедур когда писал у меня 'С before sort' и 'С after sort' нормально считались,а сейчас они просто обнуляютя!!!
volvo
8.05.2007 0:18
Потому что Var в списке параметров работает до первой ";"
То есть, у тебя B и C из процедуры НЕ возвращаются...
Старающийся
8.05.2007 0:37
Честно говоря не понял как быть?Поясните,пожалуйсто!