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

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

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

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2014, 21:46   #1
DimzNOVIchok45
 
Регистрация: 18.09.2014
Сообщений: 6
Вопрос Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск на языке Pascal

Массив длины 15 заполнен строками, упорядоченными лексикографически
без
повторов: список зарегистрированных посетителей сайта, поступивших абитуриентов,
названий книг и т.п. (можно загружать в массив готовый список из отдельного текстового
файла, например sorted_list.txt).
Во втором текстовом файле (test.txt) содержится перемешанный набор строк с
повторениями, в том числе все строки, записанные в массив, а также новые строки.
Считывая по одной строке из файла test.txt, нужно выполнить поиск каждой строки в
массиве, по результатам которого вывести на экран номер ее позиции в массиве и
количество ее сравнений с содержимым ячеек массива, произведенных в ходе поиска.
Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск.
Пользователь должен выбирать метод поиска при запуске программы. Каждый из методов
нужно выделить в отдельную процедуру или функцию.
DimzNOVIchok45 вне форума Ответить с цитированием
Старый 18.09.2014, 22:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,803
По умолчанию

Попытки и наработки уже были?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2014, 22:29   #3
DimzNOVIchok45
 
Регистрация: 18.09.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Попытки и наработки уже были?
Да были, да и то только метод перебора вот примерно так
Код:
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('Stroka ', s, ' ne naidena. Kol-vo sravneniy ', k - 1)
else
writeln('Stroka ', s, ' naidena v pozicii ', i, '. Kol-vo sravneniy ', k);
end;
var
sf, f: TextFile;
arr: TMyArray;
str: string;
i: integer;
begin
//Заполнение массива arr из файла sf
for i := 1 to n do
arr[i] := '';
Assign(sf, 'sorted_list.txt');
Reset(sf);
i := 1;
while not Eof(sf) and (i <= n) do
begin
Readln(sf, arr[i]);
i := i + 1;
end;
Close(sf);
//Поиск перебором в массиве arr строк из файла f
Assign(f, 'test.txt');
Reset(f);
while not Eof(f) do
begin
readln(f, str);
Perebor(str, arr);
end;
Close(f);
end.
p.s :Как теперь ещё и реализовать бинарный поиск с помощью функции или процедуры в этой же программе?

Последний раз редактировалось Stilet; 18.09.2014 в 22:38.
DimzNOVIchok45 вне форума Ответить с цитированием
Старый 18.09.2014, 22:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,803
По умолчанию

Такс... Это у нас массив строк? Хм... Для начала его придется сортировать. Любой сортировкой, хоть пузырьком.
В бинарный поиск можешь подчерпнуть вот тут: http://www.programmersforum.ru/showthread.php?t=75857
Как раз кстати с массивом строк.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2014, 22:54   #5
DimzNOVIchok45
 
Регистрация: 18.09.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Такс... Это у нас массив строк? Хм... Для начала его придется сортировать. Любой сортировкой, хоть пузырьком.
В бинарный поиск можешь подчерпнуть вот тут: http://www.programmersforum.ru/showthread.php?t=75857
Как раз кстати с массивом строк.
Вы можете показать как сортировать методом пузырька, просто он мне неизвестен
DimzNOVIchok45 вне форума Ответить с цитированием
Старый 18.09.2014, 22:58   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Пан Stilet первое предложение в теме, говорит, что сортировка не нужна, не?
Poma][a вне форума Ответить с цитированием
Старый 19.09.2014, 08:25   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,803
По умолчанию

Цитата:
что сортировка не нужна, не?
Ой йо... Шире вселенной горе мойо.
Действительно сортировать не надо по заданию уже отсортированное дано.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2014, 21:40   #8
DimzNOVIchok45
 
Регистрация: 18.09.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ой йо... Шире вселенной горе мойо.
Действительно сортировать не надо по заданию уже отсортированное дано.
Как теперь эту программу объединить в 2 процедуры:одна бинарный поиск-
другая поиск перебором? p.s.: Покажите, пожалуйста, на примере.
DimzNOVIchok45 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
free pascal. Где-то Ошибка. Бинарный поиск в двумерном динамическом целочисленном массиве. Решетова Алена Помощь студентам 2 15.12.2012 06:22
Бинарный(Двоичный) поиск в одномерном массиве bonjovi Паскаль, Turbo Pascal, PascalABC.NET 1 31.01.2012 17:10
Бинарный поиск в массиве Driver_09 Помощь студентам 8 28.05.2010 15:53
Нужен совет(бинарный поиск в 2-d массиве) sergey31 Помощь студентам 2 27.04.2008 13:49