Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Rust: Yhtälönratkaisu

koodaaja [11.06.2022 13:11:25]

#

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);
  }


}

noutti [13.06.2022 17:09:29]

#

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!

Vastaus

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

Tietoa sivustosta