Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    3

    [Java] Creare figure con quadrati e rettangoli

    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:

    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;
        }
    }
    Questo è il testo dell'esercizio:

    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:

    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));
        }
    }
    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..
    Non so cosa fare ..qualcuno mi può dare una mano o eventualmente aiutarmi a ragionare?
    Grazie mille a tutti in anticipo!
    Immagini allegate Immagini allegate

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.