View Full Version : [JAVA]problema programma java
zamalek2
02-04-2011, 16:09
ciao a tutti sono nuovo nel forum..mi presento sono Massimo di Roma e sono felicissimo di aver trovato questo forum da cui spero di ottenere consigli e delucidazioni sul mondo della programmazione...ho iniziato da pochissimo a programmare in java e sono qui per chiedervi aiuto su un problema a cui non ho trovato risposta...devo fare un semplice programma: dato un numero decimale x e uno intero n, che io chiedo all'utente tramite JOptionPane, mi deve stampare a schermo x^n...il problema è che non posso usare la cartella math o qualcosa del genere ora non ricordo il nome,perchè ancora non la dovrei conoscere...io posso solo usare, se servono eventualmente, if else e while, boolean, && or ! poi le operazioni e >,<,= etc....come faccio?aiutatemi vi prego....
con x^n immagino intendi x elevato alla n, beh basta ricordarsi (o andarsi a riguardare) la definizione di elevazione a potenza ;).
zamalek2
02-04-2011, 17:26
l'ho letta ma non riesco a capire come implementarla...
http://upload.wikimedia.org/math/0/e/1/0e19c4e9d6fd66b35d386443a5caff11.png
Immagine di Wikipedia
Questa immagine dovrebbe valere più di mille parole :D.
Devi moltiplicare la stessa quantità n volte.
Qual è quel costrutto dei linguaggi di programmazione che ti consente di ripetere una certa operazione più volte?
Più di così, dato che parliamo di una cosa abbastanza semplice, ti dovrei dire il codice, e non mi sembrerebbe affatto educativo.
l'ho letta ma non riesco a capire come implementarla...
http://upload.wikimedia.org/math/0/e/1/0e19c4e9d6fd66b35d386443a5caff11.png
Pensa alle cose che hai scritto, quale ti potrebbe essere utile per ripetere una cosa piu' volte.. :)
Edit: abbiamo scritto in contemporanea.. :p
Gin&&Tonic
02-04-2011, 18:25
io posso solo usare, se servono eventualmente, if else e while, boolean, && or ! poi le operazioni e >,<,= etc.
bastano questi....
come ti ha detto WarDuck:
Qual è quel costrutto dei linguaggi di programmazione che ti consente di ripetere una certa operazione più volte?
Devi usare un "ciclo" detto questo , detto tutto.:D
zamalek2
03-04-2011, 10:26
grazie mille delle risposte ma sono impantanto in un punto
zamalek2
03-04-2011, 10:40
sìsì io avevo capito che bisognava usare il while, scusate se non ve l'ho detto prima, ma non capisco cosa metterci dentro, nel senso: non posso usare all'interno del while i simboli delle operazioni ma solo quelli boolean, tipo >,< etc....la mia domanda è come porre in rapporto x ed n nel while, dato che non posso evidentemente calcolare tutti i possibili esponenti che vengono immessi...
Gin&&Tonic
03-04-2011, 10:56
Sicuramente potrai usare " + , - , * , : " :read:
La potenza non è altro che un dato numero , moltiplicato per se stesso N volte.
Se dovessi calcolare questa potenza: 2^3 ,questa non è altro che 2*2*2 .
Nel ciclo devi fare questo:
CILCO (Ho moltiplicato il numero per se stesso N volte?
Se la risposta è si esci dal ciclo altrimenti entri nel ciclo )
{
Moltiplico il numero per se stesso
}
clockover
03-04-2011, 11:02
supponi che vuoi fare
A elevato alla B
hai una variabile A e una B
ti crei una C inizializzata a 1
ti crei una D inizializzata a A
effettui un ciclo while(fino a quando C é diverso da B){
D sarà uguale a D * A
incrementi C
}
adesso hai il valore D che equivale a A elevato alla B
diciamo che adesso devi metterci del tuo...
ci sono altri modi ma per cominciare a ragionare va bene così
zamalek2
03-04-2011, 11:11
scusate io ho scritto questo e in parte ci sono riuscito solo che mi funziona solo per gli interi...
int potenza;
int x = Integer.parseInt(JOptionPane.showInputDialog("immetti un numero intero"));
int n = Integer.parseInt(JOptionPane.showInputDialog("dammi un numero intero"));
potenza = 1;
while(n>0){
potenza = potenza * x;
n--;
}
System.out.println(potenza);
clockover
03-04-2011, 11:13
Ma tu stai usando solo interi
zamalek2
03-04-2011, 11:21
eh no a me serve che la base sia decimale...
eh no a me serve che la base sia decimale...
Non cambia nulla, dovrai solo leggere il numero come double (dunque usare il tipo di dato double per la base) :D.
zamalek2
03-04-2011, 15:27
il problema è proprio questo...se ci metto il double alla base...mi dice errore loss of precision found double required int, quando moltiplico la potenza per la base...
il problema è proprio questo...se ci metto il double alla base...mi dice errore loss of precision found double required int, quando moltiplico la potenza per la base...
Si anche la potenza deve essere double :D.
zamalek2
04-04-2011, 13:59
scusate mi è venuto un altro dubbio...ma quando l'esponente è negativo???
Fai la potenza e ribalti, esempio:
3^-1 = 1/(3^1)
3^-2 = 1/(3^2)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.