1 Lösung Hausaufgabe 5-1 Seite 1 #!perl -w # Datei Oeffnen und Variablen initialisieren $infile = "daten5-3.txt"; $im=$iw=$sm=$sw=0; open (IN,$infile) || die "Oeffnen: $infile $!"; # Datei einlesen while ( ){ ($name,$vorname,$geschlecht,$alter)=split(/\//); if ($geschlecht eq 'm') { $im++; $sm+=$alter; if (exists($m{$name})){die " Nachname doppelt "}; $m{$name}=$alter; }
2 Lösung Hausaufgabe 5-1 Seite 2 elsif ($geschlecht eq 'w') { $iw++; $sw+=$alter; if (exists($w{$name})){die " Nachname doppelt "}; $w{$name}=$alter; } else {die "Falsches Geschlecht"}; } close (IN);
3 Lösung Hausaufgabe 5-1 Seite 3 #Durchschnitte berechnen $dm=$sm/$im; print "Altersdurchschnitt maennlich: $dm\n"; $dw=$sw/$iw; print "Altersdurchschnitt weiblich: $dw\n"; # Sortieren und foreach $name $abw=$m{$name}-$dm; print "$name Abweichung: $abw\n"; foreach $name $abw=$w{$name}-$dw; print "$name Abweichung: $abw\n"; }
4 Ausgabe: Lösung Hausaufgabe 5-1 Name "main::vorname" used only once: possible typo at test.pl line 8. Altersdurchschnitt maennlich: Altersdurchschnitt weiblich: 32 Meier Abweichung: Mueller Abweichung: 8.25 Schmidt Abweichung: Schreiber Abweichung: 3.25 Becker Abweichung: 22 Merkel Abweichung: -17 Schroeder Abweichung: -5
5 Lösung 6-1 #!perl -w if foreach $arg print "Hallo $arg\n"; } else{ print "Hallo Ihr da!\n"; }
6 Lösung 6-2a #!perl -w print "Geben Sie Ihren Namen ein"; $name= ; print "Geben Sie Ihr Geburtsdatum ein"; $geburt= ; print <<BLA; Ihr Name ist: $name Ihr Geburtsdatum ist: $geburt BLA
7 Lösung 6-2b #!perl -w print "Geben Sie Ihren Namen ein"; $name= ; print "Geben Sie Ihr Geburtsdatum ein"; $geburt= ; print <<BLA; Ihr Name ist: ${name}Ihr Geburtsdatum ist: $geburt BLA
8 Lösung 6-3 if foreach $arg if (defined($ENV{$arg})){ print "$arg = $ENV{$arg}\n";} else{ print "$arg nicht gefunden\n"}}} else{ foreach $arg (keys(%ENV)){ print "$arg = $ENV{$arg}\n"}}
9 Lösung 6-4 Seite 1 #! perl -w $file = "daten6-1.txt"; sub gross{ my $gr=$_[0]; $gr =~ tr/a-z/A-Z/; print $gr; }
10 Lösung 6-4 Seite 2 open(XYZ,$file) || die "Oeffnen misslungen $file $!"; while ($text= ){ &gross($text); print $text; } close(XYZ);
11 Lösung 6-5 Seite 1 sub maximum{ my $m; if ($_[0] > $_[1]){ $m=$_[0]; } else{ $m=$_[1]; }
12 Lösung 6-5 Seite 2 if ($#_ > 1 ) { } return $m; } print &maximum(14,27,19,32,12)
13 Lösung 6-6a sub fak{ my ($a,$b,$c); if ($_[0] > 1){ $a=$_[0]-1; $b=$_[0]; $c=$b*&fak($a); return $c; } else {return 1} } $x= ; chomp($x); print "$x Fakultaet = ",&fak($x);
14 Lösung 6-6b sub fak{ my ($a,$b,$c); if ($_[0] > 1){ $a=$_[0]-1; $b=$_[0]; $c=$b*&fak($a); } else {$c=1} return $c# besser nur ein Ausgang }# aus einem Unterprogramm $x= ; chomp($x); print "$x Fakultaet = ",&fak($x);
15 Nachschlag Lösung zu 6-1 #! perl -w sub hallo{ foreach print "Hallo $abc\n"; } if else {&hallo("Ihr da")};