Решение на упр.02 задача 1 от Адел Табиб

Обратно към всички решения

Към профила на Адел Табиб

Резултати

  • 3 точки от тестове
  • 0 бонус точки
  • 3 точки общо
  • 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,
last_reading: sensor_data,
status: "Active".to_string(),
}
}
fn diagnostic_check(probe: &Probe) {
if probe.battery_percentage < 20
{
println!("Battery low")
}
else
{
println!("{:?}", probe)
}
}
fn recharge_probe(probe: &mut Probe, amount: u8)
{
if amount + probe.battery_percentage > 100
{
return;
}
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 > 100.
{
println!("We are all going to die")
}
}
fn main() {
let temperature: f64 = 50.;
let rad_level: u32 = 20;
let sensor_data = create_sensor_data(temperature, rad_level);
let probe_name: String = "ProbeV1".to_string();
let battery = 50;
let mut probe1 =create_probe(&probe_name, battery, sensor_data);
diagnostic_check(&probe1);
let recharge_amount = 10;
recharge_probe(&mut probe1, recharge_amount);
update_status(&mut probe1, "Exploring");
let reading = probe1.last_reading;
analyze_critical_sensor(reading);
//Zashtoto po default v rust se izpolzvat move semantics, toest sme premestili last_reading ot probe1 v reading.
}

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