所以我刚刚开始使用排序算法的学校通用程序。老师总是喜欢将所有东西都放在不同的单元中,所以我决定创建一个"输出"给出排序数组输出的过程。
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"并在排序程序中执行输出但我想这样做。
答案 0 :(得分:2)
由于过程ausgabe
和单元具有相同的名称(这是可能的,因为它们在不同的范围内),编译器会假设一个所谓的“合格标识符”:unitname.procedurename
。如果多个单元具有相同名称的标识符,则需要这样做。要克服错误:重命名单元或过程,或者使用其限定名称调用过程(第一个ausgabe
是编译器应搜索符号的单元的名称,第二个{{1是实际的过程名称):
ausgabe