summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2022-09-26 03:59:12 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2022-10-09 23:49:03 +0400
commitb689ab47f2260345a03130a2a2e8d9dda0ca25ef (patch)
treeb9d552ec1685a395484a67a04931622510692e86
parent62f1fb7b8c748a8d57ef073980911cb7a0252b68 (diff)
Добавлена обработка некорректного ввода в третьей лабораторной
-rw-r--r--src/lab3.rs17
-rw-r--r--теория.pdfbin93784 -> 0 bytes
2 files changed, 13 insertions, 4 deletions
diff --git a/src/lab3.rs b/src/lab3.rs
index b4adbf3..7f8edf5 100644
--- a/src/lab3.rs
+++ b/src/lab3.rs
@@ -4,7 +4,8 @@ use rug::{Complete, Integer};
enum State {
Clean,
- Done
+ Done,
+ Error,
}
pub struct Window {
@@ -36,9 +37,14 @@ impl Lab for Window {
}
});
if ui.button("Разложить на множители").clicked() {
- let number = Integer::parse(&self.str_num).unwrap().complete();
- self.factors.append(&mut factorize(&number));
- self.state = State::Done;
+ self.factors.clear();
+ match Integer::parse(&self.str_num) {
+ 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 {
@@ -48,6 +54,9 @@ impl Lab for Window {
ui.label(format!("Множители: {:?}", self.factors));
}
}
+ if let State::Error = self.state {
+ ui.label("В числе имеются недопустимые символы");
+ }
}
}
diff --git a/теория.pdf b/теория.pdf
deleted file mode 100644
index bdd926c..0000000
--- a/теория.pdf
+++ /dev/null
Binary files differ