Astrazione Dati. Nicola Fanizzi. Linguaggi di Programmazione [010194] 10 mag, Dipartimento di Informatica Università degli Studi di Bari

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Astrazione Dati. Nicola Fanizzi. Linguaggi di Programmazione [010194] 10 mag, Dipartimento di Informatica Università degli Studi di Bari"

Transcript

1 Astrazione Dati Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 10 mag, 2016

2 Sommario 1 Astrazione dati Incapsulamento Esempio / ADT pila di interi 2 Information hiding Specifica di ADT Indipendenza dalla rappresentazione 3 Moduli ADT vs. Moduli Moduli generici Astrazione Dati 10 mag, / 30

3 Agenda 1 Astrazione dati Incapsulamento Esempio / ADT pila di interi 2 Information hiding 3 Moduli Astrazione Dati 10 mag, / 30

4 Incapsulamento e tipi Macchina fisica: dati = stringhe di bit Macchina astratta: valore di un determinato tipo capsula che riveste la stringa di bit trasparenza determinata dal sistema di tipi più opaca nei linguaggi sicuri Astrazione Dati 10 mag, / 30

5 Pila di interi in pseudo-c++ 1 type Int_Stack = struct { 2 int P[100]; // lo stack 3 int top; // I elem. leggibile 4 } 5 6 Int_Stack crea_pila() { 7 Int_Stack s = new Int_Stack(); 8 s.top = 0; 9 return s; 10 } int top(int_stack s) { 13 return s.p[s.top]; 14 } bool empty(int_stack s) { 18 return (s.top == 0); 19 } Int_Stack push(int_stack s, int k) { 22 if (s.top == 100) errore(); 23 s.p[s.top] = k; 24 s.top = s.top + 1; 25 return s; 26 } Int_Stack pop(int_stack s) { 29 if (s.top == 0) errore(); 30 s.top = s.top - 1; 31 return s; 32 } NB il linguaggio non dà alcuna garanzia sul fatto che la pila possa essere manipolata solo attraverso le funzioni definite Astrazione Dati 10 mag, / 30

6 Costruttori di tipo Veri e propri nuovi tipi? Generalmente i meccanismi di costruzione di tipi di dati (es. array, record) non consentono la definizione di operazioni sui valori che si rappresentano Esempio pila di interi realizzata con un array (Pascal, C,... ) operazioni: push, pop, empty, top Problema: nulla vieta la manipolazione diretta dell array 1 int second_from_top(int_stack c) { 2 return c.p[s.top - 1]; 3 } Astrazione Dati 10 mag, / 30

7 Astrazione dati Obiettivo rendere inaccessibile la rappresentazione Tipo di dato astratto (ADT): nome tipo implementazione dei valori (rappresentazione) insieme dei nomi delle operazioni per ogni operazione implementazione dell operazione che usi la rappresentazione capsula di sicurezza che separi nomi di tipi ed operazioni (interfaccia o segnatura) dalla loro implementazione (realizzazione) Nei linguaggi più evoluti, ADT come tipi predefiniti es. ML, CLU,... Astrazione Dati 10 mag, / 30

8 ADT pila di interi 1 abstype Int_Stack; 2 3 type Int_Stack = struct { 4 int P[100]; 5 int n; 6 int top; 7 } 8 9 signature Int_Stack crea_pila(); 12 int top(int_stack s); 13 bool empty(int_stack s); 14 Int_Stack push(int_stack s,int k); 15 Int_Stack pop(int_stack s); Astrazione Dati 10 mag, / 30

9 ADT pila di interi [... cont.] 19 operations Int_Stack crea_pila() { 22 Int_Stack s = new Int_Stack(); 23 s.top = 0; 24 return s; 25 } int top(int_stack s) { 28 return s.p[s.top]; 29 } bool empty(int_stack s){ 32 return (s.n == 0); 33 } Astrazione Dati 10 mag, / 30

10 ADT pila di interi [... cont.] 37 Int_Stack push(int_stack s,int k) { 38 if (s.top == 100) errore(); 39 s.p[s.top] = k; 40 s.top = s.top + 1; 41 return s; 42 } Int_Stack pop(int_stack s) { 45 if (s.top == 0) errore(); 46 s.top = s.top - 1; 47 return s; 48 } Astrazione Dati 10 mag, / 30

11 ADT pila di interi [... cont.] Esempio nuovo tipo astratto per variabili intere implementato (in modo inefficiente) attraverso una pila Int_Stack 1 abstype Int_Var{ 2 3 type Int_Var = Int_Stack; 4 5 signature 6 7 Int_Var create_var(); 8 int deref(int_var v); 9 Int_Var assign(int_var v, int n); operations Int_Var create_var() { 14 return push(create_stack(),0); 15 } 16 Astrazione Dati 10 mag, / 30

12 ADT pila di interi [... cont.] 17 int deref(int_var v) { 18 return top(v); 19 } Int_Var assign(int_var v, int n){ 22 return push(pop(v),n); 23 } 24 } nell implementazione di Int_Var, quella di Int_Stack è invisibile perché incapsulata Astrazione Dati 10 mag, / 30

13 Agenda 1 Astrazione dati 2 Information hiding Specifica di ADT Indipendenza dalla rappresentazione 3 Moduli Astrazione Dati 10 mag, / 30

14 Information hiding Information hiding separare interfaccia da implementazione astrazione sul controllo: nasconde codice del corpo astrazione dati: nasconde codice ma anche rappresentazione Il sistema dei tipi garantisce che l astrazione non venga violata vantaggi è possibile sostituire un implementazione mantenendo la stessa interfaccia es. pila realizzata con lista concatenata anziché con vettore Astrazione Dati 10 mag, / 30

15 Esempio nuova pila di interi Esempio 1 abstype Int_Stack{ 2 pila implementata come lista concatenata 3 type Int_Stack = struct{ 4 int info; 5 Int_Stack next; 6 } 7 8 signature 9 10 Int_Stack create_stack(); 11 Int_Stack push(int_stack s, int k); 12 int top(int_stack s); 13 Int_Stack pop(int_stack s); 14 bool empty(int_stack s); Astrazione Dati 10 mag, / 30

16 Esempio nuova pila di interi [... cont.] 18 operations Int_Stack create_stack(){ 21 return null; 22 } Int_Stack push(int_stack s, int k){ 25 Int_Stack tmp = new Int_Stack(); // nuovo elem. 26 tmp.info = k; 27 tmp.next = s; // concatena alla pila 28 return tmp; 29 } int top(int_stack s){ 32 return s.info; 33 } Astrazione Dati 10 mag, / 30

17 Esempio nuova pila di interi [... cont.] 36 Int_Stack pop(int_stack s){ 37 return s.next; 38 } bool empty(int_stack s){ 41 return (s == null); 42 } 43 } Astrazione Dati 10 mag, / 30

18 Specifica di ADT Descrizione della semantica delle operazioni di un ADT espressa attraverso relazioni generali astratte in linguaggio naturale, schemi semi-formali, linguaggi formalizzati manipolabili da theorem-prover,... es. ADT pila di interi crea_pila: crea una pila vuota push: inserisce un elemento sulla pila; top: restituisce l elemento in cima alla pila (non vuota) senza modificare la stessa pop: elimina l elemento in cima alla pila (non vuota) empty: vero sse pila vuota specifica = contratto tra cliente e ADT implementazione corretta deve corrispondere alla specifica Astrazione Dati 10 mag, / 30

19 Indipendenza dalla rappresentazione Due implementazioni corrette di una stessa specifica di un ADT risultano indistinguibili da parte dei clienti un cliente dell ADT non deve accorgersi in caso di cambiamento dell implementazione versione debole: sostituzione (senza errori di tipo) a parità di segnatura dimostrata come un teorema per linguaggi type-safe come CLU, ML,... Astrazione Dati 10 mag, / 30

20 Agenda 1 Astrazione dati 3 Moduli ADT vs. Moduli Moduli generici 2 Information hiding Astrazione Dati 10 mag, / 30

21 Moduli Programmazione in piccolo : ADT Programmazione in grande : modulo astrazione di più strutture dati correlate es. package Java; unit Pascal/Delphi partizionamento di un programma complesso in unità più semplici dichiarazioni dati: tipi, variabili,... operazioni: funzioni,... regole di visibilità: incapsulamento, occultamento dell informazione (information hiding) Astrazione Dati 10 mag, / 30

22 ADT vs. Moduli in teoria: nessuna differenza in pratica: moduli più flessibili permeabilità della capsula selezione degli operatori visibili e del loro grado di visibilità moduli generici (polimorfici) risoluzione al momento dell uso compilazione separata (unità di compilazione) Astrazione Dati 10 mag, / 30

23 Modulo Buffer, Counter e Queue 1 module Buffer imports Counter{ 2 public 3 type Buf; 4 void insert(reference Buf f, int n); 5 int get(buf b); 6 Count c; // quante volte e stato utilizzato 7 private imports Queue{ 8 type Buf = Queue; 9 void insert(reference Buf b, int n){ 10 inqueue(b,n); 11 inc(c); 12 } 13 int get(buf b){ 14 return dequeue(b); 15 inc(c); 16 } 17 init_counter(c); // inizializzazione del modulo 18 } Astrazione Dati 10 mag, / 30

24 Modulo Buffer, Counter e Queue [... cont.] 1 module Counter{ 2 public 3 type Count; 4 void init_counter(reference Count c); 5 int get(count c); 6 void inc(reference Count c); 7 private 8 type Count = int; 9 void init_counter(reference Count c){ 10 c=0; 11 } 12 int get(count c){ 13 return c; 14 } 15 void inc(reference Count c){ 16 c = c+1; 17 } 18 } Astrazione Dati 10 mag, / 30

25 Modulo Buffer, Counter e Queue [... cont.] 1 module Queue{ 2 public 3 type Queue; 4 inqueue(reference Queue q, int n); 5 int dequeue(reference Queue q); private 8 void bookkeep(reference Queue q){ } } Astrazione Dati 10 mag, / 30

26 Modulo Composizione parte pubblica: visibile all esterno parte privata: invisibile uso di un modulo: importazione spesso congiunto con il polimorfismo parametrico risolto a linking-time collegamento a funzioni precompilate di libreria Astrazione Dati 10 mag, / 30

27 Moduli generici module Buffer<T> imports Counter{ public type Buf; void insert(reference Buf f, <T> n); <T> get(buf b); Count c; // quante volte si e usato il buffer } private imports Queue<T>{ type Buf = Queue; void insert(reference Buf b, <T> n){ inqueue(b,n); inc(c); } <T> get(buf b){ return dequeue(b); inc(c); } Astrazione Dati 10 mag, / 30

28 Moduli generici [... cont.] module Counter{ public type Count; void init_counter(reference Count c); int get(count c); void inc(reference Count c); private type Count = int; void init_counter(reference Count c){ c = 0; } int get(count c){ return c; } void inc(reference Count c){ c = c+1; } } init_counter(c); // inizializzazione del modulo Astrazione Dati 10 mag, / 30

29 Moduli generici [... cont.] module Queue<S>{ public type Queue; inqueue(reference Queue q, <S> n); <S> dequeue(reference Queue q);... private void bookkeep(reference Queue q){... }... } Astrazione Dati 10 mag, / 30

30 Riferimenti Gabbrielli & Martini: Linguaggi di Programmazione, McGraw-Hill. 2a edizione. Cap. 11 Astrazione Dati 10 mag, / 30

Tipi di Dati Astratti

Tipi di Dati Astratti Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di

Dettagli

in più stringhe,... ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,...

in più stringhe,... ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,... ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,... una stringa è qualcosa che si può concatenare, spezzare in più stringhe,...

Dettagli

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list Esercitazione: Implementazione in linguaggio C dell ADT Stack con l utilizzo di linked list Laboratorio di Programmazione Introduzione un ADT (Abstract Data Type) è un modello (formale) che generalizza

Dettagli

Programmazione orientata agli oggetti

Programmazione orientata agli oggetti Programmazione orientata agli oggetti La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione che prevede di raggruppare in un unica entità (la classe)

Dettagli

Lezione 11 programmazione in Java. Anteprima. Gestione della memoria

Lezione 11 programmazione in Java. Anteprima. Gestione della memoria Lezione 11 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Gestione della Memoria Dati dinamici e statici Il passaggio di parametri

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti Tipi di dati Tipo = insieme di valori + insieme di operazioni Es. int: valori:, -2, -1, 0, 1, 2, operazioni:: +,-,*,/,

Dettagli

Questa soluzione va contemplata quando le lunghezze stimate dalle liste usate sono significativamente maggiori delle dimensioni di un elemento.

Questa soluzione va contemplata quando le lunghezze stimate dalle liste usate sono significativamente maggiori delle dimensioni di un elemento. Un ulteriore semplificazione si ottiene utilizzando un elemento sentinella (dummy) che non contiene informazione, ma serve a segnalare la fine (e l inizio) di una lista. Questa soluzione va contemplata

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Implementazione Java di un ADT

Implementazione Java di un ADT Implementazione Java di un ADT Primo passo definire l'interfaccia (API) dell' ADT (l'api descrive i nomi dei metodi che l'adt supporta e come essi sono dichiarati e usati) Secondo passo scrivere il codice

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica

Dettagli

Liste con sentinella. intlist *createlist(void){ intlist *q = malloc(sizeof(intlist)); if(!q) { exit(-1); } q->next = q->prev = q; return q; }

Liste con sentinella. intlist *createlist(void){ intlist *q = malloc(sizeof(intlist)); if(!q) { exit(-1); } q->next = q->prev = q; return q; } Liste con sentinella Un ulteriore semplificazione delle operazioni sulle liste si ottiene utilizzando un elemento sentinella (dummy) che non contiene informazione, ma serve a segnalare la fine e l inizio

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Specifica: la sintassi. Specifica: la semantica. Specifica: la semantica

Specifica: la sintassi. Specifica: la semantica. Specifica: la semantica Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi Che cos è un tipo di dato? Tutti i linguaggi di programmazione tipati forniscono tipi ed operatori predefiniti

Dettagli

Informatica 3. LEZIONE 5: Tipi di dati

Informatica 3. LEZIONE 5: Tipi di dati Informatica 3 LEZIONE 5: Tipi di dati Modulo 1: Tipi e costruttori di tipo Modulo 2: Tipi definiti dall utente e tipi di dati astratti Modulo 3: Sistemi di tipi Informatica 3 Lezione 5 - Modulo 1 Tipi

Dettagli

Esercizi Strutture dati di tipo astratto

Esercizi Strutture dati di tipo astratto Salvatore Cuomo Esercizi Strutture dati di tipo astratto Lezione n. 20 Parole chiave: Strutture dati, pile code, liste Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio

Dettagli

Client - Interfaccia - Implementazione

Client - Interfaccia - Implementazione Client - Interfaccia - Implementazione Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

Dettagli

Tipo di Dato. Abstract Data Types. Tipi di Dato Astratti /2. Tipi di Dato Astratti /1

Tipo di Dato. Abstract Data Types. Tipi di Dato Astratti /2. Tipi di Dato Astratti /1 Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche Abstract Data Types Prof. Stefano Guerrini guerrini@di.uniroma1.it Programmazione II (can. P-Z) A.A. 2005-06 Tipo di Dato

Dettagli

Argomenti della lezione. Tipo di dato astratto. Array. Tipo di dato Lista. Liste Implementazione di liste in Java Stack Code

Argomenti della lezione. Tipo di dato astratto. Array. Tipo di dato Lista. Liste Implementazione di liste in Java Stack Code Argomenti della lezione! Tipi di dato astratti! Strutture dati elementari Liste Implementazione di liste in Java Stack Code! Esempi di applicazione Tipo di dato astratto! Tipo di dato astratto o ADT (Abstract

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati A.A. 15/16 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Contatti Studio: stanza 513, V piano DIB Telefono: 080 544 2297 email: nicola.dimauro@di.uniba.it

Dettagli

Informatica 3. Informatica 3. LEZIONE 13: Liste doppie, pile e code. Lezione 13 - Modulo 1. Free list (2) Free list. Free list

Informatica 3. Informatica 3. LEZIONE 13: Liste doppie, pile e code. Lezione 13 - Modulo 1. Free list (2) Free list. Free list LEZIONE 13: Liste doppie, pile e code Modulo 1: Free list Modulo 2: Lista doppia Modulo 3: Pila Modulo 4: Coda Lezione 13 - Modulo 1 Free list Politecnico di Milano - Prof. Sara Comai 1 Politecnico di

Dettagli

Informatica 3. Informatica 3. LEZIONE 5: Tipi di dati. Lezione 5 - Modulo 1. Tipi predefiniti. Introduzione

Informatica 3. Informatica 3. LEZIONE 5: Tipi di dati. Lezione 5 - Modulo 1. Tipi predefiniti. Introduzione Informatica 3 Informatica 3 LEZIONE 5: Tipi di dati Lezione 5 - Modulo 1 Modulo 1: Tipi e costruttori di tipo Modulo 2: Tipi definiti dall utente e tipi di dati astratti Modulo 3: Sistemi di tipi Tipi

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 09 ADT: Lista, Pila, Coda A. Miola Marzo 2007 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti Tipo

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE PILE E CODE DI DATI DISPENSA 11.02 11-02_Pile_Code_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative Common CC BY-NC-SA.

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese

Programmazione orientata agli oggetti. Ivan Lanese Programmazione orientata agli oggetti Ivan Lanese Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Scrivere grosse applicazioni La gran parte delle applicazioni sono GROSSE Windows

Dettagli

Introduzione all OOP!

Introduzione all OOP! Introduzione all OOP! Introdurre l evoluzione dei linguaggi di programmazione e la loro classificazione Introdurre l OOP (astrazione, incapsulamento, ereditarietà) Dal C a Java un primo esempio 1 LINGUAGGI

Dettagli

PILE E CODE. Pile (stack):

PILE E CODE. Pile (stack): PILE E CODE Sono tipi di dato che consentono di rappresentare sequenze di elementi in cui gli inserimenti e le cancellazioni sono eseguiti con particolari modalita` (politiche o discipline). Pile (stack):

Dettagli

Polimorfismo parametrico vs polimorfismo per inclusione

Polimorfismo parametrico vs polimorfismo per inclusione Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico

Dettagli

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 8 SE PROGRAMMER

Dettagli

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte)

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte) ADT: Abstract Data Type I tipi di dati astratti (I parte) Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Scopo Livello di astrazione sui dati tale da mascherare completamente

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java

Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java 1 Specifica ed Implementazione di Tipi di Dato Astratti in Java cos è un tipo di dato astratto specifica di tipi di dati astratti un tipo

Dettagli

I numeri razionali. Specifica: la sintassi. Specifica: la semantica

I numeri razionali. Specifica: la sintassi. Specifica: la semantica Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi Che cos è un tipo di dato? Tutti i linguaggi di programmazione tipati forniscono tipi ed operatori predefiniti

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Linked Lists. Liste linkate (1) liste linkate ( stack, queues ), trees. Liste linkate come strutture

Linked Lists. Liste linkate (1) liste linkate ( stack, queues ), trees. Liste linkate come strutture Linked Lists Liste linkate () La combinazione di class/struct e puntatori porta alla creazioni di interessanti Abstract Data Type liste linkate ( stack, queues ), trees Liste linkate come strutture struct

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

La programmazione ad oggetti: chiamate di metodi. Overloading. This

La programmazione ad oggetti: chiamate di metodi. Overloading. This ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Abstact Data Type. Abstact Data Type. Pubblico e privato. Struttura di un ADT

Abstact Data Type. Abstact Data Type. Pubblico e privato. Struttura di un ADT Abstact Data Type 2 Abstact Data Type Ver. 2.4 ADT, definisce un concetto astratto e il suo comportamento Viene utilizzato come una scatola nera (oggetto) di cui è visibile solo che cosa fa e non come

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Corso di Algoritmi e Strutture Dati con Laboratorio. Tipi di dato pila e coda

Corso di Algoritmi e Strutture Dati con Laboratorio. Tipi di dato pila e coda Corso di Algoritmi e Strutture Dati con Laboratorio Tipi di dato pila e coda Uno stack è una collezione di elementi ( tipo di dato astratto) che supporta le seguenti operazioni tipiche: push, pop, peek

Dettagli

Strutture dati dinamiche in C (II)

Strutture dati dinamiche in C (II) Strutture dati dinamiche in C (II) Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Le liste concatenate (ancora ma in modo più formale) L

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Dettagli

Liste concatenate. Collezione ordinata di nodi. Carlo Paolo Simona. Anna. ciascun nodo contiene due riferimenti:

Liste concatenate. Collezione ordinata di nodi. Carlo Paolo Simona. Anna. ciascun nodo contiene due riferimenti: Liste concatenate Collezione ordinata di nodi head tail next next next next element element element element Ø Anna Carlo Paolo Simona ciascun nodo contiene due riferimenti: - un riferimento "element" a

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti I Template a.a. 2008/2009 Claudio De Stefano 1 Programmazione generica E una tecnica di programmazione che permette di definire una classe di oggetti (o una funzione)

Dettagli

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++ Informatica 3 Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Lezione 7 -

Dettagli

Introduzione ai Dati Astratti. Giuliano Armano 1

Introduzione ai Dati Astratti. Giuliano Armano 1 Introduzione ai Dati Astratti Giuliano Armano 1 Terminologia Tipica Perché i dati astratti? A, B, C: procedure S: struttura dati Per accedere ad S le procedure A, B e C devono conoscerne i dettagli! Si

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Java: Definire Classi e Creare Oggetti

Java: Definire Classi e Creare Oggetti Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito

Dettagli

La Struttura Dati Pila

La Struttura Dati Pila La Struttura Dati Pila La pila o stack è una particolare struttura dati in cui l'inserimento e la cancellazione sono consentite solo in una specifica posizione, chiamata cima (top) dello stack. La gestione

Dettagli

La struttura dati CODA

La struttura dati CODA Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati CODA Pietro Di Lena - pietro.dilena@unibo.it Introduzione Una coda (o queue) è una struttura dati astratta

Dettagli

Indice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3

Indice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3 Introduzione...vii Organizzazione del libro... viii Struttura del libro e convenzioni... ix Codice sorgente e progetti... x Compilare ed eseguire direttamente i listati e gli snippet di codice... x Compilare

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Strutture Dinamiche. Fondamenti di Informatica

Strutture Dinamiche. Fondamenti di Informatica Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));

Dettagli

Metodi Avanzati di Programmazione (II Anno) a.a. 2011/2012 Docente: Annalisa Appice Dipartimento di Informatica Università degli Studi Bari Aldo Moro

Metodi Avanzati di Programmazione (II Anno) a.a. 2011/2012 Docente: Annalisa Appice Dipartimento di Informatica Università degli Studi Bari Aldo Moro Metodi Avanzati di Programmazione (II Anno) a.a. 2011/2012 Docente: Annalisa Appice Dipartimento di Informatica Università degli Studi Bari Aldo Moro tel.: 080 5443262 email: appice@di.uniba.it http://www.di.uniba.it/~appice/

Dettagli

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione Alberi Strutture dati: Alberi Strutture gerarchiche di dati Esempi Il file system di un sistema operativo L organigramma di un azienda Alberi generali, alberi n-ari, alberi binari, Ogni nodo ha un unico

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Struttura dati astratta Coda

Struttura dati astratta Coda CODE Struttura dati astratta Coda La coda o queue è una struttura dati astratta in cui l'inserimento e l estrazione sono consentite solo in specifiche posizioni; in particolare, l'inserimento è consentito

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) gianfranco.rossi@unipr.it Indice 1 Introduzione

Dettagli

Informatica 3. LEZIONE 2: Sintassi e semantica

Informatica 3. LEZIONE 2: Sintassi e semantica Informatica 3 LEZIONE 2: Sintassi e semantica Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4: Routine Convenzioni dei nomi Informatica

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 6 - Liste Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

Dettagli

Esercizi su strutture dati

Esercizi su strutture dati Esercizi su strutture dati Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 21 dicembre 2016 Liste collegate

Dettagli

L ereditarieta` Riuso del software: Ereditarieta`, Composizione, Polimorfismo e Binding Dinamico Ereditarietà Ereditarietà

L ereditarieta` Riuso del software: Ereditarieta`, Composizione, Polimorfismo e Binding Dinamico Ereditarietà Ereditarietà L ereditarieta` Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino Riuso del software: Ereditarieta`, Composizione,

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Informatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione

Informatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione Informatica 3 Informatica 3 LEZIONE 2: Sintassi e semantica Lezione 2- Modulo 1 Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4:

Dettagli

Linguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti

Linguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE Anno Accademico 2000-2001 Alberto Martelli Programmazione ad Oggetti Parte I Linguaggi ad oggetti (object oriented) I linguaggi di programmazione

Dettagli

Programmazione a Oggetti

Programmazione a Oggetti Programmazione a Oggetti Ivano Salvo Dipartimento di Informatica Università La Sapienza Stanza 310 Alcune informazioni Ricevimento: Mercoledi 11:30-12:30 Sito Web: http://www.dsi.uniroma1.it/~poti Esame:

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e overloading Esercizi svolti Esercizi proposti Paradigma OO Nella programmazione tradizionale,

Dettagli

Silvia Crafa

Silvia Crafa Introduzione ai Sistemi di Tipi Silvia Crafa silvia@dsi.unive.it Come nascono i tipi in informatica Cos è un tipo? Perché servono i tipi nei linguaggi di programmazione? Vediamo come nascono i tipi partendo

Dettagli

Linguaggi ad oggetti. Linguaggi di Programmazione: Paradigmi di Programmazione. I principali linguaggi ad oggetti. Programmazione ad oggetti.

Linguaggi ad oggetti. Linguaggi di Programmazione: Paradigmi di Programmazione. I principali linguaggi ad oggetti. Programmazione ad oggetti. Linguaggi di Programmazione: Paradigmi di Programmazione Linguaggi ad oggetti I linguaggi di programmazione ad oggetti consentono di applicare metodologie di sviluppo di programmi "object oriented", ossia

Dettagli

Liste, Alberi, Grafi 1

Liste, Alberi, Grafi 1 Liste, Alberi, Grafi 1 Liste concatenate La lista concatenata è una struttura che organizza i dati in maniera sequenziale. Mentre gli elementi di un array sono accessibili direttamente, gli elementi di

Dettagli

Tipi astratti pila e coda

Tipi astratti pila e coda Tipi astratti pila e coda Una pila è un tipo astratto che consente di rappresentare un insieme di elementi in cui ogni eliminazione ha per oggetto l elemento che è stato inserito per ultimo. Questa disciplina

Dettagli

Pile e code. ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO

Pile e code. ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO Pile e code ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO Le Pile Una pila è una struttura dati lineare, alla quale gli elementi possono essere aggiunti o sottratti da

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Programmazione Java Avanzata Programmazione Object- Oriented in Java Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione

Dettagli

Ereditarietà e Polimorfismo

Ereditarietà e Polimorfismo Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 3 Record G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Record >> Sommario Sommario Introduzione Dichiarazione di Record

Dettagli

Pile: implementazioni. Pile. Pile: liste /1. Pile: liste /2. Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche

Pile: implementazioni. Pile. Pile: liste /1. Pile: liste /2. Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche Pile Prof. Stefano Guerrini guerrini@di.uniroma1.it Programmazione II (can. P-Z) A.A. 2005-06 Pile: implementazioni Liste

Dettagli

Il linguaggio C Strutture

Il linguaggio C Strutture Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C -- Strutture 2 Ringraziamenti Questi

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 12 ADT: Lista, Pila, Coda A. Miola Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti!Tipo

Dettagli

Motivazioni OBIETTIVO

Motivazioni OBIETTIVO Motivazioni Crisi Dimensionale del software Crisi Gestionale del software Oggetti 1 OBIETTIVO Costruzione di software ben organizzato, modulare, protetto, riusabile, riconfigurabile (dinamicamente?), flessibile,

Dettagli

Oggetti. Interfacce e sottotipi

Oggetti. Interfacce e sottotipi Programmazione a Oggetti Interfacce e sottotipi Sommario Classi e Interfacce Subtyping/polimorfismo Tipi Statici e Tipi Dinamici Dynamic Method Lookup Sviluppo del Software Suddivisa in due fasi: 1. Specifica:

Dettagli

Rappresentazione di dati

Rappresentazione di dati Rappresentazione di dati oggetti del mondo reale: - caratteristiche - caratteristiche obiettivo della rappresentazione analisi e progettazione strutture dati teoriche (ADT) - domini ( ) - dominio di interesse

Dettagli

Il paradigma OO e le Classi

Il paradigma OO e le Classi Oggetti e Classi (CAP 10) Alberto Garfagnini Università degli studi di Padova 1 Dicembre 2009 Il paradigma OO e le Classi La programmazione ad Oggetti () è una filosofia di programmazione che si basa sui

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Analisi e Progettazione OO Origini Le metodologie ad oggetti nascono negli anni 70 ma si affermano solo negli anni 80 grazie alla nascita dei linguaggi di programmazione ad oggetti

Dettagli

STRUTTURE DATI: OLTRE GLI ARRAY LISTE

STRUTTURE DATI: OLTRE GLI ARRAY LISTE STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi

Dettagli

Implementazione ADT: Alberi

Implementazione ADT: Alberi Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice

Dettagli

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione

Dettagli

Fondamenti di Informatica II

Fondamenti di Informatica II Università degli studi di Messina Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Fondamenti di Informatica II Tipi di dati astratti(adt)- seconda parte Coda Struttura

Dettagli

Lezione 8 Struct e qsort

Lezione 8 Struct e qsort Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort

Dettagli

La struttura dati PILA

La struttura dati PILA Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati PILA Pietro Di Lena - pietro.dilena@unibo.it Introduzione Una pila (o stack) è una struttura dati astratta

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli