![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Даны две строки, состоящие из слов. Получить строку, в которой чередуются слова первой и второй строки. Если в одной из строк слов больше, чем в другой, то оставшиеся слова этой строки дописать подряд в строку-результат.
помогите пожалуйста с алгоритмом чередования слов ????????? ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
разбиваешь на слова, получаешь 2 массива. потом из каждого берешь по одному слову-элементу и записываешь в результирующую строку, пока в одном не закончатся элементы.
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Можно и без дополнительной строки
![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
18192123, чем могут разделяться слова в строках?
|
мисс_граффити |
![]()
Сообщение
#5
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Можно и без дополнительной строки ![]() то есть? я где-то сказала, что у нас будет три строки? результирующей может выступать и одна из исходных... просто воспользовалась терминологией задачи: Цитата Даны две строки, состоящие из слов. Получить строку, в которой чередуются слова первой и второй строки. Если в одной из строк слов больше, чем в другой, то оставшиеся слова этой строки дописать подряд в строку-результат. или ты о каком-то принципиально ином способе решения? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Юля, я как раз о принципиально ином способе - без массивов...
![]() |
мисс_граффити |
![]()
Сообщение
#7
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Юля, я как раз о принципиально ином способе - без массивов... ![]() Да я после таких вопросов ничего, кроме оригинально-интересного способа и не жду. Кажется, даже есть подозрение: вырезать слова из одной строки (в смысле, копировать и удалять), и вставлять на место пробела (если только пробелы - разделители) во вторую? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата вырезать слова из одной строки (в смысле, копировать и удалять), и вставлять на место пробела (если только пробелы - разделители) во вторую? Я вот это и имел в виду (только удалять правда не обязательно) под своим вариантом без третьей строки, а ты как хотела сдалать ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
18192123 |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
слова могут разделяться только пробелом. А как решать мою задачу без массивов?
Кстати, нужно без copy, delete. Сообщение отредактировано: 18192123 - 20.12.2006 20:21 |
мисс_граффити |
![]()
Сообщение
#10
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Я вот это и имел в виду (только удалять правда не обязательно) под своим вариантом без третьей строки, а ты как хотела сдалать ? просто после того, как мы раскидали слова по массивам, нам не нужны старые строки, поэтому можем записывать в одну из них. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
klem4 |
![]()
Сообщение
#11
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Эм, ну массивы в принципе тоже не нужны
![]() Ладно ждем что скажет автор темы ![]() Упс автор уже сказал ![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
мисс_граффити |
![]()
Сообщение
#12
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
без copy и delete хуже
![]() insert можно? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
18192123 |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
мисс_граффити |
![]()
Сообщение
#14
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
можно еще так: заводим новую строку, посимвольно прибавляем к ней слово первой строки, пока не наткнемся на пробел (или не кончится строка). после этого посимвольно копируем кусочек второй... если первая не кончилась - возвращаемся к ней...
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
Кстати, нужно без copy, delete. В принципе, не очень-то и хотелось ![]() Вполне реально обойтись БЕЗ них... var(дополнительные строки - только для того, чтобы НЕ портить исходные... Так было бы достаточно трех строк) |
18192123 |
![]()
Сообщение
#16
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
var Объясни пожалуйста некоторые моменты:
Для чего эта операция? И за что отвечают b и did_it ? |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
А тебе что, удобнее делать Copy+Paste? Сначала - обрабатывать НЕпробелы, а потом - пробелы между словами? Тогда делай Copy+Paste... Я предпочитаю сделать один доп. цикл: сначала переменная B равна False, благодаря чему (s[i] = ' ') = b выполняется для НЕпробелов, при втором проходе B становится равно True, и в ЭТОМ ЖЕ цикле обрабатываются только пробелы между словами...
А did_it - дополнительная переменная, чобы не потерять нужный пробел между словами, и в то же время не добавлять лишние пробелы... Попробуй, убери ее, увидишь, что будет... |
18192123 |
![]()
Сообщение
#18
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Я не поняла, за счёт чего чередуются слова, ведь у нас в цикле repeat два цикла, отдельно по каждой строке
??? |
volvo |
![]()
Сообщение
#19
|
Гость ![]() |
Цитата за счёт чего чередуются слова, ведь у нас в цикле repeat два цикла, отдельно по каждой строке Угу... Вот именно за счет этих двух циклов и чередуются... Ты не заметила, что циклы вызываются последовательно для двух строк (для первой - для второй, потом срабатывает Repeat/Until, опять, для первой - для второй)... Вот тебе и чередование. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:24 |