Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Rust: Vektorilaskenta

koodaaja [13.07.2022 10:17:42]

#

Tämä ohjelma laskee vektoreihin liittyviä laskutoimituksia, kuten vektorin pituus, vektorien summa ja pistetulon.

//Käytetään kahta vektoria.
struct Vektori {
 x_1: f32,
 y_1: f32,
 z_1: f32,
 x_2: f32,
 y_2: f32,
 z_2: f32

}


//Tämä ohjelma laskee vektorin pituuden, summan ja pistetulon.

impl Vektori {


 fn pituus(&self)->f32{
    return (self.x_1*self.x_1+self.y_1*self.y_1+self.z_1*self.z_1).sqrt();

 }


 fn summa_x(&self)->f32{
   return self.x_1+self.x_2;
 }

 fn summa_y(&self)->f32{
   return self.y_1+self.y_2;
 }


 fn summa_z(&self)->f32{
   return self.z_1+self.z_2;
 }


 fn pistetulo(&self)->f32{
    return self.x_1*self.x_2+self.y_1*self.y_2+self.z_1*self.z_2;
 }

}


fn main(){

  let esimerkki = Vektori {x_1: 3.0, y_1: 7.0, z_1: 8.0, x_2: 7.0, y_2: 7.0, z_2: 9.0};
  //Lasketaan vektoriin liittyviä laskutoimituksia.
  println!("Pituus: {}", esimerkki.pituus());
  println!("Vektori: {} x  {} y {} z", esimerkki.summa_x(),esimerkki.summa_y(),esimerkki.summa_z());
  println!("Pistetulo: {}" , esimerkki.pistetulo())
}

Metabolix [13.07.2022 17:57:10]

#

Suosittelen korjaamaan koodin rakennetta: Vektorissa ei ole kahta kappaletta jokaista koordinaattia vaan vain yksi. Pistetulo lasketaan kahdesta erillisestä vektorista, ei saman vektorin mystisistä ihmekomponenteista.

Vastaus

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

Tietoa sivustosta