2012-12-23 31 views
0

我正試圖在Pascal中實現以下算法。 Pascal對我來說是新的,所以我不明白問題在哪裏。該程序試圖找到這樣兩個整數之間的最大:Pascal中的最大查找程序

program maqsimaluri; 
function max(a,b:integer):integer; 
begin 
if a>=b then 
max:=a 
else 
max:=b; 
end; 
negon 
var a:=5; 
var b:=4; 
write(max(a,b)); 
end. 

,但我得到了以下錯誤

Free Pascal Compiler version 2.2.0 [2009/11/16] for i386 
Copyright (c) 1993-2007 by Florian Klaempfl 
Target OS: Linux for i386 
Compiling prog.pas 
prog.pas(10,5) Error: Illegal expression 
prog.pas(10,9) Error: Illegal expression 
prog.pas(10,9) Fatal: Syntax error, ";" expected but "identifier A" found 
Fatal: Compilation aborted 
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled) 

http://ideone.com/0NH6Km

什麼可能導致這個錯誤,我該如何解決呢?

+0

任何暗示?我真的不明白 –

回答

3

在說出有什麼問題之前,我會建議您縮進代碼。例如,你的功能體應該向右移兩個空格。這有助於您捕捉一些錯誤並提高可讀性。

現在的錯誤:我真的不知道,爲什麼在你的代碼中有'negon'指令,但是在ideone中它不存在。但這不是問題,因爲你的變量聲明是錯誤的。首先,他們在錯誤的地方,因爲他們應該放在主程序關鍵字「開始」之前。據我所知,你不能在Pascal中的代碼中聲明變量,但你必須先做好準備。二,你必須指定類型,變量有。如果變量值符合其類型,則Pascal是一種強大的類型安全語言並進行檢查。在這種情況下,它可能是「整數」。 第三,你不能在它的聲明中給變量值。您必須稍後在代碼中執行此操作。

我建議你閱讀一些關於Pascal編程的基本文章。對於基礎知識,甚至連Wikibook Pascal Tutorial from Wikipedia都足夠了。

這是你的代碼的版本,實際運行,並提供正確的輸出:

program maqsimaluri; 

    function max(a,b:integer):integer; 
    begin 
    if a>=b then 
     max:=a 
    else 
     max:=b 
    end; 

var 
    a,b: Integer; 

begin 
    a:=5; 
    b:=4; 
    write(max(a,b)) 
end. 
+0

我已經做到了,但非常感謝您的回覆 –

1

當然,單元數學預定義MAX(內聯)各類

uses math; 

var 
    a,b: Integer; 

begin 
    a:=5; 
    b:=4; 
    write(max(a,b)) 
end.