a2 small fixes
This commit is contained in:
@ -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 2–3 Seiten umfassen, maximal 10.
|
Unwichtige Teile des Programms sollen hier nicht abgedruckt werden. Dieser Teil sollte nicht mehr als 2–3 Seiten umfassen, maximal 10.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user