Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-11-2014, 17:43   #1
uscrocc
Member
 
Iscritto dal: Feb 2014
Messaggi: 60
[JAVA] vettore e acquisizione

Ciao raga l'esercizio chiede: Una scuola è composta da N classi. Per ogni classe viene inserito da tastiera il numero di studenti. calcolare quanti studenti frequentano la scuola e la media di tutto l'istituto.


Bhe, io ho cercato di farlo ma non capisco perchè mi da questo errore:
Codice:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	The local variable nclassi may not have been initialized
	The local variable nclassi may not have been initialized
	The local variable somma may not have been initialized
	The local variable somma may not have been initialized
	The local variable nclassi may not have been initialized
	The local variable somma may not have been initialized

	at numero22.numero22.main(numero22.java:27)
Questo l'esercizio:

Codice:
package numero22;
import java.io.*;

public class numero22 {
	public static void main (String[] args){
		
		InputStreamReader input = new InputStreamReader (System.in);
		BufferedReader tastiera = new BufferedReader (input);
		
		int classe[]=new int [200];
		
		String snclassi;
		
		int nclassi;
		
		try{
			
			System.out.println("Digitare quante classe sono presenti nell'istituto (max 200): " );
			
			snclassi=tastiera.readLine();
			nclassi=Integer.valueOf(snclassi).intValue();
		}
		catch (Exception e){}
		
		String nstud;
				
		for (int i=0;i<nclassi;i++){
			try{
				
				System.out.println("Digitare quanti alunni sono presenti nella classe "+ i+1 + " :" );
				
				nstud=tastiera.readLine();
				classe[i]=Integer.valueOf(nstud).intValue();
			}
			catch (Exception e){}
			
		}
		
		int somma;
		
		for(int i=0;i<nclassi;i++){
			somma+=classe[i];
		}
		int media= somma/nclassi;
		
		System.out.println("la somma di studenti in totale e'" +somma);
		System.out.println("la media di studenti e'" +media);
		
	}

}
uscrocc è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2014, 23:52   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Java ti sta avvertendo che in caso di eccezione potresti non aver assegnato nessun valore alle variabili, o almeno ad una di loro.

Nonostante questo, hai deciso di proseguire l'esecuzione come se niente fosse. in caso di eccezione, quindi, potresti incorrere in problemi seri. Questo e' il significato di quell'errore.

Invece di Integer.valueOf() potresti usare l'Integer.parseInt(), cosi' eviti un boxing/unboxing non richiesto. Ricorda che solleva un'eccezione Runtime di tipo NumberFormatException; pertanto potresti anche decidere di non catturarla, sapendo che se l'utente inserisce dati errati il programma terminera' con un errore. Tutto sommato e' un programma di esempio e potrebbe anche essere accettabile.

Infine, la readLine() solleva una IOException: sarebbe meglio utilizzare sempre il tipo piu' specifico di eccezione, soprattutto evitare di fare il catch(Exception) poiche' potrebbe produrre situazioni molto spiacevoli (naturalmente in programmi piu' complessi, ma in sostanza non cambia molto).

Netbeans ti segnala di non usare catch(Exception); ed immagino che Eclipse faccia lo stesso
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2014, 23:07   #3
uscrocc
Member
 
Iscritto dal: Feb 2014
Messaggi: 60
ok grazie ho risolto con =0
uscrocc è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2014, 16:56   #4
uscrocc
Member
 
Iscritto dal: Feb 2014
Messaggi: 60
L'esercizio chiede: creare la classe rettangolo con gli attributi base e altezza e i metodi perimetro e area. un'altra classe con attributi raggio e metodi perimetro e area. una classe esercizio1 che ha solo il metodo main. creare due oggetti di tipo rettangolo con i lati avcquisiti da tastiera e due oggetti di tipo cerchio. stampare area e perimetro e l'oggetto con area maggiore e perimetro minore.

Raga ma cosa c'è di sbagliato secondo voi?

Codice:
import java.io.*;

public class cerchio {
	private double raggio;


public cerchio (double raggio){
	setRaggio(raggio);
}

public void setRaggio (double raggio) { this.raggio=raggio; }
public double perimetro (){
	double perimetro3= (raggio*6,28);
	return perimetro3;
}
public double area (){
	double area3= (raggio*raggio)*3,14;
	return area3;
}

public class rettangolo {
	private double base;
	private double h;


public rettangolo (double base, double h){
	setBase(base);
	setH(h);
}

public void setBase (double base) { this.base=base; }
public void setH (double h) { this.h=h; }
public double perimetro (){
	double perimetro2= (base+h)*2;
	return perimetro2;
}
public double area (){
	double area2= (base*h);
	return area2;
}


public static void main (String[] args){
	
	InputStreamReader input = new InputStreamReader (System.in);
	BufferedReader tastiera = new BufferedReader (input);
	
	String sbase;
	String sh;
	
	int base=0;
	int h=0;

	 try{
		
		System.out.println("Digitare la base del rettangolo: " );
		
		sbase=tastiera.readLine();
		base=Integer.valueOf(sbase).intValue();
		
        System.out.println("Digitare la h del rettangolo: " );
		
		sh=tastiera.readLine();
		h=Integer.valueOf(sh).intValue();
		
        System.out.println("Digitare il raggio del cerchio: " );
		
		sraggio=tastiera.readLine();
		raggio=Integer.valueOf(sraggio).intValue();
		
	    }
	 catch (Exception e){}
	 
	 rettangolo rett= new rettangolo (base,h); 
	 
	 
	 System.out.println("il perimetro del rettangolo e': "+rett.perimetro());
	 System.out.println("la base del rettangolo e': " + rett.area() );
	 
	 String sraggio:
			
	 int raggio=0;
	 
	 try{
		 System.out.println("digitare il raggio del cerchio: ");
		 
		 sraggio=tastiera.readLine();
		 raggio=Integer.valueOf(sraggio).intValue();
	 }
	 catch (Exception e){}
	 
	 cerchio cerc= new cerchio (raggio);
	 
	 System.out.println("l'area del cerchio e': "+cerc.area());
	 System.out.println("il perimetro (o circonferenza) del cerchio e': "+cerc.perimetro());
	 
	 if(rett.area>cerc.area) System.out.println("L'area piu' grande e' del rettangolo. ("+rett.area+")");
	 else System.out.println("L'area piu' grande e' del cerchio. ("+cerc.area+")");
	 
	 if(rett.perimetro<cerc.perimetro) System.out.println("Il perimetro minore e' del rettangolo. ("+rett.perimetro+")");
	 else System.out.println("Il perimetro minore e' del rettangolo. ("+cerc.perimetro+")");
}
	 
}
Non mi fa propio compilare
uscrocc è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2014, 17:19   #5
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Comincia a correggere un po' di errori di sintassi.
Per esempio, la virgola decimale e' in realta' un punto. Quindi non devi scrivere i numeri decimali come 6,28 o 3,14 ma come 6.28 e 3.14

Inoltre non devi scrivere
String sraggio:
(i due punti sono errati, occorre il punto e virgola)

Altro suggerimento: Java ha uno standard ampiamente utilizzato ed apprezzato per quanto riguarda i nomi delle variabili e delle classi.
La classe dovrebbe cominciare con una maiuscola, quindi - anche se non obbligatorio - sarebbe meglio cambiare cerchio con Cerchio. Tutti gli sviluppatori lo fanno, e diventando un'abitudine di tutti, semplifichi il lavoro di lettura/modifica/manutenzione
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2014, 13:41   #6
uscrocc
Member
 
Iscritto dal: Feb 2014
Messaggi: 60
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Comincia a correggere un po' di errori di sintassi.
Per esempio, la virgola decimale e' in realta' un punto. Quindi non devi scrivere i numeri decimali come 6,28 o 3,14 ma come 6.28 e 3.14

Inoltre non devi scrivere
String sraggio:
(i due punti sono errati, occorre il punto e virgola)

Altro suggerimento: Java ha uno standard ampiamente utilizzato ed apprezzato per quanto riguarda i nomi delle variabili e delle classi.
La classe dovrebbe cominciare con una maiuscola, quindi - anche se non obbligatorio - sarebbe meglio cambiare cerchio con Cerchio. Tutti gli sviluppatori lo fanno, e diventando un'abitudine di tutti, semplifichi il lavoro di lettura/modifica/manutenzione
Si grazie per avermelo detto, sono errori occasionali che dopo 5 minuti ho corretto e che mi sono dimenticato di apportale le modifiche qui nel topic. comunque ho fatto due classi: uno rettangolo.java e l'altro cerchio.java.

RETTANGOLO.JAVA questo
Codice:
package geometria;
public class rettangolo {
	private double base;
	private double h;


public rettangolo (double base, double h){
	setBase(base);
	setH(h);
}

public void setBase (double base) { this.base=base; }
public void setH (double h) { this.h=h; }
public double perimetro (){
	double perimetro2= (base+h)*2;
	return perimetro2;
}
public double area (){
	double area2= (base*h);
	return area2;
}
}
CERCHIO.JAVA questo
Codice:
package geometria;
public class cerchio {
	private double raggio;


public cerchio (double raggio){
	setRaggio(raggio);
}

public void setRaggio (double raggio) { this.raggio=raggio; }
public double perimetro (){
	double perimetro3= (raggio*6.28);
	return perimetro3;
}
public double area (){
	double area3= (raggio*raggio)*3.14;
	return area3;
}
}
e questo è la classe ESERCIZIO1.JAVA che contiene il main
Codice:
import java.io.*;
package geometria;


public class esercizio1 {
public static void main (String[] args){
	
	InputStreamReader input = new InputStreamReader (System.in);
	BufferedReader tastiera = new BufferedReader (input);
	
	String sbase1;
	String sh1;
	
	int base1=0;
	int h1=0;
	

	 try{
		
		System.out.println("Digitare la base del primo rettangolo: " );
		
		sbase1=tastiera.readLine();
		base1=Integer.valueOf(sbase1).intValue();
		
        System.out.println("Digitare la h del primo rettangolo: " );
		
		sh1=tastiera.readLine();
		h1=Integer.valueOf(sh1).intValue();
				
	    }
	 catch (Exception e){}
	 
	 rettangolo rett1= new rettangolo (base1,h1); 
	 
	 
	 
	 System.out.println("il perimetro del primo rettangolo e': "+rett1.perimetro());
	 System.out.println("la base del primo rettangolo e': " + rett1.area() );
	 
	 
		String sbase2;
		String sh2;
		
		int base2=0;
		int h2=0;

		 try{
			
			System.out.println("Digitare la base del secondo rettangolo: " );
			
			sbase2=tastiera.readLine();
			base2=Integer.valueOf(sbase2).intValue();
			
	        System.out.println("Digitare la h del secondo rettangolo: " );
			
			sh2=tastiera.readLine();
			h2=Integer.valueOf(sh2).intValue();
					
		    }
		 catch (Exception e){}
		 rettangolo rett2= new rettangolo (base2,h2);
		 
		 System.out.println("il perimetro del secondo rettangolo e': "+rett2.perimetro());
		 System.out.println("la base del secondo rettangolo e': " + rett2.area() );
		 
	 String sraggio1;
			
	 int raggio1=0;
	 
	 try{
		 System.out.println("digitare il raggio del primo cerchio: ");
		 
		 sraggio1=tastiera.readLine();
		 raggio1=Integer.valueOf(sraggio1).intValue();
	 }
	 catch (Exception e){}
	 
	 cerchio cerc1= new cerchio (raggio1);
	 
	 System.out.println("l'area del primo cerchio e': "+cerc1.area());
	 System.out.println("il perimetro (o circonferenza) del primo cerchio e': "+cerc1.perimetro());
	 
	 String sraggio2;
		
	 int raggio2=0;
	 
	 try{
		 System.out.println("digitare il raggio del secondo cerchio: ");
		 
		 sraggio2=tastiera.readLine();
		 raggio2=Integer.valueOf(sraggio2).intValue();
	 }
	 catch (Exception e){}
	 
	 cerchio cerc2= new cerchio (raggio2);
	 
	 System.out.println("l'area del secondo cerchio e': "+cerc2.area());
	 System.out.println("il perimetro (o circonferenza) del secondo cerchio e': "+cerc2.perimetro());
	 
	 double maxarea=0;
	 
	 if(rett1.area()>rett2.area())  maxarea=rett1.area();
	 else maxarea=rett2.area();
		 if(cerc1.area()>maxarea) maxarea=cerc1.area();
		 if(cerc2.area()>maxarea) maxarea=cerc2.area();
		 
			 System.out.println("L'area piu' grande e': "+maxarea);


			 double minp=0;
			 if(rett1.perimetro()<rett2.perimetro())  minp=rett1.perimetro();
			 else minp=rett2.perimetro();
				 if(cerc1.perimetro()<minp) minp=cerc1.perimetro();
				 if(cerc2.perimetro()<minp) minp=cerc2.perimetro();
				 
					 System.out.println("Il perimetro piu' piccolo e': "+minp);
	 
	
}
}
}
}
Adesso... come faccio a usare le classi rettangolo.java e cerchio.java?? Help!

Ps: uso Eclipse come IDE
uscrocc è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2014, 16:13   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da uscrocc Guarda i messaggi
Adesso... come faccio a usare le classi rettangolo.java e cerchio.java?? Help!
Sono confuso! Nel main usi le classi, apparentemente in modo corretto. Come mai chiedi come usarle se gia' le usi?
Hai qualche dubbio in particolare?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2014, 16:27   #8
uscrocc
Member
 
Iscritto dal: Feb 2014
Messaggi: 60
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Sono confuso! Nel main usi le classi, apparentemente in modo corretto. Come mai chiedi come usarle se gia' le usi?
Hai qualche dubbio in particolare?
Compilandolo mi da questi errori

Codice:
        rettangolo cannot be resolved to a type
	rettangolo cannot be resolved to a type
	rettangolo cannot be resolved to a type
	rettangolo cannot be resolved to a type
	cerchio cannot be resolved to a type
	cerchio cannot be resolved to a type
	cerchio cannot be resolved to a type
	cerchio cannot be resolved to a type

Ultima modifica di uscrocc : 20-11-2014 alle 16:34.
uscrocc è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2014, 16:45   #9
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da uscrocc Guarda i messaggi
Compilandolo mi da questi errori

Codice:
        rettangolo cannot be resolved to a type
	rettangolo cannot be resolved to a type
	rettangolo cannot be resolved to a type
	rettangolo cannot be resolved to a type
	cerchio cannot be resolved to a type
	cerchio cannot be resolved to a type
	cerchio cannot be resolved to a type
	cerchio cannot be resolved to a type
Se non ricordo male, trattasi di bug di Eclipse. Hai provato a farlo ripartire?
Per curiosita' ho provato a compilare il codice con javac ed ho provato le versioni 6, 7, 8 e funziona
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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 ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
SpaceX: un satellite ha fotografato il s...
36 idee regalo con offerte Amazon sotto ...
Sony assume il controllo dei Peanuts: Sn...
DJI Neo scende a 149€ su Amazon, in vers...
Scoperto un nuovo esopianeta che orbita ...
Blue Origin NS-37: successo per la missi...
Potrebbe essere stata rilevata una super...
La cometa interstellare 3I/ATLAS è...
Xiaomi 17 Ultra: l'autonomia non sarà un...
Il processo produttivo a 2 nm di TSMC è ...
L'atteso aggiornamento dei driver della ...
The Elder Scrolls VI nel 2029 e Fallout ...
Il Ryzen 7 9850X3D appare nel catalogo d...
Weekend pre natalizio Amazon, ecco tutte...
Prezzi giù su Oral-B iO: spazzolini elet...
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: 23:16.


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