【发布时间】:2014-06-03 08:11:09
【问题描述】:
我正在学习有关编程基础知识的互联网课程。制作图表后,我将其转换为代码,现在这是 PASCAL 语言。 我在程序上遇到问题,找不到答案,在课程中也找不到答案,也找不到一些 google-ing。 我想从一个过程中得到一个变量。现在我有一段工作代码,但我认为这不是好的工作方式。这是代码的摘录:
program WELKEWAGEN;
// declare your variables here
var T, N, KM, vari, prijsDW, prijsBW, jrenGEBR, taksDW, taksBW, prijsB, verbrBW, prijsD, verbrDW : real;
procedure OPHALEN(para : string);
begin
repeat
writeln('geef de ', para , ' op');
readln(vari);
until (vari > 0);
end;
begin
//this is the main program but there is more code ofcourse
OPHALEN('prijs benzinewagen');
prijsBW := vari;
//...
end.
现在互联网课程说我应该这样编程:
begin
//...
prijsBW := OPHALEN('prijs benzinewagen');
//...
end.
但这不起作用。 我收到以下错误:
WELKEWAGEN.pas(24,14) Error: Incompatible types: got "untyped" expected "Real"
WELKEWAGEN.pas(50) Fatal: There were 1 errors compiling module, stopping
pas(24,14) 是这一行:prijsBW := OPHALEN('prijs benzinewagen');
【问题讨论】:
-
如果你想得到一个返回值,你必须定义一个
Function,而不是一个Procedure。要从函数返回一个值,您需要指定函数名称。见en.wikibooks.org/wiki/Pascal_Programming/Syntax_and_functions