Oppure

Loading
27/06/18 13:09
mattone200332
il programma deve controllare due array e scrivere in output se gli array sono uguali o meno ma non riesco a capire dove sbaglio 8-|
questo è il codice

import java.io.*;

public class es17diprogetticlassi {

	public static void main (String[] arg) throws IOException{

		InputStreamReader input=new InputStreamReader(System.in); 
		BufferedReader m = new BufferedReader(input); 
		
		String i;
		int numero = 0;
		char c;

		do{ 
		
		System.out.println("Scegli un opzione:"); 
		System.out.println("p. usare un array predefinito"); 
		System.out.println("m. inserire manualmente un array"); 
		System.out.println("x. chiudere il programma"); 
		System.out.println("Devi digitare la lettera corrispondente all'azione scelta e poi premere invio"); 
		
		i=(m.readLine()).toLowerCase(); 
		c = i.charAt(0);
		
		inserirearray ia;
		
		switch (c) { 
			
			case 'p': 
				System.out.println("Hai scelto di usare un array predefinito");
				
				System.out.println(controllo.controlloarraypredefinito());
				break; 
				
		     case 'm':
		    	 
		    	 	System.out.println("Inserici il tipo dei parametri degli array");
					System.out.println("s. string");
					System.out.println("c. char");
					System.out.println("d. double");
					System.out.println("i. intero");
					System.out.println("Devi digitare il numero corrispondente all'azione scelta e poi premere invio"); 
				
					i=(m.readLine()).toLowerCase(); 
					c = i.charAt(0);
		    	 
		    	 do {
		    	 	System.out.println("Hai scelto di inserire manualmente un array");
					System.out.println("Inserici il numero di parametri del primo array");
				
					i=m.readLine();
					numero = Integer.parseInt(i);
				
					if ((c == 's')||(c == 'c')||(c == 'd')||(c == 'i')) {
						
						inserirearray ia1 = new inserirearray(numero, c, 1);
					
					}else {
					
						c='x';
					
					}
				}while(c!='x'); 
		    	 
		    	 do {
						System.out.println("Inserici il numero di parametri del secondo array");
					
						i=m.readLine();
						numero = i.charAt(0);
					
						if ((c == 's')||(c == 'c')||(c == 'd')||(c == 'i')) {
							
							ia = new inserirearray(numero, c, 2);
						
						}else {
						
							c='x';
						
						}
					}while(c!='x');
		    	 
		    	
				System.out.println("Gli array sono uguali? " + controllo.controlloarraypredefinito());
		    	 
				break; 
		    
		     case 'x': 
				System.out.println("Hai scelto di uscire daql programma, ciao");
				break; 
				
		     default:
				System.out.println("Errore"); 
				break; 
		}
		}while(c!='x'); 
	}
}



 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class inserirearray {
	
	static private int i, intero;
	static private String s;
	static private char c;
	static private double d;
	static String[] Array1s = null, Array2s = null;
	static char[] Array1c = null, Array2c = null;
	static double[] Array1d = null, Array2d = null;
	static int[] Array1i = null, Array2i = null;
	
	public inserirearray(int x, char y, int z) throws IOException {
		
		InputStreamReader input=new InputStreamReader(System.in); 
		BufferedReader f = new BufferedReader(input); 
		
		controllo contr = null;
		
		contr.tipo = ' ';
		
		if (z == 1) {
			switch (y) {
		
				case 's':
					Array1s = new String[x];	
					contr.tipo = 's';
					break;
				
				case 'c':
					Array1c = new char[x];
					contr.tipo = 'c';
					break;
				
				case 'd':
					Array1d = new double[x];	
					contr.tipo = 'd';
					break;
				
				case 'i':
					Array1i = new int[x];	
					contr.tipo = 'i';
					break;
				
				default: 
					System.out.println("Errore");
					break; 
				
			}
			
			for (i=0;i<=x;i++) {
				
				if (y == 's') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine();
					Array1s[i] = s;
					
				}else if (y == 'c') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine(); 
					c = s.charAt(0);
					Array1c[i] = c;
					
				}else if (y == 'd') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine();
					d = Double.parseDouble(s);
					Array1d[i] = d;
					
				}else if (y == 'i') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine();
					intero = Integer.parseInt(s);
					Array1i[i] = intero;
				}
				
			}
		}
		
		if (z == 2) {
			switch (y) {
		
				case 's':
					Array2s = new String[x];
					break;
				
				case 'c':
					Array2c = new char[x];
					break;
				
				case 'd':
					Array2d = new double[x];	
					break;
				
				case 'i':
					Array2i = new int[x];	
					break;
				
				default: 
					System.out.println("Errore");
					break; 
				
			}
			
			for (i=0;i<=x;i++) {
				
				if (y == 's') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine();
					Array2s[i] = s;
					
				}else if (y == 'c') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine(); 
					c = s.charAt(0);
					Array2c[i] = c;
					
				}else if (y == 'd') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine();
					d = Double.parseDouble(s);
					Array2d[i] = d;
					
				}else if (y == 'i') {
					
					System.out.println("inserici il parametro n°" + (i+1) + " dell'array");
					s=f.readLine();
					intero = Integer.parseInt(s);
					Array2i[i] = intero;
				}
				
			}
		}
	}
	
}
 


 import java.util.Random;
 
 public class arraypredefinito extends controllo {
	
	static final int[] Array1i = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	static final int[] Array2i = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	static int k = 0;
	static final String[] Array1s = {"ciao", "Ciao", "salve", "Salve", "buongiono", "Buongiorno", "buonasera", "Buonasera"};
	static final String[] Array2s = {"ciao", "Ciao", "salve", "Salve", "buongiono", "Buongiorno", "buonasera", "Buonasera"};
	static final char[] Array1c = {'c', 'i', 'a', 'o', ',', ' ', 'q', 'u', 'e', 's', 't', 'a', ' ', 'e', '\'', ' ', 'u', 'n', 'a', ' ', 'p', 'r', 'o', 'v', 'a'};
	static final char[] Array2c = {'c', 'i', 'a', 'o', ',', ' ', 'q', 'u', 'e', 's', 't', 'a', ' ', 'e', '\'', ' ', 'u', 'n', 'a', 'p', 'r', 'o', 'v', 'a', ' '};
	static final double[] Array1d = {31.8, 28.9, 31.6, 30.4, 31.3, 30.5, 31.8, 31.2, 304.2, 31.8, 30.6, 31.1};
	static final double[] Array2d = {6453, 568, 3451, 5630, 531, 370, 361, 3154, 356, 351, 305, 3451};
	static char fgf;
	
	static public char array(){
		
		Random random = new Random();
		
		k = random.nextInt(3);
		
		switch (k) {
		
			case 0 :
				fgf= 's';
		case 1 :
				fgf= 'c';
		case 2 :
				fgf= 'd';
		case 3 :
				fgf= 'i';
		
		}
		
		return fgf;
		
	}
	
}


 public class controllo{

	static char tipo;
	private static int x = 0;
	private static int y = 0;
	private static int i;
	private static int n;
	static String vis1 = "", vis2 = "";
	
	static public String controlloarraypredefinito() {
		
		tipo = arraypredefinito.array();
		
		switch (tipo){
			
			case 's' :
				
				x = arraypredefinito.Array1s.length;
				y = arraypredefinito.Array2s.length;
				
				for (i=0;i<=x;i++) {
					
					vis1 += arraypredefinito.Array1s[i];
					vis2 += arraypredefinito.Array2s[i];
					
				}
				
				if(x!=y) {
					
					return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
					
				}else {
				
				
					for (i=0;i<=x;i++) {
					
						if(arraypredefinito.Array1s[i]!=arraypredefinito.Array2s[i]) {
							
							n++;
							
						}
						
					
					}
				}
				
			case 'c' :
				
				x = arraypredefinito.Array1c.length;
				y = arraypredefinito.Array2c.length;
				
				for (i=0;i<=x;i++) {
					
					vis1 += arraypredefinito.Array1c[i];
					vis2 += arraypredefinito.Array2c[i];
					
				}
				
				if(x!=y) {
					
					return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
					
				}else {
				
				
					for (i=0;i<=x;i++) {
					
						if(arraypredefinito.Array1c[i]!=arraypredefinito.Array2c[i]) {
							
							n++;
							
						}
						
					
					}
				}
				
			case 'd' :
				
				x = arraypredefinito.Array1d.length;
				y = arraypredefinito.Array2d.length;
				
				for (i=0;i<=x;i++) {
					
					vis1 += arraypredefinito.Array1d[i];
					vis2 += arraypredefinito.Array2d[i];
					
				}
				
				if(x!=y) {
					
					return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
					
				}else {
				
				
					for (i=0;i<=x;i++) {

						if(arraypredefinito.Array1d[i]!=arraypredefinito.Array2d[i]) {
							
							n++;
							
						}
						
					
					}
				}
				
			case 'i' :
	
				x = arraypredefinito.Array1i.length;
				y = arraypredefinito.Array2i.length;
	
				for (i=0;i<=x-1;i++) {
					
					vis1 += arraypredefinito.Array1i[i] + ", ";
					vis2 += arraypredefinito.Array2i[i];
					
				}
				
				if(x!=y) {
		
					return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
		
				}else {
	
	
					for (i=0;i<=x;i++) {
						
						if(arraypredefinito.Array1i[i]!=arraypredefinito.Array2i[i]) {
				
							n++;
				
						}
			
		
					}
				}
		}
		
		if (n!=0) {
			
			return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
			
		}else {
			
			return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array sono uguali";
			
		}
		
	}
	
	static public String controlloinserirearray() {
		
			switch (tipo){
			
				case 's' :
				
					x = inserirearray.Array1s.length;
					y = inserirearray.Array2s.length;
				
					for (i=0;i<=x;i++) {
						
						vis1 += inserirearray.Array1s[i];
						vis2 += inserirearray.Array2s[i];
					
					}
					
					if(x!=y) {
					
						return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
						
					}else {
				
				
						for (i=0;i<=x;i++) {
					
							if(inserirearray.Array1s[i]!=inserirearray.Array2s[i]) {
							
								n++;
							
							}
						
					
						}
					}
				
				case 'c' :
				
					x = inserirearray.Array1c.length;
					y = inserirearray.Array2c.length;
					
					for (i=0;i<=x;i++) {
						
						vis1 += inserirearray.Array1c[i];
						vis2 += inserirearray.Array2c[i];
					
					}
					
					if(x!=y) {
					
						return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
					
					}else {
				
				
						for (i=0;i<=x;i++) {
					
							if(inserirearray.Array1c[i]!=inserirearray.Array2c[i]) {
							
								n++;
							
							}
						
					
						}
					}
				
				case 'd' :
				
					x = inserirearray.Array1d.length;
					y = inserirearray.Array2d.length;
				
					for (i=0;i<=x;i++) {
						
						vis1 += inserirearray.Array1d[i];
						vis2 += inserirearray.Array2d[i];
					
					}
					
					if(x!=y) {
					
						return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
					
					}else {
				
						
						for (i=0;i<=x;i++) {
					
							if(inserirearray.Array1d[i]!=inserirearray.Array2d[i]) {
							
								n++;
								
							}
						
					
							}
						}
					
				case 'i' :
		
					x = inserirearray.Array1i.length;
					y = inserirearray.Array2i.length;
		
					for (i=0;i<=x;i++) {
						
						vis1 += inserirearray.Array1i[i];
						vis2 += inserirearray.Array2i[i];
					
					}
					
					if(x!=y) {
			
						return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
			
					}else {
		
		
						for (i=0;i<=x;i++) {

							if(inserirearray.Array1i[i]!=inserirearray.Array2i[i]) {
					
								n++;
					
							}
				
			
						}
					}
			}
			
			if (n!=0) {
				
				return "Array1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array non sono uguali";
				
			}else {
				
				return "Array 1: " + vis1 + "\n" + "Array 2: " + vis2 + "\n" + "Gli array sono uguali";
				
			}
			
	}

}
aaa
28/06/18 12:37
Thejuster
Mattone questo non è un forum su indovinelli lol.

Che errore hai?
In quale punto?
descrivi bene il tuo problema...
mire.forumfree.it/ - Mire Engine
C# UI Designer
07/09/18 16:44
beltromatti
Quanto codice per uno scopo tanto semplice!
adesso non ho tempo ma vedrò di analizzarlo bene:k:
aaa
08/09/18 10:51
comtel
Non ho avuto ancora il tempo di studiare per bene e per intero il codice, ma come qualcuno ha già detto, c'è tantissimo codice per un compito che si conclude con poche righe. Inoltre ho visto che crei una istanza di una classe che si chiama "inserireArray", e dal nome e dal codice sembra essere più un metodo implementato in una classe, che una classe stessa..
aaa