35 lines
610 B
Rust
35 lines
610 B
Rust
|
trait Muoto {
|
||
|
fn pinta_ala(&self) -> u32;
|
||
|
}
|
||
|
|
||
|
struct Suorakulmio {
|
||
|
x: u32,
|
||
|
y: u32,
|
||
|
}
|
||
|
|
||
|
struct Ympyra {
|
||
|
r: f64,
|
||
|
}
|
||
|
|
||
|
impl Muoto for Suorakulmio {
|
||
|
fn pinta_ala(&self) -> u32 {
|
||
|
self.x * self.y
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl Muoto for Ympyra {
|
||
|
fn pinta_ala(&self) -> u32 {
|
||
|
(3.141 * self.r * self.r) as u32
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let muoto1 = Suorakulmio { x: 15, y: 10 };
|
||
|
let muoto2 = Ympyra { r: 8.5 };
|
||
|
println!("Suorakulmion pinta-ala: {}", muoto1.pinta_ala());
|
||
|
println!("Ympyrän pinta-ala: {}", muoto2.pinta_ala());
|
||
|
}
|
||
|
|
||
|
// Suorakulmion pinta-ala: 150
|
||
|
// Ympyrän pinta-ala: 226
|