ViaThinkSoft CodeLib
This article is in:
CodeLib → Programming aids → Perl
Eine Zusatzaufgabe, die ich im Perl-Grundkurs erhalten habe (weil ich mit den restlichen Aufgaben bereits nach 10 Minuten fertig war):
#!/usr/bin/perl
# Programm-Name: Intelligente Rundung
# Script: runden.pl
# Projekt: Bioinformatik-Kurs 13.1
# Version: 1.0
# Autor: Daniel Marschall
# Datum: 23. Januar 2008
# Funktionen
sub my_round($zahl, $rundenauf)
{
$erweitert = $zahl;
$erweitert *= 10**($rundenauf+1);
$erweitert = int($erweitert);
$erweitert /= 10**($rundenauf+1);
$letzte = substr($erweitert, length($erweitert)-1, 1);
$ergebnis = $erweitert;
$ergebnis *= 10**$rundenauf;
$ergebnis = int($ergebnis);
if ($letzte >= 5)
{
$ergebnis += 1;
}
$ergebnis /= 10**$rundenauf;
return $ergebnis;
}
# Eingabedaten abfragen
print "Bitte geben Sie eine Zahl ein\n> ";
$zahl = <STDIN>;
chomp $zahl;
print "\n";
print "Auf wie viele Nachkommastellen runden (max. 13)?\n> ";
$rundenauf = <STDIN>;
chomp $rundenauf;
print "\n";
# Berechnung
$ergebnis = &my_round($zahl, $rundenauf);
# Ausgabe
print "Die gerundete Zahl lautet:\n> $ergebnis\n\n";
exit;
Daniel Marschall
ViaThinkSoft Co-Founder
ViaThinkSoft Co-Founder