Задание 13 Параграф 6.7 ГДЗ Босова 7 класс Углубленный уровень (Информатика)

Изображение Задание 13 Параграф 6.7 ГДЗ Босова 7 класс Углубленный уровень
Дополнительное изображение
Рассмотрим вариант решения задания из учебника Босова, Аквилянов 7 класс, Просвещение:
13. Напишите программу, выводящую на экран изображение шахматной доски.
Шахматная доска — это квадрат 8х8 (8 квадратов по горизонтали, 8 квадратов по вертикали) с переменной закраской
В программе надо использовать вложенные циклы. Чередование черной и белой клетки. Для этого в процедуре рисования клетки кроме позиции указан цвет: def draw_cell(x, y, color):
Для определения цвета основной клетки в программе использована конструкция:
Если (if) то Действие 1
Иначе (else) Действие 2
if (row + col) % 2 == 0: # если сумма номера строки и номера столбика четная
draw_cell(start_x + col * cell_size, start_y + row * cell_size, "white")
else:
draw_cell(start_x + col * cell_size, start_y + row * cell_size, "black")
Пояснение к конструкции:
row и col – номер очередной строки и очередного столбика;
если их сумма четная, то клетка белая, если нечетная – черная.
Четность суммы определяется делением по модулю, которое на Питон обозначается % (5 % 2 =1; 10 % 2 = 0)
Программа:
from graph import *
# Настройки
cell_size = 50 # размер клетки
cells = 8 # количество клеток в строке и столбце
border_width = 20 # ширина рамки вокруг доски
# размер доски
board_size = cells * cell_size # 50x8=400
# Позиция левого верхнего угла доски
start_x = 100+border_width # 120
start_y = 100+border_width # 120
def draw_cell(x, y, color): # рисование одной клетки
penColor(color)
brushColor(color)
rectangle(x, y, x + cell_size, y + cell_size)
def draw_chess_board():
# Рисуем рамку (серый прямоугольник вокруг доски)
penColor("gray")
brushColor("gray")
rectangle(start_x - border_width, start_y - border_width,
start_x + board_size + border_width, start_y + board_size + border_width)
# Внутри рамки — сама доска
for row in range(cells): # строка
for col in range(cells): # столбик
if (row + col) % 2 == 0: # если сумма номера строки и номера столбика четная
draw_cell(start_x + col * cell_size, start_y + row * cell_size, "white")
else:
draw_cell(start_x + col * cell_size, start_y + row * cell_size, "black")
# Основная программ, в которой вызывается подпрограмма рисования очередной клетки
canvasSize(800,800)
draw_chess_board()
run()
*Текст задания приводится исключительно в образовательных целях для более полного понимания решения.