Решение на упр.02 задача 1 от Надя Йотова
Резултати
- 4 точки от тестове
- 0 бонус точки
- 4 точки общо
- 0 успешни тест(а)
- 0 неуспешни тест(а)
Код
#[derive(Debug)]
struct SensorData{
temperature: f64,
radiation_level: u32,
}
#[derive(Debug)]
struct Probe{
name: String,
battery_percentage: u8,
last_reading: SensorData,
status: String,
}
fn create_sensor_data(temperature: f64, radiation_level: u32) -> SensorData{
SensorData{
temperature: temperature,
radiation_level: radiation_level,
}
}
fn create_probe(name: &str, battery_percentage: u8, sensor_data: SensorData) -> Probe{
Probe{
name: name.to_string(),
battery_percentage: battery_percentage,
last_reading: sensor_data,
status: "Active".to_string(),
}
}
fn diagnostic_check(probe: &Probe){
if probe.battery_percentage < 20{
println!("Low Percentage");
}else{
println!("{:?}", probe);
}
}
fn recharge_probe(probe: &mut Probe,amount: u8){
probe.battery_percentage += amount;
if probe.battery_percentage > 100{
probe.battery_percentage = 100
}
}
fn update_status(probe: &mut Probe, new_status: &str){
probe.status = new_status.to_string();
}
fn analyze_critical_sensor(sensor: SensorData){
if sensor.radiation_level > 100 || sensor.temperature > 100.0 || sensor.temperature < -100.0{
println!("Temperature: {}, Radiation: {}", sensor.temperature, sensor.radiation_level);
}else{
println!("Everything is within the limits");
}
}
fn main() {
let sensor = create_sensor_data(111.0, 150);
let mut probe1 = create_probe("Voyager-X", 15, sensor);
diagnostic_check(&probe1);
recharge_probe(&mut probe1, 30);
update_status(&mut probe1, "Exploring");
println!("{:?}", probe1);
let reading = probe1.last_reading;
analyze_critical_sensor(reading);
println!("Name: {}, Battery: {}%, Status: {}", probe1.name, probe1.battery_percentage, probe1.status);
// last_reading вече е преместено, затова не можем да използваме цялата структура probe1
}
