Tässä on Rustilla tehty yksinkertainen yhtälönratkaisu koodi. Ohjelma kykenee laskemaan ensimmäisen ja toisen asteen yhtälöitä.
Huonot koodivinkit kuuluvat vielä identiteettiini, joskin olen vähitellen oppinut koodaamaan kunnollisia ohjelmia (esim. yksinkertaisia pelejä).
Ajattelin pitää pienen tauon taas ja lupaan tästä lähtien lähettää vain kunnollisia koodeja johon menee vielä muutama viikko.
/* Tämä ohjelma laskee yhtälöitä Rustilla. Ohjelma laskee diskriminantin laskiessa toisen asteen yhtälöitä. */ fn main(){ //Testataan funktioita let yksi: f64; let kaksi: f64; let kolme: f64; yksi = yksi_aste(5.0,2.0); kaksi = toinen_aste_vaillinainen(-5.0,2.0,1); kolme = toinen_aste_vaillinainen(-5.0,2.0,2); toinen_aste_taydellinen(2.0,8.0,8.0); toinen_aste_taydellinen(2.0,9.0,1.0); println!("{}",yksi); println!("{}",kaksi); println!("{}",kolme); } fn yksi_aste(a: f64, b: f64)->f64 { let tulos = (0.0-b)/a; return tulos; } fn toinen_aste_vaillinainen(a: f64, b: f64,tyyppi: i32)->f64{ //Tätä käytetään jonkin yhtälön osan puuttuessa. let tulos; if tyyppi == 1{ tulos = (0.0-b/a).sqrt(); } else { tulos = (0.0-b)/a; } return tulos; } fn toinen_aste_taydellinen(a: f64, b: f64, c: f64) { let tulos: f64; let tulos2: f64; let d; //Lasketaan diskriminantti; d = (b*b)-(4.0*a*c); println!("{}",d); //Diskriminantti määrittää reaalijuurten määrän. if d > 0.0{ tulos = (-1.0*b+(d).sqrt())/(2.0*a); tulos2 = (-1.0*b-(d).sqrt())/(2.0*a); println!("{}",tulos); println!("{}",tulos2); } else if d == 0.0{ tulos = (-1.0*b+(d).sqrt())/(2.0*a); println!("{}",tulos); } else { println!("{}",0.0); } }
Ei tämä vieläkään mitään tuotantotason koodia ole, mutta on ollut kiva seurata kehittymistäsi pikku hiljaa. Ja nyt kun olet päässyt Rustiin asti niin pysy siellä ihmeessä. Opiskele se kunnolla ja ovet ovat auki sitten tulevaisuudessa!
Aihe on jo aika vanha, joten et voi enää vastata siihen.