Дана программа для исполнителя Редактор:
ПОКА нашлось (2222) ИЛИ нашлось (8888)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 8)
ИНАЧЕ заменить (8888, 2)
КОНЕЦ
КОНЕЦ
Какая строка получится в результате применения этой программы к строке, состоящей из:
а) 65 идущих подряд цифр 8;
б) 72 идущих подряд цифр 8;
С подробным объяснением, пожалуйста.
Answers & Comments
Ответ: a: 28);
б: 222).
Объяснение:
А) По условию мы имеем 8888..8888[65]
ПОКА нашлось (2222) ИЛИ нашлось (8888) - это условию
То есть как я понимаю данный оператор производит выборку из текста и заменить его на результат заданный оператором.
Допустим: 8888..8888[65] - Удовлетворяем условию <нашлось (8888)>
ЕСЛИ нашлось (2222)
ТО заменить (2222, 8) // Двоек на данный момент у нас нет, пропускается
ИНАЧЕ заменить (8888, 2) // То есть 8888 =>2
Блок у нас состоит из 4 цифр значит мы 65/4= 16 целых - это у нас количество <2> 1 в остатке - это оставшиеся <8>
В итоге получаем 2222.2222[16]8
Возвращаемся в начало цикла и тут у нас уже подходит условие с (2222)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 8) - меняем
16/4=4 //Если не забыли это количество всех наших чисел равных 2 делим на блок из 4 чисел. Не забываем про остаток от предыдущего деления в виде 8[1]
В итоге получаем: 88888
Cнова вернемся в начало цикла.
88888 Удовлетворяем условию <нашлось (8888)>
Меняем 8888=>2. В итоге
28
Ответ:28
2) Делаем по аналогии
72/4=18[2]
18/4=4[8] 2{2}
4/4=1{2] + 2{2}= 3{2}
Ответ: 222