diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2023-05-05 15:09:32 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2023-05-05 15:09:32 +0400 |
| commit | 3863848fec77ced98daf81f58164d79308295073 (patch) | |
| tree | 95d56f04659782ae78424fb0e725753e1107b78f | |
| parent | 6a69f2b8fc4ff38836c65d93a7a4beb8e50158b6 (diff) | |
| -rw-r--r-- | labs/src/lab1.rs | 5 | ||||
| -rw-r--r-- | labs/src/lab3.rs | 17 | ||||
| -rw-r--r-- | labs/src/lab6.rs | 32 |
3 files changed, 31 insertions, 23 deletions
diff --git a/labs/src/lab1.rs b/labs/src/lab1.rs index b442199..77d3bad 100644 --- a/labs/src/lab1.rs +++ b/labs/src/lab1.rs @@ -29,7 +29,9 @@ impl Default for Window { } impl Lab for Window { - fn get_name(&self) -> &str { "Задача №1" } + fn get_name(&self) -> &str { + "Задача №1" + } fn update(&mut self, ui: &mut egui::Ui) { ui.horizontal(|ui| { @@ -131,4 +133,3 @@ fn is_prime(x: u32) -> bool { } return true; } - diff --git a/labs/src/lab3.rs b/labs/src/lab3.rs index 7f8edf5..7fda28e 100644 --- a/labs/src/lab3.rs +++ b/labs/src/lab3.rs @@ -25,7 +25,9 @@ impl Default for Window { } impl Lab for Window { - fn get_name(&self) -> &str { "Задача №3" } + fn get_name(&self) -> &str { + "Задача №3" + } fn update(&mut self, ui: &mut egui::Ui) { ui.horizontal(|ui| { @@ -42,15 +44,14 @@ impl Lab for Window { Ok(number) => { self.factors.append(&mut factorize(&number.complete())); self.state = State::Done; - }, + } Err(_) => self.state = State::Error, }; } if let State::Done = self.state { if self.factors.len() == 1 { ui.label(format!("Число является простым")); - } - else { + } else { ui.label(format!("Множители: {:?}", self.factors)); } } @@ -71,8 +72,8 @@ fn factorize(n: &Integer) -> Vec<Integer> { let other = num.div_exact_ref(&factor).complete(); front.push(factor); front.push(other); - }, - None => factors.push(num) + } + None => factors.push(num), }; } @@ -112,8 +113,7 @@ fn lehman(n: &Integer) -> Option<Integer> { if &gcd1 > one && &gcd1 < n { return Some(gcd1); - } - else if &gcd2 > one && &gcd2 < n { + } else if &gcd2 > one && &gcd2 < n { return Some(gcd2); } } @@ -125,4 +125,3 @@ fn lehman(n: &Integer) -> Option<Integer> { return None; } - diff --git a/labs/src/lab6.rs b/labs/src/lab6.rs index 9061da7..a2d64bc 100644 --- a/labs/src/lab6.rs +++ b/labs/src/lab6.rs @@ -1,7 +1,7 @@ use crate::lab_trait::Lab; use eframe::egui; -use std::collections::HashSet; use std::collections::HashMap; +use std::collections::HashSet; enum State<'a> { Clean, @@ -31,19 +31,27 @@ impl<'a> Default for Window<'a> { } impl<'a> Lab for Window<'a> { - fn get_name(&self) -> &str { "Задача №6" } + fn get_name(&self) -> &str { + "Задача №6" + } fn update(&mut self, ui: &mut egui::Ui) { ui.horizontal(|ui| { ui.label("Порядок группы Z_n: "); - if ui.add(egui::DragValue::new(&mut self.n).clamp_range(2..=u32::MAX)).changed() { + if ui + .add(egui::DragValue::new(&mut self.n).clamp_range(2..=u32::MAX)) + .changed() + { self.state = State::Clean; self.subgroup.clear(); } }); ui.horizontal(|ui| { ui.label("Порядок q подгруппы: "); - if ui.add(egui::DragValue::new(&mut self.q).clamp_range(1..=self.n)).changed() { + if ui + .add(egui::DragValue::new(&mut self.q).clamp_range(1..=self.n)) + .changed() + { self.state = State::Clean; self.subgroup.clear(); } @@ -52,8 +60,7 @@ impl<'a> Lab for Window<'a> { self.subgroups.clear(); if self.n % self.q != 0 { self.state = State::Error("q не является делителем n"); - } - else { + } else { self.subgroups = calculate_subgroups(self.n); for (_, sg) in &self.subgroups { if sg.len() == self.q as usize { @@ -68,23 +75,24 @@ impl<'a> Lab for Window<'a> { self.subgroups.clear(); if self.n % self.q != 0 { self.state = State::Error("q не является делителем n"); - } - else { + } else { self.subgroups = calculate_subgroups(self.n); self.state = State::Done2; } } match self.state { - State::Clean => {}, + State::Clean => {} State::Done1 => { ui.label(format!("Вычисленная подгруппа: {:?}", self.subgroup)); - }, + } State::Done2 => { for (gen, set) in self.subgroups.iter() { ui.label(format!("Подгруппа {:?} с генератором {}", set, gen)); } - }, - State::Error(msg) => { ui.label(msg); }, + } + State::Error(msg) => { + ui.label(msg); + } } } } |