Aiuto piccolo programma

di il
3 risposte

Aiuto piccolo programma

Ciao a tutti devo realizzare un programma in cui devo trovare la formula per passare da una matrice di tre dimensioni (pagina,riga,colonna)a un vettore di una dimensione.
Io non so come trovare la formula,il resto sembra facile

3 Risposte

  • Re: Aiuto piccolo programma

    Non ti serve scrivere un programma per risolvere questo problema, ma solo cervello, carta e matita.
    E visto che coinvolge solo somme e moltiplicazioni, direi che ci puoi arrivare tranquillamente da solo.
    Ti diro' di piu': in questo problema apprezzerai l'uso dello zero!
    Non e' per nulla difficile:

    quale e' l'indice del elemento della prima colonna, della prima riga, della prima pagina?
    e quello dell'ultima colonna della prima riga della prima pagina?
    e quello della prima colonna della seconda riga della prima pagina?
    e quello della prima colonna della prima riga della seconda pagina?
    e quello dell'ultima colonna dell'ultima riga dell'ultima pagina?

    Dovrebbe essere facile trovare la formula generale
  • Re: Aiuto piccolo programma

    Potresti indicarmela spiegandola?perchè in classe non abbiamo fatto matrici tridimensionali e il prof. le ha date lo stesso come esercizio in un programma,ma io non riesco a capire come passare da matrice a vettore
  • Re: Aiuto piccolo programma

    Ciao, un aiuto potrebbe venirti sapendo come vengono linearizzate le matrici a 2 dimensioni: in pratica l'array viene riempito leggendo la matrice per righe (o per colonne, in base a come ti è più comodo). Quindi prima scrivi la 1° riga, poi la 2° e così via fino all'ultima. Sapendo quanto è lunga una riga (ovvero il numero di colonne) è poi possibile ricostruire la matrice di partenza, visto che ogni <numero_di_colonne> celle inizia una nuova riga. Ad esempio:
    
    +---+---+---+---+
    | 1 | 2 | 3 | 4 |
    +---+---+---+---+
    | 5 | 6 | 7 | 8 |
    +---+---+---+---+
    
    diventa
    
    1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
    
    Questo array può essere ricostruito in vari modi. Ad esempio può essere messo in una matrice a 2 colonne, ottenendo:
    
    +---+---+
    | 1 | 2 |
    +---+---+
    | 3 | 4 |
    +---+---+
    | 5 | 6 |
    +---+---+
    | 7 | 8 |
    +---+---+
    
    ma ovviamente la matrice di partenza ha 4 colonne...
Devi accedere o registrarti per scrivere nel forum
3 risposte