Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
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


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
SpaceX vuole portare nello Spazio 1 mili...
Realme 16: il nuovo mid-range che si isp...
DAZN lancia il piano Full Mobile a 19,99...
Samsung Galaxy S26, ormai è tutto...
Smartphone sempre più cari: super...
L'ultima puntata di Falsissimo rimossa d...
NASA Perseverance ha utilizzato percorsi...
Blue Origin sospende per almeno due anni...
Stampanti, Los Angeles verso il divieto ...
Roscosmos Amur: il razzo spaziale riutil...
Robot aspirapolvere per tutte le tasche:...
Accedere alle mail di un lavoratore lice...
Amazon Haul scatenato: migliaia di prodo...
Amazon Seconda Mano rilancia: sconto ext...
Super prezzo Amazon per ECOVACS DEEBOT T...
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: 22:26.


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