a2 small fixes

This commit is contained in:
2022-03-18 19:59:26 +01:00
parent 841c6631fb
commit d98e4dbd31
3 changed files with 10 additions and 10 deletions

View File

@ -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. while-Schleife der main-Funktion noch einmal durchlaufen werden.
\section{Beispiele} \section{Beispiele}
\immediate\write18{./ergebnis-latex.sh} \input{|./ergebnis-latex.sh}
\input{ausgabe.tmp}
\immediate\write18{rm ausgabe.tmp}
\section{Quellcode} \section{Quellcode}
Unwichtige Teile des Programms sollen hier nicht abgedruckt werden. Dieser Teil sollte nicht mehr als 23 Seiten umfassen, maximal 10. Unwichtige Teile des Programms sollen hier nicht abgedruckt werden. Dieser Teil sollte nicht mehr als 23 Seiten umfassen, maximal 10.

View File

@ -1,5 +1,8 @@
#/bin/sh #/bin/sh
for file in $(ls -v ergebnisdateien); do for file in $(ls -v ergebnisdateien); do
operators=$(basename "$file" .txt) 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 done

View File

@ -32,14 +32,13 @@ enum AddSubOrMultiplicateDivide {
// Struktur für die Kommandozeilenargumente // Struktur für die Kommandozeilenargumente
#[derive(Parser)] #[derive(Parser)]
#[clap(about, long_about = None)]
struct Args { struct Args {
/// Anzahl der Operatoren /// Anzahl der Operatoren
#[clap(short, long, default_value_t = 5)] #[clap(short, long, default_value_t = 5)]
count: u8, count: u8,
/// zeigt die Lösung an /// zeigt die Lösung an
#[clap(short, long, takes_value = false)] #[clap(short, long)]
solution_print: bool, solution_print: bool,
/// nutzt vorgegebene Ziffern zur Erstellung des Rätsels (für reproduzierbare Testfälle) /// nutzt vorgegebene Ziffern zur Erstellung des Rätsels (für reproduzierbare Testfälle)
@ -109,7 +108,7 @@ fn main() {
let mut digits = args.digits; let mut digits = args.digits;
// Wenn keine Ziffern bzw. Operanden vorgegeben wurden, werden diese zufällig ausgewählt. // 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 { while continue_searching {
if random_digits { if random_digits {
digits = vec!(0; (args.count + 1) as usize); // erstellt einen neuen Vektor für die Ziffern digits = vec!(0; (args.count + 1) as usize); // erstellt einen neuen Vektor für die Ziffern
@ -234,7 +233,7 @@ fn calc_results<T: BasicInteger + 'static + FromPrimitive + Display + Bounded>
/* Wenn der letzte Operator eine Strichrechnung ist, muss der letzte Operand noch als /* Wenn der letzte Operator eine Strichrechnung ist, muss der letzte Operand noch als
* Zwischenergebnis hinzugefügt werden. */ * Zwischenergebnis hinzugefügt werden. */
if dm_as_map >> number_operators - 1 & 1 == AddSubOrMultiplicateDivide::AddSub as u32 { 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 // führt die Strichrechnung mit den Zwischenergebnissen durch
@ -375,10 +374,10 @@ fn insert_digit<T: Eq + Hash + FromPrimitive>(digits: &[u8], i: usize) -> PartOp
// Some(0) heißt, dass keine Operatoren verwendet wurden // Some(0) heißt, dass keine Operatoren verwendet wurden
result_map.insert(T::from_u8(digits[i]).unwrap(), Some(0)); result_map.insert(T::from_u8(digits[i]).unwrap(), Some(0));
return PartOperation{ PartOperation{
results: result_map, results: result_map,
last_operator: last_operator_helper(i), last_operator: last_operator_helper(i),
}; }
} }
// gibt das Rätsel bzw. die Lösung des Rätsels aus // gibt das Rätsel bzw. die Lösung des Rätsels aus