Thread Erläuterung zu Vokabeltrainer (6 answers)
Opened by Futureflo at 2011-04-01 14:11

Futureflo
 2011-04-01 14:11
#147269 #147269
User since
2011-03-06
26 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen.
Habe neulich schon ein mal nach einem Vokabeltrainer gefragt und durch die Hilfe von euch dann auch was zusammen bekommen, das funktioniert.

Nun hätte ich aber noch ein paar Fragen.
Programm sieht so aus:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/perl


use strict;
use warnings;

use List::Util ('shuffle');

my ($vokabeln_file, $loesung_file, $nichtgekonnte_file) = ("Vokabeln.txt", "Loesung.txt", "nichtgekonnte.txt");

open (my $vokabeln_FH, '<', $vokabeln_file) || die "Die Datei $vokabeln_file konnte nicht gefunden werden";
chomp(my @vokabeln_array = <$vokabeln_FH>);
close ($vokabeln_FH);

my %vokabeln;

open (my $loesung_FH, '<', $loesung_file) || die "Die Datei $loesung_file konnte nicht gefunden werden";
chomp($vokabeln{$vokabeln_array[$.-1]} = $_) while (<$loesung_FH>);
close ($loesung_FH);

open(my $schreib_FH, ">>", $nichtgekonnte_file);

for my $aufgabe (shuffle @vokabeln_array) {
    print "Translate the word $aufgabe\n";
    chomp(my $eingabe = <STDIN>);

    if ($eingabe eq $vokabeln{$aufgabe}) {
        print "The translation is correct!\n";
    } else {
        print "The translation is incorrect\n";
        print "Do you want to save the incorrect word and answer?\n";
        print "(1)Yes              (2)No\n";
        chomp(my $antwort=<STDIN>);
        if ($antwort eq '1') {
            print $schreib_FH "Wrong: \"$eingabe\" for \"$aufgabe\" (correct is: \"$vokabeln{$aufgabe}\")\n";
        }
    }
}
close($schreib_FH);


Also gleich mal zur Zeile 7: Das heißt nur, dass die Liste zufällig "gemischt" wird oder?

Dann, Zeile 15, warum muss ich da einen Hasch draus machen?

Dann drei Zeilen drunter, also Zeile 18, da komm ich nicht so ganz klar. Was soll das?

Das for in Zeile 23 macht mir meine Schleife so oft, bis der Array komplett abgefragt wurde oder?

In der If-Schleife, das $vokabeln{$aufgabe}, heißt ja, dass die Vokabel aus dieser Aufgabe geprüft werden soll oder? Kann man das einfach so machen?

Danke schon ein mal für eure Antworten.

Grüße Flo

View full thread Erläuterung zu Vokabeltrainer