Programmazione di Calcolatori

Slides:



Advertisements
Presentazioni simili
Argomenti della lezione
Advertisements

Tipi di dato astratti Lista, Pila, Coda, Albero.
Estendere i linguaggi: i tipi di dato astratti
Procedure In assembler.
Strutture dati lineari
Le Strutture Dati M. Capurso con materiale di: G.Piccolo, A.Arcieri, Lamacchia F. Piccolo, B. Monterisi (Abstract Data Types)
Semantica Operazionale di un frammento di Java: lo stato
Fondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A CDL in Ingegneria Gestionale (B)- A.A Programmazione Ricorsiva.
UD 3: “Le Liste” UD 4: “Pile e Code” UD 5: “Alberi e grafi”
Strutture dati elementari
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Introduzione al linguaggio C++ 5 lezioni
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
CORSO DI PROGRAMMAZIONE II
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Gestione delle subroutine
Progettazione dei sistemi interattivi (A.A. 2004/05) - Lezione 3 1 La relazione di ereditarietà Punto di vista insiemistico: la relazione di ereditarietà
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
mosaic manipola oggetti primitivi (ruota e unisci) regole:
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
Fondamenti di Informatica1 Realizzazione software Due fasi: 1. Specifica dell'algoritmo 1.a Definizione dei dati 1.b Definizione della modalità della loro.
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
DISCLIC Facoltà di Lingue e Letterature Straniere Giornata di studio a conclusione del ciclo di incontri sul gioco applicato alla didattica delle lingue.
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VI Un primo programma Programmazione di Calcolatori: Un primo programma 1.
Programmazione di Calcolatori
Programmazione di Calcolatori
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione XXVI Il tipo di dato astratto queue Programmazione di Calcolatori: il tipo di dato astratto.
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1.
Programmazione di calcolatori
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione XXII I tipi di dato astratto Programmazione di Calcolatori: i tipi di dato astratto 1.
Programmazione di Calcolatori
Programmazione di Calcolatori
Programmazione di Calcolatori
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
Programmazione di Calcolatori
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 9 Tipi parametrici Collezioni generiche. Strutture matematiche parametriche.
Esercizi.
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Schiavone & Scalas 2 In informatica, il termine stack o pila viene usato in diversi contesti per riferirsi a strutture dati le cui modalità d'accesso.
C. Gaibisso Programmazione di Calcolatori Lezione II Cosa vuol dire scrivere un programma Programmazione di Calcolatori: Cosa vuol dire scrivere un programma.
4/5/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo – Algoritmi.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Pile e Code.
Algebra di Boole.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
AlgoLab - Pile e Code Pile e code Laboratorio di Algoritmi 02/03 Prof. Ugo de’ Liguoro.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Algoritmi e Strutture Dati Strutture Dati Elementari.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Nucleo di Java: Struttura e Semantica Espressioni Assegnamento Controllo di sequenza Dichiarazioni.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Lezione X Laboratorio di Programmazione. Struttura di un programma Definizione classe e specifica (parziale) classe.hclasse.cpp main.cpp Specifica metodi.
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
1 Semantica Operazionale di un frammento di Java: lo stato estensione (con piccole varianti) di quella in Barbuti, Mancarella, Turini, Elementi di Semantica.
FUNZIONI: IL MODELLO A RUN-TIME 1) creazione di una nuova attivazione (istanza) del servitore 2) allocazione di memoria per i parametri e per le variabili.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
1 Semantica Operazionale di un frammento di Java: intro estensione (con piccole varianti) di quella di FP | v |
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
LIP: 18 Aprile 2008 Interfacce. Rappresentazione Lista val next vuota Lista vuota: any true Lista non vuota: any true 154 false 24 false.
Ex.1 - Astrazioni su Dati Si abbia il tipo di dato stack di interi, IntStack, specificato sotto: public class IntStack { \\ OVERVIEW: uno Stack è una collezione.
1 Tipi di dato modificabili §a livello semantico, riconduciamo la modificabilità alla nozione di variabile l lo stato “modificabile” corrispondente sarà.
Rapporto incrementale Calcolare il rapporto incrementale.
Corso di Algoritmi e Strutture Dati con Laboratorio Tipi di dato pila e coda.
Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Strutture dati di tipo astratto 19 Strutture dati,
10. Programmazione Ricorsiva Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
1 MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche classe 4° INDUSTRIALE INFORMATICA Focus on.
Una presentazione "ordinata"
Transcript della presentazione:

Programmazione di Calcolatori Lezione XXIII Il tipo di dato astratto stack Programmazione di Calcolatori: il tipo di dato astratto stack

Lo stack L’idea: LIFO: Last In First Out Programmazione di Calcolatori: il tipo di dato astratto stack

Lo stack Possibile impiego (tra gli altri): Backtracking: - gestione del processo di costruzione incrementale di soluzioni tipico del backtracking Backtracking: - tecnica algoritmica basata sulla costruzione incrementale di soluzioni attraverso una sequenza di scelte - se una scelta si rivela non corretta la costruzione della soluzione riprende dall’ultimo punto di decisione che offre almeno un’alternativa alla scelta che ha generato il fallimento (backtrack) Programmazione di Calcolatori: il tipo di dato astratto stack

Gli stack di valori di tipo T (StackT) Modello: sequenza di elementi di tipo T, o più formalmente StackT  <a1, a2, …, an>, aiT, i = 1, …, n Operazioni a) InitStack:  StackT Valore: alcuno Effetto: InitStack()  <> Programmazione di Calcolatori: il tipo di dato astratto stack

Gli stack di valori di tipo T b) Push: StackT x T StackT Valore: alcuno Effetto: Push(<a1, …, an>, a)  <a1, …, an, a> Esempio: 8 Push(<3, 1, 4>, 8)  < 3, 1, 4, 8> 1 3 4 Programmazione di Calcolatori: il tipo di dato astratto stack

Gli stack di valori di tipo T c) Top: StackT  T Valore: Top(<a1, …, an-1, an>) = an Effetto: alcuno Esempio: 1 3 4 Top(<3, 1, 4>) = 4 Programmazione di Calcolatori: il tipo di dato astratto stack

Gli stack di valori di tipo T d) Pop: StackT  StackT x T Valore: Pop(<a1, …, an-1, an>) = an Effetto: Pop(<a1, …, an-1, an>)  <a1, …, an-1> Esempio: 1 3 4 Pop(<3, 1, 4>) = 4 Programmazione di Calcolatori: il tipo di dato astratto stack

Gli stack di valori di tipo T e) EmptyStack: StackT  Bool Valore: EmptyStack(<>) = True EmptyStack(<a1, … >) = False Effetto: alcuno f) ResetStack: StackT  StackT Valore: alcuno Effetto: ResetStack(<a1, …, an-1, an>)  <> Programmazione di Calcolatori: il tipo di dato astratto stack