Array Statico

di il
4 risposte

Array Statico

Ho svolto questo esercizio, ma non sono convinto seho ragionato bene.
Il problema che devo restituire true se il valore precedente è maggiore, altrimenti è minore del precedente
Mi da errore nel Main, quando chiamo il metodo.


package atm.ats.com;
import java.util.*;

public class StrettamenteCrescente {

	public static void main(String[] args) {
		/*Scrivere un metodo statico strettamentecrescente che restituisce true se ogni valore dell'array
		 * fornito in ingresso è maggiore del valore che lo precede, altrimenti restituisce false.*/

		
		stretcrescente(10);
		
		
}
	
	
		


		public static boolean stretcrescente(double [] in){
				
				double lg = in.length;
				boolean rp = false;
				double valoreprecedente = 0;
				
				for(int i = 0; i < lg; i++ ){
					if(in[i] > (valoreprecedente - 1)){
						valoreprecedente = in[i];
						rp = true;
					}
						else
							rp = false;
				}
				
				
				System.out.println("Valore inserito è maggiore o monore del precedente " + rp);
				return rp;
				
			}
	
	
	
	}






4 Risposte

  • Re: Array Statico

    Questa è un altra versione.
    
    package atm.ats.com;
    import java.util.*;
    
    public class StrettamenteCrescente {
    
    	public static void main(String[] args) {
    		/*Scrivere un metodo statico strettamentecrescente che restituisce true se ogni valore dell'array
    		 * fornito in ingresso è maggiore del valore che lo precede, altrimenti restituisce false.*/
    
    		
    		stretcrescente(10);
    		
    		
    }
    	
    	
    		
    
    
    		public static boolean stretcrescente(double [] in){
    				
    				double lg = in.length;
    				boolean rp = false;
    				double [] valoreprecedente = null;
    				
    				for(int i = 0; i < lg; i++ ){
    					if(in[i] > (valoreprecedente[i - 1])){
    						valoreprecedente[i - 1] = in[i];
    						rp = true;
    					}
    						else
    							rp = false;
    				}
    				
    				
    				System.out.println("Valore inserito è maggiore o monore del precedente " + rp);
    				
    				return rp;
    				
    			}
    	
    	
    	
    	}
    
    
    
    
    
  • Re: Array Statico

    Questa è un altra versione,vedo che ancora ci sono problemi.
    
    package atm.ats.com;
    import java.util.*;
    
    public class StrettamenteCrescente {
    
    	public static void main(String[] args) {
    		/*Scrivere un metodo statico strettamentecrescente che restituisce true se ogni valore dell'array
    		 * fornito in ingresso è maggiore del valore che lo precede, altrimenti restituisce false.*/
    
    		double [] a = {10};
    		double [] b = {15};
    		
    		if (stretcrescente(a) > stretcrescente(b))
    			System.out.println("E' maggiore del valore precedente");
    		else
    			System.out.println("E'minore del valore precedente");
    		
    		
    		
    }
    	
    	
    
    		public static double stretcrescente(double [] in){
    				
    				double lg = in.length;
    				boolean rp = false;
    				double [] valoreprecedente = null;
    				
    				for(int i = 0; i < lg; i++ ){
    					if(in[i] > (valoreprecedente[i - 1])){
    						valoreprecedente[i - 1] = in[i];
    						rp = true;
    					}
    						else
    							rp = false;
    				}
    				return lg;
    				
    				
    				
    			}
    	
    	
    	
    	}
    
    
    
  • Re: Array Statico

    Anche in questo modo, non mi funziona,
    
    package atm.ats.com;
    import java.util.*;
    
    public class StrettamenteCrescente {
    
    	public static void main(String[] args) {
    		
    		/*Scrivere un metodo statico strettamentecrescente che restituisce true se ogni valore dell'array
    		 * fornito in ingresso è maggiore del valore che lo precede, altrimenti restituisce false.*/
    
    		double [] a = {10};
    		double [] b = {15};
    		
    		if (stretcrescente(a) > stretcrescente(b))
    			System.out.println("E' maggiore del valore precedente");
    		else
    			System.out.println("E'minore del valore precedente");
    		
    		
    		
    }
    	
    	
    
    		public static double stretcrescente(double [] in){
    				
    				boolean rp = true;
    				double [] b = null;
    				
    				for(int i = 0; i < in.length; i++ ){
    					if(in[i] < b[i]){
    						b[i] = in[i];
    						rp = false;
    					}
    						else
    							rp = true;
    				}
    				return 0;
    				
    				
    				
    				
    				
    				
    			}
    	
    	
    	
    
    
    
    
  • Re: Array Statico

    robot ha scritto:


    Anche in questo modo, non mi funziona
    Mi spiace ma neanche quest'ultimo che hai scritto va bene, non c'è nulla che abbia senso.

    Il metodo innanzitutto deve restituire un boolean ... non un double, lo hai ben scritto tu nel testo commentato. E comunque non avrebbe proprio senso passare array di 1 elemento e fare if (stretcrescente(a) > stretcrescente(b))

    Se al metodo si passa { 3, 5, 9, 15 } allora dà true (è strettamente crescente). Se si passa es. { 3, 2, 9, 15 } allora dà false. E per fare questo basta un banalissimo ciclo for in cui, attentamente (a non sforare), confronti arr con arr[i+1]. Se una coppia NON soddisfa la condizione di crescenza, sai GIA' il risultato finale (false) e non è necessario proseguire. Solo DOPO che il for è terminato, allora sai che tutte le coppie soddisfano la condizione.

    Si tratta di 1 for, 1 if e 2 return. E nessuna altra variabile.
Devi accedere o registrarti per scrivere nel forum
4 risposte