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.