Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a. 2001-2002 – 3° ciclo.

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

Introduzione al linguaggio C++
INFORMATICA Tipi strutturati
Puntatori e gestione dinamica della RAM
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Puntatori in C e C++.
Dati strutturati A. Ferrari.
Strutture dati In linguaggio C. Strutture Spesso gli algoritmi lavorano su insiemi di dati eterogenei Per esempio, per descrivere le caratteristiche di.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Dati strutturati C++.
Array (vettori) In linguaggio C / C++.
Programmazione object oriented in C++
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Anno accademico Array e puntatori in C.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Liste.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Process synchronization
Allocazione dinamica della memoria
Laboratorio di Linguaggi lezione III Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Laboratorio di Linguaggi lezione V: puntatori (1/3) Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1. 2 ALCUNE INFORMAZIONI PRELIMINARI Docente: E. Burattini Libri di testo: Deitel H.M., Deitel P.J. – C++ Fondamenti di programmazione,
Struct, enum, Puntatori e Array dinamici
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.
AN FI Un denominatoe comune Comandi u notazioni che esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno.
AN FI Array Array in Java. AN FI Array Dichiarazione di array in Java [ ]; //oppure u [] ; int a[]; int[] a; u La dimensione non è specificata.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Ereditarietà e Polimorfismo
Array a un dimensione : vettori
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
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
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Complessità di un algoritmo
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Approfondimenti sulle Classi.
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
Strutture dati elementari
Oggetti in C# Lezione 1 Classi ed istanze Oggetti in C# - Lezione 1.
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.
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.
Programmazione ad oggetti
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Il linguaggio C Puntatori e dintorni.
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 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Template.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
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.
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.
© Piero Demichelis Tipi strutturati I tipi considerati finora hanno la caratteristica comune di non essere strutturati: ogni elemento è una singola entità.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
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.
Informatica 6 Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Strutture e Classi.
Stringhe Una stringa è un vettore di char con un carattere costante \0 che indica la fine della stringa il terminatore rende differenti gli array di char.
Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 9 e 10 - Segmenti.
Lezione 9 e 10 - Segmenti di memoria e puntatori - Aritmetica dei puntatori - Formattazione dei dati - Significato ed impiego del cast - Tipi di dato strutturato.
Transcript della presentazione:

Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo

Strutture Unioni Puntatori, array e struct

Strutture (1) Una struttura è una n-upla ordinata di elementi, detti membri o campi, ciascuno dei quali ha uno specifico tipo ed uno specifico nome, e contiene una data informazione. Una struttura rappresenta una collezione di informazioni su un dato oggetto. Una struttura non può contenere una istanza di se stessa. La definizione di una struttura non riserva spazio in memoria; crea solo un nuovo tipo di dato.

Strutture (2) Le strutture sono tipo di dato aggregati che contengono elementi di altri tipi. Esempio di definizione di una struttura: struct anagrafico { char nome[20]; int anni; char indirizzo[30]; }; Dopo la parola-chiave struct segue il nome della struttura, detto anche etichetta/marcatore o tag, e, fra parentesi graffe, l’elenco dei componenti della struttura

Strutture (3) Dichiarazione di variabili struttura La definizione di una struttura ne descrive il contenuto ma non alloca memoria, cioè non crea istanze. Il nome della struttura è assunto come nuovo tipo, e quindi per istanziarla (cioè per creare una variabile, a cui viene allocata una quantità di memoria pari alla somma delle memorie che competono ai suoi membri ) è sufficiente la dichiarazione usuale. Es.:anagrafico anag1,anag2,anag3 ;

Strutture (4) Inizializzazione di variabili struttura L’ inizializzazione di una struttura è ottenuta elencando tra parentesi graffe i valori iniziali dei suoi membri, nello stesso ordine della dichiarazione di tipo. Es.: anagrafico anag1 = {“Rossi”, 30, “via di Tuscolo”};

Strutture (5) Le strutture sono tipo di dato aggregati che contengono elementi di altri tipi. struct time {int hour, minute, second;} struct persona { char nome[20]; char cognome[20]; struct {int giorno, mese, anno;}d_nascita; enum{F,M}sesso; } struct rettangolo {int alt, larg;} r; time, persona, rettangolo sono i tag/etichetta che danno il nome alla struttura.

Accesso ai membri di una struttura Per accedere ai membri di una struttura si utilizzano gli operatori di accesso ai membri: (o selettori di membro ): operatore punto (.) operatore freccia (->). accede ad un membro tramite il nome della variabile dell’oggetto rettangolo a; rettangolo b; a.alt=3; b.alt=a.alt; -> accede ad un membro di una struttura tramite un puntatore all’oggetto rettangolo* p=&r; p->alt=2; p->larg=4;

Puntatori a strutture Come tutti i tipi del C/C++, anche i tipi astratti, e in particolare le strutture, hanno i propri puntatori. Es. : int* p_anni = &anag1.anni ; anagrafico* p_anag = &anag1; Il primo caso dichiara un puntatore a int, che inizializza con l’indirizzo del membro anni dell’ oggetto anag1 ; Il secondo caso dichiara un puntatore al tipo-struttura anagrafico, che inizializza con l’indirizzo dell’ oggetto anag1.

Array di strutture I membri di una struttura possono essere array. Anche le istanze di una struttura possono essere array. Es.: struct alunno { char nome[20]; int voto[29];}; definizione alunno studente[40]; dichiarazione variabili studente[5].voto[10] = 30 ; accesso (lo studente n. 5 ha preso 30 nell’esame n. 10 !)

Inconvenienti della struct Pro Il programmatore può manipolare direttamente il tipo di dato strutturato. Contro Non esiste alcuna interfaccia che assicuri che il programmatore utilizzi correttamente il dato di tale tipo e che questo abbia sempre un significato.

Unioni Le unioni sono dichiarate tramite la parola chiave union e rappresentano aree di memoria che possono contenere dati di tipo diverso ed hanno una dimensione pari alla dimensione del tipo maggiore Es: union {int i; double d;} y; L’unione y occupa 64 bit che possono essere dedicati ad un valore intero lasciandone 32 inutilizzati o ad un valore reale.

Unioni (2) L’accesso ai membri dell’unione avviene gli operatori: operatore punto (.) operatore freccia (->) con le modalità note dalla struct.