Lösung zu Blatt 2 --- Software Engineering Praxis (WS 2000)
2. Ist es für die Rente noch zu früh?
#!/usr/local/bin/perl -w
use strict;
open(FILE, "<dav94r325m") || die "Cannot open file\n";
<FILE> || die "unexpected end of file\n";
my @l = ();
my ($omega, $v) = (-1, 1 / 1.0325);
while (<FILE>) {
push @l, (split /:/)[2];
$omega++;
}
close(FILE);
print aex(45), " ", 100000 / aex(45), "\n";
sub aex {
my ($x) = @_;
my $sum = 0;
foreach (0 .. $omega - $x) { $sum += kPx($_, $x) * $v ** $_}
return $sum;
}
sub kPx {
my ($k, $x) = @_;
return $l[$k + $x] / $l[$x];
}
3. Doubletten
#!/usr/local/bin/perl -w
while (<>) {
print if /\b(\w+)\b\s+\1\b/i;
}
Ingo Melzer, 17. November 2000