Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Tkinter: Lukujonojen summat

koodaaja [01.09.2021 18:30:14]

#

Tässä esimerkissä lasketaan lukujonoja graafisen käyttöliittymän kautta. Lukujonot ovat fibonacci -tai tetraedripohjaisia ja ne jaetaan molemmat kolmen osaan. Näistä osista muodostetaan summa käyttäjän valintojen mukaan. Lopuksi näytetään valinnan mukaiset lukujonot.

from tkinter import *


root = Tk()


maara = 0


def Laske(valinta):
 #Lasketaan lukujonot.
 #Lukujono voi olla fibonacci -tai tetraedripohjainen

 a = 0
 b = 0
 c = 0
 summa = 0
 tulos = ""
 tulos2 = ""
 tulos3 = ""
 tulos4 = ""

 if (valinta == 1):
  #Tetraedripohjainen
  a = 0
  b = 0
  c = 0


  for x in range(maara):
   a += 1
   b += a
   c += b

   summa = 0
   if (var1.get() == 1):
    tulos += str(a) + " "
    summa += a

   if (var2.get() == 1):
    tulos2 += str(b) + " "
    summa += b

   if (var3.get() == 1):
    tulos3 += str(c) + " "
    summa += c

   tulos4 += str(summa) + " "


 elif (valinta == 2):
  #Fibonaccipohjainen
  a = 0
  b = 1

  for x in range(maara):
   c = a+b
   summa = 0
   if (var1.get() == 1):
    tulos += str(a) + " "
    summa += a

   if (var2.get() == 1):
    tulos2 += str(b) + " "
    summa += b

   if (var3.get() == 1):
    tulos3 += str(c) + " "
    summa += c

   tulos4 += str(summa) + " "
   temp = b
   b = c
   a = temp

 return tulos,tulos2,tulos3,tulos4

def Toiminto():
 global maara



 maara += 1
 valinta = var.get()

 tulos = ""
 tulos2 = ""
 tulos3 = ""
 tulos4 = ""
 #Lasketaan tulokset erillisen funktion kautta ja näytetään sitten tulokset.
 tulos,tulos2,tulos3,tulos4 = Laske(valinta)
 l1.config(text=tulos)
 l2.config(text=tulos2)
 l3.config(text=tulos3)
 l4.config(text=tulos4)





#Luodaan kontrollit.
#Ohjelmassa on kaksi kehystä

frame = Frame(root)
frame.pack()

var = IntVar()



var1 = IntVar()
var2 = IntVar()
var3 = IntVar()

#Ensimmäiseen kehykseen asetetaan valinnat.

radio1 = Radiobutton(frame,text="Tetraedri",variable=var,value=1)
radio1.pack()

radio2 = Radiobutton(frame,text="Fibonacci",variable=var,value=2)
radio2.pack()


check1 = Checkbutton(frame,text="Luku/a",variable=var1, onvalue=1,offvalue=0)
check1.pack()

check2 = Checkbutton(frame,text="Kolmio/b",variable=var2, onvalue=1,offvalue=0)
check2.pack()

check3 = Checkbutton(frame,text="Tetraedri/summa",variable=var3, onvalue=1,offvalue=0)
check3.pack()


frame2 = Frame(root)
frame2.pack()


#Toiseen kehykseen asetetaan muut kontrollit.

button = Button(frame2,text="Toiminto",command=Toiminto)
button.pack()

l1 = Label(frame2)
l1.pack()

l2 = Label(frame2)
l2.pack()

l3 = Label(frame2)
l3.pack()

l4 = Label(frame2)
l4.pack()



root.mainloop()

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta