Prova di esame del 21 giugno 2018
|
|
- Agostino Cosentino
- 4 anni fa
- Visualizzazioni
Transcript
1 Prova di esame del 21 giugno 2018 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti sia per ogni affermazione vera che viene marcata che per ogni affermazione falsa che viene lasciata non marcata. Analogamente vengono sottratti 0.5 punti sia per ogni affermazione falsa che viene marcata che per ogni affermazione vera che viene lasciata non marcata. 1. a. Ad un entità di tipo statico C si può assegnare un oggetto di un tipo che è un antenato di C b. Ad un entità di tipo statico C non si può assegnare un oggetto di un tipo che è un antenato di C c. Ad un entità di tipo statico C si può assegnare un oggetto di un tipo che è un discente di C d. Ad un entità di tipo statico C non si può assegnare un oggetto di un tipo che è un discente di C 2. Se A è una classe allora: a. la definizione di A non può contenere una clausola create b. la definizione di A può contenere una clausola create purché per le entità di tipo statico A non si invochi mai l istruzione create c. la definizione di A non può contenere feature effective d. la definizione di A deve contenere almeno una feature 3. L istanza di una classe C che esporta la feature x verso sé stessa a. Può invocare la feature x di sé stessa solo in mo non qualificato b. Può invocare la feature x di sé stessa c. Può invocare la feature x di altre istanze di C solo in mo qualificato d. Non può in alcun mo invocare la feature x di altre istanze di C 4. Ridefinire (redefine) una feature f ereditata implica a. cambiare il nome della feature senza necessariamente cambiarne l implementazione b. cambiare l implementazione della feature senza necessariamente cambiarne il nome c. cambiare sia il nome che l implementazione della feature d. portare lo stato della feature a 5. Una struttura di dati di tipo dispenser (cioè che fornisce su richiesta un elemento da elaborare) la cui politica di gestione fornisce come elemento da elaborare l elemento meno recentemente inserito in essa è una a. pila o stack b. coda c. array d. tabella hash SOLUZIONE: 1. a. Ad un entità di tipo statico C si può assegnare un oggetto di un tipo che è un antenato di C b. Ad un entità di tipo statico C non si può assegnare un oggetto di un tipo che è un antenato di C c. Ad un entità di tipo statico C si può assegnare un oggetto di un tipo che è un discente di C d. Ad un entità di tipo statico C non si può assegnare un oggetto di un tipo che è un discente di C Università di Roma Tor Vergata Corso di Laurea in Matematica 1 / 10
2 2. Se A è una classe allora: a. la definizione di A non può contenere una clausola create b. la definizione di A può contenere una clausola create purché per le entità di tipo statico A non si invochi mai l istruzione create c. la definizione di A non può contenere feature effective d. la definizione di A deve contenere almeno una feature 3. L istanza di una classe C che esporta la feature x verso sé stessa a. Può invocare la feature x di sé stessa solo in mo non qualificato b. Può invocare la feature x di sé stessa c. Può invocare la feature x di altre istanze di C solo in mo qualificato d. Non può in alcun mo invocare la feature x di altre istanze di C 4. Ridefinire (redefine) una feature f ereditata implica a. cambiare il nome della feature senza necessariamente cambiarne l implementazione b. cambiare l implementazione della feature senza necessariamente cambiarne il nome c. cambiare sia il nome che l implementazione della feature d. portare lo stato della feature a 5. Una struttura di dati di tipo dispenser (cioè che fornisce su richiesta un elemento da elaborare) la cui politica di gestione fornisce come elemento da elaborare l elemento meno recentemente inserito in essa è una a. pila o stack b. coda c. array d. tabella hash Università di Roma Tor Vergata Corso di Laurea in Matematica 2 / 10
3 Esercizio 2) [10 punti] La classe INT_LINKABLE modella un elemento di una lista che può rappresentare valori interi. La sua implementazione è la seguente: class INT_LINKABLE create make feature -- accesso value : INTEGER -- L intero memorizzato in questo elemento next : INT_LINKABLE -- Il successivo elemento della lista feature -- operazioni fondamentali make (a_value : INTEGER) -- crea l elemento value := a_value value = a_value link_to (other: INT_LINKABLE) -- collega questo elemento con `other' next := other next = other link_after (other: INT_LINKABLE) -- inserisce questo elemento po `other' conservan quello che c era po di esso other /= Void link_to (other.next) other.link_to (Current) other.next = Current other.next.next = old other.next La classe INT_LINKED_LIST modella una lista di interi. La sua attuale implementazione è solo quella fornita qua sotto: class INT_LINKED_LIST feature -- accesso first_element: INT_LINKABLE -- Il primo elemento della lista last_element: INT_LINKABLE -- L ultimo elemento della lista Università di Roma Tor Vergata Corso di Laurea in Matematica 3 / 10
4 active_element: INT_LINKABLE -- L elemento corrente della lista count: INTEGER -- Il numero di elementi della lista feature -- operazioni fondamentali forth -- Sposta `active_element' al successivo elemento, se esiste if active_element /= Void and then active_element.next /= Void then active_element:= active_element.next start -- Sposta `active_element' al primo elemento, se esiste if first_element /= Void then active_element:= first_element last -- Sposta `current_element' all ultimo elemento, se esiste if last_element /= Void then active_element:= last_element invariant count >= 0 last_element /= Void implies last_element.next = Void count = 0 implies (first_element = last_element) and (first_element = Void) and (first_element = active_element) count = 1 implies (first_element = last_element) and (first_element /= Void) and (first_element = active_element) count > 1 implies (first_element /= last_element) and (first_element /= Void) and (last_element /= Void) and (active_element /= Void) and then (first_element.next /= Void) Università di Roma Tor Vergata Corso di Laurea in Matematica 4 / 10
5 Aggiungere alla classe INT_LINKED_LIST una feature remove_active che rimuove l elemento corrente (cioè quello accessibile mediante active_element) completan la parziale implementazione fornita nel seguito feature -- operazioni fondamentali remove_active -- Rimuove elemento accessibile mediante `active_element' count > 0 local current_element, pre_current: INT_LINKABLE if count = 1 then first_element := Void active_elemen := Void last_element := Void else from current_element := first_element pre_current := Void until (current_element = active_element) loop pre_current := current_element current_element := current_element.next Università di Roma Tor Vergata Corso di Laurea in Matematica 5 / 10
6 SOLUZIONE: feature -- operazioni fondamentali remove_active -- Rimuove elemento accessibile mediante `active_element' count > 0 local current_element, pre_current: INT_LINKABLE if count = 1 then first_element := Void active_elemen := Void last_element := Void else from current_element := first_element pre_current := Void until (current_element = active_element) loop pre_current := current_element current_element := current_element.next -- qui `current_element ' coincide con `active_element' if current_element = first_element then -- `current_element cioé `active_element' è il primo elemento della lista first_element := first_element.next active_element := first_element elseif current_element = last_element then -- `current_element' cioé `active_element' è l'ultimo elemento della lista last_element := pre_current last_element.link_to(void) active_element := last_element else -- `current_element ' cioé `active_element' è elemento intermedio della lista pre_current.link_to(current_element.next) active_element := current_element.next count := count - 1 count = old count 1 old active_element = old first_element implies active_element = first_element old active_element = old last_element implies active_element = last_element old active_element /= old last_element implies active_element = old active_element.next Università di Roma Tor Vergata Corso di Laurea in Matematica 6 / 10
7 Esercizio 3) [10 punti] Completare i contratti (pre-condizioni, post-condizioni, invarianti di classe) della classe STOPWATCH_CONTROL sotto descritta che modella un sistema software per controllare un cronometro conta-secondi in mo da rispecchiare la seguente specifica informale: 1. Si può operare sul cronometro attraverso il sistema software mediante i seguenti comandi: avvio, arresto, giro, ripri, azzera. In corrispondenza di tali comandi il sistema software emette analoghi comandi verso il cronometro con la seguente semantica: o avvio: fa partire il cronometro dal valore corrente del tempo o arresto: ferma il cronometro al valore corrente del tempo o giro: blocca il visore del cronometro sul valore corrente del tempo mentre il cronometro continua a cronometrare o ripri: riporta il visore del cronometro a visualizzare il valore corrente del tempo o azzera: riporta il valore del visore al valore iniziale di 0 secondi 2. Il sistema software (e quindi il cronometro) può essere in uno di questi stati: o fermo: il cronometro non sta misuran il tempo che scorre o : il cronometro sta misuran il tempo che scorre 3. I comandi avvio e azzera possono essere dati solo quan il sistema è nello stato fermo 4. I comandi arresto, ripri, giro possono essere dati solo quan il sistema è nello stato Non c è relazione tra il numero di righe vuote ed il numero di contratti da scrivere. Non è necessario conoscere altro codice all infuori di quello fornito. class STOPWATCH_CONTROL feature {ANY} accesso tempo_del_visore : INTEGER -- contiene il valore da visualizzare sul visore del cronometro. tempo_cronometrato : INTEGER -- contiene il valore corrente del tempo col cronometro. feature {ANY} stato fermo : BOOLEAN -- il cronometro non sta misuran il tempo che scorre. : BOOLEAN -- il cronometro sta misuran il tempo che scorre. feature {ANY} -- operazioni sul cronometro avvio -- Fa partire il cronometro dal valore corrente del tempo Università di Roma Tor Vergata Corso di Laurea in Matematica 7 / 10
8 arresto -- Ferma il cronometro al valore corrente del tempo giro -- Blocca il visore del cronometro sul valore corrente del tempo mentre il cronometro continua a cronometrare ripri -- Riporta il visore del cronometro a visualizzare il valore corrente del tempo azzera -- Riporta il visore al valore iniziale di 0 secondi invariant Università di Roma Tor Vergata Corso di Laurea in Matematica 8 / 10
9 SOLUZIONE: class STOPWATCH_CONTROL feature {ANY} accesso tempo_del_visore : INTEGER -- contiene il valore da visualizzare sul visore del cronometro. tempo_cronometrato : INTEGER -- contiene il valore corrente del tempo col cronometro. feature {ANY} stato fermo : BOOLEAN -- il cronometro non sta misuran il tempo che scorre. : BOOLEAN -- il cronometro sta misuran il tempo che scorre. feature {ANY} -- operazioni sul cronometro avvio -- Fa partire il cronometro dal valore corrente del tempo fermo arresto -- Ferma il cronometro al valore corrente del tempo fermo giro -- Blocca il visore del cronometro sul valore corrente del tempo mentre il cronometro continua a cronometrare tempo_del_visore = old tempo_cronometrato ripri -- Riporta il visore del cronometro a visualizzare il valore corrente del tempo tempo_del_visore = tempo_cronometrato Università di Roma Tor Vergata Corso di Laurea in Matematica 9 / 10
10 azzera -- Riporta il visore al valore iniziale di 0 secondi fermo fermo tempo_del_visore = 0 invariant fermo XOR : (fermo and not ) or (not fermo and ) consistenza tempi in moto: implies tempo_del_visore <= tempo_cronometrato consistenza tempi fermo: fermo implies tempo_del_visore = tempo_cronometrato tempo_cronometrato significativo: tempo_cronometrato >= 0 tempo_visore significativo: tempo_visore >= 0 Università di Roma Tor Vergata Corso di Laurea in Matematica 10 / 10
Prova di esame del 19 luglio 2019
Prova di esame del 19 luglio 2019 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti
Prova di esame del 22 luglio 2016
Esercizio 1) [10 punti] Prova di esame del 22 luglio 2016 Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti
Prova di esame del 16 giugno 2016
Esercizio 1) [10 punti] Prova di esame del 16 giugno 2016 Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti
Prova di esame del 19 giugno 2017
Prova di esame del 19 giugno 2017 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti
Prova di esame del 1 luglio 2019
Prova di esame del 1 luglio 2019 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 24 settembre 2015
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A. 2014-15 Prova di esame del 24 settembre 2015 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 19 luglio 2014
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A. 2013-14 Prova di esame del 19 luglio 2014 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un
SOLUZIONE: come antenato comune. Fondamenti della Programmazione: Metodi Evoluti - A.A Prova d esame del 24 febbraio 2014
Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti sia per ogni affermazione vera
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 18 giugno 2013
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A. 2012-13 Prova di esame del 18 giugno 2013 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 24 settembre 2013
Compito di Prova di esame del 24 settembre 2013 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni domanda può avere un qualunque numero naturale di affermazioni vere. Vengono
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
Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if
Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non
Strutture dati. Le liste
Strutture dati Le liste Introduzione Una lista è una successione finita di valori di un tipo (insieme di valori e ordine). Come tipo di dato è qualificata dalle operazioni che ci si possono svolgere: inserimento
Esercizio: Lista Circolare
Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.
OOP L 10a Interfacce e classi interne Java
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Programmazione orientata agli Oggetti OOP L 10a Interfacce e classi interne Java 1 L10: Java interface
IL COMPONENTE STACK (pila)
COMPONENTI SOFTWARE Diverse tipologie di componenti: Librerie semplici collezioni di procedure e funzioni.non fanno uso di variabili globali o statiche e non definiscono nuovi tipi (visibili all esterno)
Informatica 3. LEZIONE 13: Liste doppie, pile e code. Modulo 1: Free list Modulo 2: Lista doppia Modulo 3: Pila Modulo 4: Coda
Informatica 3 LEZIONE 13: Liste doppie, pile e code Modulo 1: Free list Modulo 2: Lista doppia Modulo 3: Pila Modulo 4: Coda Informatica 3 Lezione 13 - Modulo 1 Free list Free list Le funzioni di sistema
Esempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito
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
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
Sviluppo software in gruppi di lavoro complessi 1
Sviluppo software in gruppi di lavoro complessi 1 Mattia lab Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it Anno accademico 2016/17, I semestre 1 cba 2016 M.. Creative
Orario delle lezioni LABORATORIO TEORIA. mercoledì. martedì aula P/4. lab Turing. Strutture Dati
Orario delle lezioni LABORATORIO martedì 15.00-18.00 TEORIA mercoledì 16.00 18.00 lab Turing aula P/4 Libro di testo Data Structures & Algorithms in Java Michael T. Goodrich Roberto Tamassia John Wiley
tipi di dato astratti
tipi di dato astratti A. FERRARI ADT Un tipo di dato astratto o ADT (Abstract Data Type) è un tipo di dato le cui istanze possono essere manipolate con modalità che dipendono esclusivamente dalla semantica
VBA Principali Comandi
VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA7 B3 Gestione di una coda 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Tecnica di allocazione dinamica Concetto di coda e operazioni relative
Il linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
Esercizi su array di array
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 C. Limongelli Gennaio 2010 1 Contenuti Fusione di due array ordinati, con eliminazione di duplicati Verifica array bidimensionale
LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi
LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Partiamo da un
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 04 Introduzione ai Tipi astratti di dato A. Miola Febbraio 2007 http://www.dia.uniroma3.it/~java/fondinf2/ Introduzione ADT 1
Fondamenti di Programmazione
Fondamenti di Programmazione Capitolo 4 Condizionale e ricorsione Prof. Mauro Gaspari: gaspari@cs.unibo.it Alcuni operatori utili L'operatore modulo opera su numeri interi e in generale su espressioni
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Tipi di Dato Astratto
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
Metodi di una Collection
Java Collections Introduzione Una java collection (a volte chiamata anche container) è un oggetto che raggruppa più elementi dello stesso tipo in una singola unità. Tipicamente è utilizzata per raggruppare
Alberi Binari Alberi Binari
Alberi Binari Alberi Binari Un albero binario è una collezione di elementi organizzati in modo non sequenziale secondo un grafo aciclico caratterizzato da Radice Due sotto-alberi (il sotto-albero destro
ISTRUZIONI A B K A, B, K A<B? SI A<B? SI A<B? SI
SECONDA PARTE 6. LA RIPETIZIONE while ISTRUZIONI A B K A, B, K 0 10 0 While A
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
Lezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
Esercitazioni di Informatica 3
Esercitazioni di Informatica 3 Part I: Programming Languages Syntax and semantics Laurea in Ingegneria Informatica Politecnico di Milano Polo di Milano Leonardo Esercizio 1: EBNF Utilizzando il linguaggio
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E16 Esercizi Strutture Collegate e Oggetti C. Limongelli Maggio 2012 1 Contenuti q Verifiche universali ed esistenziali su strutture
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007
Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento
Programmare. Compilatori e interpreti. Editor :: vi. Hello1.c. #include <stdio.h> >> cc Hello1.c. main() { printf( \n Hello World!
Programmare Hello1.c #include printf( \n Hello World! \n ); >> cc Hello1.c >> a.out Hello World! >> Hello1.c = file sorgente per scriverlo occorre un editor cc = compilatore per altri linguaggi
Fondamenti di Informatica
Strutture dati complesse Esempi di strutture dati complesse analizzate in questa lezione: Fondamenti di Informatica 21. Strutture di dati complesse in C++ Array di puntatori Pila (Stack) Coda (queue) Liste
Handle di Funzioni Università degli Studi di Milano
Handle di Funzioni Versioni recenti di Matlab definiscono in modo pieno il tipo funzione, permetto di assegnare a variabili valori di tipo funzione definire funzioni che ricevono parametri di tipo funzione
Linguaggio C: Strutture e Liste Concatenate Valeria Cardellini
Linguaggio C: Strutture e Liste Concatenate Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica
INFORMATICA - CdL in FISICA. COMPITO del 28/05/2003 SOLUZIONI PROPOSTE
INFORMATICA - CdL in FISICA COMITO del 28/5/23 SOLUZIONI ROOSTE ESERCIZIO 1 Indicare i valori stampati dal seguente programma C. #include main() int *p, **q, x=, y=; p = &x; q = &p; *q = &y;
Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati
Programmazione Web Il linguaggio PHP Il nostro obiettivo Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati Accedere ai dati inseriti dall utente nei
Programmazione a Oggetti. Astrazione sui Dati e Iteratori
Programmazione a Oggetti Astrazione sui Dati e Iteratori Sommario Astrazione sui dati Specifica di classi Invariante di rappresentazione Funzione di astrazione Iteratori inner classes astrazione sul controllo
Implementare un'interfaccia
Le interfacce Un metodo astratto è un metodo senza corpo, con un ";" dopo l'intestazione. Una interfaccia (interface) in Java ha una struttura simile a una classe, ma può contenere SOLO costanti e metodi
SET: specifica INTRODUZIONE. SET: esempio Si stampano i numeri casuali in ordine di generazione e il contenuto dell insieme.
INTRODUZIONE Il tipo di dati astratto insieme (set) definisce operazioni, quali inserimento e rimozione, su collezioni di oggetti che presentano molteplicità uno, cioè non sono ammessi duplicati. Una possibile
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA7 B1 Gestione di liste 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Tecnica di allocazione dinamica Gestione di liste Classificazione delle
Esercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
Caratteristiche generali del linguaggio Visual Basic
Caratteristiche generali del linguaggio Visual Basic Per ottenere un aiuto contestuale dall help di Visual Basic sulla sintassi di funzioni o, oppure su proprietà, eventi o metodi, basta selezionare la
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
Laboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 25 Le liste in C struct nodo { int info; struct nodo *next; }; typedef struct nodo Nodo; typedef Nodo *PNodo; Inserimento in ordine
Algoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Capitolo 4 - Strutture di dati elementari This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit
Soluzione della prova scritta del 5 febbraio 2013
Corso di Programmazione Anno Accademico 2012 2013 Prof. Giovanni Pighizzini della prova scritta del 5 febbraio 2013 Questo documento discute un esempio di soluzione di alcuni esercizi assegnati. Naturalmente
Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica Introduzione Ereditarietà in Sintesi È uno dei concetti chiave della programmazione orientata agli
Insiemi Dinamici. Operazioni tipiche (S:struttura, x: riferimento(puntatore) alla chiave, k: chiave)
Insiemi Dinamici Insiemi che possono essere modificati Elementi: oggetti = eventualmente: chiavi + (eventuali) dati satellite; l insieme delle chiavi puo essere totalmente ordinato Operazioni tipiche (S:struttura,
Basi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo
Strutture dati Alberi binari
Strutture dati - 2 - Alberi binari Definizione L albero è un insieme di elementi (nodi), sui quali è definita una relazione di discendenza con due proprietà: esiste un solo nodo radice senza predecessori
Laboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 33 Le liste in C struct nodo { int info; struct nodo *next; }; typedef struct nodo Nodo; typedef Nodo *PNodo; Pila (Stack ) La struttura
Il linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
La Ricorsione. Carla Binucci e Walter Didimo
La Ricorsione Carla Binucci e Walter Didimo Definizione induttiva di funzioni Una funzione definita in modo induttivo è una funzione definita in termini di sé stessa ad esempio la funzione f(n) = n! (fattoriale
Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010
Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010 Istruzioni: scrivere le risposte alle domande negli spazi presenti nel testo e riconsegnare
Programmazione con il linguaggio LibreOffice Basic
Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software
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
Istruction List. Istruction List. Marco Mauri. Politecnico di Milano P.zza Leonardo da Vinci, Maggio
Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1 Sommario La struttura base del linguaggio Il comportamento degli operatori standard Come utilizzare le istruzioni di salto
Progettazione By Contract
Progettazione By Contract Documentazione di progetto Contratti per i metodi Correttezza dell implementazione invarianti per le classi Verifica asserzioni Eccezioni Progettazione By Contract Contratti per
Introduzione alla Programmazione in Java attraverso un esempio commentato
Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria
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
Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione
1 Conoscere l uso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali classi di Collection usare in casi specifici Conoscere
Visual Basic. Linguaggio di programmazione per lo sviluppo di applicazioni da eseguire in un qualunque ambiente Microsoft Windows.
Visual Basic Linguaggio di programmazione per lo sviluppo di applicazioni da eseguire in un qualunque ambiente Microsoft Windows. VB è un implementazione Microsoft dell originario linguaggio Basic Visual
Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 20 febbraio 2012 TEMPO DISPONIBILE: 1 ora Negli
Lezione 3 Esercitazione
Lezione 3 Esercitazione prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org Esercizio 1 Si consideri il codice seguente: program esercizio1 (input, output); var a,b,c,d: integer;
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
Esempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.
Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
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
Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
Lezione 15 programmazione in Java. Nicola Drago Dipartimento di Informatica Università di Verona
Lezione 15 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Approfondimenti della programmazione OO Il modificatore abstract Le classi
Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
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
Array. Walter Didimo
Array Walter Didimo Un problema ricorrente Gli strumenti di programmazione che abbiamo visto sin qui non sono ancora sufficienti per risolvere tutti i problemi di base Consideriamo ad esempio il seguente
Informatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Fondamenti di informatica T-1 (A K) Esercitazione 9: array
Fondamenti di informatica T-1 (A K) Esercitazione 9: array AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 9 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del
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
Laboratorio - Programmazione
Laboratorio - Programmazione Angelo Di Iorio angelo.diiorio@unibo.it Progetto L obiettivo del progetto è realizzare un applicazione PHP da linea di comando che raccoglie dati sui terremoti avvenuti in
Strutture Dati per Inserimento Ordinato. Luca Abeni
Strutture Dati per Inserimento Ordinato Luca Abeni Esempio: Ordinamento di Numeri A cosa servono i tipi di dato strutturati? Non bastano i tipi scalari? Capiamolo con un esempio... Problema: dato un insieme
Oggetti. Oggetti e occultamento delle informazioni. Definire oggetti. Oggetti. Definire oggetti la sintassi. Convenzione sugli identificatori
Oggetti Oggetti e occultamento delle informazioni Paolo Coppola Dipartimento di Matematica e Informatica Università degli Studi di Udine http://www.dimi.uniud.it/coppola/ coppola@dimi.uniud.it I metodi
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
Fondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente
Liste doppie Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica semplice: doppia: Gli
Istruzioni di trasferimento dati
Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:
Esercizio. Strutture Dati
Esercizio Si scriva un metodo public Position sibling(position v) che preso in input un nodo v restituisca il fratello di v. Il metodo dovrà lanciare una BoundaryViolationException nel caso in cui