Практична робота №14
Складання програм з використанням графічних даних
Вправа 1. Побудова малюнків.
Завдання. Складіть програму побудови малюнків
та реалізуйте її в середовищі програмування.
Код програми (для варіанту):
from tkinter import *
window = Tk()
c = Canvas(window, width=300, height=300, bg=’white’)
c.pack()
c.create_polygon(100, 10, 20, 90, 180, 90, fill=’orange’)
c.create_rectangle(20, 90, 180, 170, fill=’red’)
c.create_polygon(180, 90, 180, 170, 260, 170, fill=’orange’)
c.create_rectangle(20, 170, 260, 250, fill=’yellow’)
Збережіть програму з іменем Побудова малюнків.
Вправа 2. Стовпчаста діаграма.
Завдання. У середовищі програмування розробіть проєкт, у якому у вікні головної форми буде побудована стовпчаста діаграма, яка демонструє співвідношення між числами: 15, 50,70, 25, 10, 30.
Код програми:
from tkinter import *
window = Tk()
c = Canvas(window, width=200, height=110, bg=’white’)
c.pack()
c.create_rectangle(10, 85, 30, 100, fill=’blue’)
c.create_rectangle(40, 50, 60, 100, fill=’blue’)
c.create_rectangle(70, 30, 90, 100, fill=’blue’)
c.create_rectangle(100, 75, 120, 100, fill=’blue’)
c.create_rectangle(130, 90, 150, 100, fill=’blue’)
c.create_rectangle(160, 70, 180, 100, fill=’blue’)
c.create_line(0, 100, 200, 100)
Збережіть програму з іменем Стовпчаста діаграма.
Вправа 3. Кругова діаграма.
Завдання. У середовищі програмування розробіть проект, у якому у вікні головної форми буде побудована кругова діаграма, яка демонструє склад повітря.
Код програми:
from tkinter import *
window = Tk()
c = Canvas(window, width=200, height=200, bg=’white’)
c.pack()
c.create_oval(10, 10, 190, 190, fill=’lightgrey’, outline=’white’)
c.create_arc(10, 10, 190, 190, start=90, extent=-280, fill=’blue’)
c.create_arc(10, 10, 190, 190, start=90, extent=10, fill=’red’)
c.create_arc(10, 10, 190, 190, start=100, extent=80, fill=’green’)
Збережіть програму з іменем Кругова діаграма.
Вправа 4. Площа фігур.
Завдання. Створіть проєкт Площа фігур, вікно якого містить зображення трикутника, прямокутника й кола різних кольорів та три кнопки. Після натиснення кнопки на екрані з’являється формула для обчислення площі фігури певної фігури .
Вікно програми має вигляд:
Код програми:
from tkinter import *
def button_click_1():
c.create_text(70, 120, text=’S = 0,5 * a * h’)
def button_click_2():
c.create_text(270, 120, text=’S=a*b’)
def button_click_3():
c.create_text(400, 120, text=’S = π*r*r’)
window = Tk()
c = Canvas(window, width=500, height=150, bg=’white’)
c.pack()
c.create_polygon(100, 10, 20, 90, 180, 90, fill=’red’)
c.create_rectangle(200, 10, 350, 90, fill=’blue’)
c.create_oval(370, 10, 450, 90, fill=’green’)
button = Button (window, text=’Площа трикутника’, command=button_click_1)
button.pack(pady = 
button = Button (window, text=’Площа прямокутника’, command=button_click_2)
button.pack(pady = 
button = Button (window, text=’Площа кола’, command=button_click_3)
button.pack(pady = 
Збережіть програму з іменем Площа фігур.
Закрийте всі відкриті вікна.
Повідомте вчителя про завершення роботи.
Відповідь:
Этот код включает 5 светодиодов, одну кнопку и один LCD-дисплей. Есть три режима мигания светодиодов: случайный режим, последовательный режим и режим затухания. По нажатию на кнопку режим меняется, а название режима выводится на LCD-дисплей. Я надеюсь, что этот код поможет вам создать ваш проект в Tinkercad Circ
Пояснення:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int mode = 1;
int led_pins[] = {6, 7, 8, 9, 10};
int num_leds = 5;
int button_pin = A0;
void setup() {
pinMode(button_pin, INPUT_PULLUP);
lcd.begin(16, 2);
lcd.print(«LED Modes:»);
}
void loop() {
switch (mode) {
case 1:
randomMode();
break;
case 2:
sequentialMode();
break;
case 3:
fadeMode();
break;
}
checkButton();
}
void randomMode() {
for (int i = 0; i < 10; i++) {
int led = random(num_leds);
digitalWrite(led_pins[led], HIGH);
delay(100);
digitalWrite(led_pins[led], LOW);
delay(100);
}
}
void sequentialMode() {
for (int i = 0; i < num_leds; i++) {
digitalWrite(led_pins[i], HIGH);
delay(100);
}
delay(500);
for (int i = 0; i < num_leds; i++) {
digitalWrite(led_pins[i], LOW);
delay(100);
}
delay(500);
}
void fadeMode() {
for (int i = 0; i < 255; i++) {
for (int j = 0; j < num_leds; j++) {
analogWrite(led_pins[j], i);
}
delay(10);
}
for (int i = 255; i >= 0; i—) {
for (int j = 0; j < num_leds; j++) {
analogWrite(led_pins[j], i);
}
delay(10);
}
}
void checkButton() {
if (digitalRead(button_pin) == LOW) {
mode++;
if (mode > 3) {
mode = 1;
}
lcd.clear();
switch (mode) {
case 1:
lcd.print(«Random Mode»);
break;
case 2:
lcd.print(«Sequential Mode»);
break;
case 3:
lcd.print(«Fade Mode»);
break;
}
delay(500);
}
}