помогите пожалуйста, я написал программу, все работает, теперь мне нужно изменить эту прогу (разработать двоичный поиск).
вообщем, задание у меня было такое(мне лишь нужен код двоичного поиска для этого задания):
Дан список, содержащий 10 записей, каждая из которых содержит четыреполя: 1 – шифр товара (символьное поле длиной 5), 2 – наименование товара
(символьное поле длиной 20), 3- цена (вещественное положительное число),
4 - количество экземпляров (целое положительное число).
Список упорядочен по убыванию цены товара.
Разработать алгоритмы и программы линейного и двоичного поиска всехтоваров, имеющих цену меньше 20000 тенге с выводом найденных записей в файл.
а вот и сама рабочая программа:
Type
tzap=record {Описание типа для одной записи списка}
shifr:string[5];
nai:string[20];
kol:integer;
price:real;
end;
const n=5;
Var Spis:array[1..n]of tzap; {Описание списка}
i,j:byte;
x:tzap;
Begin
begin
Writeln('Введите список по полям - каждое поле с новой строки');
For i:=1 to N do
With Spis do
begin
Write(' Шифр - 5 символов ');
Readln(shifr);
Write(' Наименование - 20 символов ');
Readln(nai);
Write(' Количество = ');
Readln(kol);
Write(' Цена товара = ');
Readln(price);
end;
{Oрганизация поиска заданного товара в массиве записей Spis}
WriteLn('Удовлетворяют запросу товары:');
WriteLn;
with Spis do
begin
//сортировка по убыванию цены
for i:=1 to n-1 do
for j:=i+1 to n do
if spis.price<spis.price then
begin
x:=spis;
spis:=spis;
spis:=x
end;
for i:=1 to N do
if price < 20000 then
begin
writeln('шифр: ',spis.shifr );
WriteLn('наименование: ',spis.nai);
WriteLn('количество: ',spis.kol);
WriteLn('цена:',spis
.price);
end;
End;
readln;
end;
end.