想学习一下做个多文件的控制台程序,只不过有很多语法错误,
怎么改,还得劳驾各位高人。算两个矩阵加法和乘法的程序
program solve;//主程序所在的单元
{$APPTYPE CONSOLE}
uses
SysUtils,
printu in 'printu.pas',
sm in 'sm.pas';
type mat=array[1..5,1..5] of real;
var
a,b,c,d,e,f,g,h:mat;
i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
readln(a[i,j],b[i,j],e[i,j],f[i,j]);
sandm(a,b,c,d);
print(a);
print(b);
print(c);
print(d);
sandm(e,f,g,h);
print(e);
print(f);
print(g);
print(h);
end.
//printu.pas 打印矩阵的过程所在的单元
unit printu;
interface
uses
SysUtils;
type mat=array[1..5,1..5] of real;
procedure print(var a:mat);
implementation
procedure print(var a:mat);
var
i,j:integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(a[i,j]:8:2);
writeln;
end;
writeln;
end;
end.
//sm.pas
unit sm;//求两个矩阵的和与积的过程所在的单元
interface
type mat=array[1..5,1..5] of real;
procedure sandm(var a,b,c,d:mat);
implementation
procedure sandm(var a,b,c,d:mat);
var
i,j,k:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
c[i,j]:=a[i,j]+b[i,j];
d[i,j]:=0;
for k:=1 to 5 do
d[i,j]:=d[i,j]+a[i,k]*b[k,j];
end;
end;
end.
怎么改,还得劳驾各位高人。算两个矩阵加法和乘法的程序
program solve;//主程序所在的单元
{$APPTYPE CONSOLE}
uses
SysUtils,
printu in 'printu.pas',
sm in 'sm.pas';
type mat=array[1..5,1..5] of real;
var
a,b,c,d,e,f,g,h:mat;
i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
readln(a[i,j],b[i,j],e[i,j],f[i,j]);
sandm(a,b,c,d);
print(a);
print(b);
print(c);
print(d);
sandm(e,f,g,h);
print(e);
print(f);
print(g);
print(h);
end.
//printu.pas 打印矩阵的过程所在的单元
unit printu;
interface
uses
SysUtils;
type mat=array[1..5,1..5] of real;
procedure print(var a:mat);
implementation
procedure print(var a:mat);
var
i,j:integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(a[i,j]:8:2);
writeln;
end;
writeln;
end;
end.
//sm.pas
unit sm;//求两个矩阵的和与积的过程所在的单元
interface
type mat=array[1..5,1..5] of real;
procedure sandm(var a,b,c,d:mat);
implementation
procedure sandm(var a,b,c,d:mat);
var
i,j,k:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
c[i,j]:=a[i,j]+b[i,j];
d[i,j]:=0;
for k:=1 to 5 do
d[i,j]:=d[i,j]+a[i,k]*b[k,j];
end;
end;
end.
type mat=array[1..5,1..5] of real;
这样在DELPHI看来是两种数据类型。删除主单元内的定义。