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]