0

Pascalで次のアルゴリズムを実装しようとしています。パスカルは私にとって新しいので、何が問題なのか理解できません。プログラムは、次のように2つの整数間の最大値を見つけようとします。

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を参照してください

このエラーの原因とその解決方法を教えてください。

4

2 に答える 2

3

何が悪いのかを言う前に、コードをインデントすることをお勧めします。たとえば、関数本体を 2 つのスペース分右に移動する必要があります。これにより、いくつかのエラーをキャッチし、読みやすさを向上させることができます。

エラー:コードに「negon」命令がある理由はよくわかりませんが、ideone にはありません。しかし、変数宣言が間違っているので、これは問題ではありません。まず、メイン プログラムのキーワード 'begin' の前に配置する必要があるため、間違った場所にあります。私の知る限り、Pascal のコードでは変数を宣言することはできませんが、事前に宣言する必要があります。次に、変数の型を指定する必要があります。Pascal は強力で型安全な言語であり、変数の値がその型に適合するかどうかをチェックします。この場合、おそらく「整数」です。第 3 に、宣言で変数の値を指定することはできません。コードの後半でそれを行う必要があります。

Pascal プログラミングに関する基本的な記事を読むことをお勧めします。基本については、ウィキペディアのウィキブック Pascal チュートリアルでも十分です。

これは、実際に実行され、正しい出力を提供するコードのバージョンです。

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.
于 2012-12-23T11:50:02.800 に答える
1

もちろん、単位演算は、さまざまな型の MAX を (インラインとして) 事前定義します。

uses math;

var
  a,b: Integer;

begin
  a:=5;
  b:=4;
  write(max(a,b))
end.
于 2012-12-23T18:58:26.350 に答える