diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2022-09-26 03:59:12 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2022-10-09 23:49:03 +0400 |
| commit | b689ab47f2260345a03130a2a2e8d9dda0ca25ef (patch) | |
| tree | b9d552ec1685a395484a67a04931622510692e86 | |
| parent | 62f1fb7b8c748a8d57ef073980911cb7a0252b68 (diff) | |
Добавлена обработка некорректного ввода в третьей лабораторной
| -rw-r--r-- | src/lab3.rs | 17 | ||||
| -rw-r--r-- | теория.pdf | bin | 93784 -> 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 Binary files differdeleted file mode 100644 index bdd926c..0000000 --- a/теория.pdf +++ /dev/null |