Strutture

Abbiamo già parlato di array e matrici.

Un array è un esempio di struttura dati che utiliza tipi di dati semplici, come int, char, double e li organiza in un array elementare di elemeti tutti dello stesso tipo, cioè omogenei.

Però nelle strutture dati dei database, spesso è necessario organizzare i dati che non sono omogenei; come nome, cognome che sono di tipo char, età ed anno di nascita che sono di tipo intero, altezza o peso che di solito sono di tipo float,eccetera.

DEFINIZIONE:

Una struttura dati eterogenea prende il nome di record (o registrazione), è una struttura sequenziale composta in quanto è costituita da elementi di vario tipo detti campi, a loro volta composti da strutture più semplici: nel linguaggio C/C++ viene definita con la parola struct.

Il concetto di record è fondamentale per l'informatica, in quanto su di esso si basano tutte le tecniche di organizzazione e memorizzazione dei dati (file di record e database), che costituiscono l'elemento essenziale dei sistemi informatici.

Ma facciamo adesso degli esempi pratici.

ESEMPIO :Definiamo la struttura  seguente per un alunno:

------------------------------

int main(){

struct alunno
{char cognome[15];
 char nome[20];
 char localita[20];
 int classe;

char sezione;

float mediavoti;

bool ripetente;
};

Questa struttura , come si vede ha dei campi di tipo divrso: char, int, float, bool...

Dopo aver definito la struttura è possibile definire le variabili di questo tipo che si intendono utilizzare, ad esmpio per due alunni :

struct alunno filippo,giuseppe;  //definisce due variabili filippo e giuseppe che hanno la stessa struttura alunno definita precedentemente.

Possiamo anche definire la struttura ed indicare alla fine le variabili; come in questo caso:

 

int main(){

struct alunno
{char cognome[15];
 char nome[20];
 char localita[20];
 int classe;

char sezione;

float mediavoti;

bool ripetente;
}studente={"Rossi","Mario","Milano",4,"C",7.5,"SI"};

In questo caso abbiamo definito la struttura , una variabile ed abiamo inizializzato i suoi campi.

 

 ESCAPE='HTML'

Esempio

Scrivere un programma che copia il nome Pippo in una stringa e il cognome Monti in un’altra stringa e li visualizzi, li concateni e dopo li visualizzi.

#include<conio.h>

#include<stdio.h>

#include<string.h>

main(){

char s1[20],s2[20],sp[2];

strcpy(s1,"Pippo");

strcpy(s2,"Monti");

strcpy(sp," ");

puts(s1);

puts(s2);

strcat(s1,sp);

strcat(s1,s2);

puts(s1);

getch();}

 

 ESCAPE='HTML'

ESERCIZIO:

Un supermercato deve classificare i suoi prodotti attraverso una struttura con i seguenti campi: Nome_Prodotto, Genere_Alimentare, Numero_Pezzi_Venduti, Costo_Unitario, e un record di record con il giorno, mese e anno di vendita. Supporre che il supermercato inserisca dall’ es dall’ esterno almeno tre prodotti con tutti i suoi campi e che alla fine voglia stampare tutti i dati inseriti.

 ESCAPE='HTML'

Esercizio


/*Una biblioteca deve classificare i propri libri attraverso una struttura che 
evidenzi i seguenti campi: Titolo_Libro, nome e cognome dell' autore, codice ISBN,
e un record dei record in cui vengano inseriti i seguenti campi: anno di pubblicazione,
 ristampa (si,no), prezzo. Considerare che la biblioteca inserisca dall'interno almeno
  tre libri e che  alla fine stampi tutti i dati a video.
*/