![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хитрая задачка с перебором массивов [D5, WinXP]
greenrul © (2002-03-10 11:12:00)Есть два массива 1..5 - L и K, в обоих есть string до i3 номера (т.е. если i3=2 то L[1],L[2],K[1],K[2]) существуют. Задача - сверить, все ли эл-ты массива K присутствуют во всех эл-так массива L (порядок неважен, но совпадение полное).
Пример -
i3:=3
K[1]=Ctrl
K[2]=Shift
K[3]=Alt
L[1]=Alt
L[2]=Shift
L[3]=Ctrl
дает истину, НО
i3:=3
K[1]=Ctrl
K[2]=Shift
K[3]=Up
L[1]=Alt
L[2]=Shift
L[3]=Ctrl
дает ложь....
Я писал -
kill:=0;
i4:=0;
for i:=1 to i3 do
for i2:=1 to i3 do
if (k[i]=l[i2]) and (kill<>1) then begin kill:=2; i4:=i2; end
else if i4<>i2 then kill:=1;
if (kill=2) then
ShowMessage("YES!")
в чем моя ошибка?
greenrul (2002-03-10 11:33:00) [1]СПАСИБО!!!
оба подощли
cdaDmitriy (2002-03-10 11:31:00) [2]for i:=1 to i3 do Begin
kill:=0;
for i2:=1 to i3 do
if (k[i]=l[i2]) then begin kill:=2; break; end;
IF (kill=0) then begin kill:=3; break; end;
End
if (kill<>3) then ShowMessage("YES!")
Mbo (2002-03-10 11:26:00) [3]подразумевается, что в K элементы не повторяются
function ...
begin
result:=false;
for i:=1 to i3 do begin
t:=true;
for i2:=1 to i3 do if k[i]=l[i2] then t:=false;
if t then exit;
end;
result:=true;
end;