Вкладені списки. Складання програм на повторення. Шкала вибору

Завдання. Знайдіть зайвий клас у домівці праворуч.

Завдання 1. Створити візерунок , використовуючи команди цикла.

Побудова узору передбачає використання циклу, в якому буде малюватись елемент цього узору .

Розглянемо простий узор, що складається з вертикальних ліній, розміщених по всій ширині полотна побудови.

Лінія створюється командою canvas.create_line(x1,y1,x2,y2), де x1,y1 вказують на координати початку, а x2,y2 - на координати її кінця.

Згідно з умовою, лінія повинна починатись нагорі полотна побудови, де y1=0 і закінчуватись внизу, де y2=500

Тож, наприклад, перша лінія матиме таку команду побудови:

   canvas.create_line(0,0,0,500)

Наступна:

  canvas.create_line(10,0,10,500)

Ще наступна:

  canvas.create_line(20,0,20,500)

Таким чином, якщо створити цикл, у якому значення x буде змінюватися в діапазоні від 0 до 500 з кроком 10, можна записати таку загальну команду побудови:

  for x in range (0,500,10):

       canvas.create_line(x,0,x,500, width=2)

Крім того ці лінії - різних кольорів, щоб створити випадковий колір, створимо список можливих кольорів,

kolory=["black","red","green","blue","cyan","yellow","magenta","azure",

      "brown","coral","grey","khaki","olive","orange","lavender","ivory","navy","orchid","plum"]

 і за допомогою команди: random.choice(kolory) ,будемо обирати колір k

import random

from tkinter import*

root=Tk()

canvas=Canvas(root,width=500,height=500)

kolory=["black","red","green","blue","cyan","yellow","magenta","azure","brown","coral","grey","khaki","olive","orange","lavender","ivory","navy","orchid","plum"]

for x in range (0,500,10):

     k=random.choice(kolory)

     canvas.create_line(x,0,x,500,width=2,fill=k)

canvas.pack()

Як створити шкалу вибору?

У вікні проєкту можна використати елемент керування — шкала вибору,

за допомогою якої користувач може обрати значення з певного діапазону.

Шкала — це горизонтальна чи вертикальна смужка з розміткою,

по якій можна рухати повзунком, здійснюючи вибір.

Наприклад, горизонтальна та вертикальна шкала задається командами:

Властивості:

• orient — визначає напрям;

• length — довжина шкали в пікселях;

• from_=,to= — з якого значення шкала починається і яким закінчується (так званий діапазон значень);

• tickinterval — інтервал, через який відображаються мітки на шкалі;

• anchor — розташування на екрані;

• resolution — мінімальна довжина відрізка, на яку можна пересунути повзунок;

•variable — змінна, яка містить або надає значення.

Щоб отримати значення зі шкали, використовують метод get().

Наприклад, нехай у вікні, що містить вертикальну шкалу за замовчуванням (від 0 до 100, з кроком 1),

кнопку Отримати значення

 напис Величина,

після натиснення кнопки буде додано значення зі шкали

Приклад. Розробіть проєкт у середовищі програмування з використанням елементів керування, у якому знаходять:

а) суму послідовних чисел від 0 до числа, обраного на шкалі (розміри шкали за замовчуванням);

from tkinter import*

def sel():

    s=0 #відкрили змінну для суми

    m=int(var.get()) #зчитали число на шкалі і перетворили його у ціле число

    selection="величина="+str(var.get()) #створили зміну для тексту, в txt вписують змінні

    txt.config(text=selection) #змінили напис тут буде відповідь на зміст selection

    for i in range (0,m+1): #перебирати в циклі будемо всі числа від о до того, що на шкалі

      s=s+i #і на кожному кроці -додаємо нове число до суми

    txt2.config(text="сума="+str(s)) #змінили напис тут буде сума на суму переведену у текст

window=Tk()

var=DoubleVar()

scala=Scale(window,variable=var)

scala.pack()

kn=Button(window,text="отримати значення",command=sel)

kn.pack()

txt=Label(window,text="тут буде відповідь")

txt.pack()

txt2=Label(window,text="тут буде сума")

txt2.pack()

window.mainloop()


Завдання 2. Розробіть проєкт у середовищі програмування з використанням елементів керування, у якому знаходять:

а) добуток послідовних чисел до числа, обраного на шкалі (розміри шкали за замовчуванням);