Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-01-2005, 20:00   #1
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
[JAVA] Problema che proprio non capisco!! AIUTATEMI o SPACCO TUTTO :P

Allora ragazzi,
datemi una mano perchè sono davvero agli sgoccioli!!
Dico subito che il classpath è fissato così: .;C:\;
Ho costruito una classe Razionale (per creare oggetti come dei razionali.. es: 3/4, e permetterne tutte le operazioni)
Questa classe sta nel percorso: C:\esamepoo\razionali\Razionale.java

questo è il codice:
Codice:
package esamepoo.razionali;
import esamepoo.matematica.*;

public class Razionale{
	private int numeratore, denominatore;
	private static int contatore=0;
	public Razionale (int num, int den){
		if(den==0){
		System.out.println("Denominatore nullo!!");
		System.exit(-1);
		}
		int n=Math.abs(num);
		int d=Math.abs(den);
		int cd=Matematica.mcd(n,d);
		numeratore=num/cd;
		denominatore=den/cd;
		if(denominatore<0){
		numeratore*=-1;
		denominatore*=-1;
		}
		contatore++;
	}
	public Razionale (Razionale r){
		numeratore=r.numeratore;
		denominatore=r.denominatore;
		contatore++;
	}
	public static int getCont(){
		return contatore;
	}

	public String toString(){
		if(denominatore!=1)
		return numeratore+"/"+denominatore;
		else
		return numeratore+"";
		}
	public Razionale add( Razionale r ){
	      int mcm=r.denominatore*denominatore;
	      int num=(mcm/denominatore)*numeratore +
	                    (mcm/r.denominatore)*r.numeratore;
	      int den=mcm;
	      return new Razionale( num, den );
	   }//add
	   public Razionale sub( Razionale r ){
	      int mcm=r.denominatore*denominatore;
	      int num=(mcm/denominatore)*numeratore -
	                    (mcm/r.denominatore)*r.numeratore;
	      int den=mcm;
	      return new Razionale( num, den );
	   }//sub
	   public Razionale mul( Razionale r ){
	      return new Razionale( numeratore*r.numeratore,
	                            denominatore*r.denominatore );
	   }//mul
	   public Razionale mul( int s ){
	      return new Razionale( numeratore*s, denominatore );
	   }//mul

	   public Razionale div( Razionale r ){
	      return new Razionale( numeratore*r.denominatore,
	                            denominatore*r.numeratore );
   }//div

   public static Razionale estraiRazionale(String st){
	   int i=st.indexOf('/');
	   int num=Integer.parseInt(st.substring(0,i));
	   int den=Integer.parseInt(st.substring(i+1));
	   return new Razionale(num, den);
   }
}
premetto subito che la stringa di import:
import esamepoo.matematica.*;
importa una classe dove ho costruito il metodo mcd (cioè massimo comun divisore) di cui mi servo per ridurre ai minimi termini il razionale!
Comunque il problema non sembra essere minimamente in questa classe, perchè la compilazione va a buon fine.

I problemi arrivano quando ho deciso di costruirmi una programmino, che prende una stringa in input (presupponendo che sia un'espressione di razionali) e ne da il risultato...
es: 1/3+1/4-7/5

il file l'ho messo nella stessa cartella di Razionale.java (cioè C:\esamepoo\razionali\Exp.java)

e questo è il codice:
Codice:
import java.util.*;
import poo.inout.*;
import esamepoo.razionali.*;

public class Exp{
	public static void main(String args[]){
		String exp=Console.readString("Dammi espressione Razionale: ");
		StringTokenizer expt=new StringTokenizer(exp, "+-*:", true);
		int cnt=0;
		Razionale ris=Razionale.estraiRazionale(expt.nextToken());
		while(expt.hasMoreTokens()){
			char op=expt.nextToken().charAt(0);
			Razionale r=Razionale.estraiRazionale(expt.nextToken());
			switch(op){
				case'+':ris=ris.add(r);
				break;
				case'-':ris=ris.sub(r);
				break;
				case'*':ris=ris.mul(r);
				break;
				case':':ris=ris.div(r);
			}
		}
		System.out.println("Risultato: "+ris);
	}

}
l'import poo.inout.*;
premetto che è corretto, infatti inout si trova in C:\poo\

a me sembra TUTTO corretto!!!!!

e invece quando vado a compilare questo Exp.java ottengo questo errore:

C:\esamepoo\razionali\Exp.java:10: cannot access Razionale
bad class file: .\Razionale.class
class file contains wrong class: esamepoo.razionali.Razionale
Please remove or make sure it appears in the correct subdirectory of the classpath.
Razionale ris=Razionale.estraiRazionale(expt.nextToken());
^
1 error

Procedura completata con codice di uscita 1

VI PREGO DATEMI UNA MANO!
Che io sto uscendo un po' pazzo!!!
e se il problema risulterà banale.. scusatemi..

Grazie a tutti!!!
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2005, 21:56   #2
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
1. Controlla che il file autoexec.bat contenga la seguente linea:
set CLASSPATH=c:\;

2. Prova a compilare il file utilizzando il comando:
javac -classpath c:\ ClassName.java

Hope it works!

Ultima modifica di atidem : 05-01-2005 alle 22:11.
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2005, 23:01   #3
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
forse è banale...
ma prima di compilare exp.java hai compilato Razionale.java, VERO?????
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 09:45   #4
theClimber
Senior Member
 
L'Avatar di theClimber
 
Iscritto dal: Oct 2000
Messaggi: 235
Re: [JAVA] Problema che proprio non capisco!! AIUTATEMI o SPACCO TUTTO :P

Quote:
Originariamente inviato da luxorl
I problemi arrivano quando ho deciso di costruirmi una programmino, che prende una stringa in input (presupponendo che sia un'espressione di razionali) e ne da il risultato...
es: 1/3+1/4-7/5

il file l'ho messo nella stessa cartella di Razionale.java (cioè C:\esamepoo\razionali\Exp.java)

e questo è il codice:
Codice:
import java.util.*;
import poo.inout.*;
import esamepoo.razionali.*;

public class Exp{
....
In che package e' Exp? se e' nella stessa cartella di Razionale, il codice dovrebbbe essere:
Codice:
package esamepoo.razionali;

import java.util.*;
import poo.inout.*;
// import esamepoo.razionali.*; NON SERVE

public class Exp{
....
__________________
...writing about climbing is boring. I would rather go climbing. (Chuck Pratt)
theClimber è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 09:52   #5
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Quote:
Originariamente inviato da ^TiGeRShArK^
forse è banale...
ma prima di compilare exp.java hai compilato Razionale.java, VERO?????
Si si ..mo provo gli altri consigli e vi faccio sapere!
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 09:53   #6
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Re: Re: [JAVA] Problema che proprio non capisco!! AIUTATEMI o SPACCO TUTTO :P

Quote:
Originariamente inviato da theClimber
In che package e' Exp? se e' nella stessa cartella di Razionale, il codice dovrebbbe essere:
Codice:
package esamepoo.razionali;

import java.util.*;
import poo.inout.*;
// import esamepoo.razionali.*; NON SERVE

public class Exp{
....
Provo per prima ad eliminare l'import ed inserire il package.. come suggeritomi da theClimber... 2 min che apro il notebook
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 09:59   #7
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
FUNZIONA!!!

Quindi ne deduco, che l'import se il file si trova nella stessa cartella non serve.. anche se si tratta di un main (come nel mio caso) se messo nella stessa cartella devo "impakegiarlo" con le classi che costituiscono gli oggetti e i metodi di cui mi servo.. giusto?

Comunque GRAZIE a TUTTI! sopratutto a theClimber

ah!! cmq FUNZIONA BENE anche il progettino che ho costruito!!! YEAH!!
__________________

Ultima modifica di luxorl : 06-01-2005 alle 10:04.
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 10:10   #8
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Che senso ha inserire la classe contenente il main() all'interno del package?
Secondo me è un errore di forma.
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 10:38   #9
theClimber
Senior Member
 
L'Avatar di theClimber
 
Iscritto dal: Oct 2000
Messaggi: 235
x atidem,
puo' non piacere... si puo' evitare la dichiarazione di package e inserirla quindi nel package di default, ma va tenuto presente che le classi nel package di default non possono essere referenziate da quelle in altri packages (cosa non grave se questa classe contiene solo il metodo main).

La classe originale (senza la dichiarazione di package) di luxorl dovrebbe funzionare in questo modo, basta spostarla nella directory c:\


x luxorl,

Cmq. l'import non serve quando le classi si trovano nello stesso package, non e' la directory il punto distinitivo.
E' possibile, in prog. piu' complessi avere piu' strutture di directory parallele, ed e' ad esempio molto utile in progetti dove genero del codice Java in automatico, in modo da separare il codice originale (scritto a mano) da quello prodotto in automatico.

Ciao
__________________
...writing about climbing is boring. I would rather go climbing. (Chuck Pratt)
theClimber è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 17:33   #10
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Quote:
Originariamente inviato da atidem
Che senso ha inserire la classe contenente il main() all'interno del package?
Secondo me è un errore di forma.
cmq era per provare... avevo fretta è l'ho creato nella stessa cartelle
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Il seguito di Cyberpunk 2077 si farà att...
Dov'è finita la parola "sost...
Gli agenti IA saranno il fulcro delle az...
Data center: un mercato da 30 miliardi d...
Licenziato e sostituito dall'AI? In Cina...
HONOR Magic 8 Pro: abbiamo tra le mani i...
OPPO ha appena svelato un tablet di fas...
Peaky Blinders: The Immortal Man, Netfli...
iPhone Air: la nuova generazione potrebb...
Il Galaxy S26 Ultra avrà una batteria da...
EV Clinic cambia un settore: ora produce...
OnePlus ha anticipato l'arrivo della ver...
Amazon ha sospeso la sperimentazione del...
Mark Hamill sarà per sempre Luke ...
Amazon rilancia i bestseller fra cui un ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v