00 07/05/2016 16:46
Le nuove variabili del C l' array o vettore bidimensionale, array pluridimensionale ovvero matrici


Un vettore monodimensionale  è un nuovo tipo di variabile costituito da tante scatole che viene definite sempre dello stesso tipo, il vettore o array monodimensionale  il suo indice parte
sempre da 0 zero per quante scatole abbiamo sotto lo stesso nome , intanto vediamo come si inizializza questa nuova variabile la chiamiamo vettore e è tipo int  con 6 scatole interne  dallo 0 al 5 :

int  vettore [5] ;



Questa nuova variabile si inizializza cosi int il tipo che può essere  o altro tipo poi abbiamo il nome  vettore  , dentro le [] va il numero di quante scatole è composto questo vettore o array monodimensionale , come detto il vettore  parte sempre da 0 questo è l’ indice del vettore quando noi facciamo riferimento al vettore senza indicazioni il programma va  e vede solo il suo indice 0 , vediamolo da vicino lo stesso vettore da 5 scatole, ovvero i 6 contenitori che
abbiamo inizializzato ;



vettore [0]  = 12 ;  // primo vettore l’ indice con il suo contenuto numero int 12
vettore [1] = 100 ;  // secondo vettore  con il suo contenuto numero int 100
vettore [2] =   5  ;  // terzo vettore  con il suo contenuto numero int 5
vettore [3] = 20  ;  //quarto vettore  con il suo contenuto numero int 20
vettore [4] =  2   // quinto vettore  con il suo contenuto numero int 2
vettore [5] = 40  ; // sesto vettore  con il suo contenuto numero int 40


Ora se noi vogliamo leggere dentro il vettore 3 che è il quarto array dobbiamo scrivere    vettore [3] per leggere il suo contenuto che è 20 ,viene trattato come una semplice variabile con il suo indice 0,1,2,3 ecc.. ecco come leggere il [3] vettore

printf(“dentro il vettore 3  c’e’ questo contenuto %d “, vettore[3]”);

Nel modo come ho fatto su con : ( vettore [2] = 5; ) ho anche inserito i dati dentro tutto il vettore,   il vettore può essere dichiarato diversamente e nello stesso tempo inserire i dati esplicitamente  :

int  a[] ={1,3,5,11,112,6};


in questo modo abbiamo detto al Pc  abbiamo un array di nome a formato da 6  elementi dove elemento 0 è = 1, ecc.. , elemento 5 è uguale 6



Possibilmente non utilizziamo molta memoria del Pc dichiarando array da 100 scatole quando ci basta 10 contenitori , infatti se noi diciamo : A[100];  il pc assegna la memoria per 100 contenitori , se consideriamo che un intero è  2  o 8 byte per un double, ogni byte è 8 bit per
i 90 contenitori inutilizzati abbiamo sprecato minimo 1440 bit 



Per accedere alle varie scatole o contenitori possiamo avvalerci del loop FOR ecco un programmino per caricare e leggere il  vettore da 4 contenitori utilizzo le 2 funzioni per lo scopo  carica()  e leggi()  

#include<stdio.h>
#include<stdlib.h>

void intestazione();

int ay[3]; //4 contenitori da 0-3 chiamati ay


void carica();  void leggi(); //il prototipo di 2 funzioni una "carica" l' altra " leggi" l' array
          //il tutto rimane nella parte globale in modo che le funzioni possa leggere 
int main() { 

         intestazione();             carica(); 
         intestazione();             leggi();
         intestazione();             system("pause");

void intestazione() // funzione intestazione che poi viene richiamata 3 volte
{
         printf("---------------------------------------------------");
         printf("\n|  [ByMpt-Zorobabele  prova Array monodimensionale |\n");
         printf("---------------------------------------------------\n");
}
void carica()
{
         int i; //contatore i questa è una variabile locale viene usata solo qui
         for (i = 0; i <= 3; i++)  //giriamo per 4 volte  da 0 al 3
         {
                  printf(" Carichiamo i nostri 4 contenitori elemento %d di ay: ",i);
                  scanf("%d", &ay[i]);
         }
}
void leggi()
{
         int i;
         for (i = 0; i <= 3; i++)
         {
            printf(" Leggiamo i dati inseriti dentro l'array ay num %d = %d\n",i,ay[i]);
         }
}



Ora parliamo delle matrici sono minimo 2 vettori con lo stesso nome infatti queste si chiamano  array pluridimensionali perché ha più di una dimensione questi si dichiara ugualmente come i vettori normali:

int Array [3],[2] ;   

come
sempre l’ indice parte da 0 e conta tante colonne quanti sono descritti nella seconda dichiarazione ecco un esempio questo array bidimensionale va letto riga  per colonna  dove la riga è il primo numero le colonne sono il secondo numero , per la lettura di questa matrice si usa 2 indici , possiamo anche inserire i dati come spiegato   array[2],[4]={
   i  numeri rossi  fa parte del[2]                                         {3,4,5,7},   tutti l’ altri è del [4]
                                                                                       {12,25,70}                                
                                                                                            };
               [0]   [1]      se noi dobbiamo andare a leggere l’ ultimo dove risiede         
        [0] [102][105]    il numero 214 dobbiamo dare le sue coordinate come se         
        [1] [128] [13]    giochiamo a battaglia navale  array [2],[1] , per il numero    
        [2] [102] [214]   128 è riga 1 colonna 0  array [1],[0],  arriva sempre riga per colonna ,



altro modo di inserire la
matrice ;

int mat[2][4] = { 1, 2, 10,20,30 ,100,200,300 };


ricordiamo che per dichiarare le matrici  i numeri dentro le quadre devono esserci sempre se non i numeri le variabili che fa riferimento ad un numero, non deve esserci mai   0 zero  , i numeri 1,2 dentro la matrice fa riferimento per la parte [2] tutti l’ altri è per la [4]



Le matrici dicono si usa poco allora nessuno spiega come usarle, comunque si deve usare per leggere e scrivere su di loro 2 indici contemporaneamente con 2 for annidati uno per la prima parte [2] e l’altro per la seconda lettura [4] ecc… se ci sono altri tridimensionale ecc… la
guida del VS2015  sotto matrice un po’ spiega  per richiamarla F1 poi cerca   



Ciao grazie   ByMpt-Zorobabele 

Di questo testo dalla prefazione fino all’ 11° capitolo scritto,  ho creato un testo PDF da scaricare lo trovate insieme dove rimane l’ elenco delle foto  





[Modificato da JehovaZorobabele 07/05/2016 16:57]