1 / 16

SAD Tabelle

SAD Tabelle. Implementazione C++. La tabella. Una tabella è una Struttura Astratta di Dati (SAD). Una tabella è un insieme di dati omogenei composti ciascuno da due parti: chiave; valore. La chiave identifica univocamente ciascun elemento di una tabella.

prem
Download Presentation

SAD Tabelle

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SADTabelle Implementazione C++

  2. La tabella Una tabella è una Struttura Astratta di Dati (SAD). Una tabella è un insieme di dati omogenei composti ciascuno da due parti: • chiave; • valore. La chiave identifica univocamente ciascun elemento di una tabella. Il valore descrive il contenuto dell’elemento della tabella.

  3. Esempio di tabella: elenco alunni • Chiave  numero d’ordine • Valore  cognome, nome, data di nascita

  4. Esempio di tabella: elenco articoli • Chiave  codice articolo • Valore  nome, colore, giacienza

  5. Esempio di tabella: gara sportiva • Chiave  numero d’ordine • Valore  nome, squadra, punteggio

  6. Tabella e record Ogni tabella è rappresentata graficamente da righe e colonne: • ogni riga individua il record della tabella, cioè la coppia chiave/valore (record); • ogni colonna individua i campi.

  7. Il record Un record è un tipo di dato strutturato organizzato in campi. I campi di un record possono essere di tipo differente fra loro. Il record STUDENTE è composto dai campi CODICE, COGNOME, NOME, CLASSE , NASCITA

  8. Il tracciato di un record Il tracciato di un record è la rappresentazione grafica dei campi di cui si compone un record. Ogni campo è definito del suo tipo. Possono esistere record di record! char 25 char 20 char 3 int 4

  9. definizione dei campi del record definizone di un nuovo tipo di dato record stud presenza obbligatoria del ‘;’ definizione di una variabile del tipo record stud Implementazione del record in C++ struct stud { string cognome; string nome; int annoNascita; }; ATTENZIONE! La struct definisce il tracciato record, cioè il tipo di dato record! Bisogna creare una variabile di tipo stud. stud studente;

  10. La visualizzazione del record prevede l’output dei singoli campi Trattamento dei campi di un record Dato un record stud e una variabile studente di tipo stud L’input e l’output dei record avviene un campo alla volta struct stud { string cognome; string nome; int annoNascita; }; stud studente; Esempio:cout<<“\ncognome = “<<studente.cognome; cout<<“\nnome = “<<studente.nome; cout<<“\nanno di nascita = “<<studente.annoNascita; ESERCIZIO:RECORD LIBROCodifica un programma in cui definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; acquisisci poi due libri e comunica tutti i dati di quello che costa di più soluzione

  11. Tabelle - vettori di record In particolare parliamo di vettori di record di solito detti tabella perché formati da tante colonne quanti sono i campi del record e da tante righe quanti sono gli elementi dell’array struct stud { string cognome; string nome; int annoNascita; }; stud classe [20]; Facendo sempre riferimento al record stud, vogliamo definire 20 studenti di una stessa classe. Perciò scriveremo dimensione della tabella Tipo base Nome della tabella

  12. Esempio di una tabella Come nei vettori le righe sono individuate da un indice di posizione (che parte da 0) mentre ogni riga essendo un record, avrà tutti i campi della struttura 6° record Campo nome del 7° record

  13. Elaborazione di una tabella Nell’elaborazione di una tabella si usano le tecniche già viste per i vettori e per i record. • In quanto vettore, l’elaborazione di ciascuna riga della tabella avviene una alla volta. • Poiché ogni riga è un record, ogni campo deve essere elaborato singolarmente • Il ciclo for (iterazione enumerativa) è, in questi casi, il più adatto

  14. Elaborazione di una tabella struct stud { string cognome; string nome; int annoNascita; }; stud classe [20]; Acquisizione e visualizzazione della tabella classe int i; // dichiarazione dell’indice for (i = 0; i<20; i++) // ciclo di acquisizione {getline(cin,classe[i].cognome,’\n’); getline(cin,classe[i].nome,’\n’); cin>>classe[i].annoNascita; cin.ignore(1); } for (i = 0; i<20; i++) // ciclo di visualizzazione {cout<<classe[i].cognome<<endl; cout<<classe[i].nome<<endl; cout<<classe[i]. annoNascita <<endl; } ESERCIZIO: TABELLA BIBLIOTECA Definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; definisci poi una tabella di 10 libri; acquisisci i libri della tabella e comunica poi tutti i dati ; calcola il prezzo medio dei libri soluzione

  15. Esercizio : record libro #include <cstdlib> #include <iostream> #include <string> using namespace std; struct libro { string titolo; float prezzo; int numeroPagine; }; main() { libro L1, L2; cout<<"\nindica i dati del primo libro:"<<endl; cout<<"\ntitolo : "; cin>>L1.titolo; cout<<"\nprezzo : "; cin>>L1.prezzo; cout<<"\npagine : "; cin>>L1.numeroPagine; cout<<"\nindica i dati del secondo libro:"<<endl; cout<<"\ntitolo : "; cin>>L2.titolo; cout<<"\nprezzo : "; cin>>L2.prezzo; cout<<"\npagine : "; cin>>L2.numeroPagine; Codifica un programma in cui definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; acquisisci poi due libri e comunica tutti i dati di quello che costa di più if(L1.prezzo>L2.prezzo) { cout<<"\nIl libro piu' costo e' "<<L1.titolo; cout<<" con prezzo "<<L1.prezzo; cout<<" e pagine "<<L1.numeroPagine<<endl; } else { cout<<"\nIl libro piu' costo e' "<<L2.titolo; cout<<" con prezzo "<<L2.prezzo; cout<<" e pagine "<<L2.numeroPagine<<endl; } system("PAUSE"); }

  16. #include <cstdlib>#include <iostream>#include <string>#define dim 10using namespace std; struct libro { string titolo; float prezzo; int numeroPagine; }; int main(){ libro biblioteca[dim]; int i=0; float s=0, m=0; system("cls"); cout<<"\nACQUISIZIONE DEI LIBRI"; for(i=0;i<dim;i++) { cout<<"\ntitolo : "; cin>>biblioteca[i].titolo; cout<<"\nprezzo : "; cin>>biblioteca[i].prezzo; cout<<"\npagine : "; cin>>biblioteca[i].numeroPagine; } Esercizio : tabella biblioteca Definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; definisci poi una tabella di 10 libri; acquisisci i libri della tabella e comunica poi tutti i dati ; calcola il prezzo medio dei libri cout<<"\nVISUALIZZAZIONE DEI LIBRI"; for(i=0;i<dim;i++) { cout<<"\ntitolo : "<<biblioteca[i].titolo; cout<<" prezzo : "<<biblioteca[i].prezzo; cout<<" pagine : "<<biblioteca[i].numeroPagine<<endl; } for(i=0;i<dim;i++) { s=s+biblioteca[i].prezzo; } m=s/dim; cout<<"\nla media dei prezzi e' : "<<m<<endl; system("PAUSE"); return EXIT_SUCCESS;}//fine

More Related