From d98e4dbd31cf743736a4caac87d9d4cf9166053f Mon Sep 17 00:00:00 2001 From: MrGeorgen Date: Fri, 18 Mar 2022 19:59:26 +0100 Subject: [PATCH] a2 small fixes --- Aufgabe2-Rechenrätsel/doc.tex | 4 +--- Aufgabe2-Rechenrätsel/ergebnis-latex.sh | 5 ++++- Aufgabe2-Rechenrätsel/src/main.rs | 11 +++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Aufgabe2-Rechenrätsel/doc.tex b/Aufgabe2-Rechenrätsel/doc.tex index 313f136..076a878 100644 --- a/Aufgabe2-Rechenrätsel/doc.tex +++ b/Aufgabe2-Rechenrätsel/doc.tex @@ -234,9 +234,7 @@ diese wird ausgegeben. Wenn kein interessantes Rätsel gefunden wurde, muss die while-Schleife der main-Funktion noch einmal durchlaufen werden. \section{Beispiele} -\immediate\write18{./ergebnis-latex.sh} -\input{ausgabe.tmp} -\immediate\write18{rm ausgabe.tmp} +\input{|./ergebnis-latex.sh} \section{Quellcode} Unwichtige Teile des Programms sollen hier nicht abgedruckt werden. Dieser Teil sollte nicht mehr als 2–3 Seiten umfassen, maximal 10. diff --git a/Aufgabe2-Rechenrätsel/ergebnis-latex.sh b/Aufgabe2-Rechenrätsel/ergebnis-latex.sh index 02c5f00..a97202d 100755 --- a/Aufgabe2-Rechenrätsel/ergebnis-latex.sh +++ b/Aufgabe2-Rechenrätsel/ergebnis-latex.sh @@ -1,5 +1,8 @@ #/bin/sh for file in $(ls -v ergebnisdateien); do operators=$(basename "$file" .txt) - printf "%s Operatoren:\\inputminted[breaklines]{text}{%s}\n" "$operators" "ergebnisdateien/$file" >> ausgabe.tmp + if [ "$operators" != "1" ]; then + ending=en + fi + printf "%s Operator%s:\\inputminted[breaklines]{text}{%s}\n" "$operators" "$ending" "ergebnisdateien/$file" done diff --git a/Aufgabe2-Rechenrätsel/src/main.rs b/Aufgabe2-Rechenrätsel/src/main.rs index 427da5b..310b8f2 100644 --- a/Aufgabe2-Rechenrätsel/src/main.rs +++ b/Aufgabe2-Rechenrätsel/src/main.rs @@ -32,14 +32,13 @@ enum AddSubOrMultiplicateDivide { // Struktur für die Kommandozeilenargumente #[derive(Parser)] -#[clap(about, long_about = None)] struct Args { /// Anzahl der Operatoren #[clap(short, long, default_value_t = 5)] count: u8, /// zeigt die Lösung an - #[clap(short, long, takes_value = false)] + #[clap(short, long)] solution_print: bool, /// nutzt vorgegebene Ziffern zur Erstellung des Rätsels (für reproduzierbare Testfälle) @@ -109,7 +108,7 @@ fn main() { let mut digits = args.digits; // Wenn keine Ziffern bzw. Operanden vorgegeben wurden, werden diese zufällig ausgewählt. - let random_digits = digits.len() == 0; + let random_digits = digits.is_empty(); while continue_searching { if random_digits { digits = vec!(0; (args.count + 1) as usize); // erstellt einen neuen Vektor für die Ziffern @@ -234,7 +233,7 @@ fn calc_results /* Wenn der letzte Operator eine Strichrechnung ist, muss der letzte Operand noch als * Zwischenergebnis hinzugefügt werden. */ if dm_as_map >> number_operators - 1 & 1 == AddSubOrMultiplicateDivide::AddSub as u32 { - results_multiplicate.push(insert_digit(&digits, digits.len() - 1)); + results_multiplicate.push(insert_digit(digits, digits.len() - 1)); } { // führt die Strichrechnung mit den Zwischenergebnissen durch @@ -375,10 +374,10 @@ fn insert_digit(digits: &[u8], i: usize) -> PartOp // Some(0) heißt, dass keine Operatoren verwendet wurden result_map.insert(T::from_u8(digits[i]).unwrap(), Some(0)); - return PartOperation{ + PartOperation{ results: result_map, last_operator: last_operator_helper(i), - }; + } } // gibt das Rätsel bzw. die Lösung des Rätsels aus