Курсовая работа: Структуры и организация данных в ЭВМ
read(a, fval);
if (fval=b[s1]) then goto 1
else if fval<b[s1] then cou1:=cou+1
else cou2:=cou-1;
end;
1 : end;
end;
Процедура перебирает значения из вектора В, сранивая их поэлементно со значениями из файла А (файл А должен быть предварительно отсортирован), причём делит файл А пополам и сравнивает значения. Если значение из вектора В больше значения из файла А, то таким же образом исследуется левая половина файла, в противном случае – правая и т.д.
Состояние вектора и файла при:
первой итерации
второй итерации
procedure tform1.linfindacc; //линейный поиск с накоплением
var
s1, s2, cou : word;
begin
cou:=1;
for s1:=0 to k-1 do
for s2:=0 to i-1 do
begin
seek(a, s2);
read(a, fval);
if (b[s1]=fval) then
begin
acc[1, cou]:=s2;
acc[2, cou]:=s1;
acc[3, cou]:=fval;
cou:=cou+1;