OOP_IO-2x_2023-mirror/Rust/lab_1/src/main.rs

23 lines
649 B
Rust
Raw Normal View History

2023-05-07 09:26:25 +03:00
fn protected_read(variable_name: &str) -> i32 {
use text_io::try_read;
loop {
print!("Enter {}: ", variable_name);
let read_result: Result<i32, _> = try_read!();
match read_result {
Ok(read_integer) => return read_integer,
Err(_e) => println!("{} must be an integer!", variable_name.to_uppercase()),
}
}
}
2023-05-06 23:18:57 +03:00
2023-05-07 09:26:25 +03:00
fn main() {
let n: i32 = protected_read("n");
let m: i32 = protected_read("m");
let a: i32 = protected_read("a");
let b: i32 = protected_read("b");
2023-05-06 23:44:34 +03:00
2023-05-07 09:26:25 +03:00
let s: f32 = ((b + m) as f32 / 2f32) * ((m - b + 1) * (n - a + 1)) as f32;
2023-05-06 23:44:34 +03:00
2023-05-07 09:26:25 +03:00
println!("S = {}", s);
2023-05-06 23:18:57 +03:00
}