|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Roma
Messaggi: 5940
|
[JAVA] Math.pow e assegnazione di costanti
public static double pow(double a, double b);
ok questo è il metodo di elevamento a potenza a^b, ma se voglio fare un quadrato (evitando di fare a*a) come posso fare (evitando pure di creare una variabile b=2)? cioè vorrei creare una costante (2) da poter richiamare nel pow per poter fare pow(double a, const 2)... Grazie per l'aiuto
__________________
Stanchi di usare Nero? Qui trovate l'alternativa gratuita che fa per voi
HP ProBook 4530s i5 2410M / 4GB / 640GB / Intel HD3000+Radeon HD6490M / 15.6" @1366x768 ASUS F3E T7100 / 3GB / 120GB / X3100 / 15.4" @1280x800 / Intel 3945ABG Ultima modifica di andrea.ippo : 04-11-2005 alle 18:03. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Mar 2003
Messaggi: 545
|
Quote:
static final double SQUARE_POW = 2; ?
__________________
Linux Registered User Linux Registered Machine |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
crei una interfaccia e ci metti dentro tutte le costanti che ti servono, tipo:
Codice:
interface Costanti{
int quadrato=2;
int cubo=3;
...
...
...
}
Codice:
Math.pow(a, Costanti.quadrato);
__________________
My gaming placement |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Roma
Messaggi: 5940
|
ok grazie mille a entrambi!!!
spero di risolvere,è proprio ciò che mi serviva vi farò sapere Edit: in effetti è macchinoso,per ora provo con a*a ecc... per i quadrati,ma lo terrò a mente per il futuro...piuttosto mi dite cosa sbaglio qui? import fiji.io.*; /* Programma che restituisce la radice quadrata della somma di due quadrati. */ class RadSommaQuad{ public static void main(String[] args){ // Dichiarazione delle variabili Double a; Double b; Double s; // Acquisizione valori; System.out.println("Inserire il primo numero"); a = Lettore.in.LeggiDouble(); System.out.println("Inserire il secondo numero"); b = Lettore.in.LeggiDouble(); // Calcolo somma quadrati; s = (a*a)+(b*b); // Comunicazione del risultato; System.out.println("Il risultato e': " +rad); } // Calcolo della radice; public static double sqrt(double s);{ Double rad; rad = sqrt(double s); } }
__________________
Stanchi di usare Nero? Qui trovate l'alternativa gratuita che fa per voi
HP ProBook 4530s i5 2410M / 4GB / 640GB / Intel HD3000+Radeon HD6490M / 15.6" @1366x768 ASUS F3E T7100 / 3GB / 120GB / X3100 / 15.4" @1280x800 / Intel 3945ABG Ultima modifica di andrea.ippo : 04-11-2005 alle 19:05. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
dovresti fare così, alla stampa:
Codice:
System.out.println("Il risultato e': " +sqrt(s));
Codice:
public static double sqrt(double s){
return Math.sqrt(s);
}
__________________
My gaming placement |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Roma
Messaggi: 5940
|
Risolto così
Codice:
import fiji.io.*;
/* Programma che restituisce la radice quadrata della somma di due quadrati. */
class RadSommaQuad{
public static void main(String[] args){
// Dichiarazione delle variabili
double a;
double b;
double s;
double r;
// Acquisizione valori;
System.out.println("Inserire il primo numero");
a = Lettore.in.leggiDouble();
System.out.println("Inserire il secondo numero");
b = Lettore.in.leggiDouble();
// Calcolo somma e radice;
s = (a*a)+(b*b);
r = Math.sqrt(s);
System.out.println("Il risultato e': " +r);
}
}
__________________
Stanchi di usare Nero? Qui trovate l'alternativa gratuita che fa per voi
HP ProBook 4530s i5 2410M / 4GB / 640GB / Intel HD3000+Radeon HD6490M / 15.6" @1366x768 ASUS F3E T7100 / 3GB / 120GB / X3100 / 15.4" @1280x800 / Intel 3945ABG |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Ciao,
Premesso che a*a resta sempre e comunque in genere più veloce rispetto alla pow... chiamando Math.pow(a,2.0); non scomodi variabili né costanti di classe... puoi fare un wrapper, così come hai fatto per la sqrt, in modo da chiamare pow invece di Math.pow... Nella seconda funzione (sqrt) c'è anche un ; di troppo prima del corpo della funzione... Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Roma
Messaggi: 5940
|
immaginavo che era più rapido a*a,però per esponenti non interi il metodo che mi consigli è senz'altro rapido
Avevo provato a fare Math.pow(a,2) ma non funzionava perché non trovava la variabile "2" (forse serve anche il .0 come hai scritto tu Il wrapper sarebbe un sotto-metodo? (Scusa l'ignoranza ma sono un niubbo... Ciao e grazie ancora
__________________
Stanchi di usare Nero? Qui trovate l'alternativa gratuita che fa per voi
HP ProBook 4530s i5 2410M / 4GB / 640GB / Intel HD3000+Radeon HD6490M / 15.6" @1366x768 ASUS F3E T7100 / 3GB / 120GB / X3100 / 15.4" @1280x800 / Intel 3945ABG |
|
|
|
|
|
#9 | ||
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
Quote:
Comunque, se non ricordo male, nella JDK 1.5, c'è anche l'import statico, cioè se fai import Math.pow puoi utilizzare il metodo pow senza richiamare math( non ricordo la sintassi della chiamata di import statico). CIAO
__________________
My gaming placement |
||
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Ciao,
Si... per charire meglio, un wrapper è una funzione (in genere una serie di funzioni incapsulate in una classe) che avvolgono (to wrap - cuscino? ) altre funzioni (in genere di sistema).Se mastichi un po' di C++, un esempio di wrapper sono le MFC (incapsulano le API di sistema all'interno di una serie di classi di più facile utilizzo)... Nel tuo caso l'utilizzo è ancora più banale... Come hai fatto per sqrt dichiari nella tua classe la funzione sqrt(), la pow() ed eventuali altre... Tali funzioni non fanno nient'altro (e questo è ciò che caratterizza una funzione wrapper) che richiamare rispettivamente Math.pow e Math.sqrt (eventualmente, e quando è il caso, cambiando leggermente la lista di parametri in modo da snellire la scrittura). E tutto questo ha come beneficio (sempre nel tuo caso) di sveltire la scrittura e rendere il programma più compatto. Purtroppo in Java (in C++ la cosa può essere diversa) tale livello di indirezione ha ovviamente un costo (molto leggero nel tuo caso) in termini di velocità nell'esecuzione delle funzioni... in un ciclo di qualche centinaio di miglaia di chiamate la differenza potrebbe comunque farsi sentire... Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator Ultima modifica di bottomap : 05-11-2005 alle 17:39. |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Roma
Messaggi: 5940
|
Grazie per il chiarimento!
Ciao
__________________
Stanchi di usare Nero? Qui trovate l'alternativa gratuita che fa per voi
HP ProBook 4530s i5 2410M / 4GB / 640GB / Intel HD3000+Radeon HD6490M / 15.6" @1366x768 ASUS F3E T7100 / 3GB / 120GB / X3100 / 15.4" @1280x800 / Intel 3945ABG |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Ciao,
Definizione curiosa... non l'avevo mai sentita... le ho sempre chiamate wrapper mantenendo la terminologia inglese... In inglese "to wrap" dovrebbe significare "avvolgere qualcosa"... ed il verbo arriva a comprendere, per sinonimo, "contenere qualcosa". Il termine "wrapper" ha numerosi significati (genericamente involucro... ma anche, indirettamente, cuscinetto) che indicano in sostanza qualcosa atto a contenere qualcos'altro. Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:47.











) altre funzioni (in genere di sistema).








