تمرين إعادة البناء
Temperature Converter
أعد كتابة محول درجات حرارة بين Celsius وFahrenheit وKelvin.
rust
~10 دقيقة
مبتدئ
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() != 4 {
println!("Usage: {} <value> <from:c|f|k> <to:c|f|k>", args[0]);
return;
}
// اقرأ الدرجة والوحدات — Read the value and units
let value: f64 = match args[1].parse() {
Ok(number) => number,
Err(_) => {
println!("Temperature must be a number");
return;
}
};
let from = args[2].to_lowercase();
let to = args[3].to_lowercase();
// حوّل أولاً إلى Celsius — Convert to Celsius first
let celsius = match from.as_str() {
"c" => value,
"f" => (value - 32.0) * 5.0 / 9.0,
"k" => value - 273.15,
_ => {
println!("Unknown source unit");
return;
}
};
// حوّل من Celsius إلى الهدف — Convert from Celsius to target
let converted = match to.as_str() {
"c" => celsius,
"f" => celsius * 9.0 / 5.0 + 32.0,
"k" => celsius + 273.15,
_ => {
println!("Unknown target unit");
return;
}
};
println!("{value:.2} {from} = {converted:.2} {to}");
}اكتب هنا