Новые сообщения · Правила  
Страница 1 из 11
Модератор форума: Berestovskiy 
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » бинарный поиск
бинарный поиск
помогите пожалуйста, я написал программу, все работает, теперь мне нужно изменить эту прогу (разработать двоичный поиск). 
вообщем, задание у меня было такое(мне лишь нужен код двоичного поиска для этого задания):
Дан список, содержащий 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.
1 | Автор: salt | 2013-11-10, 17:11   |  Репутация: [ + 0 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » бинарный поиск
Страница 1 из 11
Поиск: