Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2014, 19:18   #1
aksdaqg
 
Регистрация: 03.04.2014
Сообщений: 3
По умолчанию интерполяционный поиск

Сортирует норм, но потом на интерполяционном поиске виснет. массив небольшой взял для примера. Кто подскажет, какая ошибка в поиске. пробовал другим методом искать все норм, так что это не из-за шела и файла

Код:
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
type mas= array[1..1000] of integer;
 
var i, x , p, k, razm : integer;
    a , b : mas;
    tf :  text;
 
procedure SHELL( var a : mas);
var d, i, t : integer; k : boolean;
begin d:=razm div 2;         
while d>0 do begin k:=true;
while k do begin k:=false; i:=1;
for i:=1 to razm-d do begin
if a[i]>a[i+d] then begin
t:=a[i]; a[i]:=a[i+d]; a[i+d]:=t;
k:=true; end; end; end;
d:=d div 2; end; end;
 
procedure interpol(key, n:integer ; a:mas);
var l,r,m : Integer;
begin
Writeln('Interpol');
l:=1; r:=n;
while (l<>r) do
begin
  m:=1+trunc(((r-1)*(key-a[1]))/(a[r]-a[l]));
  if key>a[m] then l:=m+1 else r:=m;
 
end;
if a[l]=key then Writeln('naideno',l) else Writeln('ne naideno');
Writeln;
end;
 
 
 
begin
 assign(tf,'input.txt');
    reset(tf);
      razm:=0;
 
 while not(eof(tf)) do begin
  inc(razm);
    read(tf,a[razm]);
 end;
 
 
 
 closefile(tf);
        writeln;
         for i:=1 to razm do
         write(a[i],' ');
         writeln;
writeln('Shell');
shell(a);
writeln;
 
         for i:=1 to razm do
         write(a[i],' ');
 
///////////////////////////////////////////////////////////////////
writeln;
writeln('Vvedite iskomoe chislo');
readln(k);
interpol(k, razm, a);
////////////////////////////////////////////////////////////////////////
readln;
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 04.04.2014 в 09:29.
aksdaqg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерполяционный многочлен Лагранжа relax92 Общие вопросы C/C++ 10 20.02.2012 19:15
Интерполяционный поиск информации по ключу Mortredos Помощь студентам 4 15.01.2012 17:19
Интерполяционный многочлен лагранжа 3.14oner Паскаль, Turbo Pascal, PascalABC.NET 2 10.11.2008 17:30
Интерполяционный полином Ньютона Skay Общие вопросы Delphi 2 19.10.2007 22:18