关于function或procedure的问题!!(50分)

B

bessxq

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个数组[1..7],我要找出其中任意两个数,这两个数要求相等,
这个函数或过程怎么写?就是说想返回这两个数在数组中的位置。
例如:
[1,2,3,4,1,5,7]是输入的数组,输出应该是1和5;如果没有相等的,输出两个0。
 
var
count:integer;
begin
i:=1;
count:=2;
for j:=count to 7do
begin
if a=a[j] then
begin
edit1.text:=i;
edit2.text:=j
else
begin
edit1.text:=0;
i:=i+1;
count:=count+1;
end;
end;
end;
end;
 
简单排序的思想,两个嵌套循环。
 
可能各位没有理解我的意思:我的意思是怎么让一个函数或过程有两个返回值
如:
Function aaa(a: Array of integer):...//这里是数组应该怎么写,下边又怎么调用
 
能不能让开放数组作为变量参数?
procedure aaa(var a:array of Integer);
我学delphi不是很久,说错了不要怪我。
 
你把两个值组成一个字符串,返回不就行了,然后进行拆分啊
 
Type
TFindResult=Record
FirstPos,SecondPos:Integer;
end;
{或者
TFindResult=Array of [0..1] of Integer;
}
function FindEqu(A:Array of Integer):TFindResult;
.....
 
大概的写法,可能要根据你的需要稍微改改
TMyArray = array [1..7] of Integer;
procedure GetPos( TarArray: TMyArray;
var p1, p2: Integer );
 
对,你也可以定义一个record,返回类型为Record的值就可以。
或者用实参数的方式:procedure GetPos(p1,p1:Integer;var Pos1,Pos2:Integer);
其中p1、p2代表两个要比较的数,Pos1和Pos2是外部变量,表示位置,这样
运行后你在外部访问Pos1和Pos2即可。
当然以上限于知道参数个数,如果不知道的话,楼上的做法是正确的。
 
function aaa(const a: Array of integer;
var ret1, ret2: Integer): Boolean;
或者干脆
procedure aaa(const a: array of integer;
var ret1, ret2: Integer);
 
多人接受答案了。
 
顶部