[Perl] Elevamento a potenza senza ricorrere all’operatore predefinito

July 18, 2008 – 1:30 am

Descrizione
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”);

  1. 9 Responses to “[Perl] Elevamento a potenza senza ricorrere all’operatore predefinito”

  2. mmmmm direi che è interessevole sta cosa XD

    By Great Legionar on Jul 18, 2008

  3. Già… :)

    By V3rgil on Aug 23, 2008

  4. 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

  5. ops non ha preso i “” …

    By CDF on Dec 15, 2008

  6. 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 è :P

    Saluti, Marco

    By V3rgil on Dec 15, 2008

  7. 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 :P

    By CDF on Dec 17, 2008

  8. Nel codice che mi hai postato non mi sembra tu li abbia usati :P

    PS
    Spendi due minuti in più a controllare la sintassi di ciò che posti :P

    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

  9. mancano solo le letture per gli stdin che sono state tolte da wordpress (come è successo anche a te se guardi bene :P e che era anche il senso del mio secondo commento che sempre wordpress ha deciso di censurare).

    By CDF on Dec 17, 2008

  10. Hm… Gli stdin non gli ho scritti apposta :P . In effetti hai ragione… WordPress censura gli stdin… Comunque, dai non ci alteriamo per queste cose frivole :P . 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

Post a Comment