Discussione:Implementazioni di algoritmi/Elevazione a potenza

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

Qualche osservazione[modifica]

La definizione di potenza non è completa, ne propongo una che dovrebbe essere corretta in N.

Le funzioni proposte per il C/C++ non tengono conto del caso .

La funzione Pascal, sempre nel caso , non dà un risultato. È da tanto che non uso Pascal, ma ho qualche dubbio che funzioni correttamente.

Propongo due soluzioni in Python. Nella soluzione ricorsiva ho posto il controllo del caso particolare fuori dalla ricorsione.

Zambu 15:54, 2 set 2008 (CEST)

Per l'implementazione in Pascal (scritta da me) ti posso dire che il controllo per 00 viene eseguito:
        if (b=0) and (e=0) then {verifica il caso 0^0}
                writeln('Errore: l''espressione non ha significato')
        else
                ...resto del programma...

Il problema è che 00 non ha significato e la funzione non può restituire un numero; neanche valori come 0 o -1 vanno bene in quanto possono essere ottenuti anche con valori corretti. Quello da fare sarebbe impostare il risultato a false, ma in Pascal se ho dichiarato la funzione come reale non posso restituire un boolean. --Ramac · «che lungi saetta» 16:23, 2 set 2008 (CEST)

Colpa mia :(, scusate, quegli snippet li avevo presi un po in giro da wikipedia e dai miei programmi per projecteuler, quindi non ho badato tanto alla loro correttezza matematica, ma più alla loro efficacia. Link 17:20, 2 set 2008 (CEST)
Hai ragione, ormai il Pascal incomincia a sfuggirmi! Però un programma con un'istruzione così:
        p:=pot(0, 0)
Penso che si fermi con un errore di runtime. Forse sarebbe meglio trasformare la funzione in una procedura che stampa la potenza. Ciao e scusate la pignoleria. --Zambu 19:32, 2 set 2008 (CEST)
      • Scusate potete implementare il calcolo anche per Excel, comreso quello della Pasqua ?? GRAZIE E MI SCUSO per la modifica

Ettore