Программа содержит цикл с предусловием: «нашлось (2222)» или «нашлось (8888)». Значит, тело цикла будет выполняться, если окажется истинным хотя бы одна из них, в противном случае программа останавливается.
Рассмотрим тело цикла:
Если в строке есть подстрока 2222, то происходит ее замена на 8. Иначе (если в строке нет 2222), но есть подстрока 8888, то она заменяется на 2.
Исходная строка имеет 146 идущих подряд цифр 8 (888…8). Значит, условие цикла истинно (нашлось (8888)).
Так как в исходной строке нет подстроки 2222, то выполняется ветвь ИНАЧЕ и происходит замена подстроки 8888 на 2. Таким образом, после одного шага цикла строка будет иметь следующий вид: 2888…8 (цифр 8 теперь на 4 меньше, то есть 142).
Очевидно, после ещё трёх шагов цикла строка примет следующий вид: 2222888…8 (цифр 8 теперь ещё на 12 (4*3) меньше, то есть 130).
На следующем шаге при проверке условия «нашлось (2222)» получаем истину, поэтому выполняется ветвь ЕСЛИ и подстрока 2222 заменяется на 8 (цифр 8 теперь 131).
Не трудно заметить, что за 5 шагов в строке шестнадцать цифр 8 заменяются на одну 8 (т. е. удаляется 15 (146-131) восьмерок).
Выясним, сколько раз в исходной строке встретится по 15 восьмерок и какой будет строка после проведенных преобразований:
146 ÷ 15 = 9 (остаток 11).
Значит, строка имеет следующий вид: 8888 8888 888 (11 восьмерок).
В результате двух последних шагов цикла подстроки 8888 заменяются на двойки и окончательно получаем строку 22888.
1. Вычисляется сумма квадратов чисел от 1 до 4: 1²+2²+3²+4².
2. Вычисляется сумма чисел от 1 до 5. Таблица изменений S и i в цикле for прикреплена в первом вложении.
3. Здесь вычисляется произведение чисел от 1 до 4. После выполнения цикла for в s будет храниться 1*2*3*4=24, а в a - 5. Таблица изменений i, s и a в цикле for прикреплена во втором вложении.
4. Здесь вычисляется произведение чисел от 1 до 5, за исключением того, что изначально s=0, поэтому после цикла for в s тоже будет храниться 0. А в a будет храниться 6.
5. Это циклический алгоритм.
6. S=4. Внутри цикла while число S увеличивается на 1, пока не перестанет выполняться условие "X <= 3". Так как X увеличивается вместе с S, то после цикла S=X=4.
7. Не уверен, что соблюдены какие-то правила составления блок-схем, но в общем у меня получилась такая (вложение 3).
22888
Объяснение:Проанализируем алгоритм:
Программа содержит цикл с предусловием: «нашлось (2222)» или «нашлось (8888)». Значит, тело цикла будет выполняться, если окажется истинным хотя бы одна из них, в противном случае программа останавливается.
Рассмотрим тело цикла:
Если в строке есть подстрока 2222, то происходит ее замена на 8. Иначе (если в строке нет 2222), но есть подстрока 8888, то она заменяется на 2.
Исходная строка имеет 146 идущих подряд цифр 8 (888…8). Значит, условие цикла истинно (нашлось (8888)).
Так как в исходной строке нет подстроки 2222, то выполняется ветвь ИНАЧЕ и происходит замена подстроки 8888 на 2. Таким образом, после одного шага цикла строка будет иметь следующий вид: 2888…8 (цифр 8 теперь на 4 меньше, то есть 142).
Очевидно, после ещё трёх шагов цикла строка примет следующий вид: 2222888…8 (цифр 8 теперь ещё на 12 (4*3) меньше, то есть 130).
На следующем шаге при проверке условия «нашлось (2222)» получаем истину, поэтому выполняется ветвь ЕСЛИ и подстрока 2222 заменяется на 8 (цифр 8 теперь 131).
Не трудно заметить, что за 5 шагов в строке шестнадцать цифр 8 заменяются на одну 8 (т. е. удаляется 15 (146-131) восьмерок).
Выясним, сколько раз в исходной строке встретится по 15 восьмерок и какой будет строка после проведенных преобразований:
146 ÷ 15 = 9 (остаток 11).
Значит, строка имеет следующий вид: 8888 8888 888 (11 восьмерок).
В результате двух последних шагов цикла подстроки 8888 заменяются на двойки и окончательно получаем строку 22888.
1. Вычисляется сумма квадратов чисел от 1 до 4: 1²+2²+3²+4².
2. Вычисляется сумма чисел от 1 до 5. Таблица изменений S и i в цикле for прикреплена в первом вложении.
3. Здесь вычисляется произведение чисел от 1 до 4. После выполнения цикла for в s будет храниться 1*2*3*4=24, а в a - 5. Таблица изменений i, s и a в цикле for прикреплена во втором вложении.
4. Здесь вычисляется произведение чисел от 1 до 5, за исключением того, что изначально s=0, поэтому после цикла for в s тоже будет храниться 0. А в a будет храниться 6.
5. Это циклический алгоритм.
6. S=4. Внутри цикла while число S увеличивается на 1, пока не перестанет выполняться условие "X <= 3". Так как X увеличивается вместе с S, то после цикла S=X=4.
7. Не уверен, что соблюдены какие-то правила составления блок-схем, но в общем у меня получилась такая (вложение 3).