Язык программирования — Python.
Вася решил познать азы ASCII-живописи и, как все начинающие художники, начал с рисования простых фигур. Напишите программу построения прямоугольника n × m, состоящего из символов symb. Фигура должна быть пустой, а не заполненной. То есть она должна состоять только из контура.
Для справки, алгоритм с закрашенным прямоугольником:
x = int(input())
y = int(input())
z = input()
for i in range(x):
print(z, end='')
for j in range(1, y):
print(z, end='')
print(' ')
Ответы на вопрос
Для того чтобы нарисовать пустой прямоугольник размером n × m из символов symb, нужно вывести символы только по границам прямоугольника, а внутри оставить пробелы.
Для этого можно использовать вложенные циклы и условный оператор if.
Решение на Python
Как работает программа?
n = int(input())— вводим высоту прямоугольника (количество строк).m = int(input())— вводим ширину прямоугольника (количество символов в строке).symb = input()— вводим символ, из которого будем рисовать прямоугольник.for i in range(n)— внешний цикл отвечает за строки.for j in range(m)— внутренний цикл отвечает за символы в каждой строке.Условие
ifпроверяет, находится ли текущая позиция на границе прямоугольника:i == 0— первая строка.i == n - 1— последняя строка.j == 0— первый столбец.j == m - 1— последний столбец.
Если позиция находится на границе, выводим
symb. Иначе выводим пробел.print()после внутреннего цикла переводит курсор на новую строку.
Пример работы
Ввод:
5
8
*Вывод:
********
* *
* *
* *
********Более короткий вариант решения
Эту же задачу можно решить без вложенных циклов, используя умножение строк:
Здесь первая и последняя строки полностью состоят из символов symb, а остальные строки содержат символ в начале, m - 2 пробелов посередине и символ в конце.
Оба решения правильно строят пустой прямоугольник. Первый вариант лучше подходит для изучения вложенных циклов и условий, а второй короче и проще. При ширине m = 1 лучше использовать первый вариант, так как второй выведет по два символа в промежуточных строках.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

