+ All Categories
Home > Documents > 1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.

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

Date post: 06-Apr-2016
Category:
Upload: sara-lans
View: 216 times
Download: 0 times
Share this document with a friend
25
1 Tagesüberblick 5 • Lösung Hausaufgabe/Fragen • Assoziative Felder • Funktionen zu Variablenbehandlung
Transcript
Page 1: 1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.

1

Tagesüberblick 5

• Lösung Hausaufgabe/Fragen• Assoziative Felder• Funktionen zu Variablenbehandlung

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

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.

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

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

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

4

hash: Einzeldaten

# Zuweisung eines einzelnen Schlüssel-Wert- # Paares:

$Tabelle{"Pferd"}=750;

# Ausgabe des Wertes zum Schlüssel: Autoprint $Tabelle{"Auto"};# liefert: 1000

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

5

hash alternative (ältere) Schreibweise

%Tabelle=("Fahrrad",15, "Auto",1000,

"Motorrad",250,"Mensch",70,

"Bulle",1500);

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

6

hash mit qw füllen( quote words )

%Tabelle=qw( Fahrrad 15 Auto 1000 Motorrad 250 Mensch 70 Bulle 1500);# Beachte: keinerlei Zeichen zwischen den # Daten. Also auch keine Kommentare!

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

7

Funktionen zu Variablenbehandlung

Definition?Existenz?

Undefiniert setzen!Löschen!

Hashauswertung

definedexists

undefdelete

keysvalueseach

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

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'}}

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

9

undef

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

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

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\'}'}

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

11

delete

#! perl -w# Die Funktion delete loescht einen# spezifizierten Schlüssel im hash.

delete($hij{'bla'});

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

12

Aufgabe 5-1

Füllen Sie einen hash mit folgenden Schlüssel-Wert-Paaren (Blume:Farbe):

Rose:rot Lilie:gelb Nelke:weiss

Lesen Sie von der Tastatur einen Blumennamenein und geben Sie aus dem hash die zugehörige Farbe aus.

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

13

Aufgabe 5-2

Die Datei daten3-1.txt enthält in jeder Zeile einenNamen, 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.

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

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.

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

15

keys/values

#! perl -w# Die Funktion keys liefert alle Schlüssel # eines hash.@a=keys(%Tabelle);

# Die Funktion values liefert alle Werte # eines hash.@b=values(%Tabelle);

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

16

each

#! perl -w# Die Funktion each liefert beim Aufruf das # nächste Schlüssel/Wert-Paar eines hash.

($ab,$bc)=each(%Tabelle);

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

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";}

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

18

ErgebnisIch weiss die Masse von MotorradIch weiss die Masse von FahrradIch weiss die Masse von PferdIch weiss die Masse von AutoIch weiss die Masse von BulleIch weiss die Masse von MenschIch weiss etwas mit 250 kgIch weiss etwas mit 15 kgIch weiss etwas mit 750 kgIch weiss etwas mit 1000 kgIch weiss etwas mit 1500 kgIch weiss etwas mit 70 kg

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

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.

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

20

Ergebnis

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

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

21

Auswertung als Liste

@a=keys(%Tabelle); # Schlüssel in Liste@b=values(%Tabelle); # Werte in Listeprint "@a\n@b\n";# Beispielausgabe@a=sort(@a); # Sortierfunktionforeach $Objekt (@a){ print "Ein $Objekt hat $Tabelle{$Objekt} ", "kg Masse\n";}

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

22

Ergebnis

Motorrad Fahrrad Auto Bulle Mensch250 15 1000 1500 70Ein Auto hat 1000 kg MasseEin Bulle hat 1500 kg MasseEin Fahrrad hat 15 kg MasseEin Mensch hat 70 kg MasseEin Motorrad hat 250 kg Masse

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

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

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

24

Aufgabe 5-7

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

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

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.


Recommended