Цитата Любезный:
Как лучше переписать такой код, чтобы убрать goto, »
|
Код:

const SettingCount = 15;
var SortedSettingNumbers: array [0..SettingCount-1] of smallint;
i, j, r: smallint;
label lab1;
...
for I:=0 to SettingCount-1 do SortedSettingNumbers [i]:=-1; //Инициализация значений элементов массива? А нужно ли?
Randomize;
for I:=0 to SettingCount-1
do if SortedSettingNumbers [i]=-1 //Зачем это условие
then begin
b:=true;
repeat
begin
r:=Random (SettingCount);
// проверить сгенерированное число на повтор
for j:=0 to SettingCount-1
do if SortedSettingNumbers [j]=r
then begin
b:=false;
break;
end;
end;
until b;
// если повторяется - сгенерить другое
SortedSettingNumbers [i]:=r;
end;
Вроде так. Проверить не на чем, но вроде должно работать.
По поводу оптимизации смотрите мои комментарии.