![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 16.08.2013
Сообщений: 6
|
![]()
Не понимаю как решать данную задачу на паскале.
Из всей задачи понимаю, что придется работать с массивами, но как циклы построить правильно для перебора слов я затрудняюсь. Подскажите пожалуйста. Текст задачи: У Васи на клавиатуре не работает клавиша пробел. Поэтому все тексты он теперь набирает слитно. Напишите программу, которая будет разделять набранный Васей текст на слова из данного словаря. Формат входных данных Сначала на вход программы поступает текст, введенный Васей – одна строка из не более чем 100 латинских строчных букв. В следующей строке входных данных задается значение N – количество слов в словаре (N – натуральное число, не превосходящее 2000). В следующих N строках записаны слова из словаря – по одному слову в строке, каждое слово содержит не более 20 латинских строчных букв. Слова записаны в алфавитном порядке. Формат выходных данных Выведите Васин текст с пробелами между словами (пробел после последнего слова допустим). Если возможно несколько вариантов разбиения строки на слова, выведите любой их них. Гарантируется, что хотя бы один способ разбиения строки на словарные слова существует. Заранее спасибо) |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.05.2010
Сообщений: 407
|
![]()
N – количество слов в словаре (N – натуральное число, не превосходящее 2000)
словарь составлен ?
icq 584 308 611
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
коллега, ну что Вы, зачем TC составлять словарь, если он КАЖДЫЙ раз будет разный.
Это явно олимпиадная задачка. Словарь задаётся исходными данными. "Подлянка" будет в том, что будут слова, начинающиеся одинако. например, МАМАМЫЛАРАМУ будет такой словарь АМУ АРА ЛАР МА МАМ МАМЫ МУ вполне допускаю, что задачу можно решать через рекурсию (если не удалось найти очередное слово, откатываемся назад, берём следующее подходящее...), главное, чтобы хватило стека и времени... |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 31.05.2010
Сообщений: 407
|
![]()
(N – натуральное число, не превосходящее 2000
тогда довольно таки забавно проверять работоспособность программы если N=2000 и каждый раз вводить словарь ![]()
icq 584 308 611
|
![]() |
![]() |
![]() |
#5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Тестировать можно здесь - http://informatics.mccme.ru/moodle/m...?chapterid=515.
Мб вечером попробую решить.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Не хватило сил додумать основной цикл вчера.
Первоначальное решение (можно, скорее всего, упростить): Код:
Решение запутанное, так как вместо рекурсивной функции был реализован стек через массив. Уровень "неприятности" можно оценить хотя бы по уровню косвенности (конструкции вида c[a[i][1]] или a[b[m]]).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Добрый день..
Вот я что-то накропал.. Проходит только 2 теста.. в остальных или неправильный ответ или "Ошибка во время выполнения программы".. Свой косяк я найти не могу.. мои тесты проходят.. прошу помощь, заранее спасибо! Код:
Последний раз редактировалось Poma][a; 19.09.2013 в 21:36. |
![]() |
![]() |
![]() |
#8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Пока прочел не весь Ваш код и не "въехал" в принцип. Замечания по ходу чтения:
Легко могу переполнить массив a; Не вижу пока смысла в размере на 20000 массива dict. Интересно, вернется ли ТС за решением, или тема перетечёт в обсуждение различных решений задачки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#9 | ||||
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]() Цитата:
А раз отдельно вынести dict я уже и забыл.. Спасибо! Цитата:
Цитата:
![]() Цитата:
![]() Последний раз редактировалось Poma][a; 19.09.2013 в 22:31. |
||||
![]() |
![]() |
![]() |
#10 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Вот я чуть-чуть подправил..
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
словарь | ssdo | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 29.11.2011 14:57 |
словарь t9 | Yippee-ki-yay | Помощь студентам | 1 | 08.11.2011 00:13 |
Словарь | Ципихович Эндрю | Microsoft Office Word | 2 | 22.02.2011 21:02 |
Словарь | Rebel123 | Софт | 4 | 03.07.2009 09:19 |