Struct
Le strutture.
Le strutture sono dei tipi di variabili in cui è possibile memorizzare dei dati di tipo diverso, dei dati eterogenei.
Le possiamo considerare simili a vettori, ma elemento per elemento, noi possiamo avere tipologie diverse di dati.
Per illustrare il concetto di strutture, faremo un esempio, cioè creeremo una semplice struttura che nomineremo cliente.
Ogni elemento di questa struttura conterrà tre dati, il nome, il cognome e l'età del cliente.
Avremo 100 clienti, andremo ad inserire i dati di 100 clienti.
Permettiamo, faremo poi una ricerca per cognome del cliente, e se ci sono uno o più clienti con lo stesso cognome, li visualizzeremo a video.
Quindi, ogni elemento della struttura ha tipologie di dati diversi, nome e cognome, che saranno di tipo char, in realtà, successioni di caratteri, il campo età, invece, sarà di tipo int, quindi sarà un intero.
Usiamo un ciclo for per inserire i dati dei clienti e chiederemo a video quale cognome cercare, lo memorizzeremo in una variabile cerca, che andrà poi ad essere usata nel programma per effettuare la ricerca, con che cosa?
Attraverso la funzione strcmp, e utilizzeremo
la variabile trovato per registrare se abbiamo avuto un esito positivo nella nostra ricerca oppure negativo.
Questo è il programma, inclusione delle librerie std i o e string, definizione di una costante max posta a 100.
Definiamo, poi, la struttura cliente che è composta appunto dai tre campi, cognome, nome, età.
Cognome e nome sono due vettori di tipo char, cognome di 30 elementi e nome di 20 elementi, quindi, al massimo, potremmo avere un cognome che sarà lungo 30 caratteri oppure un nome che, e un nome che sarà lungo 20 caratteri, età è un intero.
Quindi, andiamo, poi, nel programma main, il cliente, definiamo una variabile di tipo cliente che è un vettore di 100 elementi.
Ogni elemento di questo vettore conterrà i tre dati cognome, nome ed età.
Andiamo poi a dichiarare delle variabili, tre variabili intere, n, j e i, e la variabile trovato, sempre variabile intera, che inizializziamo a zero, mentre la variabile intera n la inizializziamo con il valore 100.
Definiamo, dichiariamo una variabile di tipo char, che è la variabile cerca, massimo di 30 elementi, di tipo char, uguali agli elementi del cognome perché la variabile cerca la utilizzeremo per fare la ricerca, cioé la riempiremo con il valore del cognome da cercare.
Quindi, iniziamo con un ciclo for da 0 a 100, in realtà, da 0 a 99, perché c'è un i minore, strettamente minore di n, e quindi andiamo a ciclare tutti gli elementi della mia struttura cliente, e andiamo a riempire ogni elemento con cognome, nome ed età, andando ad inserire quindi da video i valori appunto corrispondenti ai diversi clienti.
Quindi, stampiamo a video la domanda “Quale cognome cercare?”, e andiamo a leggere il cognome da cercare, che andiamo a mettere nella variabile cerca.
Quindi, facciamo un altro ciclo, cioè andiamo a fare un ciclo su tutti gli elementi che adesso abbiamo riempito della nostra struttura clienti, andiamo a vedere se la variabile cerca, cioè il cognome contenuto all'interno della variabile cerca, è contenuto, è uguale a quello che invece sta nel campo cognome della mia struttura cliente, se sì, lo stampo a video, altrimenti vado all'elemento, vado al passo successivo del mio ciclo for.
Nel momento in cui trovo almeno un cliente, cambio valore della variabile trovata, della variabile trovato, e lo pongo uguale ad 1, quindi esco dal ciclo, alla fine, dopo aver ciclato, dopo aver testato tutti gli elementi della mia struttura cliente, e se la variabile trovato è uguale ad 1, allora non stamperò nulla, altrimenti, se, invece, la variabile è diversa da 1, cioè è rimasta uguale a 0, allora stamperò, appunto, cliente non trovato.