Не пойму как нужно правильно сделать? Паскаль

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Всем привет!
Вот такая задача:

Дан текстовый файл f. Состоящий из строк. Найти самое длинное слово среди слов, вторая буква которых есть e; если слов с наибольшей длинной несколько, то найти последнее. Если таких слов нет вообще, то сообщить об этом. Решить эту задачу без ограничения на число символов в слове.

все бы ничего, но проблема в том что стоит условие, в котором я затрудняюсь... не могу представить как так можно сделать?
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
ПН...
Сообщения: 11
Зарегистрирован: 14 ноя 2006, 18:21

Считываешь строку из файла, через нахождение пробелов отделяешь одно слово от другого. Эти слова можно в массив скинуть, а потом проверять длину каждой строки и проверять наличие второй буквы 'е'. Как только находишь какое-нибудь слово со второй 'е', то в переменную, куда будешь записывать результат, пишешь это слово и в числовую переменную длину слова. Как только находишь следующее подходящее слово, то сравниваешь длину, если больше - переприсваиваешь.
А чем условие смущает?
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Ну, я так думаю, в строке может быть больше 255 символов. А это для Паскаля бяка.
Можно все проще:
1. Читаем первые два символа от курсора.
2. Если 2 символ - "е", то скидываем эти два символа в массив чаров и дальше считываем по одному символу и скидываем в тот же массив, пока не дойдем до разделителя (пробела, точки, запятой и т.д.)
2'. Если 2 символ - не "е", то пропускаем все символы до разделителя включительно.
3. Пропускаем все разделители (кто знает, вдруг там много пробелов понатыкано). Если 2 символ был не "е" - переходим на шаг 1.
4. Сохраняем буквенный массив и его длину в переменных, если эта длина больше длины, полученной на предыдущем шаге.
5. Возвращаемся к шагу 1.
Схемка кривовата, но в общем работает.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

[quote="&quot"]Ну, я так думаю, в строке может быть больше 255 символов. А это для Паскаля бяка.
[quote]
И где бяка.. WideString есть можно написать что-то типа этого WideString[1000] должно хватить..
А вообще все зависит от реализации, я бы загнал содержимое куда-нить а потом бы работал с ним..
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Считываешь строку из файла, через нахождение пробелов отделяешь одно слово от другого. ...
А знаки препинания (запятые, тире) в тексте могут быть?
Если да, то прочше анализировать "от противного". Т.е. не "если пробел - то это разделитель", а "если не буква - то это разделитель"
ПН...
Сообщения: 11
Зарегистрирован: 14 ноя 2006, 18:21

"если не буква - то это разделитель"
А если слово двусложное? Например, "кое-что" - это ведь одно слово, а не два.
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

ПН... писал(а):"если не буква - то это разделитель"
А если слово двусложное? Например, "кое-что" - это ведь одно слово, а не два.
Вот как раз не уверен.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Опять же - что считать разделителем. Апостроф, например? Есть же д'Артаньян
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Спец символы проще всего к примеру ^ , я не видел что бы его на письме использовали или 2 знака являются разделителем итд
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Любое множество символов до пробела - есть слово. Может и не русское, просто оно НАМ не понятно. Давайте тогда уж еще и словарь подключим - будем выяснять, что являеться словом, а что нет. С точки зрения авторов задачи, я думаю, они не ставили цель позаботиться о существовании исходных слов
It's a long way to the top if you wanna rock'n'roll
Ответить