[Perl] Elevamento a potenza senza ricorrere all’operatore predefinito
July 18, 2008 – 1:30 amDescrizione
Il codice sottostante esegue l’elevamento a potenza (a scelta dell’utente) di un numero (sempre a scelta dell’utente) senza ricorrere all’operatore predefinito di elevamento a potenza del Perl (**).
Codice
print “Inserisci un numero\n”;
chomp($a=<STDIN>);
print “\nA che potenza lo vuoi elevare?\n”;
chomp($b=<STDIN>);
if($b==1){
print “\n$a\n”;
}
elsif($b==0){
print “\n1\n”;
}
else{
$e=$a;
for($c=1;$c<$b;$c++){
$f=$e*$a;
$e=$f;
}
}
print “\n$f\n”;
system(”PAUSE”);










![Validate my RSS feed [Valid RSS]](http://v3rgil.altervista.org/Images/valid-rss.png)
9 Responses to “[Perl] Elevamento a potenza senza ricorrere all’operatore predefinito”
mmmmm direi che è interessevole sta cosa XD
By Great Legionar on Jul 18, 2008
Già…
By V3rgil on Aug 23, 2008
Ciao, sono capitato per caso su questa pagina e non riesco a non commentare (costruttivamente!): è solo un esercizio di programmazione visto che l’operatore predefinito è più veloce (perché built-in) e più completo visto che permette l’elevamento a potenza di numeri decimali e di numeri negativi (che equivale all’estrazione delle radici n-esime).
Inoltre il codice è ridondante e sbagliato (l’ultimo printf và nella riga precedente fra i due } ), bastava qualcosa tipo:
print “Inserisci un numero\n”;
chomp($a=);
print “\nA che potenza lo vuoi elevare?\n”;
chomp($b=);
$e=1;
for($c=1;$c<=$b;$c++){
$e*=$a;
}
print “\n$e\n”;
By CDF on Dec 15, 2008
ops non ha preso i “” …
By CDF on Dec 15, 2008
Il codice non penso sia sbagliato dato che a me funziona perfettamente…
…
Ad ogni modo penso che non ti funzionasse a causa dei “”… Purtroppo WordPress è quello che è
Saluti, Marco
By V3rgil on Dec 15, 2008
non è un errore di sintassi ma un errore concettuale … imparara a usare “use warnings;” e già che ci sei uno “use strict;” non farebbe male
By CDF on Dec 17, 2008
Nel codice che mi hai postato non mi sembra tu li abbia usati
PS
Spendi due minuti in più a controllare la sintassi di ciò che posti
print “Inserisci un numero\n”;
chomp($a=<>);
print “\nA che potenza lo vuoi elevare?\n”;
chomp($b=<>);
$e=1;
for($c=1;$c<=$b;$c++){
$e*=$a;
}
print “\n$e\n”;
system(”PAUSE”);
Marco
By V3rgil on Dec 17, 2008
mancano solo le letture per gli stdin che sono state tolte da wordpress (come è successo anche a te se guardi bene
e che era anche il senso del mio secondo commento che sempre wordpress ha deciso di censurare).
By CDF on Dec 17, 2008
Hm… Gli stdin non gli ho scritti apposta
. In effetti hai ragione… WordPress censura gli stdin… Comunque, dai non ci alteriamo per queste cose frivole
. I nostri codici sono per lo più simili ad eccezione del fatto che il tuo fa’ uso di meno variabili e meno if ed elseif (con i quali ho voluto mettere in risalto due casi particolare
).
Marco
By V3rgil on Dec 17, 2008