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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2014, 20:11   #1
DimzNOVIchok45
 
Регистрация: 18.09.2014
Сообщений: 6
По умолчанию Помощь в доработке программы на языке паскаль (бинарный поиск, поиск перебором)

Прошу помочь доработать программу. Нужно заставить ее, чтобы она выводила предложение для выбора либо бинарный поиск, либо поиск перебором. А так же прошу помочь связать бинарный поиск с файлом test.txt в котором содержатся упорядоченные строки
вот текст программы:
Код:
const
n = 15;
type
TMyArray = array [1..n] of string;
procedure Perebor(s: string; a: TMyArray);
var
i: integer;
k: integer;
begin
i := 1;
k := 1;
while (i <= n) and (a[i] <> s) do
begin
i := i + 1;
k := k + 1;
end;
if (i > n) then
writeln('Строка ', s, ' не найдена. Количество сравнений ', k - 1)
else
writeln('Строка ', s, ' найдена в позиции ', i, '. Количество сравнений ', k);
end;
{Бинарный поиск}
function BinarySearch(A: TMyArray; s:string; key: string): integer;
var mid, left, right,  i: integer;
    
begin
  left:=1; right:=N;
while left<=right do
begin
  mid:=left+(right-left) div 2;
if (key<A[mid]) then right:=mid-1
else if (key>A[mid]) then left:=mid+1
else begin BinarySearch:=mid; exit; end;
end;
BinarySearch:=-1;
end;
var
  sl, f, f1: TextFile;
  arr: TMyArray;
  str: string;
  i: integer;

Begin
//Заполнение массива arr из файла sl
	for i := 1 to n do
	arr[i] := '';
	Assign(sl, 'sorted_list.txt');
	Reset(sl);
	i := 1;
	while not Eof(sl) and (i <= n) do
	begin
	Readln(sl, arr[i]);
	inc(i);
	end;
	Close(sl);
	//Поиск перебором в массиве arr строк из файла f
	Assign(f, 'sorted_list.txt');
	Reset(f);
	while not Eof(f) do
	begin
	readln(f, str);
	Perebor(str, arr);
	end;
	Close(f);
End.

Последний раз редактировалось Stilet; 13.10.2014 в 20:19.
DimzNOVIchok45 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск на языке Pascal DimzNOVIchok45 Помощь студентам 7 19.09.2014 21:40
Помощь в доработке программы. Паскаль. Файлы Тетрадь Помощь студентам 7 26.04.2014 20:49
Турбо паскаль Бинарный поиск Андрос Помощь студентам 1 16.05.2013 23:14
Бинарный поиск (Паскаль) Zhanna5006 Помощь студентам 3 07.01.2010 09:52
бинарный поиск(паскаль) MetR Помощь студентам 6 14.12.2009 15:46