Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Funktionaalinen ohjelmointi

koodaaja [09.10.2021 11:21:41]

#

Tämä esittelee funktionaalista ohjelmointia. Ohjelma laskee valintojen perusteella summan (luvun kuutiosta, neliöstä ja luvusta).

Ohjelman käyttöliittymänä toimii Tk-kirjasto. Ohjelmassa on kaksi kehystä, toisessa on valinnat ja toisessa näppäin ja tekstilappu.

from tkinter import *


def laske():
 tulos = []
 #Lasketaan luvun summa
 #Yksi osa koostuu kolmesta komponentista: kuutiosta, neliöstä ja luvusta.
 #Tarkistetaan, mitkä komponentit lasketaan.
 kuutio = CheckVar1.get()
 nelio = CheckVar2.get()
 perus = CheckVar3.get()

 tulos = list(map(lambda i: i**3*kuutio+i**2*nelio+i**1*perus,range(1,11)))
 tuloste.config(text=str(tulos))

root = Tk()

#Luodaan ikkuna.
#Ohjelmassa on kaksi kehystä.
#Ensimmäisessä kehyksessä on valinnat.
#Toisessa kehyksessä on näppäin ja tekstilappu.
valinnat = Frame(root)
valinnat.pack()

CheckVar1 = IntVar()
valintaKuutio = Checkbutton(valinnat,text="Kuutio",variable=CheckVar1,onvalue=1,offvalue=0)
valintaKuutio.pack()

CheckVar2 = IntVar()
valintaNelio= Checkbutton(valinnat,text="Neliö",variable=CheckVar2,onvalue=1,offvalue=0)
valintaNelio.pack()

CheckVar3 = IntVar()
valintaPerus = Checkbutton(valinnat,text="Perus",variable=CheckVar3,onvalue=1,offvalue=0)
valintaPerus.pack()

#Toinen kehys
kehys = Frame(root)
kehys.pack()

nappain = Button(kehys,text="Laske",command=laske)
nappain.pack()

tuloste = Label(kehys)
tuloste.pack()

root.mainloop()

Metabolix [09.10.2021 12:28:51]

#

Tämä EI esittele funktionaalista ohjelmointia, tässä on 47 riviä, joista yhdellä rivillä on sanat map ja lambda.

Jos haluat esitellä funktionaalista ohjelmointia, esittele vaikka, miten Haskellilla tehdään käyttöliittymä.

Jos haluat esitellä matemaattisia asioita, kirjoita niistä oikeilla nimillä (kuten kolmannen asteen polynomi) äläkä keksi omasta päästä (”laskee valintojen perusteella summan (luvun kuutiosta, neliöstä ja luvusta)”). Lisäksi polynomin kyseessä ollessa käyttöliittymä voisi hyvin sisältää vaikka kuvaajan eikä vain lukuja.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta