Что будет выведено в результате выполнения цикла? for x := 1 to 5 do write ('#'); for x := 0 to 5 do write (' # '); for x := 2 to 7 do write ('#'); for x := 5 to 5 do write ('#'); for x := 6 to 5 do write ('#'); for x := 5 downto 1 do write ('#'); for x := 5 downto 5 do write ('#'); for x := 5 downto 2 do write ('#'); for x := 1 downto 5 do write ('#');
Ответы на вопрос
Разберём по каждому циклу отдельно и посчитаем, сколько раз выполнится write.
Важно помнить:
-
for x := a to b doвыполняется, еслиa <= b, с шагом+1. -
for x := a downto b doвыполняется, еслиa >= b, с шагом-1. -
writeвыводит символы подряд, без перехода на новую строку.
Теперь по строкам:
-
for x := 1 to 5 do write('#');
Значения:1, 2, 3, 4, 5
Выполнится 5 раз
Вывод:
##### -
for x := 0 to 5 do write(' # ');
Значения:0, 1, 2, 3, 4, 5
Выполнится 6 раз
Каждый раз выводится строка' # ', то есть пробел, решётка, пробел.
Вывод:
# # # # # # -
for x := 2 to 7 do write('#');
Значения:2, 3, 4, 5, 6, 7
Выполнится 6 раз
Вывод:
###### -
for x := 5 to 5 do write('#');
Начальное и конечное значение совпадают, цикл выполнится 1 раз
Вывод:
# -
for x := 6 to 5 do write('#');
Начальное значение больше конечного, дляtoтакой цикл не выполнится ни разу
Вывод:
ничего -
for x := 5 downto 1 do write('#');
Значения:5, 4, 3, 2, 1
Выполнится 5 раз
Вывод:
##### -
for x := 5 downto 5 do write('#');
Выполнится 1 раз
Вывод:
# -
for x := 5 downto 2 do write('#');
Значения:5, 4, 3, 2
Выполнится 4 раза
Вывод:
#### -
for x := 1 downto 5 do write('#');
Дляdowntoначальное значение должно быть не меньше конечного. Здесь1 < 5, поэтому цикл не выполнится ни разу
Вывод:
ничего
Теперь объединим всё подряд, в том порядке, как выполняются операторы:
-
##### -
# # # # # # -
###### -
# -
ничего
-
##### -
# -
#### -
ничего
Итоговый вывод:
##### # # # # # # #######'???
Аккуратно без сокращений и с точным соединением:
После первого цикла:
#####
После второго добавится:
# # # # # #
Потом ещё 6 решёток:
######
Потом 1 решётка:
#
Потом 5 решёток:
#####
Потом 1 решётка:
#
Потом 4 решётки:
####
Итоговая строка:
##### # # # # # # #######?
Посчитаем последние решётки точно:
после второго цикла идёт 6 + 1 + 5 + 1 + 4 = 17 решёток подряд.
Значит окончательный результат:
##### # # # # # # #################
То есть будет выведено:
##### # # # # # # #################
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

