Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Diskonttaus

koodaaja [16.12.2021 05:14:27]

#

Diskonttaus on päinvastainen tapahtuma koronkorolle, eli lasketaan alkupääoma nykyarvosta. Diskonttauksen kaava koostuu nykyarvosta, korkotekijästä ja korkokausista (tässä tapauksessa vuosi)

from tkinter import *

def LaskeDiskonttaus(nykyarvo,korkotekija,korkokaudet):
  tulos = nykyarvo*(1+korkotekija/100.0)**(-1*korkokaudet)
  return tulos

def Diskonttaus():
  #Otetaan lähtötiedot.
  nykyarvo = saadinNykyarvo.get()
  korkotekija = saadinKorkotekija.get()
  korkokaudet = saadinKorkokaudet.get()
  #Lasketaan diskottaus.
  listaTulos.insert("end",LaskeDiskonttaus(nykyarvo,korkotekija,korkokaudet))


def PoistaArvo(event):
 valinta = listaTulos.curselection()
 listaTulos.delete(valinta)

root = Tk()

kehysSaatimet = Frame(root)
kehysSaatimet.pack()

#Laitetaan säätimet ja selitetekstin niille.
#Nykyarvo
tekstiNykyarvo = Label(kehysSaatimet)
tekstiNykyarvo.pack()
tekstiNykyarvo.config(text="Nykyarvo")
lukuNykyarvo = DoubleVar()
saadinNykyarvo = Scale(kehysSaatimet,from_=0, to=10000, variable=lukuNykyarvo)
saadinNykyarvo.pack()

#Korkotekijä
tekstiKorkotekija = Label(kehysSaatimet)
tekstiKorkotekija.pack()
tekstiKorkotekija.config(text="Korkotekija")
lukuKorkotekija = DoubleVar()
saadinKorkotekija = Scale(kehysSaatimet,from_=0, to=10,variable=lukuKorkotekija)
saadinKorkotekija.pack()

#Korkokaudet
tekstiKorkokaudet = Label(kehysSaatimet)
tekstiKorkokaudet.pack()
tekstiKorkokaudet.config(text="Korkokaudet")
lukuKorkokaudet = DoubleVar()
saadinKorkokaudet = Scale(kehysSaatimet,from_=0, to=10,variable=lukuKorkokaudet)
saadinKorkokaudet.pack()

#Laitetaan muut kontrollit.

kehysMuut = Frame(root)
kehysMuut.pack()

listaTulos = Listbox(kehysMuut)
listaTulos.pack()
listaTulos.bind('<Double-1>',PoistaArvo)
nappain = Button(kehysMuut, text="Laske", command=Diskonttaus)
nappain.pack()


root.mainloop()

muuskanuikku [17.12.2021 10:35:46]

#

Voisit lopettaa harhaanjohtavan otsikoinnin ja duplikaattien postailun. Koodista näkee selkeästi, että ohjelman tarkoitus on muodostaa graafinen käyttöliittymä Tkinter-kirjastoa käyttäen. Muistaakseni olet julkaissut jo lähemmäs sata identtistä esimerkkiä, joten onko näillä enää yhtään mitään arvoa?

Labelit ja framet alkavat jo olla tuttuja, joten kokeile ensi kerralla demota uusien widgettien käyttöä.

VilleVal [17.12.2021 11:00:26]

#

Otsikon mukainen koodiesimerkki olisi tosiaan melkoisen lyhyt:

def LaskeDiskonttaus(nykyarvo,korkotekija,korkokaudet):
  return nykyarvo*(1+korkotekija/100.0)**(-1*korkokaudet)

Jere Sumell [24.12.2021 05:34:12]

#

Onhan tuo diskonttaus -metodina tai miksei kokonaisena omana ohjelmanaan ihan hyödyllinen, jota kirjanpitäjät voivat hyödyntää, tuo "VilleVal" -esittämä funktio voisi olla ihan käyttökelpoinen, jos lähtee laatimaan kokonaisvaltaista kirjanpito-ohjelmaa.

Vastaus

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

Tietoa sivustosta