![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 12
|
![]()
Дана символьная строка. Слово – последовательность символов
между пробелами, не содержащая пробелы внутри себя. Составьте программу для решения следующей задачи: Отредактировать заданное предложение, удаляя из него слова с нечетными номерами и переворачивая слова с четными (например, how do you do --> od od). ![]() |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну а в чем проблема? - разделить строку на слова или поудалять из нее лишние?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 109
|
![]()
Не знаю разберёшься ли в моём коде, но прога работает:
Код:
|
![]() |
![]() |
![]() |
#4 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
![]()
Долго думал вот над этим:
Код:
![]() А вообще верно, я бы даже заморачиваться из-за одного пробела в конце не стал. Ссылку дал на всякий случай, а то вдруг подумаешь, что оскорбить пытался ![]()
Все тривиальное просто
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
Я извиняюсь за вторжение в разговор.. Надеюсь, код Куя действительно работает (не проверял), но я все же сделал бы иначе
![]() Код:
![]()
Предпочитаю на "ты".
Последний раз редактировалось TinMan; 22.04.2012 в 05:12. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
Эта маленькая бяка не давала мне покоя.. )) Сегодня была свободная минутка - и я сделал это!!
![]() Ни одной переменой ВООБЩЕ - только параметры функций (причем, не липовые!)) Любуйтеся, ежели кому есть дело.. )) Код:
![]() P.S. Еще один момент.. Можно ли полагаться на то, что обработка в сумме строк идет справа налево? Если заменить сумму на Concat, то получается то же самое, кстати. Ктонть скажет ченть по этому поводу?.. Карпинский, а?
Предпочитаю на "ты".
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
А как Вы считаете, хороший ли это стиль, когда результат может зависеть от того, как та или иная функция реализована в компиляторе?
Да, проверил на своем компиляторе (TMT Pascal 4.01), 3 строки : первая "'how do you do and what you drink now'", вторая "'zero one two three four five six seven eight nine ten elleven twelve '", третья "' '+'zero one two three four five six seven eight nine ten elleven twelve'". 1 вариант (от kuy): "od od tahw" "orez ruof evif enin evlewt" "orez ruof evif enin evlewt" 2 вариант (от TinMan): " RunError #202 at 00402AB0" " orez ruof evif enin evlewt" " RunError #202 at 00401940 " 3 вариант (от TinMan): " RunError #202 at 004029F0 " " RunError #202 at 004029F0 " " RunError #202 at 004029F0 " Последний раз редактировалось s-andriano; 22.04.2012 в 10:43. |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]() Цитата:
![]() Хороший стиль - это наплодить как можно больше дубовых (с разных точек зрения) решений, завалить ими форум и сделать жизнь предельно нудной и скучной )). Сан-Андриано, я не претендовал на 100%-ную надежность предложенного кода. Я пытался показать коллегам, что бывает что-то другое тоже (кроме циклов)) и вызвать их на разговор. И, похоже,. преуспел.. ![]() TNT, говоришь? Давненько я с ним не сталкивался.. Спасибо за инфу, поисследую (когда поставлю).
Предпочитаю на "ты".
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 12
|
![]()
ребята шикарно! спасибо всем , вы молодцы)))
|
![]() |
![]() |
![]() |
#10 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Выходит, все остались довольны друг другом и собой. ![]() Цитата:
Вообще говоря, вполне ВОЗМОЖНО писать программы, которые будут работать при любом компиляторе. Ну, точнее, алгоритмы. С другой стороны, традиционно принято уделять внимание оптимизации алгоритмов и программ. Нужно только IMHO уметь отделять оптимизацию от "оптимизации". В данном случае, если бы стояла задача ТОЛЬКО выбросить часть слов, то это можно было бы сделать на месте, не прибегая к дополнительной памяти. Но вот когда требуется что-то частично перевернуть, без дополнительной памяти не обойтись в принципе. И в этом случае ИЛЛЮЗИЯ неиспользования дополнительной памяти может быть достигнута лишь некоторым насилием над компилятором и использованием его недокументированных возможностей, что автоматически приводит к непереносимости кода. По сути в предложенном решении используется не просто дополнительная память, но дополнительный МАССИВ, имеющий размер обрабатываемого массива (строка массив символов), т.е. решение имеет требование по памяти O(N). А ту же самую задачу можно решить, используя лишь несколько простых переменных, т.е. требование по памяти O(1). И при этом быть переносимым. Т.е. оптимизация IMHO состоит не в том, чтобы "спрятать" использование массива, а в том, чтобы без него реально обойтись. PS. Да уж, "вызов на разговор" удался. ![]() |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки | Алексей_2012 | Помощь студентам | 1 | 05.04.2012 11:26 |
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности | kris__tina | БД в Delphi | 1 | 09.06.2011 15:31 |
Создание пустой строки и копирование в неё содержимое предыдущей строки | Gvaridos | Microsoft Office Excel | 2 | 29.10.2010 13:33 |
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. | Александе еть я | Общие вопросы C/C++ | 5 | 13.04.2010 20:54 |
Перенести символа с начала строки в место перед запятой этой же строки. | Zhiltsov | Microsoft Office Excel | 4 | 05.06.2009 13:10 |