Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    stampa matrice di 0 e 1

    Avendo questo pezzo di codice :
    codice:
    for(int i = 0; i < k; i++){ // k = 2
        if(i == 0) 
           startRows = 0; 
        else 
           startRows = rangeDirezioni[i-1]; //rangeDirezioni[0] = 4, rangeDirezioni[1] = 4             
        /* Direzione verticale */   
        if(a[i]==0 && b[i]!=0){     
            for(int row = startRows; row < rangeDirezioni[i]; row++){        
                 int col = 0;         
                 for(int y = m-1; y >= 0; y--){        
                     for(int x = 0; x < n; x++){        
                        if(x == row)          
                            A[row][col] = 1;      
                        else               
                            A[row][col] = 0;         
                        col++;         
                     }      
                 }      
            }    
        }
     /* Direzione orizzontale */   
        if(a[i]!=0 && b[i]==0){        
             int p = m-1;      
             for(int row = startRows; row < rangeDirezioni[i]; row++){         
                int col = 0;                 
                for(int y = m-1; y >= 0; y--){                 
                   for(int x = 0; x < n; x++){                   
                      if(col < m*n){           
                              if(y == p)              
                                   A[row][col] = 1;   
                              else    
                                   A[row][col] = 0;  
                      }
                      col++;      
                   }
                }p--;     
             }            
        }
    }
    ..con m = n = 4, se metto k = 1 e inserisco una sola cordinata, per esempio a[0] = 0, b[0] = 1, riempie la matrice con 4 righe e m*n colonne, cioè:
    1000100010001000
    0100010001000100
    0010001000100010
    0001000100010001
    se invece, ho k = 2 come nel codice, e inserisco le coordinate a[0] = 0, b[0] = 1 e a[1] = 2, b[1] = 0 (sono coordinate inserite da tastiera e poi messi nel vettore) dovrebbe riempirmi una matrice con 8 righe(somma degli elementi del vettore rangeDirezioni[]) e m*n colonne (in questo caso 16 colonne)fatta in questo modo:
    1000100010001000
    0100010001000100
    0010001000100010
    0001000100010001
    1111000000000000
    0000111100000000
    0000000011110000
    0000000000001111
    e invece mi stampa una matrice con 8 righe e m*n colonne fatta di tutti 0.
    Non riesco a capire il motivo, perchè se faccio i passaggi a mano sul foglio, invece a logica torna...
    Come potrei fare?

  2. #2
    spiega bene cosa devi stampare e come perchè parli di matrici poi usi due vettori e vengono stampate matrici..

  3. #3
    Ciao, si, forse mi sono spiegato un pò male.. allora considerando i valori:
    prima a[0]=0, b[0]=1 e poi a[1]=2, b[1]=0 questo pezzetto di codice dovrebbe riempirmi una matrice come questa:
    1000100010001000
    0100010001000100
    0010001000100010
    0001000100010001
    1111000000000000
    0000111100000000
    0000000011110000
    0000000000001111
    e invece mi riempie una matrice con le stesse righe e colonne ma con tutti zeri.

  4. #4
    Nessuno sà aiutarmi?

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.