Ciao a tutti! Ho un problema con questo esercizio che non ci salto fuori:
Quella che segue è la classe che io precedentemente ho definito sulla base di un altro esercizio:
Questo è il testo dell'esercizio:codice:class Rettangolo2 { public int larghezza; public int altezza; public String[][] matrice; /** Creates a new instance of Rettangolo2 */ public Rettangolo2(int larg, int alt, String car) { larghezza=larg; altezza= alt; matrice = new String[altezza][larghezza]; for(int i=0; i < altezza; i++) { for(int z=0; z < larghezza; z++) { matrice[i][z] = car; } } } /** Creates a new instance of Rettangolo2 */ public Rettangolo2(int lato, String car) { larghezza = lato; altezza = lato; matrice = new String[altezza][larghezza]; for (int x = 0; x < altezza; x++) { for (int y = 0; y < larghezza; y++) { matrice[x][y] = car; } } } public static String GetString(Rettangolo2 rett){ String s = ""; for(int i=0; i < rett.altezza; i++) { for(int z=0; z < rett.larghezza; z++) { s += rett.matrice[i][z]; } s += "\n"; } return s; } public static String CopyAt (Rettangolo2 r1, Rettangolo2 r2, int x, int y) { String s = ""; if (x < r1.matrice.length && y < r1.matrice[0].length) { if (r1.matrice.length > r2.matrice.length+x && r1.matrice[0].length > r2.matrice[0].length+y) { for (int i = 0; i < r2.matrice.length; i++) { for (int j = 0; j < r2.matrice[0].length; j++) r1.matrice[i+x][j+y] = r2.matrice[i][j]; } s += Rettangolo2.GetString(r1); } else { s += "Errore! r2 e' piu' grande di r1 o r2 eccede rispetto ad r1"; } } else { s += "Errore! Il punto (x,y) si trova al di fuori di r1"; } return s; } }
1. Creare un'istanza di Rettangolo, denominata lavagna con dimensione 15x30 e stringa "**".
2. Creare i rettangoli e quadrati opportuni in modo da ottenere le seguenti figure all'interno di Lavagna e stampare a video Lavagna: (immagine in allegato)
Questo è il programmino che io ho definito per per stampare i quadrati/rettangoli:
Il problema è che il primo rettangolo dentro al rettangolo "lavagna" parte, data la coordinata x, dopo il quinto asterisco mentre il rettangolo "lavagna" non è composto da singoli asterischi ma da coppie di asterischi per orizzontale..problema simile anche con gli altri rettangoli..codice:class UsoRettangolo3 { public static void main(String[] args) { Rettangolo2 lavagna = new Rettangolo2(30,11,"**"); Rettangolo2 a = new Rettangolo2(5,3," "); System.out.println(Rettangolo2.CopyAt(lavagna,a,2,2)); } }
Non so cosa fare..qualcuno mi può dare una mano o eventualmente aiutarmi a ragionare?
Grazie mille a tutti in anticipo!![]()

..qualcuno mi può dare una mano o eventualmente aiutarmi a ragionare?
Rispondi quotando