Zahlenschleife
Jacky
- perl
0 MatzeA0 Stefan Bach
Hallo!
Ich bin absoluter Newbie, was Perl anbelangt. Kann mir jemand von Euch weiterhelfen?
Bei der Ausgabe der "FOR"-Schleife soll die Eingabe des vorherigen Ergebnisses immer um 1 erhöht und quadriert werden. Leider geht das nur für den ersten Wert. Was ist falsch?
Hier das Skript:
##################################################################
#!/usr/bin/perl - w
$eingabe = 0;
print "\nBitte geben Sie eine Zahl zwischen 0 und 10 ein :\n";
chomp ($eingabe = <STDIN>);
if (($eingabe >= 0) && ($eingabe <= 10))
{
# Quadratur der Eingabe
print "\nQuadratur der Eingabe :\n";
$ergebnis = $eingabe ** 2;
printf "\nErgebnis = %.2f.\n", $ergebnis;
# 5 x Ausgabe um 1 erhoehen und quadrieren
print "\nAusgabe um 1 erh\x94ht und quadriert :\n";
for ($loop = 1; $loop <= 5; ++ $loop)
{
$ergebnisx = ($ergebnis + 1) ** 2;
printf "\nErgebnis neu $loop = %.2f.\n", $ergebnisx;
}
}
else
{
print "Dies ist keine g\x81ltige Eingabe.\n";
}
print "Ende des Skript\n";
Gruss Jacky
Servus,
Das Problem liegt daran, dass Du jedes mal den gleichen Wert quadrierst.
Ich bin absoluter Newbie, was Perl anbelangt. Kann mir jemand von Euch weiterhelfen?
Bei der Ausgabe der "FOR"-Schleife soll die Eingabe des vorherigen Ergebnisses immer um 1 erhöht und quadriert werden. Leider geht das nur für den ersten Wert. Was ist falsch?
Hier das Skript:
##################################################################
#!/usr/bin/perl - w$eingabe = 0;
print "\nBitte geben Sie eine Zahl zwischen 0 und 10 ein :\n";
chomp ($eingabe = <STDIN>);if (($eingabe >= 0) && ($eingabe <= 10))
{
# Quadratur der Eingabe
print "\nQuadratur der Eingabe :\n";
$ergebnis = $eingabe ** 2;
printf "\nErgebnis = %.2f.\n", $ergebnis;# 5 x Ausgabe um 1 erhoehen und quadrieren
print "\nAusgabe um 1 erh\x94ht und quadriert :\n";
for ($loop = 1; $loop <= 5; ++ $loop)
{
$ergebnisx = ($ergebnis + 1) ** 2;
printf "\nErgebnis neu $loop = %.2f.\n", $ergebnisx;
Hier liegt das Problem nimm einfach das x aus $ergebnisx weg und das überall und es klappt.
}
}
else
{
print "Dies ist keine g\x81ltige Eingabe.\n";
}
print "Ende des Skript\n";Gruss Jacky
Grus Matze
Hallo,
Bei der Ausgabe der "FOR"-Schleife soll die Eingabe des vorherigen Ergebnisses immer um 1 erhöht und quadriert werden. Leider geht das nur für den ersten Wert. Was ist falsch?
Das hat dir MatzeA ja schon gesagt. Aber wenn du schon dabei bist dein Programm zu überarbeiten, dann hör doch auf in deiner Ausgabe zu plenken. Wenn man das in Postings macht ist es ja schon schlimm genug (nicht, dass du es gemacht hättest), aber in der Ausgabe eines Programmes? Ihh.
#!/usr/bin/perl - w
$eingabe = 0;
Und gewöhne dir am besten gleich die Verwendung von use strict; an, das erspart dir später vielleicht Probleme.
Viele Grüße,
Stefan