2016-12-18 5 views
2

これで、ソートアルゴリズムを使用する学校用の汎用プログラムで作業しました。先生は、すべてをさまざまなユニットに入れておくのが大好きなので、並べ替えられた配列の出力を与える「出力」プロシージャを作成することにしました。Lazarus:別のプロシージャで "出力"プロシージャを開いたときに致命的なエラーが発生する

unit selectionsort; 

{$mode objfpc}{$H+} 

interface 

uses 
    Classes, SysUtils, typen, ausgabe; 
procedure SSort (FeldS: t_Feld); 

implementation 
procedure SSort (FeldS: t_Feld); 
var h,j,min,hilf: integer; 
begin 
    for h:= 1 to c-1 do 
     begin 
     ## all the sorting stuff 
     end; 
    **ausgabe(FeldS);** 
end; 
end. 

(ausgabeは、出力のためのドイツ語です)

unit ausgabe; 

{$mode objfpc}{$H+} 

interface 

uses 
    Classes, SysUtils, typen; 
procedure ausgabe(FeldA: t_feld); 

implementation 
procedure ausgabe(FeldA: t_feld); 
begin 
    for i:= 1 to c do 
     begin 
     write(FeldA[i], ' '); 
     end; 

    readln(); 
end; 

end. 

私はエラーが出るところ(手続きausgabeを呼び出す)太字の部分は次のとおりです。致命的な構文エラーを、「」 "Ausgabe"手続きを削除してソート手続きで出力することができますが、私はこのようにしたいと思います。

答えて

2

手順はausgabeで、ユニットは同じですコンパイラは、 "修飾識別子"と呼ばれる:unitname.procedurename。これは、複数のユニットが同じ名前の識別子を持つ場合に必要です。エラーを解決するには:ユニットの名前を変更するかプロシージャを実行するか、修飾名を使用してプロシージャを呼び出します(最初のausgabeは、コンパイラがシンボルを検索する必要があるユニットの名前です)。

ausgabe.ausgabe(FeldS);

+0

ありがとう!たくさん助けてくれました。 –

関連する問題