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.
\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 23 Seiten umfassen, maximal 10.

View File

@ -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

View File

@ -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<T: BasicInteger + 'static + FromPrimitive + Display + Bounded>
/* 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<T: Eq + Hash + FromPrimitive>(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