Matrice composta da cornici concentriche

di il
5 risposte

Matrice composta da cornici concentriche

Ciao, ho un dubbio su un problema. Devo stampare una matrice di questo tipo(senza usare metodi):

% % % % % %
% £ £ £ £ %
% £ % % £ %
% £ % % £ %
% £ £ £ £ %
% % % % % %

Qualcuno può darmi una mano visto che non so da dove partire?

5 Risposte

  • Re: Matrice composta da cornici concentriche

    Valeria4 ha scritto:


    Devo stampare una matrice di questo tipo(senza usare metodi):
    Qualcuno può darmi una mano visto che non so da dove partire?
    La dimensione di questa matrice è "dinamica", in base ad un qualche parametro/input?
  • Re: Matrice composta da cornici concentriche

    La dimensione della matrice va inserita da tastiera
  • Re: Matrice composta da cornici concentriche

    Valeria4 ha scritto:


    La dimensione della matrice va inserita da tastiera
    Ok, allora avrai ad un certo punto una variabile che contiene il "lato" della matrice.

    Ma per il resto è sufficiente ragionare un po'. Ci possono essere diversi approcci. Ti è permesso creare un array bidimensionale es. un char[][] (o un boolean[][] se deduci poi dopo cosa usare dei due caratteri) in cui prima crei il disegno che poi stampi per intero successivamente? O invece devi fare tutto il disegno "al volo" (o a pezzi)?
  • Re: Matrice composta da cornici concentriche

    Devo usare un array bidimensionale. La cosa che non mi è chiara è come creare la cornice interna
  • Re: Matrice composta da cornici concentriche

    Valeria4 ha scritto:


    Devo usare un array bidimensionale. La cosa che non mi è chiara è come creare la cornice interna
    Usare un array bidimensionale è ok. Puoi farlo come char[][] (con già dentro i caratteri) o come boolean[][] se poi successivamente (quando stampi, chiaramente) "traduci" false in un carattere ("%") e true in un altro ("£"). Il boolean[][] è comodo più che altro perché è già tutto inizializzato con false. Mentre con un char[][] lo devi inizializzare tu perché ci sono valori 0.

    Dato che hai parlato di cornici concentriche, ce ne possono essere n a seconda di quanto è grande il lato della matrice. Basta calcolarle. Le cornici sono ogni 2 caratteri e siccome è tutto "simmetrico" devi ancora dividere per due.
    In pratica:

    int numCornici = lato / 4;

    Ora sai quante cornici disegnare. Farai quindi un ciclo da 0 per <numCornici. Ad ogni ciclo disegni una cornice. Per farlo ti basta un ulteriore ciclo for ed è sufficiente notare una cosa: un indice lo puoi usare per le due linee verticali (fissando la colonna) e per le linee orizzontali (fissando la riga).
    La prima cornice ha indici 1...lato-2, la seconda 3...lato-4, ecc...
Devi accedere o registrarti per scrivere nel forum
5 risposte