Newsgroup: it.comp.lang.delphi
Titolo: Perché manca?

Qualcuno sa dirmi perché manca un simbolo che elevi un numero a potenza
ennesima? In Qbasic  facevo 2 ^ 4 = 16. In Delphi e In Turbo Pascal mi devo
costruire la funzione. Per caso esiste in C++ e Visual Basic lo stesso
problema?
In C++ i le variabili puntatori di dichiarono con il simbolo *, ma allore
come si fa a moltiplicare? Il compilatore "capisce" in che instruzione è
inseriro il simbolo?
Luigi
--
Posted from [195.223.215.6] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 problema?
Non è vero che non esiste ... è solo "nascosta" nella unit math.pas :
   Power (4,2) = 16
Ciao! Davide DG

Ma dov'é la unit Math.pas? L'ho cercata sia in C: che nel CD di intallazione
ma non l'ho trovata.


ma non l'ho trovata.
mi pare che se hai la versione standard di Delphi, l' unit Math non č
presente !!
Ma puoi farti tu una funzione che la sostituisce.
Con un ciclo riesci a fare la potenza con esponente intero, mentre per un
esponente reale dovrai utilizzare i logaritmi.
Ti saluto.....ciao !!
P.S. Buona Pasqua.
Antonio Tarolla
BSSoftware Tips Mailing - List Support

Questa è una funzione ricorsiva; l'ho fatta quando usavo ancora il Turbo
Pascal 7...che ne dite??
Me lo date un parere???
Grazie!!
Ciaooooooooo!!!
function POT(BASE:real;ESPONENTE:real):extended;
begin
     if ESPONENTE=0
         then
             pot:=1
        else
               if esponente<0
                   then
                       begin
                             esponente:=-esponente;
                             pot:=1/(BASE*pot(BASE,ESPONENTE-1));
                       end
                    else
                           pot:=BASE*pot(BASE,ESPONENTE-1);
end;

 Me lo date un parere???
Volentieri, piu' di uno, ma sono di critica. ;-)
1) Dal tuo algoritmo si capisce che intendi usare un esponente intero (se
non fosse cosi', rischi di non far terminare mai la ricorsione, 
p.es
. con
una chiamata POT(10,0.5). Usa allora un tipo esplicitamente intero. Anche
perche' nessuno ti garantisce che ESPONENTE-1 rimanga intero, neanche se lo
e' ESPONENTE!
2) Il tuo algoritmo fornisce risultato 1 anche alla chiamata POT(0,0) che,
invece, dovrebbe fornire errore;
3) Se ESPONENTE e' <0, togli il -1 nella chiamata ricorsiva;
4) Se ESPONENTE e' molto grande, il gran numero di ricorsione rende la
funzione poco conveniente, per non parlare poi del numero di chiamate
irrisolte nello stack. Io userei un semplice ciclo FOR o, anche, l'utilizzo
della proprieta' x^n = exp(n*LN(x)).
Ciao e auguri di Buona Pasqua a tutti.
-----------------------------------
c.lad...@agora.stm.it
ladd...@infomedia.it

> nessuno ti garantisce che ESPONENTE-1 rimanga intero, neanche se lo
e' ESPONENTE!
Scusa se mi intrometto, ma mi dici un numero intero a cui sottraendo 1 il
risultato non sia intero? :)
Luigi


 esponente reale dovrai utilizzare i logaritmi.
Scusate la "proposta indecente"  ...
 Ma è illegale postare il codice della math.pas relativo alla funzione Power
?
 Immagino sia mooooltooo più ottimizzato di quello che ci si può inventare
così su due piedi...
Vabbè ... io l'ho buttata lì ... poi fatemi sapere !! Ciao! Davide DG
Ah... un piccolo OT : ORA POSSO FARVI GLI AUGURI!!! eheh ... e solo i miei
sono i primi!!! ;-)
CIAO!!!

Va be non c'é bisogno della math.pas.
O mi creo la funzione oppure aspetto una altra settima, il tempo dell'arrivo
di Delphi 4 CSS. :)
