Tämä ohjelma laskee bruttokansantuotteen lopputuotemenetelmällä, joka muodostuu kulutuksesta, investoinneista, sekä nettoviennistä. Lisäksi muodostetaan huoltotase, jossa kokonaistarjonnan ja kysynnän täytyy olla yhtäsuuria
from tkinter import * from matplotlib import pyplot as plt import numpy as np root = Tk() def Laske(): syote = ["","","","",""] #Otetaan lähtötiedot. #Syötettäviä tietoja on viisi ja tekstikenttiä on kolme kappaeltta. syote[0],syote[1] = entry.get().split(',') syote[2] = entry2.get() syote[3],syote[4] = entry3.get().split(',') tiedot = [0,0,0,0,0] #Tallennetaan tiedot. tiedot = [float(x) for x in syote] #Lasketaan BKT lopputuotemenetelmällä. bkt = sum(tiedot[0:3])+(tiedot[3]-tiedot[4]) #Näytetään samalla kokonaiskysyntä ja kokonaistarjonta. #Kysynnän ja tarjonnan täytyy olla yhtä suuria. tarjonta = bkt+tiedot[4] kysynta = sum(tiedot[0:4]) varastot = 0.0 if (tarjonta != kysynta): varastot = tarjonta-kysynta varastot = round(varastot*100)/100.0 #Näytetään tulokset. var4.set("BKT:" + str(bkt)) if (int(var8.get()) == 1): var5.set("Tarjonta:" + str(bkt) + " + " + str(tiedot[4])) var6.set("Kysyntä:" + str(tiedot[0]) + " + " + str(tiedot[1]) + " + " + str(tiedot[2]) + " + " + str(tiedot[3]) + " + " + str(varastot)) else: var5.set("") var6.set("") #Valinnan mukaan näytetään joko kokonaistarjonta -tai kysyntä. if (int(var7.get()) == 1): data = [bkt,tiedot[4]] fig = plt.figure(figsize=(10,7)) plt.pie(data,labels=["BKT","tuonti"]) plt.show() else: data = [tiedot[0],tiedot[1],tiedot[2],tiedot[3],varastot] fig = plt.figure(figsize=(10,7)) plt.pie(data,labels=["Yksityinen","Julkinen","Investointi","Vienti","Varastot"]) plt.show() frame = Frame(root) frame.pack() #Luodaan kontrollit. #Ensimmäinen frame var = StringVar() var2 = StringVar() var3 = StringVar() label = Label(frame,textvariable=var) var.set("Yksityinen/julkinen kulutus") label.pack() entry = Entry(frame) entry.pack() label2 = Label(frame,textvariable=var2) var2.set("Investoinnit") label2.pack() entry2 = Entry(frame) entry2.pack() label3 = Label(frame,textvariable=var3) var3.set("Vienti/Tuonti") label3.pack() entry3 = Entry(frame) entry3.pack() #Toinen frame frame2 = Frame(root) frame2.pack() btn = Button(frame2,text="Laske",command=Laske) btn.pack() #Kolmas frame frame3 = Frame(root) frame3.pack() var4 = StringVar() var5 = StringVar() var6 = StringVar() label4 = Label(frame3,textvariable=var4) label4.pack() label5 = Label(frame3,textvariable=var5) label5.pack() label6 = Label(frame3,textvariable=var6) label6.pack() var7 = IntVar() check = Checkbutton(frame3,text="Kysyntä",variable=var7,onvalue=1,offvalue=0) check.pack() var8 = IntVar() check2 = Checkbutton(frame3,text="Näytä",variable=var8,onvalue=1,offvalue=0) check2.pack() root.mainloop()
Olet näkojaan profiloitunut näihin talousalan ohjelmoistoihin täällä ohjelmointiputkassa.
Onko sinulla kenties jotain taloustieteily-taustaa, vai oletko valmistunut ekonomiksi, niin osaatko kertoa onko tuo huoltotaseen jokin virallinen laskentakaava, että se muodostuisi kokonaistarjonnan ja kysynnän erotuksen ollessa tasan 0. Näinhän varmaan käytännossä ei ole koskaan millään markkinoiden osa-alueella, niin pitäisiko ottaa jokin 95% luottamusväli käyttoon tai en tiedä, onko ekonomeilla jotain tarkempia laskentakaavoja tähän, joihin otetaan jokin kerroin jostain ajankohtaisista valtiontalouden tunnusluvuista.
Jos ajattelee jotain rahan liikkeitä, valtiontaloutta, niin inflaatiotahan esiintyy, ja se on jossain määrin tervettä johonkin pisteeseen asti, joskin nyt on Suomen pankkikin ennustanut lähitulevaisuudessa inflaation kasvavan, joka on aika korkealla se arvio mielestäni.
Inflaatio hyvä esimerkki tästä, kun sehän syntyy juuri siitä, kun talouden kehitys on vauhdikkaampaa, mitä sitten taas ansiotulojen tyossakäyvien ansiotason nousu, jolloin yksityiskuluttajien markkinoilla oleva ostovoima ei kuitenkaan nouse samassa vauhdissa talouden kehityksen kanssa. Ideaalitilanne lienee jossain 0 ja 0,5% välimaastossa, mutta ei sekään koskaan ole absoluuttisesti täysin 0,että kasvukäyrät olisi ykkosen korrelaatiokertoimella yhtäläiset.
En tiedä, kun hesarissa oli pari viikkoa sitten viikkolehdessä artikkeli vasemmiston suosimasta modern monetary theroyn kannattamisesta, mmt lyhenne, en ole siihen syvemmin perehtynyt, mutta artikkelissa oli jussi Saramon avustajana tyoskentelevä aiheesta väitoskirjan tehnyt valtio-opin tohtori.
Siinähän idea on se, että keskuspankit voisivat äärettomasti painaa markkinoille lisää rahaa ja laskea velkaa liikenteeseen, niin ei sekään ratkaise tuota kuluttajatason käytossa olevan ostovoiman lisääntymistä, kun raha, joka lasketaan liikkeelle, painuu entistä enemmän Suomea ajatellen vientivetoisille yrityksille, ja sitä kautta sinne, missä sitä jo on, eli se toisaalta ajaa punavihreänä maallikkotalous-ajattelijana lisää rasvaa rattaisiin niin kauan, kun tämä maailma toimii vapaan markkinatalousjärjestelmän ja markkinoiden ehdoilla. Yksistään se on tuhoisa tie, mitä Yhdysvallat voi jo tehdä sen keskuspankki, mutta siinä jotain suojaaviakin mekanismeja varmaan valtio käyttää talouspolitiikassaan, että inflaatio ei repeä käsistä jne.
No, ei mennä mmt -teoriaan enempää, kun en ole mikään asiantuntija, voitko selventää tuon huoltotaseen määritelmän, onko se jokin talousoppineiden virallinen termi ja kaava ja käytetäänko siinä tavallisesti jotain kerrointa, kun se käytännossa lasketaan kun tehdään arvioita esimerkiksi valtionvarainministerin tehtävänä on laatia budjettiesitys seuraavalle vaalikaudelle, niin varmaan laskee jotain näitä juuri.
Jere Sumell kirjoitti:
huoltotaseen jokin virallinen laskentakaava, että se muodostuisi kokonaistarjonnan ja kysynnän erotuksen ollessa tasan 0. Näinhän varmaan käytännossä ei ole koskaan millään markkinoiden osa-alueella
Häh, siis ihan huoltotaseen määritelmän mukaan se (eli kokonaistarjonnan ja -kysynnän erotus) on aina tasan 0 (kaikilla markkinoiden osa-alueilla).
Tuotti itselleni epäselvyyksiä tuo "huoltotase" -termi. Pitänee katsoa hakukoneesta.
hakuun
Huoltotase on kansantalouden kokonaistarjonnan ja kokonaiskysynnän tase. Siitä näkyy, mihin kansantalouden hyödykkeet on käytetty sekä mistä ne ovat peräisin. Sen rakenne on seuraavanlainen:
Bruttokansantuote (eli Y)
+ Tuonti (eli M)
= Kokonaistarjonta
Kulutus (yksityinen ja julkinen) (eli C ja G)
+ Investoinnit (yksityinen ja julkinen) (eli I)
+ Vienti (eli X)
+ Varastojen muutos
= Kokonaiskysyntä
Huoltotase voidaan esittää siis muodossa: Y + M = C + G + I + X
Kokonaiskysyntä ja kokonaistarjonta ovat aina tasapainossa. Mikäli näin ei ole, tasaus tehdään varastojen muutoksella (eli siis kynällä 😁)
Koodin osalta taas samoja huomioita kuin ennenkin viime vuoden kuluessa:
Muuttujat pitäisi nimetä järkevästi. Esimerkiksi var1–var8, label1–6, syöte ja tiedot eivät ole järkeviä muuttujien nimiä siinä vaiheessa, kun näillä asioilla on jokin selvästi määritelty merkitys.
Listaa ei tarvitse alustaa, jos se kuitenkin seuraavalla rivillä korvataan uudella listalla.
Jere Sumell kirjoitti:
Onko sinulla kenties jotain taloustieteily-taustaa, vai oletko valmistunut ekonomiksi,
Tästä kuten aiemmistakin koodeista näkee, että ei taida olla mitään asiaan liittyvää taustaa vaan on taas kopioitu Wikipediasta muutama kaava ja väännetty niistä 100 riviä järjetöntä koodia ohjelmaksi, jolla ei oikeasti tee mitään.
Esimerkiksi tässäkin koodissa:
#Lasketaan BKT lopputuotemenetelmällä. bkt = sum(tiedot[0:3])+(tiedot[3]-tiedot[4]) #Näytetään samalla kokonaiskysyntä ja kokonaistarjonta. #Kysynnän ja tarjonnan täytyy olla yhtä suuria. tarjonta = bkt+tiedot[4] kysynta = sum(tiedot[0:4]) varastot = 0.0 if (tarjonta != kysynta): varastot = tarjonta-kysynta varastot = round(varastot*100)/100.0
Tuosta kun hieman järjestetään uudestaan lausekkeita, voidaan todeta, että lopputulos on itse asiassa tämä:
kysynta = tarjonta = sum(tiedot[0:4]) tuonti = tiedot[4] bkt = tarjonta - tuonti varastot = 0.0
Tässä näkyy myös, miten koodari ei ole taas ymmärtänyt, mitä koodaa. Käytetty BKT:n laskukaava suoraan sisältää oletuksen, että varastojen muutos on nolla. Sitä on turha tarkastaa if-lauseella. Selvyyden vuoksi käänsin yllä laskut toiseen järjestykseen, josta näkee, että tässä nimenomaan asetetaan kysyntään ja tarjontaan sama luku.
Jos BKT tulisi datasta eikä laskuista, voisi olla tilanne, jossa tarjonta (bkt + tuonti) ja kysyntä (kulutus, investoinnit, vienti) täytyisi tasapainottaa varastojen muutoksella, kuten neosofta tekstiä ansiokkaasti lainasi Wikipedian Huoltotase-artikkelista.
Esimerkki: Jos Petteri leipoo kolme pullaa mutta myy vain kaksi pullaa, hänelle jää yksi pulla varastoon. Toisaalta sitten jos suoraan määritellään (kuten koodissa tehtiin), että Petteri leipoo yhtä monta pullaa kuin myy, niin silloin määritelmään sisältyy tieto, että pullan määrä varastossa ei muutu.
Ei tämä ole mitään syvällistä taloustiedettä vaan ihan selvää yhteenlaskua.
Toistan edellisessä ketjussa esittämäni näkemyksen: koodarin kannattaisi nyt tehdä sellaisia koodeja, joiden merkityksen edes itse ymmärtää. Lisäksi koodissa pitäisi olla järkevä fokus: Tässäkin koodia on 112 riviä mutta otsikon mukaista asiaa (BKT ja huoltotase) käsittelee oikeasti enintään 12 riviä, joten asiasta saisi paremmin selvää, jos mukana ei olisi tuota epäselvää käyttöliittymäkoodia vaan olisi pelkästään otsikon mukaiseen asiaan liittyvät funktiot selvillä muuttujien nimillä. Näitä Tk-viritelmiä on nähty nyt jo monta kymmentä, joten ei tarvita enempää.
neosofta kirjoitti:
Huoltotase voidaan esittää siis muodossa: Y + M = C + G + I + X
Kokonaiskysyntä ja kokonaistarjonta ovat aina tasapainossa. Mikäli näin ei ole, tasaus tehdään varastojen muutoksella (eli siis kynällä 😁)
Kiitos kouluttavasta vastauksesta. Taas tuli uutta opittua! Huoltotase oli uusi termi itselleni, ja käsitin sen aluksi väärin, mutta hienoa, että katsoit hakukoneella puolestani, ja lisäsit Wikipediasta infoa tänne putkakeskusteluun.
Varaston muutos kynällä. Taseen korjaus nollatulokseen siis lisäämällä tilikirjan jommalle kummalle tilien puolille punakuulakärkikynän arvoko.
No, ymmärsin kyllä viitteen, että kynällä, ei tällä tietokoneohjelmalla, joka täällä on esitetty, kuten Metabolix kommentoikin, että viestin avaajan lähdekoodi on sekavaa.
Kaikella kunnioituksella, ja ketään syrjimättä, mutta tuo koodisi ei vaikuta kovinkaan uudelleenkäytettävältä. Siitä tuli varmaan tuo neosoftan hymio tuossa "eli siis kynällä", käsitin sen viitaten ironisesti siihen, että huoltotaseen tasausta ei lasketa tällä ohjelmalla.
Koodaaja, sinulla on tuossakin koodissa taas rakenteinen ohjelmointi -paradigma syvästi läsnä, mitä aiemmissakin koodeissasi kommentoin. Konsepti esiteltiin maailmalle 1966, jolloin tietokoneet alkoivat siirtymään koko huoneen kokoisista verrattain tehottomista laitoksista vähän siedettävämpiin koko luokkiin, joskaan ei vielä 1966 vuonna. Vaikka tuossa on tuo laske -metodi, niin koodirivejä on niin monta, ja epäselvyyksiä tuottaa ymmärtää, mitä metodi oikeastaan tekee, että olisi hyvä, jos ennen metodia olisi kommentoituna vaikka metodin tehtävä, alku- ja lopetusehdot.
Mielestäni kannattaa keskittyä koodijulkaisussa mahdollisimman helposti muidenkin ihmisten ymmärrettäviin koodeihin, ja keskittyä olennaiseen ja unohtaa käyttoliittymien sekoittaminen koodiesimerkki -julkaisuihin.
Jere Sumell kirjoitti:
Kaikella kunnioituksella, ja ketään syrjimättä, mutta tuo koodisi ei vaikuta kovinkaan uudelleenkäytettävältä. Siitä tuli varmaan tuo neosoftan hymio tuossa "eli siis kynällä", käsitin sen viitaten ironisesti siihen, että huoltotaseen tasausta ei lasketa tällä ohjelmalla.
Ei se ollut ironiaa. Jos kassan ohi on kadonnut tavaraa – esimerkiksi sitä on varastettu tai toimituksesta on uupunut yksittäisiä kappaleita – niin sitä ei saada takaisin, eikä katoamista voi mitenkään erityisesti laskea. Silloin on käsipelillä korjattava tietokoneella oleva luku vastaamaan sitä lukumäärää, mikä varastossa on tavaraa jäljellä.
muuskanuikku kirjoitti:
Ei se ollut ironiaa. Jos kassan ohi on kadonnut tavaraa – esimerkiksi sitä on varastettu tai toimituksesta on uupunut yksittäisiä kappaleita – niin sitä ei saada takaisin, eikä katoamista voi mitenkään erityisesti laskea. Silloin on käsipelillä korjattava tietokoneella oleva luku vastaamaan sitä lukumäärää, mikä varastossa on tavaraa jäljellä.
Hyvä että tuli tämäkin korjatuksi. Varaston inventaarin tekijöiden vastuulle jää, pitää olla tarkka.
Jere Sumell kirjoitti:
Koodaaja, sinulla on tuossakin koodissa taas rakenteinen ohjelmointi -paradigma syvästi läsnä, mitä aiemmissakin koodeissasi kommentoin. Konsepti esiteltiin maailmalle 1966, jolloin tietokoneet alkoivat siirtymään koko huoneen kokoisista verrattain tehottomista laitoksista vähän siedettävämpiin koko luokkiin, joskaan ei vielä 1966 vuonna. Vaikka tuossa on tuo laske -metodi, niin koodirivejä on niin monta, ja epäselvyyksiä tuottaa ymmärtää, mitä metodi oikeastaan tekee, että olisi hyvä, jos ennen metodia olisi kommentoituna vaikka metodin tehtävä, alku- ja lopetusehdot.
Onko sinulla jotain rakenteellista ohjelmointia vastaan? Eihän se nyt itsessään terminä mitään spagetti koodia tarkoita. Proseduraalisella ohjelmointikielellä pystyy kirjoittamaan aivan yhtä siistiä koodia kuin oliopohjaisella ohjelmointikielelläkin ja monesti jopa luettavampaa. Itse en ole ymmärtänyt miksi kaiken pitäisi olla luokkia... Loppupeleissä kuusikymmentäluvun jälkeen on tullut aika vähän ohjelmointia mullistavia innovaatioita.
jalski kirjoitti:
Onko sinulla jotain rakenteellista ohjelmointia vastaan?
Ei minulla rakenteista ohjelmointia vastaan mitään ole, en sillä sitä tarkoittanut, kunhan totesin ohimennen.
Onhan totta puhuen olio-ohjelmoinnissakin rakenteisen ohjelmoinnin piirteitä, ja myos esimerkiksi tietotyypin toteutuksessa set-metodit ovat proseduureja, koska ne ei palauta mitään arvoa, eli myos proseduraalista ohjelmointia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.