Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];




Вниз

Хитрая задачка с перебором массивов 


greenrul   (2002-03-10 11:12) [0]

Есть два массива 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!")


в чем моя ошибка?



Mbo   (2002-03-10 11:26) [1]

подразумевается, что в 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;



cdaDmitriy   (2002-03-10 11:31) [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!")



greenrul   (2002-03-10 11:33) [3]

СПАСИБО!!!
оба подощли




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.015 c
1-80546           ATLANTIDO             2002-03-08 00:34  2002.03.25  
Выделить цветом


7-80706           Woolen                2001-11-27 11:07  2002.03.25  
Лоток CD-ROM. Очень нужно! Помогите!


4-80716           FLASH !               2002-01-25 14:28  2002.03.25  
WINDOWS 9x РЕЕСТР !!!!


1-80584           RMIR                  2002-03-10 18:21  2002.03.25  
Ищётся конвертер из PAS в C/C++


3-80432           alextov               2002-02-26 15:22  2002.03.25  
Всегда видимое первое поле в DBGrid e, независимо от скроллинга