Урок 7. Составление алгоритмов для работы с графикой с использованием основных алгоритмических конструкций

Цель урока: знать этапы реализации алгоритмов с использованием графики, уметь выполнять предложенные задания на составление алгоритмов работы с графикой.


Основные команды исполнителя Черепаха, а также работа с цветами

Пример 1. Разберите программу, которая запрашивает цифру (1 или 2) и рисует красный круг, если введена 1, или синий квадрат, если введена 2.

import turtle
turtle.coordinates =  "yes" 
from turtle import *
coordinates =  "yes" 
shape('turtle')
pensize(3)

def p(x, y):
    penup()
    setpos(x, y)
    pendown()
    setheading(0)
def rect(x1, y1, x2, y2, c):
    p(x1, y1)
    d = abs(x2 - x1)
    h = abs(y2 - y1)
    color("black", c)
    begin_fill()
    forward(d)
    right(90)
    forward(h)
    right(90)
    forward(d)
    right(90)
    forward(h)
    end_fill()
def fill_circle(x, y, r, c):
    p(x, y - r)
    color("black", c)
    begin_fill()
    circle(r)
    end_fill()
m = int(input("Введите 1 для рисования круга или 2 для рисования квадрата: "))
if m == 1:
    fill_circle(0, 0, 60, "red")
else:
    rect(-60, 60, 60, -60, "blue")
done()

Задания по теме урока

Задание 1. Измените и выполните программу так, чтобы она запрашивала номер месяца (целое число от 1 до 12) и в зависимости от поры года закрашивала землю (прямоугольник) и крону дерева (круг) одним из четырех цветов: белым (зима), салатовым (весна), зеленым (лето), оранжевым (осень).

import turtle
turtle.coordinates =  "yes" 
from turtle import *
coordinates =  "yes" 
shape('turtle')
pensize(3)
def p(x, y):
    penup()
    setpos(x, y)
    pendown()
    setheading(0)
def rect(x1, y1, x2, y2, c):	#  прямоугольник (ствол, земля)
    p(x1, y1)
    d = abs(x2 - x1)
    h = abs(y2 - y1)
    color("black", c)
    begin_fill()
    forward(d)
    right(90)
    forward(h)
    right(90)
    forward(d)
    right(90)
    forward(h)
    end_fill()
def fill_circle(x, y, r, c):	#  круг (крона дерева)
    p(x, y - r)
    color("black", c)
    begin_fill()
    circle(r)
    end_fill()
bgcolor("lightblue")
m = int(input("Введите номер месяца: "))
if (m == 1) or (m == 2) or (m== 12): # зима
    rect(-400, 0, 400, 300, "white") 
    rect(175, 100, 225, 300, "brown")
    fill_circle(200, 150, 60, "white")       
# с помощью elif  дополнить программу для весны, лета и осени    
done()

Задание 2. Измените и выполните программу, чтобы она запрашивала время в часах и рисовала солнце (желтый круг на голубом фоне), если введены числа от 6 до 18 или луну (белый круг на сером фоне), если введены числа от 0 до 5 и от 21 до 24.

import turtle
turtle.coordinates =  "yes" 
from turtle import *
coordinates =  "yes" 
shape('turtle')
pensize(3)
def p(x, y):
    penup()
    setpos(x, y)
    pendown()
    setheading(0)
def rect(x1, y1, x2, y2, c):	#  прямоугольник (небо)
    p(x1, y1)
    d = abs(x2 - x1)
    h = abs(y2 - y1)
    color("black", c)
    begin_fill()
    forward(d)
    right(90)
    forward(h)
    right(90)
    forward(d)
    right(90)
    forward(h)
    end_fill()
def fill_circle(x, y, r, c):	#  круг (солнце и луна)
    p(x, y - r)
    color("black", c)
    begin_fill()
    circle(r)
    end_fill()
# смотри пример!
# m=int(input.....
# используя оператор if проверить, какое время суток
# первым обязательно рисуем прямоугольник неба
done()

Задание 3. Измените и выполните программу так, чтобы она рисовала светофор, запрашивала целое число и закрашивала у светофора зеленый круг, если число кратно 3, желтый — если число кратно 2, или красный — во всех остальных случаях.

import turtle
turtle.coordinates =  "yes" 
from turtle import *
shape('turtle')
pensize(3)
def p(x, y):
    penup()
    setpos(x, y)
    pendown()
    setheading(0)
def rect(x1, y1, x2, y2, c):	#  прямоугольник
    p(x1, y1)
    d = abs(x2 - x1)
    h = abs(y2 - y1)
    color("black", c)
    begin_fill()
    forward(d)
    right(90)
    forward(h)
    right(90)
    forward(d)
    right(90)
    forward(h)
    end_fill()
def fill_circle(x, y, r, c):	#  круг
    p(x, y - r)
    color("black", c)
    begin_fill()
    circle(r)
    end_fill()
rect(-40, 100, 40, -100, "gray")
fill_circle(0, -60, 25, "lightgray")
fill_circle(0, 0, 25, "lightgray")
fill_circle(0, 60, 25, "lightgray")
# дополнить программу, используя оператор ветвления
done()

Это изображение имеет пустой атрибут alt; его имя файла - hw-e1653285769766.png

Домашнее задание

§ 6 учебного пособия, ответить на вопросы

Добавить комментарий