Даны текстовый файл и некоторое слово. Напечатайте те строки файла, которые содержат данное слово. Можете подробно рассказать о механизме поиска. Только не надо интернета, это все не то. Большое спасибо))
Answers & Comments
NameOff
Механизмы поиска могут быть различными. Конкретный механизм зависит от различных факторов, таких как, количество планируемых поисков, объем текстового файла, условия поиска и т.д. 1. Однократный поиск в соответствии с условиями задачи. В этом случае нет смысла в использовании сложных алгоритмов и/или предварительной подготовке файла. Чем сложнее алгоритм, тем больше будут затраты труда и времени на написание и отладку программы. Наилучшее решение - последовательный просмотр строк файла с поиском первого вхождения в строку заданного контекста. Большинство языков программирования имеет встроенную функцию или процедуру поиска подстроки в строке, например Pos() в языке Паскаль, поэтому задача сводится к единственному циклу "Повторять пока не встретился конец файла: читать строку, искать в строке контекст и что-то с ним сделать". 2. Многократный поиск в файле различных контекстов. Здесь используются специально разработанные методы, основанные на предшествующем построении дополнительных структур, таких, как индексы, деревья поиска и т.д. Их общий смысл в том, что для поиска сначала просматриваются эти вспомогательные структуры (которые, к тому же, упорядочены для ускорения поиска) и зачастую к самому файлу можно вообще не обращаться. Для понимания аналогии можно вспомнить поиск нужного слова в словаре. Сначала мы выбираем первую букву, затем ищем страничку, которая содержит слова, между которыми находится наше искомое, а потом просматриваем найденную страницу.
Answers & Comments
1. Однократный поиск в соответствии с условиями задачи.
В этом случае нет смысла в использовании сложных алгоритмов и/или предварительной подготовке файла. Чем сложнее алгоритм, тем больше будут затраты труда и времени на написание и отладку программы. Наилучшее решение - последовательный просмотр строк файла с поиском первого вхождения в строку заданного контекста. Большинство языков программирования имеет встроенную функцию или процедуру поиска подстроки в строке, например Pos() в языке Паскаль, поэтому задача сводится к единственному циклу "Повторять пока не встретился конец файла: читать строку, искать в строке контекст и что-то с ним сделать".
2. Многократный поиск в файле различных контекстов.
Здесь используются специально разработанные методы, основанные на предшествующем построении дополнительных структур, таких, как индексы, деревья поиска и т.д. Их общий смысл в том, что для поиска сначала просматриваются эти вспомогательные структуры (которые, к тому же, упорядочены для ускорения поиска) и зачастую к самому файлу можно вообще не обращаться. Для понимания аналогии можно вспомнить поиск нужного слова в словаре. Сначала мы выбираем первую букву, затем ищем страничку, которая содержит слова, между которыми находится наше искомое, а потом просматриваем найденную страницу.