Pascal 为同一数组传递两个差数组
我尝试对两种类型的阵列使用相同的打印过程(第一个阵列长度为10,第二个阵列长度为15) 我在网上找不到任何解决办法。有谁能解决这个问题吗 这是两个数组Pascal 为同一数组传递两个差数组,pascal,Pascal,我尝试对两种类型的阵列使用相同的打印过程(第一个阵列长度为10,第二个阵列长度为15) 我在网上找不到任何解决办法。有谁能解决这个问题吗 这是两个数组 program pp1; const m=10; n=15; type matrix1=array[1..m] of integer; matrix2=array[1..n] of integer; var m1:matrix1; m2:matrix2; 这是它尝试过的方法。在方法“x”中,表示数组的长度 procedure
program pp1;
const
m=10;
n=15;
type
matrix1=array[1..m] of integer;
matrix2=array[1..n] of integer;
var
m1:matrix1;
m2:matrix2;
这是它尝试过的方法。在方法“x”中,表示数组的长度
procedure writeMatrix(var data: array of integer ;x:integer);
var
j:integer;
begin
for j:=1 to x do
begin
write(data[j]:3);
end;
end;
我的主要方法
begin
writeMatrix(m1,10);
writeMatrix(m2,10);
end.
如何使用相同的this writeMatrix方法打印这两个数组。。有没有什么办法可以做到这一点。正如我在之前的评论中所说的,您的实现很好,但在打印之前,您必须在矩阵中放入一些内容,否则您将在屏幕上看到一堆零(最好) 试试这个:
program pp1;
const
m=10;
n=15;
type
matrix1=array[1..m] of integer;
matrix2=array[1..n] of integer;
var
m1:matrix1;
m2:matrix2;
procedure fillMatrix(var data:array of integer; x:integer);
var
j:integer;
begin
for j:= 1 to x do begin
data[j]:=j;
end;
end;
procedure writeMatrix(var data: array of integer; x:integer);
var
j:integer;
begin
for j:=1 to x do
begin
write(data[j]:3);
end;
end;
begin
fillMatrix(m1,10);
fillMatrix(m2,10);
writeMatrix(m1,10);
writeMatrix(m2,10);
readln;
readln;
end.
提示:考虑避免使用全局变量,<代码> M1和<代码> M2<代码>在主程序中应该声明。< /P>你到底有什么问题?编译器抱怨某些事情,或者输出不是您所期望的?我之所以这样问是因为
writeMatrix()
实现很好,只需确保先填充矩阵即可。而且,当你调用writeMatrix(a,7)代码>a至少在本文中没有声明,这应该会给您一个编译错误。您提供的writeMatrix代码是正确的。请详细说明您希望实现的目标以及您的错误。还可以考虑使用<代码>长度>代码>代码>高> /COD>和<代码> Low < /代码>函数来分别了解数组的长度和高/低MimeBER的索引。它在main方法的第一行显示“无效函数参数”。填充矩阵(m1,10);现在的问题是fillmatrix()
需要和整数数组
参数,但我们正在发送matrix1
和matrix2
类型参数。将m1
声明为整数的array[1..m]和m2
声明为整数的array[1..n],这样就不会使用类型matrix1
和matrix2
。我猜这种类型会使编写“更泛型”的过程变得更加困难。