perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 18
Click for quality!




12.02.2012 / 00:10

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragvokale 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

-






-
-