Strutture dati In linguaggio C. Strutture Spesso gli algoritmi lavorano su insiemi di dati eterogenei Per esempio, per descrivere le caratteristiche di.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Puntatori Linguaggio C.
I tipi Strutturati.
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Dati strutturati A. Ferrari.
Stringhe di caratteri In linguaggio C.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Array multidimensionali
Dati strutturati C++.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Introduzione al linguaggio C
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Un nuovo tipo di dati Gli array.
Funzioni definite dall’utente
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e Puntatori Marco D. Santambrogio – Ver. aggiornata al 18 Marzo 2013.
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 4 Marzo 2013.
Laboratorio di Linguaggi lezione VI: puntatori 2/3 Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Laboratorio di Linguaggi lezione VIII Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Laboratorio di Linguaggi P R I M O C O M P I T I N O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
1. 2 ALCUNE INFORMAZIONI PRELIMINARI Docente: E. Burattini Libri di testo: Deitel H.M., Deitel P.J. – C++ Fondamenti di programmazione,
APPUNTI SUL LINGUAGGIO C
memoria gestita staticamente:
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
Struct, enum, Puntatori e Array dinamici
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Dichiarazioni e tipi predefiniti nel linguaggio C
La Programmazione Ricorsiva
Le funzioni.
1 ListaDiElem Cancella( ListaDiElem lista, TipoElemento elem ) { ListaDiElem puntTemp; if( ! ListaVuota(lista) ) if( lista–>info == elem ) { puntTemp =
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Unità Didattica 3 Linguaggio C
Passaggio di parametri per indirizzo
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Complessità di un algoritmo
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
CORSO DI PROGRAMMAZIONE II Lezione 22
Le struct con il C. Cosa sono ? Variabili strutturate come i vettori … … ma che superano una limitazione dei vettori.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
1 Il linguaggio C Puntatori e dintorni. 2 Puntatori : idea di base In C è possibile conoscere e denotare l’indirizzo della cella di memoria in cui è memorizzata.
CORSO DI PROGRAMMAZIONE II
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Il linguaggio C Notate che ....
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Copyright © Istituto Italiano Edizioni Atlas
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.
Introduzione alle Classi e agli Oggetti in Java 1.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Transcript della presentazione:

Strutture dati In linguaggio C

Strutture Spesso gli algoritmi lavorano su insiemi di dati eterogenei Per esempio, per descrivere le caratteristiche di uno studente potremmo utilizzare le variabili classe, sezione, cognome, nome e votoFinale, rispettivamente di tipo int, char, array di char (stringa) e float. Sarebbe più naturale utilizzare una sola variabile in cui memorizzare tutti gli elementi dellaggregazione. E quindi necessario definire un nuovo tipo dato, che è unaggregazione di tipi dati eterogenei. In informatica spesso si fa riferimento a unaggregazione di dati di tipo eterogeneo con il termine record (registrazione) e ai suoi elementi con il termine campo del record. Nel linguaggio C/C++ unaggregazione di dati di tipo eterogeneo è una struttura e ogni suo elemento un membro della struttura.

struct struct studente struct studente { int classe; int classe; char sezione; char sezione; char cognome[15]; char cognome[15]; char nome[15]; char nome[15]; float votoFinale; float votoFinale; }; };

Nuovi tipi di dato La dichiarazione di un tipo di dato è simile nei vari linguaggi (tranne per piccole differenze sintattiche) La dichiarazione non alloca spazio in memoria e non definisce alcuna variabile. Una volta dichiarato il tipo studente si possono definire variabili di quel tipo: struct studente iscritto; iscritto è una variabile strutturata, composta da cinque parti: una di tipo int, classe, una di tipo char, sezione, due di tipo stringa (array di char), cognome e nome, una di tipo float, votoFinale. La dichiarazione di una variabile di tipo struttura alloca la memoria necessaria a contenere i suoi elementi, ciascuno in base al proprio tipo di dato.

Sintassi in C Dichiarazione di un nuovo tipo di dato: struct struttura { tipo1 membro1; tipo2 membro2;... tipo3 membroN; }; Dichiarazione di variabili struct struttura variabile1, variabile2.. variabileN; Esempio struct studente iscritto, a, b;

Sintassi alternativa in C Dichiarazione di variabili di un nuovo tipo di dato: struct struttura { tipo1 membro1; tipo2 membro2;... tipo3 membroN; } variabile1, variabile2.. variabileN;

Esempio duso Per fare riferimento ai campi di una variabile di tipo struttura si utilizza loperatore punto. Sintassi: variabileStruttura.membro Esempi: iscritto.classe = 3; iscritto.sezione = A; strcpy(iscritto.cognome =,Bianchi); strcpy(iscritto.nome,Francesca); iscritto.votoFinale = 8.5;

Strutture annidate struct residenza { char indirizzo[35]; char citta'[30]; char prov[2]; char telefono[15]; }; struct studente { int classe; char sezione; char cognome[15]; char nome[15]; struct residenza recapito; float votoFinale;};

Esempio duso La struttura studente ha il campo recapito di tipo struttura residenza. Se stud1 è una variabile di tipo studente, per fare riferimento al numero di telefono dello studente si scrive stud1.recapito.telefono

Array di struct Un array di struct rappresenta un insieme di entità dello stesso tipo, per esempio tutti gli studenti di un istituto. Si ottengono oggetti che rappresentano aggregazioni omogenee (gli array) di oggetti eterogenei (le strutture. struct studente istituto[100]; Lesempio definisce un array composto da 100 elementi omogenei di tipo studente

struct come parametri Una variabile di tipo stuct può essere passata come parametro ad una funzione In questo caso è necessario che la dichiarazione della struttura sia globale (visibile dal programma e dalla funzione Esempio void visualizzaStudente(struct studente s)

Passaggio per indirizzo Una variabile di tipo struct puù essere passata per indirizzo Esempio void leggiStudente(struct studente *s) In questo caso il riferimento ad un campo della struttura allinterno della funzione sarà per esempio: (*s).sezione il campo sezione della struttura allindirizzo s Esempio di input scanf("%d",&(*s).classe);

Notazione alternativa Nellesempio precedente è possibile utilizzare al posto di (*s).sezione La notazione s->sezione In pratica (*struttura). Può essere sostituito da struttura->

Una funzione che ritorna un valore di tipo struct struct studente leggiStud() { struct studente s; printf("Inserisci la classe dello studente: "); scanf("%d",&s.classe); //... return s; } Che viene chiamata per esempio: s1 = leggiStud();