Tämä ohjelma laskee suoraan verrannolisia yhtälöitä, joissa oikea puoli voi olla myös neliöön tai kuutioon korotettuna. Lisäksi ohjelma tallentaa tiedon taulukkolaskentaohjelmaan ja korvaa aina vanhat tiedot. CSV:ssä eri asiat on erotettu pilkuilla ja riivnvaidoilla.
import csv
import math
#Annetaan lähtötiedot, kuten verrannon tyyppi ja luvut.
ensimmainen, toinen, kolmas = input("Syötä mitkä verrannot lasketaan").split()
aste = [int(ensimmainen),int(toinen),int(kolmas)]
print(aste)
osoittaja_vasen, nimittaja_vasen = input("Syötä vasemman puolen osoittaja ja nimittäjä").split()
osoittaja_oikea, nimittaja_oikea = input("Syötä oikean puolen osoittaja ja nimittäjä").split()
luvut = [float(osoittaja_vasen),float(nimittaja_vasen),float(osoittaja_oikea),float(nimittaja_oikea)]
tulokset = []
vaihtoehto = 0
#Katsotaan, mikä luvuista on tuntematon.
if (luvut[0] == 0 and luvut[1] != 0 and luvut[2] != 0 and luvut[3] != 0):
vaihtoehto = 1
elif (luvut[1] == 0 and luvut[0] != 0 and luvut[2] != 0 and luvut[3] != 0):
vaihtoehto = 2
elif (luvut[2] == 0 and luvut[0] != 0 and luvut[1] != 0 and luvut[3] != 0):
vaihtoehto = 3
elif (luvut[3] == 0 and luvut[0] != 0 and luvut[1] != 0 and luvut[2] != 0):
vaihtoehto = 4
#Tallennetaan taulukkolasketan ohjelmaan.
with open("verranto.csv","w") as tiedosto:
kirjoittaja = csv.writer(tiedosto)
#Lasketaan verrannon asteet
#Oikea puoli on neliöön tai kuutioon verrannollinen.
for i in range(len(aste)):
if (aste[i] == 1):
if (vaihtoehto == 1):
luvut[0] = ((luvut[1]*luvut[2]**(i+1))/luvut[3]**(i+1))
elif (vaihtoehto == 2):
luvut[1] = ((luvut[0]*luvut[3]**(i+1))/luvut[2]**(i+1))
elif (vaihtoehto == 3):
luvut[2] = ((luvut[0]*luvut[3]**(i+1))/luvut[1])**(1.0/(i+1))
elif (vaihtoehto == 4):
luvut[3] = ((luvut[1]*luvut[2]**(i+1))/luvut[0])**(1.0/(i+1))
#Pyöristetään luvut kahden desimaalin tarkkuudella.
luvut[0] = round(luvut[0]*100)/100.0
luvut[1] = round(luvut[1]*100)/100.0
luvut[2] = round(luvut[2]*100)/100.0
luvut[3] = round(luvut[3]*100)/100.0
#Laitetaan tulokset taulukkolasketan ohjelmana.
tulokset = [[luvut[0],luvut[2]],[luvut[1],luvut[3]]]
kirjoittaja.writerow(["Vasen",f"Oikea {i+1}"])
kirjoittaja.writerows(tulokset)
kirjoittaja.writerow("\n")Aihe on jo aika vanha, joten et voi enää vastata siihen.