|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.10.2014, 18:53 | #1 |
Пользователь
Регистрация: 26.10.2013
Сообщений: 54
|
Подскажите алгоритм решения
Здравствуйте. Вот задача
Дан файл, содержащий некоторый текст. В новый файл записать самую длинную фразу и фразу с наибольшим количеством слов. Я написал программу, в которой считывал файл в массив символов и потом работал с ним. Преподаватель сказал, что плохо то, что содержимое файла целиком считывается в оперативную память. Это не всегда возможно! Я решил написать без считывания в массив. И тут возникла проблема. Идей вообще нет. Может кто-нибудь подскажет как быть? Примечание. Исходный файл к задаче может содержать как латинские, так и русские буквы, на одной строке может находиться несколько фраз, возможно продолжение фразы на следующей строке. Фразы отделяются друг от друга точками, а слова – пробелами и знаками препинания. Последняя фраза в файле может быть без точки в конце. |
07.10.2014, 20:52 | #2 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
А потом по необходимости будешь определять расстояние от одной точки до другой с помошью этого массива и... Соответственно считывать в некий массив, который будешь анализировать на слова. Массив может быть динамический.
I'm learning to live...
|
||
07.10.2014, 20:52 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Читаем файл небольшими блоками ищем в блоке конец строки.
Если нет, добавляем весь блок в рабочую строку. Если есть, добавляем только до конца строки. Потом проверяем - считаем длину строки, количество слов и т.д., если результаты лучше сохраняем строку и счетчики. Сбрасываем рабочую строку (в которую добавляли из буфера) и начинаем по новой, не забывая обработать остаток текста в буфере. Не идеальный вариант, поскольку требует хранения строк в памяти - можно обойтись вообще без этого. |
07.10.2014, 21:01 | #4 | ||
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
||
07.10.2014, 21:06 | #5 |
Пользователь
Регистрация: 26.10.2013
Сообщений: 54
|
Спросил препода. Он имел ввиду, что нельзя читать в строку весь файл, а только одно предложение)
|
07.10.2014, 21:25 | #6 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Или пусть докажет обратное - даст файл, содержащий больше одного предложения, из которого нельзя прочитать два предложения. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
07.10.2014, 21:26 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Мы так троллили преподов в универе.
I'm learning to live...
|
|
07.10.2014, 21:45 | #8 |
Пользователь
Регистрация: 26.10.2013
Сообщений: 54
|
имеется ввиду, что в данной задаче так делать нельзя (это просто его прихоть))
|
07.10.2014, 21:49 | #9 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Ну читай побайтно тогда, до точки или eof. По-дебильному, конечно, пусть подавится. В реальной работе никогда так не делай. Вот, к примеру, Чикатило так делал. И что? Представь себе - ресстреляли! И поделом!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
07.10.2014, 21:58 | #10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,069
|
Нормальная тема, нормальное задание, нормальное ограничение от препода, так что не нужно никого троллить. Прочитали себе фразу из файла, померили длину и количество слов, запомнили. Прочитали следующую фразу, опять померили, если она длиннее или количество слов в ней больше, то её запомнили, а предыдущую фразу выкинули нафиг за ненадобностью. И так весь файл. Память нужно под 3 фразы:
1) Текущая читаемая из файла 2) Самая длинная 3) Самая многословная и пофиг какого там размера файл и пофиг, что современные компы и гиговый файл слопают за раз, это обучение и тут нет места такому занудству |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм решения задачи | snpccvs | Помощь студентам | 8 | 13.02.2012 22:50 |
Подскажите пожалуйста алгорим решения | savra | Помощь студентам | 2 | 21.10.2009 22:15 |
Алгоритм решения | Naruto63 | Помощь студентам | 6 | 20.09.2009 22:47 |
подскажите варианты решения | leozay | Microsoft Office Excel | 10 | 26.08.2009 21:24 |
Подскажите алгоритм решения | Blad47 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.11.2008 19:50 |