Автор | Сообщение |
|
Отправлено: 02.03.20 10:42. Заголовок: задание 14, №121
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр. заменить (v, w) нашлось (v) Дана программа для исполнителя Редактор: НАЧАЛО ПОКА нашлось (333) ИЛИ нашлось (555) ЕСЛИ нашлось (555) ТО заменить (555, 3) ИНАЧЕ заменить (333, 5) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ Какая строка получится в результате применения приведённой выше программы к строке, состоящей из 146 идущих подряд цифр 5? В ответе запишите полученную строку. В ответах результат получается 553355, точно такой же результат получается в программе для решения задач с Редактором (Р. Либеров и А.Л. Наймушин). Проходя первый цикл пока заменяет сразу все 555 подряд, в последующих прохождениях цикла как при замене 333 на 5 как только накопится 555, сразу заменяет их на 3. Не противоречит ли алгоритм работы программы сам себе? Я решала так: сначала в стоке заменяем все встречающиеся 555 на 3, из 146 подряд идущих 5-к получаем 48 идущих подряд 333333...и 55 в конце затем меняем уже во вновь полученной строке все встречающиеся 333 на 5, и т.д. Какой алгоритм правильный?
|
|
|
Ответов - 8
[только новые]
|
|
|
| Администратор
|
Сообщение: 2018
|
|
Отправлено: 03.03.20 23:09. Заголовок: alenka.kurilyak пише..
alenka.kurilyak пишет: цитата: | Не противоречит ли алгоритм работы программы сам себе? |
|
Не очень понятно, в чем вопрос. цитата: | затем меняем уже во вновь полученной строке все встречающиеся 333 на 5, и т.д. |
|
Это не соответствует программе, которая дана в условии.
|
|
|
|
Отправлено: 04.03.20 06:41. Заголовок: спасибо за ваш ответ
если коротко: у вас от ответах 553355, у меня 55. кто ошибся?
|
|
|
|
| Администратор
|
Сообщение: 2019
|
|
Отправлено: 04.03.20 08:11. Заголовок: alenka.kurilyak пише..
alenka.kurilyak пишет: цитата: | у вас от ответах 553355, у меня 55. кто ошибся? |
|
Предлагаю написать программу и проверить.
|
|
|
|
Отправлено: 04.03.20 10:00. Заголовок: Проверяла в программ..
Проверяла в программе, ответ получился 553355. Почему??? Как решаю я: строка из 146 пятерок в результате замен превращается в строку из 48 троек и 55 в конце затем 333333(48 троек) и 55 в конце должны быть заменены на 555555(16 пятерок) и 55 в конце, .т.е. в результате 18 пятерок затем 555555555555555555 заменяем на 333333 затем 333333 заменяем на 55 В чем моя ошибка?? Как решает программа: строка из 146 пятерок в результате замен превращается в строку из 48 троек и 55 в конце затем в строке из 333333(48 троек) и 55 заменяем встреченные 333 на 5 и как только накопилось в начале строки 555 они тут же меняются на 3. Хотя первая (исходная) строка обрабатывается не так
|
|
|
|
| Администратор
|
Сообщение: 2020
|
|
Отправлено: 04.03.20 10:03. Заголовок: alenka.kurilyak пише..
alenka.kurilyak пишет: цитата: | затем 333333(48 троек) и 55 в конце должны быть заменены на 555555(16 пятерок) и 55 в конце, |
|
Попробуйте обосновать этот вывод, используя данный в условии алгоритм.
|
|
|
|
Отправлено: 04.03.20 10:08. Заголовок: почему тогда при обр..
почему тогда при обработке исходной строки в программе так же сразу не меняется первые накопленные 333 на 5?
|
|
|
|
| Администратор
|
Сообщение: 2021
|
|
Отправлено: 04.03.20 10:12. Заголовок: alenka.kurilyak пише..
alenka.kurilyak пишет: цитата: | почему тогда при обработке исходной строки в программе так же сразу не меняется первые накопленные 333 на 5? |
|
А попробуйте выполнить алгоритм как формальный исполнитель, ничего не додумывая и не интерпретируя. По шагам, вручную. Скажем, для цепочки из 20 пятерок.
|
|
|
|
Отправлено: 11.03.20 06:43. Заголовок: 55555555555555555555..
55555555555555555555 33333355 5555 35 не так разве?
|
|
|
|