vokale zählen - in prozent
|
Seitenanfang |
| Ich suche eine Möglichkeit alle Vokale eines Textes zu zählen und das Ergebniss in Prozent auszugeben. Das zählen an sich hab ich hinbekommen, aber wie ich daraus die Prozente mache... irgendwie steh ich da auch dem Schlauch. Das habe ich bisher: #!/usr/bin/perl -w use strict; my %sums = (); while (<STDIN>) { my $line = lc; foreach my $char (split //) { $sums{$char}++ if $char =~ m/[aAeEiIoOuU]/; } } foreach my $char (sort keys %sums) { print $char .' Anzahl '. $sums{$char} ."\n"; }
Datum: 19.03.2008-19:02

|
re: vokale zählen - in prozent
|
Seitenanfang |
foreach my $char (sort keys %sums) { my $prozent = sprintf "%.2f", ($sums{$char} / length( $line )) * 100; print $char .' Anzahl '. $sums{$char} ." (entspricht $prozent %)\n"; }
Datum: 20.03.2008-08:48

|
re: vokale zählen - in prozent
|
Seitenanfang |
Das hatte ich auch schon, aber dann erhalte ich: "Global symbol "$line" requires explicit package name", vermutlich weil das ganze ja in der Schleife steht.. aber genau da war ich mir nicht sicher. Bestimmt nur ein ganz banaler Denkfehler...
Datum: 20.03.2008-14:46

|
re: vokale zählen - in prozent
|
Seitenanfang |
#!/usr/bin/perl -w use strict;my %sums = (); my $length = 0; my $chars = 0; while (<STDIN>) { my $line = lc; chomp $line; $length += length $line; foreach my $char (split //) { if( $char =~ m/[aeiou]/i ){ $sums{$char}++ ; $chars++ } } } foreach my $char (sort keys %sums) { my $chars_percent = sprintf "%.2f", ( $sums{$char} / $chars ) * 100; my $total_percent = sprintf "%.2f", ( $sums{$char} / $length ) * 100; print $char .' Anzahl '. $sums{$char} ." -> $chars_percent % aller Vokale und $total_percent % aller Zeichen\n"; }
Datum: 20.03.2008-15:31

|