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()) }
Suosittelen korjaamaan koodin rakennetta: Vektorissa ei ole kahta kappaletta jokaista koordinaattia vaan vain yksi. Pistetulo lasketaan kahdesta erillisestä vektorista, ei saman vektorin mystisistä ihmekomponenteista.
Aihe on jo aika vanha, joten et voi enää vastata siihen.