esercizi array

  • Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 2 anni, 9 mesi fa da Luigi.
Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #5652
    Luigi
    Partecipante
    Up
    0
    Down
    ::

    salve vorrei delucidazioni sul seguente esercizio:
    “44. Creare una matrice 10×10 a spirale, ossia una matrice con 10 righe e 10 colonne così composta:

    1    2    3   4   5  6   7     8   9  10
    36 37 38 39  40  41 42 43 44 11
    35 64 65 66  67  68 69 70 45 12
    34 63 84 85  86  87 88 71 46 13
    33 62 83 96  97  98 89 72 47 14
    32 61 82 95 100 99 90 73 48 15
    31 60 81 94  93  92 91 74 49 16
    30 59 80 79  78  77 76 75 50 17
    29 58 57 56  55  54 53 52 51 18
    28 27 26 25  24  23 22 21 20 19”
    grazie infinite per la dispnonibilità.

    #5663
    admin
    Amministratore del forum
    Up
    0
    Down
    ::

    Salve, effettivamente l’esercizio viene visualizzato male.
    Nella matrice, i numeri partono da 1 fino a 100, partendo dallo strato più esterno e procedendo verso l’interno, formando una spirale.
    Quindi nella prima riga, si parte da 1 a 10. Poi si procede nell’ultima colonna da 10 a 19.
    Poi si va nell’ultima riga, da destra verso sinistra, con i numeri da 19 a 28.
    Poi, si va nella prima riga, partendo dal basso verso l’alto, fermandosi alla seconda riga, con i numeri da 28 a 36.
    Dalla riga il giro si ripete, formando una specie di spirale che si chiude verso l interno dalla matrice con il numero 100.

    1   2   3   4   5   6   7   8   9   10
    36  37  38  39  40  41 42 43 44 11
    35  64  65  66  67  68 69 70 45 12
    34  63  84  85  86  87 88 71 46 13
    33  62  83  96  97  98 89 72 47 14 
    32  61  82  95  100 99  90  73  48  15
    31  60  81  94  93  92 91 74 49 16
    30  59  80  79  78  77 76 75 50 17
    29  58  57  56  55  54 53 52 51 18
    28  27  26  25  24  23 22 21 20 19
    (purtroppo nel forum non allinea correttamente le colonne)

    Mi faccia sapere se ha bisogno di ulteriori chiarimenti
    Antonio

    • Questa risposta è stata modificata 2 anni, 10 mesi fa da admin.
    • Questa risposta è stata modificata 2 anni, 10 mesi fa da admin.
    • Questa risposta è stata modificata 2 anni, 10 mesi fa da admin.
    #5682
    Luigi
    Ospite
    Up
    0
    Down
    ::

    Salve, professor Pagano volevo sapere cosa c’è di sbagliato nel codice e perché mi esce il seguente risultato.
    grazie per la disponibilità, cordiali saluti:
    1 2 3 4 5 6 7 8 9 10
    0 0 0 0 0 0 0 0 0 11
    0 0 0 0 0 0 0 0 0 12
    0 0 0 0 0 0 0 0 0 13
    0 0 0 0 0 0 0 0 0 14
    0 0 0 0 0 0 0 0 0 15
    0 0 0 0 0 0 0 0 0 16
    0 0 0 0 0 0 0 0 0 17
    97 98 0 0 0 0 0 0 0 18
    100 99 26 25 24 23 22 21 20 19
    codice

    package ese;

    public class e22 {

    public static void main(String[] args) {
    int n = 10;
    System.out.println(“Spiral pattern is: \n”);
    printSpiralpattern(n);

    }

    private static void printSpiralpattern(int n) {
    int row = 0, col = 0;
    int b = n -1;
    int s = n -1;
    int f = 1;
    char m = ‘r’;
    int [][] a = new int [n][n];
    for(int i = 1; i < n*n+1; i++)
    {
    a[row][col] = i;
    switch(m) {
    case ‘r’:
    col += 1;
    break;
    case ‘l’:
    col -= 1;
    break;
    case ‘u’:
    row -= 1;
    break;
    case ‘d’:
    row += 1;
    break;
    }
    if (i == b) {
    b = b + s;
    if (f != 2) {
    f = 2;
    }
    else {
    f = 1;
    s = 1;
    }
    switch (m)
    {
    case ‘r’:
    m = ‘d’;
    break;
    case ‘d’:
    m = ‘l’;
    break;
    case ‘l’:
    m = ‘u’;
    break;
    case ‘u’:
    m = ‘r’;
    break;

    }

    }
    }
    for(row = 0; row < n; row++) {
    for(col = 0; col < n; col++) {
    int o = a[row][col];
    if(o < 100)
    System.out.print(o + ” “);
    else
    System.out.print(o + ” “);
    }
    System.out.println();
    }

    }

    }

    #5684
    ANTONIO PAGANO
    Ospite
    Up
    0
    Down
    ::

    una possibile soluzione potrebbe essere la seguente:

    https://pastebin.com/AccbaiYT

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Devi essere connesso per rispondere a questo topic.