15, "Auto" => 1000, "Motorrad" => 250, "Mensch" => 70, "Bulle" => 1500); # Zuweisung eines assoziativen Feldes. # Ein assoziatives Feld wird hash genannt. # Adressierung über eindeutige Schlüssel">

Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung."—  Präsentation transkript:

1 1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung

2 2 hash Assoziatives Feld Adressierung über Schlüssel ( keys ) nicht über Ziffern „vergleichbar“ mit kleiner Datenbank Dies sind keine 2 x n Felder bei denen im ersten (Text-)Feld der Schlüssel gespeichert ist.

3 3 hash %Tabelle=("Fahrrad" => 15, "Auto" => 1000, "Motorrad" => 250, "Mensch" => 70, "Bulle" => 1500); # Zuweisung eines assoziativen Feldes. # Ein assoziatives Feld wird hash genannt. # Adressierung über eindeutige Schlüssel

4 4 hash: Einzeldaten # Zuweisung eines einzelnen Schlüssel-Wert- # Paares: $Tabelle{"Pferd"}=750; # Ausgabe des Wertes zum Schlüssel: Auto print $Tabelle{"Auto"}; # liefert: 1000

5 5 hash alternative (ältere) Schreibweise %Tabelle=("Fahrrad",15, "Auto",1000, "Motorrad",250, "Mensch",70, "Bulle",1500);

6 6 hash mit qw füllen ( quote words ) %Tabelle=qw( Fahrrad15 Auto1000 Motorrad250 Mensch70 Bulle1500 );# Beachte: keinerlei Zeichen zwischen den # Daten. Also auch keine Kommentare!

7 7 Funktionen zu Variablenbehandlung Definition? Existenz? Undefiniert setzen! Löschen! Hashauswertung defined exists undef delete keys values each

8 8 defined # Die Funktion defined liefert wahr, wenn der # Wert der Variablen definiert ist. Sie liefert keine # Aussage, ob die Variable bzw. Variable und # Schlüssel existiert! if (defined($abc)) {print $abc} if (defined($def[0])) {print $def[0]} if (defined($hij{'bla'})) {print $hij{'bla'}}

9 9 undef #! perl -w # Die Funktion undef setzt Variablen auf einen # undefinierten Wert. undef($abc); undef($def[0]); undef(%hij); undef($hij{'bla'});

10 10 exists #! perl -w # Die Funktion exists liefert wahr, wenn # im hash der spezifizierte Schlüssel existiert! if (exists($hij{'bla'})) {print 'exists $hij{\'bla\'}'}

11 11 delete #! perl -w # Die Funktion delete loescht einen # spezifizierten Schlüssel im hash. delete($hij{'bla'});

12 12 Aufgabe 5-1 Füllen Sie einen hash mit folgenden Schlüssel- Wert-Paaren (Blume:Farbe): Rose:rotLilie:gelbNelke:weiss Lesen Sie von der Tastatur einen Blumennamen ein und geben Sie aus dem hash die zugehörige Farbe aus.

13 13 Aufgabe 5-2 Die Datei daten3-1.txt enthält in jeder Zeile einen Namen, einen Vornamen und ein Alter jeweils durch Komma getrennt. Lesen Sie die Namen in einen hash mit dem Vornamen als Schlüssel. Das Alter ignorieren Sie. Geben Sie anschließend den Wert zum Schlüssel Fritz aus.

14 14 Aufgabe 5-3 In der Datei daten5-1.txt stehen jeweils ein Vorname und Name einer Person getrennt durch Leerzeichen und/oder Tabulatoren. Lesen Sie die Daten in einen hash mit dem Vornamen als Schlüssel. Geben Sie anschließend den Wert zum Schlüssel Fritz aus.

15 15 keys/values #! perl -w # Die Funktion keys liefert alle Schlüssel # eines # Die Funktion values liefert alle Werte # eines

16 16 each #! perl -w # Die Funktion each liefert beim Aufruf das # nächste Schlüssel/Wert-Paar eines hash. ($ab,$bc)=each(%Tabelle);

17 17 sequentielle Auswertung über Schlüssel bzw. Wert foreach $Objekt (keys(%Tabelle)){ print "Ich weiss die Masse von $Objekt\n"; } foreach $Masse (values(%Tabelle)){ print "Ich weiss etwas mit $Masse kg\n"; }

18 18 Ergebnis Ich weiss die Masse von Motorrad Ich weiss die Masse von Fahrrad Ich weiss die Masse von Pferd Ich weiss die Masse von Auto Ich weiss die Masse von Bulle Ich weiss die Masse von Mensch Ich weiss etwas mit 250 kg Ich weiss etwas mit 15 kg Ich weiss etwas mit 750 kg Ich weiss etwas mit 1000 kg Ich weiss etwas mit 1500 kg Ich weiss etwas mit 70 kg

19 19 sequentielle Auswertung über Schlüssel-Wert-Paare while (($Objekt,$Masse) = each(%Tabelle)){ print "Ein $Objekt hat $Masse kg Masse\n"; } # Die Reihenfolge in der die Funktionen keys, # values und each die Daten liefern, ist gleich, # wenn zwischen der Aufrufen das Feld nicht # verändert wird. Sie ist jedoch i. d. R. nicht # gleich der Eingabereihenfolge.

20 20 Ergebnis Ein Motorrad hat 250 kg Masse Ein Fahrrad hat 15 kg Masse Ein Pferd hat 750 kg Masse Ein Auto hat 1000 kg Masse Ein Bulle hat 1500 kg Masse Ein Mensch hat 70 kg Masse

21 21 Auswertung als Schlüssel in Werte in Liste print Beispielausgabe Sortierfunktion foreach $Objekt print "Ein $Objekt hat $Tabelle{$Objekt} ", "kg Masse\n"; }

22 22 Ergebnis Motorrad Fahrrad Auto Bulle Mensch Ein Auto hat 1000 kg Masse Ein Bulle hat 1500 kg Masse Ein Fahrrad hat 15 kg Masse Ein Mensch hat 70 kg Masse Ein Motorrad hat 250 kg Masse

23 23 Aufgaben Lesen Sie die Datei daten3-1.txt ein. Die Datei enthält in einer Zeile Name, Vorname und Alter einer Person, jeweils durch Komma getrennt. 5-4 Geben Sie Namen und Vornamen nach Namen sortiert aus. 5-5 Geben Sie Namen und Vornamen nach Vornamen sortiert aus. 5-6 Geben sie „Name, Vorname“ und Alter nach Name sortiert aus

24 24 Aufgabe 5-7 Lesen Sie die Datei daten5-2.txt ein. Sie enthält einen Text. Entfernen Sie alle Satzzeichen und zählen Sie anschließend die Häufigkeit des Auftretens der einzelnen Wörter.

25 25 Hausaufgabe 5-1 Lesen Sie die Datei daten5-3.txt ein. Die Datei enthält in einer Zeile Name, Vorname, Geschlecht und Alter einer Person, jeweils durch Schrägstrich (/) getrennt. Ermitteln Sie den Mittelwert des Alters der Personen des jeweiligen Geschlechts und geben ihn aus. Geben Sie die Namen der Personen nach Geschlecht und Namen sortiert aus, sowie Ihre Abweichung vom jeweiligen Altersdurchschnitt.


Herunterladen ppt "1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung."

Ähnliche Präsentationen


Google-Anzeigen