e-Python. Модуль Р5: від констант до функцій користувача. Пролонговане завдання. Частина-3

Про матеріал
Застосування модуля P5 для роботи зі змінними та геометричних побудов. Частина-3. Котеджне містечко: створення функцій користувача та їх виклик всередині циклу з параметром
Перегляд файлу

Етап-1. Навожу повний код побудови такого Будинка, який задається ЛИШЕ координатами стін як стартовий до цього уроку, а значення параметрів для даху обчислюються.

image

image

#=====      HouseFull         =========== from p5 import* def setup():

createCanvas(600,800) background('orange')

def draw():

#===================================== xSt = 150;         ySt = 160 wSt = 180;      hSt = 200

#===================================== vidstup = wSt // 5 vDah = hSt // 3

#=====================================

fill('white'); rect(xSt, ySt, wSt, hSt)

fill('red')

triangle(xSt - vidstup, ySt , xSt + vidstup + wSt, ySt , xSt + wSt//2, ySt - vDah)

fill('blue')

#===================================== wShift = wSt//7

#=====================================

rect(xSt + wShift, ySt + hSt//3, 2* wShift, hSt- hSt//3)

fill('yellow')

rect(xSt + 4*wShift, ySt + hSt//3, 2* wShift, hSt- hSt//2) run()

image

Етап 2. Редагуємо код, загортаючи все, що стосується побудови будинка, у функцію house(xSt, ySt, wSt,hSt)

image

Етап 3. В тілі draw() викликаємо її:

image

Етап 4. Виносимо блок введення даних із draw() вверх, видаляючи відступи

Етап 5. Перевіряємо. Все працює для одного будиночка.

image

image

Програма стала більш зрозумілою та структурованою, а наш код виглядатиме так:

image

image

Етап-6. Тепер редагуємо БЛОК ВВЕДЕННЯ ТА ОБЧИСЛЕННЯ ДАНИХ, виносимо їх ПЕРЕД draw()

image

#=====      HouseCityWithoutFOR         =========== from p5 import* def setup():

createCanvas(1500,400) background('orange')

def house(xSt, ySt, wSt,hSt):

#=====================================

fill('white'); rect(xSt, ySt, wSt, hSt)

fill('red')

triangle(xSt - vidstup, ySt , xSt + vidstup + wSt, ySt , xSt + wSt//2, ySt - vDah)

fill('blue')

#===================================== wShift = wSt//7

#=====================================

rect(xSt + wShift, ySt + hSt//3, 2* wShift, hSt- hSt//3)

fill('yellow')

rect(xSt + 4*wShift, ySt + hSt//3, 2* wShift, hSt- hSt//2)

#============== Вводимо дані ==========================

#== Були константи, їх закомментили:========================

#xSt = 50;   ySt = 150

#wSt = 180;   hSt = 200

#== Стали змінні, значення яких вводимо в поля===============

xSt=int(input('x стіни==')) ySt=int(input('y стіни==')) wSt=int(input('ширина стіни==')) hSt=int(input('висота стіни=='))

vidstHouse=int(input('відстань між будинками=='))

#===== ДАХ: Обраховуємо відступ та висоту============= vidstup = wSt // 5 vDah = hSt // 3

#==НАСТУПНИЙ БУДИНОК: Обраховуємо зсув х по відношенню до попереднього==== zsuv_xSt = vidstHouse + xSt + wSt + vidstup

def draw():

#===================================== house(xSt, ySt, wSt,hSt) house(xSt + zsuv_xSt * 1, ySt, wSt,hSt)

house(xSt + zsuv_xSt * 2, ySt, wSt,hSt)

run()

image

Етап 7. Загортаємо побудови будинків у цикл із параметром

image

Результативний програмний код такої структури:

image

Блок-1. Імпорт модуля та налаштування полотна

image

Блок-2. Опис функції для побудови будинка

image

Блок-3. Введення даних

image

Блок-4. Обчислення, необхідні для ДАХУ: відступи над стіною та висоиа даха. Також у спеціальній змінній обчислюємо, на скільки в наступного будинка посунеться значення xSt

image

Блок-5. Нарешті сама функція для побудов, в якій наші будинки з’являтимуться в необхідній кількості

image

Блок-6. Збираємо код та запускаємо на виконання

image

Однак, не вистачає фундаменту під кожен будиночок, правда?

Повертаємося до редагування коду

1.     Додаємо ще одну функцію для побудови прямокутника зеленого кольору.

image

2.     До блоку обчислень додаємо обрахування значень параметрів для прямокутника зеленого кольору. Відштовхуємося знову від параметрів стіни та відстані між будинками.

image

3.     До циклу з параметром додаємо виклик функції побудови фундаменту. Не забуваємо, що координата х для фундамента кожного разу буде зміщуватися праворуч, збільшуючись так само, як і при побудові наступного будинка.

image

4.     Виконаємо оновлений програмний код, вводячи на запит довільні цілі значення для параметрів стіни, відступу між будинку та їх кількості.

Вікно виконання має такий вигляд:

image

Оновлений програмний код

image

Вдосконаленню коду немає меж: спробуйте внести зміни до програмного коду так, щоб колір фундаменту кожного будинку був іншим.

І посадіть між будинками квіточку)

pdf
До підручника
Інформатика 7 клас (Пилипчук О.П., Ріпко Н.А., Шестопалов Є.А.)
Додано
12 березня
Переглядів
58
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку