Gehe zu deutscher Webseite

ViaThinkSoft CodeLib

This article is in:
CodeLibProgramming aidsPerl

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