Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискСмотриComboВсе проекты

Pascal, Label и GOTO помогите, просто я неумею пользоватся метками

Азат Шоткин Знаток (483), закрыт 11 лет назад
объявить метку
var
i,j,sch,hka: integer;
h: tstringlist;
begin
h:=tstringlist.Create;
h.Add('18');
for i:=0 to 3 do
for j:=0 to 3 do
begin
//// переход чтоб был сюда
sch:= random(15);
for hka:=0 to h.Count do
if h.Strings[hka]=inttostr(sch) then
/// здесь надо указатель на переход на метку выше
else
begin
stringgrid1.Cells[i,j]:=inttostr(sch);
h.Add(inttostr(sch));
end;
end;

end;
смысл в том ,что если число уже находится в списке, чтоб выпадало новое число
Лучший ответ
Sergey Zhukov Профи (664) 11 лет назад
var
i,j,sch,hka: integer;
h: tstringlist;
Label Metka;
begin
h:=tstringlist.Create;
h.Add('18');
for i:=0 to 3 do
for j:=0 to 3 do
begin
Metka:
sch:= random(15);
for hka:=0 to h.Count do
if h.Strings[hka]=inttostr(sch) then
Goto Metka;
else
begin
stringgrid1.Cells[i,j]:=inttostr(sch);
h.Add(inttostr(sch));
end;
end;
Остальные ответы
Надежда Наумова Мастер (1296) 11 лет назад
После begin пишешь GOTO A(любая буква) . После then A(ту же букву)
VLynx Профи (812) 11 лет назад
Вообще надо избегать использования меток и безусловного перехода GOTO.
В данном примере достаточно вместо
"/// здесь надо указатель на переход на метку выше"
использовать оператор Continue; для принудительного прерывания текущей итерации цикла.
Похожие вопросы
Также спрашивают