Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Tallentaminen taulukkomuodossa (korkoa korolle)

koodaaja [28.02.2022 17:34:51]

#

Tämä ohjelma käyttää esimerkkinä korkoa korolle laskua esimerkkinä taulukkolaskentaan tallentamisesta. Tämä onnistuu CSV-tiedostomuodon avulla, jossa arvot tässä tapauksessa erotellaan puolipisteellä. Käyttäjä voi itse määritellä taulukon muodon (neliö tai suorakulmio) ja koon.

import csv

def LaskeKorkoaKorolle(yksinkertainen: float, netto_korkokanta: float, vuodet: int):
  #Lasketaan rahamäärä, kun tietty määrä vuosia on kulunut.
  korkoa_korolle_tulos = 0.0



  #Pitää ottaa huomioon, että viimeinen vuosi ei kasva korkoa korolle.
  for i in range(0,vuodet):
    korkoa_korolle_tulos += talletus*netto_korkokanta**i

  return korkoa_korolle_tulos



#Annetaan kelvolliset lähtötiedot.
while (True):
  talletus = float(input("Anna talletus:"))
  netto_korkokanta = float(input("Anna nettokorkokanta:"))
  if (talletus > 0 and netto_korkokanta > 0):
   break



#Lasketaan yksinkertainen korko.

yksinkertainen = 0.0
for i in range(12,0,-1):
 yksinkertainen += talletus*(netto_korkokanta/100.0)*(i/12)


talletus *= 12.0
talletus += yksinkertainen


netto_korkokanta = 1+(netto_korkokanta/100.0)
print("Missä muodossa tallennetaan taulukkoon")
print("1) 2x2")
print("2) 3x3")
print("3) 4x2")
print("4) 2x4")
valinta = int(input())
#Laitetaan luvut taulukkoon tiettyyn muotoon.

with open("korkoa_korolle.csv","w") as tiedosto:
  if (valinta == 1):

    for i in range(2,10,4):
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i)};")
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i+2)}\n")

  elif (valinta == 2):

    for i in range(3,30,9):
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i)};")
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i+3)};")
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i+6)}\n")

  elif (valinta == 3):

    for i in range(4,36,16):

      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i)};")
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i+4)};")
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i+8)};")
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i+12)}\n")

  elif (valinta == 4):
    for i in range(2,18,4):

      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i)};")
      tiedosto.write(f"{LaskeKorkoaKorolle(talletus,netto_korkokanta,i+2)};")

mpni [28.02.2022 22:55:17]

#

Neliö on suorakulmio...

Vastaus

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

Tietoa sivustosta