Newsgroup: it.comp.lang.pascal
Titolo: come si fa a ed elevare..

come si fa ad elevare un numero per n?
grazie
n.b. non cerco la funzione sqr
ciao

Ecco la funzione:
   Function Potenza(Numero, Elevato : Extended) : Extended;
   Begin
     If Elevato = 0.0 Then
        Begin
          Potenza := 1.0;
          Exit;
        End;
     If Numero = 0.0 Then
        Begin
          Potenza := 0.0;
          Exit;
        End;
     If Numero < 0.0 Then
        Begin
          If (Trunc(Elevato) Mod 2) = 0
          Then
            Potenza := Exp(Elevato * (Ln(Abs(Numero))))
          Else
            Potenza := -Exp((Elevato * Ln(Abs(Numero))));
        End
          Else
            Potenza := Exp(Elevato * (Ln(Numero)));
   End;
ciao,
David
www.utilityweb.net

 ha scritto nel messaggio
news:atk1ba$8rf$1...@newsreader.mailgate.org...


 esiste qualcosa di piů semplice?
Se l'elevazione a potenza č di 2 (2^n) usa
Elevato := 2 SHL I;
dove I č l'indice del for, altrimenti per elevazioni variabili (X^Y) non
esiste nulla di piů semplice
Ciao,
David
www.utilityweb.net

 (X^Y) non esiste nulla di più semplice
qualche messaggio indietro [ a livello mesi :-) ] mi sembra
ci sia la Malefica Formula Logaritimica...
groups.google e' con voi :-)
-- 
Dreadnaut
(Life would be easier if I had the source code)

 groups.google e' con voi :-)
La formula logaritmica e' quanto di piu' semplice ci sia al mondo :-)
se z = x ^ y, posso scriverlo come z = e ^ (y * log x).
Il problema e' che si introduce una certa approssimazione, e bisogna usare
dei Real al posto degli Integer, quindi se tratti solo numeri interi e'
meglio la formula ricorsiva.

Se il  l'esponente è "intero":
Function Potenza(Num:Integer; Exp:Byte):Integer;
 Begin
   If Exp=0 Potenza:=1 Else Potenza:=Num * Potenza(Num,Exp-1);
 End;

> Function Potenza(Num:Integer; Exp:Byte):Integer;
ricorsiva noooooooooooooooooooo :-)
pot := 1;
while exp > 0 do
 begin
  pot := pot * num;
  dec (exp);
 end;
Potenza := pot;


ricorsiva noooooooooooooooooooo :-)
Ma perke odi tanto le funzioni ricorsive? sono cosi belle...
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
ICQ     : 67552596
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com


Ti voglio vedere a gestire gli Alberi senza ricorsione. Oppure il Quick
Sort, devi vedere dopo come apprezzi la ricorsione!
:-P
Comunque la ricorsione è importante, perchè gli algoritmi ricorsivi
generalmente possono essere testati e garantiti tramite il Principio di
Induzione Matematica. Questo significa che se si ha un problema e lo si  può
risolvere ricorsivamente o iterativamente è sempre meglio risolverlo
ricorsivamente, perchè solo risolvendolo in questo modo si può provare che
l'algoritmo è valido per tutti i valori di ingresso.
Che poi nella pratica si usano gli algoritmi iterativi a volte perchè quelli
ricorsivi mandano in overflow lo stack, è un'altro discorso, è un discorso
che non è molto valido ai giorni nostri siccome basta procurarsi un
calcolatore più potente.
In conclusione comunque:
La ricorsione è ottima alleata della sicurezza e della funzionalità.
L'iteratività è ottima alleata della velocità e del risparmio di risorse.
Sta poi di volta in volta decidere quale è preferibile.
Nel caso della potenza è indifferente, ma io ti voglio con il QuickSort
Se lo scrivi iterativamente (ammesso che ci riesci) non potrai mai
dimostrare che funziona per tutti gli insiemi di ingresso, mentre il
QuickSort Ricorsivo si può dimostrare sfruttando il Principio di Induzione
Matematica.
Ciao.

 Induzione Matematica.
mmmh giusto per ripetermi diro' che ogni algoritmo ricorsivo puo'
essere scritto in modo iterativo e viceversa... e una volta che l'hai
scritto la dimostrazione viene abbastanza facilmente: anche se
l'algor. e' iterativo non e' poi detto che non si possa usare
l'induzione sulle iterazioni per provare la correttezza :-)



Sia chiaro anche io sono contro l'ottica facciamo i programmi pesanti
intanto basta comprare un PC + potente... anzi io cerco di ottimizare
il tutto per risparmiare sulle risore ma non ditelo al mio prof di
informatica... lui era talmente ricordsivo che si č fatto un
linguaggio funzionale tutto suo dove le funzioni dovevano essere per
forza ricorsive non esistevano i cicli ( Il Fantomantico FAN mai
imparato ( per forutna ) ) pero' devo ammetere che didaticamente sono
una cosa stupenda.
