summaryrefslogtreecommitdiff
path: root/labs/src/lab6.rs
diff options
context:
space:
mode:
Diffstat (limited to 'labs/src/lab6.rs')
-rw-r--r--labs/src/lab6.rs32
1 files changed, 20 insertions, 12 deletions
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);
+ }
}
}
}