Step 7 (S-14661)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3364/step/7


Рассмотрим еще один пример. Мы хотим вывести на печать псевдокартинку, представляющую из себя треугольник. В этом треугольнике в первой строчке мы выводим одну звездочку, во второй строчке - 2, в третьей - 3 и так далее.

S-14661-1.png

Договоримся, что всего будет 6 строк. Соответственно в последней строчке нам нужно вывести 6 звездочек. Как можно решить такую задачу? Очень просто: сначала выведем 1 звезду, следующей операцией выведем 2 звездочки и так далее, всего 6 строк.

S-14661-2.png

Можно воспользоваться одним полезным свойством строки. А именно, умножением строки на число. Оно заключается в следующем. Если мы умножим строку ab на 3, получим строку ab повторенную три раза:

S-14661-3.png

Мы можем применить это свойство для формирования строки состоящей из одинаковых символов. Например: строка, состоящая из 5 звездочек, идентична символу звездочка умноженному на 5.

S-14661-4.png

Воспользовавшись этим свойствам, мы можем переписать программу следующим образом: сначала выведем символ "*", умноженный на 1, затем символ "*", умноженный на 2, и так далее до 6.

S-14661-5.png

Мы вновь видим, что эти операции очень похожи друг на друга. Единственное отличие - это число, на которое мы умножаем символ "*". Давайте заведем специальный параметр с. Он будет обозначать количество звездочек в строке. Начальное значение с будет равно 1. При переходе на следующую строку с будет увеличиваться на 1 до тех пор, пока не станет равным 6. Таким образом, программу можно переписать используя цикл while. Напишем код.

S-14661-6.png

Заведем переменную с. Далее идет цикл: до тех пор, пока с не превосходит 6, мы выполняем операцию вывода строки, полученной в результате умножения символа "*" на переменную с, и увеличиваем значение переменной с на 1. Выполняем и в результате видим треугольник, который мы хотели получить.

Мы с легкостью можем изменить программу таким образом, чтобы выводился треугольник не из 6, а из произвольного числа строк. Количество строк будет задавать пользователь. Для этого добавим переменную n - число строк, которые нужно вводить. Прочитаем введенную пользователем строку, преобразуем ее в число и поместим результат в переменную n. Изменим в условии цикла while число 6 на нашу переменную n.

S-14661-7.png

Запустим нашу программу и убедимся в правильности результата.