Aiuto

di il
5 risposte

Aiuto

Buongiorno Ragazzi ,sono nuovo qui .. e sto cercando di risolvere un po di esercizi con il linguaggio di programmazioen java
in allegato trovate la domanda a cui non sto se ho risposto giusto
il metodo compresiIn() del punto precendete l'ho fatto in questo modo
public double compresiIn()
		{
			double x=0 ;
			double y=0;
			double compresiIn=this.prezzoAlbum[0];
			
			for (int i=1 ; i<this.prezzoAlbum.length; i++) {
				if ((this.prezzoAlbum[i]>= x) && (this.prezzoAlbum[i]<= y)) {
					
					compresiIn++;
				}
				
			
		}
			return compresiIn;
		
}
e poi la mia risposta alla domanda in dubbio che non so se e' giusta o meno e' quella :
public static void titoliCompresiIn()
		{
			Raccolta R = new Raccolta();
		
			int i=0;
			for (i=0; i<R.nomeAlbum.length; i++) {
				
				if(R.prezzoAlbum.equals(R.compresiIn())) {
				
		System.out.println("gli album con il prezzo compreso tra x e y sono " + R.nomeAlbum);
					
				}
				
					
				}
				
			}
			
attendo un vostro aiuto grazie mille in anticipo
Allegati:
l'esercizio
l'esercizio

5 Risposte

  • Re: Aiuto

    Il testo mi pare molto chiaro: titoliCompresiIn deve avere 3 parametri: un array Raccolta[], un double x e un double y. E deve avere come tipo di ritorno un array String[].
    Mi pare che non hai fatto nulla di tutto questo. E idem per il precedente che deve avere 2 parametri e restituire un Raccolta.

    Dal testo e dal codice comunque non è chiaro tutto il contesto esatto.
  • Re: Aiuto

    Ora ho sistemato il punto prima , quella di creare un metodo compresiIn in questo modo spero sia giusto :
    public double compresiIn(double x,double y) throws Exception
    		{
    			
    			double compresiIn=this.prezzoAlbum[0];
    	
    				if ( x < y) {
    			for (int i=1 ; i<this.prezzoAlbum.length; i++) {
    				if ((this.prezzoAlbum[i]>= x) && (this.prezzoAlbum[i]<= y)) {
    					compresiIn=this.prezzoAlbum[i];
    					
    				}
    		}
    			}
    				else {
    					throw new Exception("Valore non corretto");
    				}
    			return compresiIn;
    e non so come procedere con la seconda parte a parte il definire il metodo in questo modo :
    	public static void titoliCompresiI(Raccolta[] R, double x , double y )
  • Re: Aiuto

    Jimmy123 ha scritto:


    Ora ho sistemato il punto prima , quella di creare un metodo compresiIn in questo modo spero sia giusto :
    Purtroppo non vedendo tutto il resto, non è facile capire bene il contesto.

    Jimmy123 ha scritto:


    e non so come procedere con la seconda parte a parte il definire il metodo in questo modo :
    	public static void titoliCompresiI(Raccolta[] R, double x , double y )
    public static String[] titoliCompresiIn(Raccolta[] raccolte, double x, double y)

    Questo è quanto chiede il testo (il nome del primo parametro non lo dice ma è logico come l'ho scritto).
    E prima che vai avanti, la questione essenziale: come dimensioni l'array di uscita? Non sai a priori quanti titoli ci saranno che soddisfano le condizioni .....
  • Re: Aiuto

    Questo il testo completo e qua quello che ho fatto fino ad ora :
    
    package prova1;
    
    public class Raccolta {
     
    		private String[] nomeAlbum;
    		private double[] prezzoAlbum;
    		
    			// qua il costruttore vuoto
    		public Raccolta() 
    		{
    			nomeAlbum = new String[0];
    			prezzoAlbum = new double[0];
    			
    		}
    		
    				/* qua ho un costruttore che verifichi che la lunghezza dei array sia uguale
    				 * e che l'array non siano nulli 
    				 */
    		public Raccolta (String[] nomeAlbum , double[] prezzoAlbum) 
    		{
    			if(nomeAlbum.length != prezzoAlbum.length)
    			{
    				throw new NullPointerException ("Nomi e prezzi devono avere lo stesso numeri di elementi");
    			}
    			int n = nomeAlbum.length;
    			this.nomeAlbum= new String[n];
    			this.prezzoAlbum=new double[n];
    			
    			for (int i=0 ; i < prezzoAlbum.length; i++)
    			{
    				if(n==0) {
    					throw new NullPointerException("L'array non puo essere vuoto");
    				}
    		
    					this.nomeAlbum[i]=nomeAlbum[i];
    					this.prezzoAlbum[i]=prezzoAlbum[i];
    			}
    		}
    		// qui ho il metodo minimo che tira fuori il prezzo minimo 
    		public double minimo()
    			{
    				double minimo = this.prezzoAlbum[0];
    				
    				for (int i = 1; i < this.prezzoAlbum.length; i++)
    				{
    					if (this.prezzoAlbum[i] < minimo)
    					{
    						minimo = this.prezzoAlbum[i];
    					}
    				}
    				
    				return minimo;
    			
    
    		}
    		//qua ho un metodo che mi da gli album con i prezzi compresi tra x e y
    		public double compresiIn(double x,double y) throws Exception
    		{
    			
    			double compresiIn=this.prezzoAlbum[0];
    	
    				if ( x < y) {
    			for (int i=1 ; i<this.prezzoAlbum.length; i++) {
    				if ((this.prezzoAlbum[i]>= x) && (this.prezzoAlbum[i]<= y)) {
    					compresiIn=this.prezzoAlbum[i];
    					
    				}
    		}
    			}
    				else 
    				{
    					throw new Exception("Valore non corretto");
    				}
    			return compresiIn;
    		
    }
    
    		@SuppressWarnings("unlikely-arg-type")
    		public static String[] titoliCompresiI(Raccolta[] R, double x , double y )
    		{
    				
    			
    			}
    		
    					
    				}
    				
    	
    	
    			
    
  • Re: Aiuto

    Nel costruttore di Raccolta che riceve String[] e double[] ci sono diverse cose che non vanno.
    Innanzitutto il testo non dice di fare una "shallow" copy, ovvero creare i due nuovi array e copiarci dentro gli elementi. Dal testo parrebbe che basta solo "assegnare" i due array ai field. Poi hai usato impropriamente NullPointerException. E infine, non hai nemmeno fatto tutte le validazioni richieste.
Devi accedere o registrarti per scrivere nel forum
5 risposte