Решение на упр.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, 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: "Standby".to_string()
}
}
fn diagnostic_check(probe: &Probe){
if probe.battery_percentage < 20 {
println!("Error");
}
else {
println!("probe {:?}", probe);
}
}
fn recharge_probe(probe: &mut Probe, amount: u8){
if probe.battery_percentage + amount > 100{
probe.battery_percentage = 100;
}else{
probe.battery_percentage += amount;
}
}
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 > 200.0{
println!("Error")
}
}
fn main() {
let sensor1 = create_sensor_data(150.0, 150);
let probe1 = create_probe("FMI1", 42 , sensor1);
diagnostic_check(&probe1);
let sensor2 = create_sensor_data(40.0, 25);
let mut probe2 = create_probe("FMI2", 42 , sensor2);
recharge_probe(&mut probe2, 42);
update_status(&mut probe2, "Exploring");
diagnostic_check(&probe2);
let reading = probe1.last_reading;
analyze_critical_sensor(reading);
/*
diagnostic_check(&probe1);
дава грешка, защото reading е собственист на probe1.last_readig (вече не е в probe1 и структурата не е цяла)
*/
}

История (1 версия и 0 коментара)

Деница качи първо решение на 21.10.2026 12:59 (преди 6 дена)