一个简单的自定义函数问题(15分)

  • 主题发起人 主题发起人 阿乐
  • 开始时间 开始时间

阿乐

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:
跟着一本教材学习自定义函数,定义了一个很
简单的比较大小的函数,如下:

function Max(a,b:integer):integer;
var
temp: integer;
begin
if b<a then temp:=a
else temp:=b;
max:=temp;
end;

谁知它横竖运行不了,一按下F9就出来了个提示框
内容: Expected END but VAR found
什么var?var后面需要end吗?究竟怎么一回事?
function关键字究竟应该放在什么位置?先谢谢各位了!
 
function Max(a,b:integer):integer;
var
temp: integer;
begin
if b<a then temp:=a
else temp:=b;
result:=temp;
end;
 
啊呀,真不好意思,我粘贴了你的函数
可是系统仍旧提示
Expected END but VAR found!
唉,不知怎么搞得。是不是函数粘贴的位置
有问题?我是把函数粘贴在了 type 与 procedure
之间。
 
function Max(a,b:integer):integer;
var
temp: integer;
begin
if b<a then temp:=a
else temp:=b;
result:=temp;
end;

肯定正确,你再试试
看来你是一只比我还要菜的鸟

有空联系:QQ107710715
 
函数本身没有问题。
看看位置是否正确,或用排除法排除。
 
Result还是用函数名称都可以,都没错的!
肯定是别的地方错了,把所有的全贴出来看!
 
unit tunit1;

interface
function Max(a,b:integer):integer;//这里是声明函数的地方
implementation
uses main,Error,SysUtils,Forms,dialogs;
......
function Max(a,b:integer):integer;//
begin
if b<a then result:=a
else result:=b;
end;
 
或许应该:
function Max(a:integer;b:integer):integer;//中间是个分号。
我也是菜鸟。
 
function Max(a,b:integer):integer与function Max(a:integer;b:integer):integer都是正确的,可能是函数的声明位置有问题。我在delphi6中的代码如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
Function Max(i,j: Integer): Integer;
var
Form1: TForm1;

implementation

{$R *.dfm}

Function Max(i,j: Integer): Integer;
begin
if i>j then
Max := i
else
Max := j;
end;

end.
 
不好意思
function Max(a,b:integer):integer与function Max(a:integer;b:integer):integer都是正确的,写成了都没有正确的,请不要见怪。
 
谢谢各位的热情解答!
问题的根源的确是函数定义的位置有问题
我也是把函数剪来贴去才发现应该定义在
implementation

{$R *.dfm}
部分的后面。其他位置不知道如何。再次感谢!!(我还算有礼貌吧?呵呵!)

 
后退
顶部