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

Muista lukea kirjoitusohjeet.
Tietoa sivustosta