Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a. 2002-2003.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Puntatori Linguaggio C.
I tipi Strutturati.
Puntatori e gestione dinamica della RAM
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Funzioni Friend Come abbiamo visto non possiamo accedere a membri privati di una classe dall'esterno della classe. Ma a volte abbiamo bisogno di farlo.
Puntatori in C e C++.
Strutture dati In linguaggio C. Strutture Spesso gli algoritmi lavorano su insiemi di dati eterogenei Per esempio, per descrivere le caratteristiche di.
Dati strutturati C++.
Universita di Camerino
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Fondamenti di Informatica
Il linguaggio C Le strutture Le unioni Le liste concatenate C Language
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Caratteri e stringhe di caratteri
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
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 III 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 V: puntatori (1/3) Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1. 2 ALCUNE INFORMAZIONI PRELIMINARI Docente: E. Burattini Libri di testo: Deitel H.M., Deitel P.J. – C++ Fondamenti di programmazione,
Approfondimento delle classi
nome: sequenza di caratteri usata per denotare un oggetto
Lab. Calc. AA 2005/061 Classi. Lab. Calc. AA 2005/062 C e C++ Fino a questo punto abbiamo introdotto gli elementi base di qualsiasi linguaggio di programmazione,
Struct, enum, Puntatori e Array dinamici
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
File ad accesso casuale o random
Corso di informatica Athena – Periti Informatici
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
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
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Sintassi base e struttura di un programma
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Approfondimenti sulle Classi.
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.
CORSO DI PROGRAMMAZIONE II Lezione 22
GLI ARRAY MONODIMENSIONALI. Utilizzando le nostre attuali conoscenze, proviamo a risolvere il seguente problema: Calcolare la media dei voti conseguiti.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
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.
Vettori (a una dimensione)
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Fondamenti di Informatica II Ingegneria Informatica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
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.
Relazione sulle strutture dati Svolta da: Buccella Simone Strutture di dati Aree di memoria Puntatore numericibooleani alfabetici Statici dinamici Puntatori.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Copyright © Istituto Italiano Edizioni Atlas
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Strutture e Classi.
Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 9 e 10 - Segmenti.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Lezione 9 e 10 - Segmenti di memoria e puntatori - Aritmetica dei puntatori - Formattazione dei dati - Significato ed impiego del cast - Tipi di dato strutturato.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi sui dati strutturati 13 Tipi di dati strutturati.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a

Strutture Una struttura è un insieme ordinato di variabili, che prendono il nome di membri o elementi o campi. La struttura è un primo esempio di tipo composto (o equivalentemente tipo di dati aggregati), essendo composto da variabili di tipo diverso. Una struttura non può contenere una variabile dello stesso tipo della struttura stessa

Strutture Una struttura è definita usando la parola chiave struct struct nome_struttura { tipo1 var1; tipo2 var2; …. }; In questo modo è definito il tipo composto nome_struttura composto dalle variabili var1, var2, etc.

Strutture Es.: struct anagrafica { char nome[80]; char cognome[80]; int anni; float reddito; }; In questo modo è stato definito il tipo anagrafica

Strutture Essendo un tipo, non viene allocata alcuna memoria. Si alloca memoria ad una o più variabile di tipo struttura tramite la definizione di variabile nome_struttura var1, var2,...; Es.: anagrafica persona; L’istruzione alloca memoria per la variabile persona di tipo anagrafica.

Strutture E’ possibile definire una o più variabili di tipo struttura anche nel modo seguente: struct anagrafica { char nome[80]; char cognome[80]; int anni; float reddito; }persona1,persona2;

Strutture L’inizializzazione di una struttura è ottenuta elencando nelle parentesi graffe i valori dei singoli membri seguendo l’ordine con cui compaiono nella struttura e rispettandone il tipo: Es. anagrafica persona={"Pio", "Picchio", 50, }; L’accesso ai singoli membri avviene tramite l’uso dell’operatore punto (.). Es. persona.nome = "Pio "; persona.anni= 50;

Strutture E’ possibile raggruppare in array le strutture. Per accedere ad una struttura specifica all’interno di un array di strutture, occorre indicizzare il nome della struttura. Es. anagrafica persona[100]; persona[10].nome = "Pio"; persona[10].anni= 50;

Strutture E’ possibile definire puntatori a strutture. Es. anagrafica *persona, persona1; persona = &persona1; int *annip = &persona1.anni // annip punta al membro anni di persona1 E’ possibile accedere ai membri di una struttura attraverso un puntatore alla struttura usando l’operatore freccia (->). anagrafica *persona, persona1; persona = &persona1; persona->anni = 50;

Strutture L’operatore freccia e l’operatore punto si chiamano operatori di accesso ai membri oppure selettori di membro. Mentre non è possibile usare all’interno della struttura una variabile dello stesso tipo della struttura stessa, è possibile usare variabili di tipo puntatore alla struttura stessa struct radar{int longitudine, latitudine, altezza; radar fiumicino }; //NO !! struct radar{int longitudine, latitudine, altezza; radar *fiumicino }; //OK

Unioni Una unione è una locazione di memoria condivisa da due o più variabili ed è dichiarata usando la parola chiave union. La dimensione della locazione di memoria di una variabile union deve essere sufficiente a contenere la dimensione della variabile avente dimensione massima. union conn_msg {int conn_req, conn_rej; char msg[9]; }; conn_msg conn; // conn deve contenere 9 bytes (p.e. 12 bytes)

Unioni L’accesso ai membri di una union avviene tramite l’operatore punto (.) l’operatore freccia (->) con le stesse modalità della struct. Anche la dichiarazione di variabili union segue le stesse modalità della struct.

Unioni Un particolare tipo di union in C++ è la union anonima. Una union anonima non ha un nome di tipo e non è possibile dichiarare alcuna variabile con questo genere di union. I membri di una union anonima: condividono la stessa locazione di memoria sono trattati come variabili nell’ambito in cui è definita la union anonima

Unioni Es. union {int conn_req, conn_rej; char msg[9]; };. msg[0]=‘A’; msg[1]=‘B’;. conn_req=10; msg, conn_req e conn_rej sono considerate come variabili che condividono la stessa locazione di memoria e devono essere distinte da altri nomi definiti nell’ambito di definizione della union anonima.