|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
||||||
Получение нового текстового файла, в котором все слова во всех предложениях записаны в обратном порядке24.02.2014, 19:31. Показов 4745. Ответов 39
Запрограммировать получение нового текстового файла, в котором все слова во всех предложениях записаны в обратном порядке. В программе установить максимальный размер стека равным 10.
Текст большой, поэтому выложу последнее предложение, в котором слов больше 10. "Тайник я создал пару дней назад, незаконно использовав один из компьютеров транспортного управления з кавказской железной дороги." Я мучаюсь уже довольно долго с этой проблемой, вот пытался что-то написать, но всё равно переполнение не удается обойти.
" из один использовав незаконно назад, дней пару создал я Тайник дороги. железной кавказской з управления транспортного компьютеров"
0
|
||||||
| 24.02.2014, 19:31 | |
|
Ответы с готовыми решениями:
39
Получить новый файл, в котором все слова во всех предложениях исходного файла, записаны в обратном порядке
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||||
| 26.02.2014, 16:55 | ||||||||
Сообщение было отмечено CrazyDrummer13 как решение
Решение
Эту задачу можно решать в упрощённом виде или без упрощения. В упрощённом виде - это когда в выходной файл не записываются знаки препинания и отступы. В этом случае достаточно использовать один стек - в него будут записываться слова предложений. Если решать без упрощения, то понадобится использовать стек и очередь или 2 стека. Если порядок следования знаков препинания не надо менять, тогда понадобится стек и очередь. В стек будут записываться слова предложений, а в очередь - части текста, расположенные между словами. Если порядок следования знаков препинания (и отступов) тоже надо поменять местами - тогда следует использовать 2 стека - один для слов, другой - для частей текста между словами.
Если принять упрощённый способ, то решить можно так. Здесь в выходном файле каждое предложение записывается на отдельной строке.
1
|
||||||||
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 26.02.2014, 18:30 [ТС] | |
|
спасибо большое, буду разбираться с вашим кодом. Хотелось бы ещё реализацию на 2 стека увидеть.
Добавлено через 10 минут А здесь учитывается главное условие - размерность стека?
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|||||||||
| 26.02.2014, 21:32 | |||||||||
Текст во входном файле:
0
|
|||||||||
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 27.02.2014, 00:48 [ТС] | |
|
Дело в том, что не нужно, чтобы вместо текста показывало "переполнение".. Нужно чтобы текст и дальше шёл.
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||||||||||
| 27.02.2014, 11:17 | ||||||||||||||
|
Тогда нужно убрать строки, где выполняется вывод этого сообщения и надо убрать переменную IsAdd:
И надо учитывать, что при записи в выходной файл, слова мы должны записывать как есть, а междусловия должны переворачивать. Я попробовал сделать таким образом. Результат получился правильный, но текст в выходном файле может получаться неудобным для чтения. Это связано с тем, что переносы строк тоже меняют своё положение. Чтобы текст выглядел аккуратным, понадобилось сделать следующее:- Переносы строк внутри предложений заменяются на пробелы. - Смежные междусловия, разделённые переносами - склеиваются. - Те переносы, которые встречаются в начале предложений - не учитываются. - В выходном тексте каждое предложение записывается на отдельной строке. С учётом этого получилось следующее:
Исходный текст:
0
|
||||||||||||||
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 28.02.2014, 01:04 [ТС] | |
|
вот последний код почти всё правильно делает, вот только я не понял как он обрабатывает переполнение..
и ещё, хорошо бы было, чтобы каждое предложение не начиналось с новой строки, а продолжалось как в тексте, вот например что у меня получилось по моему тексту.
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||||||||||||||||||
| 28.02.2014, 20:28 | ||||||||||||||||||||||
|
1. Без ограничения глубины стека.
Текст во входном файле: Кликните здесь для просмотра всего текста
Текст, сформированный программой в выходном файле: Кликните здесь для просмотра всего текста
1
|
||||||||||||||||||||||
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 28.02.2014, 21:08 [ТС] | |
|
Да!
Вывод как надо. Только я чуть чуть не понял... Глубина стека = 100 ? Надо ведь 10..
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 28.02.2014, 21:15 | |
|
Ну это я просто начальную глубину поставил - 100. Можно на 10 поменять.
![]() Добавлено через 1 минуту Но только надо иметь в виду, что у нас сейчас в стек пишутся не только слова, но и междусловия. Поэтому, возможно имеет смысл глубину поставить больше, чем 10.
0
|
|
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 28.02.2014, 21:17 [ТС] | |
|
так а по условию размерность стека = 10
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 28.02.2014, 21:28 | |
|
Ну можно 10 поставить. Только слов маловато будет тогда в стек помещаться. Если предложение полностью расположено на одной строке, то будет 5 слов и 5 междусловий. Если предложение переносится на другую строку и при этом получилось так, что какое-то междусловие разделилось на 2 части, то уже получим, например, 4 слова и 6 междусловий. Потому, что перевод строки засчитывается, как отдельное междусловие.
0
|
|
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 28.02.2014, 21:29 [ТС] | |
|
и что делать тогда?
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 28.02.2014, 21:44 | |
|
Здесь по-разному можно поступить. Если придерживаться существующей архитектуры, то можно склейку междусловий выполнять на этапе заполнения стека (сейчас склейка выполняется на этапе записи в файл). Но всё равно в стеке будут слова и междусловия.
Или можно задействовать 2 стека - в один складывать слова, в другой - междусловия. Глубину обоих стеков установить равной 10, например. Если 2 стека разрешено использовать можно вот так тогда и поступить.
0
|
|
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 28.02.2014, 21:45 [ТС] | |
|
да, два стека можно использовать
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 28.02.2014, 21:47 | |
|
Хотя можно и 1 стеком для слов обойтись. Но это будет решение, в котором стеки вообще не нужны.
И там стек будет выглядеть неуместным образом...
0
|
|
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 28.02.2014, 21:47 [ТС] | |
|
Покажете?
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 28.02.2014, 21:48 | |
|
1
|
|
|
3 / 3 / 1
Регистрация: 07.11.2013
Сообщений: 49
|
|
| 28.02.2014, 21:48 [ТС] | |
|
спасибо большое, не знаю, чем вас отблагодарить
0
|
|
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||||||||||||
| 01.03.2014, 09:27 | ||||||||||||||||
|
Решение с двумя стеками. В один стек записываются слова, в другой - междусловия. Здесь опять в двух вариантах: 1 - без ограничения глубины стеков, 2 - с ограничением.
Теперь в перечень разделителей слов добавлен знак двойной кавычки ":
1. Без ограничения глубины стеков.
0
|
||||||||||||||||
| 01.03.2014, 09:27 | |
|
Помогаю со студенческими работами здесь
20
Сформировать второй массив, в котором элементы записаны в обратном порядке
В каждой строке текстового файла переставить слова в обратном порядке Вывести слова каждого предложения текстового файла на экран в обратном порядке Имеется типизированный файл, в котором записаны 18 целых чисел. Переписать все положительные числа файла в массив в том же порядке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|