怎样在过程或函数中返回多个参数?(30分)

  • 主题发起人 主题发起人 GodWave
  • 开始时间 开始时间
G

GodWave

Unregistered / Unconfirmed
GUEST, unregistred user!
本人想编写一个能返回多个参数的函数或过程,请问应该怎么做?
 
可以在定义参数的时侯,写成function(var ss:string;var yy:integer)
你就可以传递一个变量进去,然后在函数中副值,函数执行完成后可以使用该参数。
当然你也可以定义一个类,函数返回你的类,也能解决
 
关键是要加上var吧
 

请理解形参与实参的区别
 
var:表示参数可以在过程或函数中改变,并且调用完之后,这参数就是改变后得值了。
 
自己定义类型
如:
type Tcombinfo=record
code:string;
name:string;
tfind:boolean;
end;
写函数时这样写:function dosomething(scode:string):combinfo:
begin
...
end .
 
函数型式为Function dosomething(var para1:...;var para2:....;.....):type;
过程为procedure dosomething(var para1:...;var para2:....;.....);
 
请问rily:用var定义后,参数最后结果是变化后的值,但这些不同的值怎么在程序中引
用呢?请指点
 
使用参数的变量名就可以了。
 
用var定义的是形参,程序中引用的是实参,实参变量必须是当前存在的有效变量。
如函数声明如下:
function f1(var v1 : integer) : string;
begin
v1 := v1 div 9;
f1 := inttostr(v1);
end;
假如在button1click中调用该函数:
procedure tform1.button1click(sender : tobject);
var
i, v : integer;
s : string;
begin
s := '';
for i := 1 to 100 do
begin
v := i;
if v mod 9 = 0 then
begin
s := s + f1(v) + ','//执行结果是 s = '9,1;18,2;27,3;...99,11;'
s := s + inttostr(v) + ';';
end;
end;
...
end;

你可以找一本Pascal的书看一看。不是我嫌你的问题菜,是因为这样的基础知识最好是能
系统的学习,靠这样在论坛里问,只能得到一个简单的回答,这不是个好的学习方法。
以上是个人浅见,有说的不当处请原谅。
 
多谢批评我会努力的!
 
多人接受答案了。
 
后退
顶部