Complessità algoritmi su strutture dati (riassunto)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Complessità algoritmi su strutture dati (riassunto)"

Transcript

1 Complessità algoritmi su strutture dati (riassunto) Struttura di dato Ricerca Complessità (caso peggiore) Tavola come array non Ricerca sequenziale O(N) ordinato (N elementi) Tavola come array ordinato Ricerca binaria O(log2N) (N elementi) File non ordinato (N Ricerca sequenziale O(N) elementi) File ordinato (N elementi) Ricerca binaria O(log2N) Lista collegata (anche se ordinata) Alberi binari (N nodi) Alberi binari di ricerca Ricerca sequenziale Ricerca esaustiva (visita) (su campo chiave) Ricerca binaria O(N) O(N) O(h), h altezza dell albero (vale log2n se albero bilanciato)

2 FONDAMENTI DI INFORMATICA II 2013 Maggio 23 Esercizio n. 1 Dato il seguente codice in linguaggio C, dove il tipo list rappresenta una lista di interi (non ordinata): int p(list A, list L) { int c=0; while (A!=NULL) {if (search(a->value, L)) c++; A=A->next;} return c; } int search(int i, list L) { if (L!=NULL) {if (i==l->value) return 1+search(i,L->next); else return search(i, L->next); } else return 0; } a) Si descriva cosa restituisce la funzione p e che tipo di ricerca fa la funzione search. b) Si discuta la complessità del codice per la chiamata p(l1,l2) sapendo che la lista l1 contiene M elementi e la lista l2 contiene N elementi, per la chiamata p(l1,l2) (contare le esecuzioni complessive del test sottolineato nella funzione search). La funzione p conta gli elementi comuni alle due liste. Per ogni elemento della prima lista, chiama la funzione search per cercarlo nella seconda, con ricerca sequeziale. Se la lista l1 contiene M elementi e la lista l2 contiene N elementi, la complessità della chiamata p(l1,l2) data dal numero di esecuzioni complessive del test sottolineato nella funzione search è: M x N

3 FONDAMENTI DI INFORMATICA 12 Settembre 2011 Esercizio n. 1 Dato il seguente codice in linguaggio C, dove il tipo list rappresenta una lista di interi, insord la funzione di inserimento ordinato in senso crescente in una lista e member la funzione di ricerca binaria in un vettore ordinato di interi: #include <stdio.h> void main(void) { int i, c=0; int v[10] = {0,1,2,3,4,5,6,7,8,9}; list L1 = NULL; scanf("%d",&i); do { L1=insord(i,L1); scanf("%d",&i); } while (i>0); while (L1!=NULL) { if ( member(l1->value,v) ) c++; L1=L1->next; } printf( \n%d\n, c); } a) Si indichi cosa fa questo frammento di programma; b) Se ne indichi la complessità in termini di numero di test condizionali eseguiti dalla funzione member, ipotizzando che da input siano stati inseriti N valori distinti (da 1 a N) seguiti da 0. Si distinguano caso migliore, peggiore e medio (il vettore v è dato e di dimensione 10) motivando opportunamente.

4 Il programma crea una lista di N interi (N positivi). Poi conta quanti elementi di questa lista appartengono al vettore v, ed infine stampa a video tale valore. Caso migliore: tutti gli N valori sono uguali al mediano di v, la complessità è di N volte un confronto: N*1 Caso peggiore: tutti gli N valori sono diversi da qualsiasi elemento di v, la complessità è di N volte * log2(10): (N+1)*log2(10) Caso medio: la ricerca binaria costa nel caso medio come nel caso peggiore: N*log2(10)

5 FONDAMENTI DI INFORMATICA II - 27 Marzo 2013 Esercizio 1 Dato il seguente codice in linguaggio C, dove il tipo tree rappresenta un albero binario di interi e ordins la funzione di inserimento in un albero binario di ricerca: #include <stdio.h> int fun(int e, tree T) { if (T==NULL) return 0; else if (e==t->value) return 1; else if (e<t->value) return fun(e,t->left); else return fun(e,t->right); } void main(void) { int i, sum=0; tree T =NULL; scanf("%d",&i); while (i>0) { T=ordins(i,T); scanf("%d",&i); } for(i=0; i<10; i++) if ( fun(i,t) ) sum=sum+1; printf("%d",sum); } Si indichi cosa fa il programma e la funzione fun (cosa viene stampato dal main?); Se ne indichi la complessità in termini di numero di test condizionali dell istruzione if (test sottolineato) nella funzione fun, ipotizzando che da input siano stati dati M valori (nessuno uguale a 0,1,..9) che, inseriti nell albero T, hanno prodotto un albero perfettamente bilanciato.

6 Il programma crea un albero binario di ricerca di interi, leggendo i valori da input. Cerca poi con la funzione fun i primi 10 valori interi da 0 a 9, e stampa quanti di questi compaiono nell albero. fun esegue una ricerca binaria nell albero. Se da input sono stati dati M valori (nessuno uguale a 0,1,..9 caso peggiore) che, inseriti nell albero T, hanno prodotto un albero perfettamente bilanciato, in ciascuno dei dieci casi la complessità è log2m, quindi in complesso: 10* log2m

7 FONDAMENTI DI INFORMATICA 19 Febbraio 2013 Dato il seguente codice in linguaggio C, dove il tipo list rappresenta una lista di interi, e tree un tipo albero binario (di ricerca). Le variabili L di tipo list e T di tipo tree siano state create leggendo da input valori che sono stati inseriti poi nelle strutture dati in modo che siano rispettivamente una lista ordinata e un albero binario di ricerca. #include <stdio.h> list crea_lista(list); tree crea_tree(tree); int same(list l, tree t) { int trovato=0; tree aux=t; while (l!=null) { t=aux; trovato=0; while ((t!=null) && (!trovato)) if (l->value==t->value) trovato=1; else if (l->value < t->value) t=t-> left; else t=t->right; } if (trovato) l=l->next; else l=null; } return trovato; } void main(void) { list L=NULL; tree T=NULL;

8 L=crea_lista(L); T=crea_tree(T); printf("%d", same(l,t)); } a) Si indichi cosa fa questo frammento di programma e la funzione same in particolare; b) Se ne indichi la complessità in termini di numero di esecuzioni del test condizionale sottolineato, ipotizzando che da input siano stati inseriti N valori in lista e M valori nell albero e che gli N valori in lista siano tutti presenti anche nell albero T. Il programma crea lista L e albero T, poi con la funzione same in particolare controlla che ogni elemento della lista L sia in T. Questa funzione scandisce sequenzialmente L e cerca ogni elemento di L in T applicando una ricerca binaria. La complessità in termini di numero di esecuzioni del test condizionale sottolineato, ipotizzando che da input siano stati inseriti N valori in lista e M valori nell albero e che gli N valori in lista siano tutti presenti anche nell albero T: nel caso peggiore è di N*h dove h è l altezza dell albero (tutti gli elementi in lista sono uguali a alcune delle foglie di T; h vale log2m se T è perfettamente bilanciato; se completamente sbilanciato h vale M); nel caso migliore è N*1 (tutti gli elementi in lista sono uguali alla radice di T)

9 FONDAMENTI DI INFORMATICA modulo B 2015 Gennaio 13 Esercizio n. 1 Dato il seguente codice in linguaggio C, dove il tipo tree rappresenta un albero binario di caratteri e ord_ins la funzione di inserimento per alberi binari di ricerca: #include <stdio.h>... int m (char i, tree T) { if (T==NULL) return 0; else if (i==t->value) return (1 + m(i,t->left)); else if (i<t->value) return m(i,t->left); else return m(i,t->right); } void main(void) { char i; tree T=NULL; scanf("%c",&i); do { T=ord_ins(i,T); scanf("%c",&i); } while ((i>= A ) and (i<= Z )); scanf("%c",&i); printf( %d,m(i,t)); } a) Si indichi cosa fa questo frammento di programma e la funzione m in particolare.

10 b) Si supponga che il ciclo do legga da input N caratteri compresi tra A e Z, poi *. Si valuti la complessità come numero di attivazioni della funzione m, nel caso in cui il valore letto successivamente all uscita dal ciclo do non sia presente nell albero. Si discutano i casi migliore e peggiore e li si motivi adeguatamente. Il programma conta e stampa quante volte il carattere letto compare nell albero, tramite la funzione m. Il caso migliore si ha quando il carattere è la radice dell albero, costo: 1 Il caso peggiore, quando il carattere non appartiene all albero, costo: se albero sbilanciato M, se albero bilanciato log 2 M (in generale il costo è pari all altezza dell albero).

11 FONDAMENTI DI INFORMATICA modulo B Prova C - 18 Maggio 2015 Esercizio Modulo B Un file di tipo di testo, parole1.txt, contiene un elenco di parole della lingua italiana. Il file non è ordinato e ogni parola può ripetersi nel file. Le parole sono al più di 20 caratteri, senza spazi. Si realizzi un programma C, organizzato in almeno tre funzioni, rispettivamente dedicate a: costruire in memoria centrale una lista ordinata, L, che riporta tutte le parole del file che iniziano con il carattere a. La funzionea riceve come parametri il puntatore a un file e il puntatore alla radice della lista data in ingresso (più eventuali parametri a scelta) e restituisce il puntatore radice della lista L modificata; mostrare a video il contenuto (ordinato) di L; accedendo a L, contare quante sono le parole contenute e stampare il valore calcolato su un file di uscita, uscita.txt. Ad esempio, se il file parole1.txt contiene ape casa bulbo apice fontana ape la lista L dovrà contenere ape ape apice ed il file di uscita dovrà contenere il valore 3. Il file uscita.txt va consegnato con il codice sorgente. Questa funzione (funzioneb) riceve il puntatore radice L, il puntatore al file di uscita, più eventuali parametri a scelta, e restituisce void.

12 Per chi svolge il compito A+B (Ulteriori punti 20 su tot. di 60 per A+B; tempo +45 min; tot 2,5 h): Si costruisca un array di strutture V in cui ciascun elemento è costituito da una parola (come sopra). Sapendo che il file ha al massimo 100 parole distinte, si inseriscano nel vettore V le parole del file che iniziano con carattere a. Questa funzione (funzionec) riceve come parametri il vettore V e il puntatore al file parole1.txt più eventuali parametri a scelta, e restituisce void. Nel main, si ordini il vettore V tramite una opportuna chiamata della funzione qsort e si stampi poi su un file di testo outputab.txt il contenuto dell'array V. Nell'esempio sopra, il file outputab.txt dovrà contenere: ape ape apice NOTA BENE: Si consegnino i sorgenti, eseguibile e i file di uscita generati. È possibile utilizzare librerie C (ad esempio per le stringhe). Nel caso si strutturi a moduli l'applicazione qualunque libreria utente va riportata nello svolgimento.

13 FONDAMENTI DI INFORMATICA modulo B Prova C 22 Dicembre 2014 Esercizio Modulo B Un _le di tipo di testo, parole1.txt, contiene alcune parole della lingua italiana. Il file non è ordinato e ogni parola può ripetersi nel file. Le parole sono al più di 20 caratteri, senza spazi. Si realizzi un programma C, organizzato in almeno tre funzioni, rispettivamente dedicate a: costruire in memoria centrale un albero binario di ricerca, T, ordinato sul campo parola, che riporta tutte le parole del _le che iniziano con lettera vocale. La stessa parola può ripetersi nell'albero. La funzionea riceve come parametri il puntatore al file, più eventuali parametri a scelta, e restituisce il puntatore radice dell'albero T; mostrare a video il contenuto (ordinato) di T; accedendo a T, stampi il contenuto (ordinato) dell'albero T su un file di uscita, uscita.txt. Ad esempio, se il file parole1.txt contiene il mare a genova e` piu` bello del mare a savona ed anche del mare adriatico L'albero T dovrà contenere a a adriatico anche e` ed il ed il file di uscita dovrà contenere lo stesso elenco. Il file uscita.txt va consegnato con il codice sorgente. Questa funzione (funzioneb) riceve il puntatore radice T, il puntatore al file di uscita, più eventuali parametri a scelta, e restituisce void.

14 Per chi svolge il compito A+B (Ulteriori punti 20 su tot. di 60 per A+B; +45 min; tot 2,5h): Si costruisca un array di strutture V in cui ciascun elemento è costituito da una parola (come sopra). Sapendo che il file parole1.txt contiene al massimo 100 parole, si inseriscano nel vettore V le parole del _le parole1.txt che iniziano per vocale. Questa funzione (funzionec) riceve come parametri il vettore V e il puntatore al file parole1.txt, più eventuali parametri a scelta, e restituisce void. Nel main, si ordini il vettore V tramite una opportuna chiamata della funzione qsort, e si stampi poi su un _le di testo outputab.txt il contenuto dell'array V. Nell'esempio sopra, il file outputab.txt dovrà contenere: a a adriatico anche e` ed il NOTA BENE: Si consegnino i sorgenti, eseguibile e i file di uscita generati. È possibile utilizzare librerie C (ad esempio per le stringhe). Nel caso si strutturi a moduli l'applicazione qualunque libreria utente va riportata nello svolgimento. 21

15 FONDAMENTI DI INFORMATICA 19 Febbraio 2013 Programmazione C Un file di tipo testo residenti.txt contiene un elenco di nominativi di residenti di un comune. Per ogni paziente, su una linea sono riportati cognome e nome (stringhe di 20 char) e il codice fiscale (stringa di 16 char). I codici fiscali sono tutti diversi tra loro. Un secondo file, sportello.txt, di tipo testo, memorizza i residenti che si sono rivolti allo sportello di relazioni con il pubblico, per reclami vari. Per ciascuna linea sono riportate data (nel formato gg/mm/aa), e il nominativo di un residente (cognome e nome stringhe di 20 char). Ogni cittadino residente compare una sola volta nel primo file, ma può comparire più volte nel secondo, ma associato a date diverse tra loro. Si scriva un programma C strutturato in (almeno) due funzioni dedicate rispettivamente a: a. creare un albero binario di ricerca T, ordinato in base al campo cognome, e a parità di cognome in base al nome, che per ciascun residente del primo file (residenti.txt), memorizza cognome e nome del residente e il numero totale di reclami (ovvero il numero di volte in cui compare nel secondo sportello.txt; la funzionea riceve il puntatore al primo file, il puntatore al secondo file, più altri parametri a scelta, e restituisce il puntatore all albero creato; b. accedendo a T, determinare qual è il residente che ha fatto più reclami; la funzioneb ha come parametri il puntatore all albero, più altri parametri a scelta, e restituisce l'elemento dell albero che ha il campo "numero totale di reclami" più alto. c. Per chi svolge il compito A+B (vale ulteriori 20 punti, su totale di 60 punti per A+B; tempo +30 min): Si leggano i primi 10 elementi del file residenti.txt in un vettore V e si ordini V in base al cognome, e a parità di cognome in base al nome. La funzionec è una procedura che ha come parametri

16 il puntatore al file, il vettore V (più eventuali altri a scelta), il tipo restituito è void. Il main stampi poi a video il contenuto del vettore.

17 FONDAMENTI DI INFORMATICA Programma C 24 Gennaio 2013 Un file di tipo testo pazienti.txt contiene un elenco di nominativi di pazienti di un'azienda Ospedaliera. Per ogni paziente, su una linea sono riportati cognome e nome (stringhe di 20 char) e il codice fiscale (stringa di 16 char). I codici fiscali sono tutti diversi tra loro. Un secondo file, reparto.txt, di tipo testo, memorizza i pazienti ricoverati in un reparto. Per ciascuna linea sono riportate data (nel formato gg/mm/aa), e il nominativo di un paziente (cognome e nome stringhe di 20 char). Ogni paziente compare una sola volta nel primo file, ma può comparire più volte nel secondo. Si scriva un programma C strutturato in (almeno) due funzioni dedicate rispettivamente a: a. creare una lista L in memoria centrale, ordinata in base al campo cognome, e a parità di cognome in base al nome, che per ciascun paziente del primo file (pazienti.txt), memorizza cognome e nome del paziente e il numero totale di giorni di ricovero (ovvero il numero di volte in cui compare nel secondo reparto.txt; la funzionea riceve il puntatore al primo file, il puntatore al secondo file, più altri parametri a scelta, e restituisce il puntatore alla lista creata; b. accedendo a L, determinare qual è il paziente che è stato ricoverato per il maggior numero di giorni; la funzioneb ha come parametri il puntatore alla lista, più altri parametri a scelta, e restituisce l'elemento della lista che ha il campo "numero totale di giorni di ricovero" più alto. c. Per chi svolge il compito A+B (vale ulteriori 20 punti, su totale di 60 punti per A+B; tempo +30 min): Si inseriscano i primi 10 elementi della lista L in un vettore V e si ordini V in base al numero totale di giorni di ricovero. La funzionec è una procedura che ha come parametri il puntatore alla lista

18 L, il vettore V (più eventuali altri a scelta), il tipo restituito è void. Il main stampi poi a video il contenuto del vettore.

19 FONDAMENTI DI INFORMATICA parte B Esercizio n. 2 (punti 20) 23 Maggio 2013 Un file di testo GITE.TXT memorizza le gite in treno di alcune classi scolastiche. Ciascuna gita contiene: nome accompagnatore: stringa contenente al più 20 caratteri, senza spazi stazione di partenza: stringa contenente al più 20 caratteri, senza spazi stazione di arrivo: stringa contenente al più 20 caratteri, senza spazi Un secondo file di testo, LUNG.TXT, contiene le lunghezze chilometriche delle varie tratte. Ciascuna tratta contiene: stazione di partenza: stringa contenente al più 20 caratteri, senza spazi stazione di arrivo: stringa contenente al più 20 caratteri, senza spazi lunghezza della tratta (da leggere come valore intero). Si realizzi un programma C, organizzato in almeno due funzioni, rispettivamente dedicate a: a) costruire un albero binario di ricerca, ordinato sul campo nome accompagnatore, che riporta in ciascun nodo: nome accompagnatore, stazione di partenza, stazione di arrivo, lunghezza della tratta (intero). La funzionea riceve i puntatori ai due file e restituisce il puntatore all albero T; b) previo inserimento da input di un nome accompagnatore letto nel main, accedendo a T determinare il totale dei chilometri che l accompagnatore deve percorrere. La funzioneb riceve il nome dell accompagnatore letto da main, il puntatore ad albero T, e restituisce un intero.

20 Ad esempio, se il file GITE.TXT contiene: Rossi Bologna Firenze Verdi Verdi Padova Venezia Ferrara Padova Bianchi Catania Enna Bianchi Enna Palermo e il file LUNG.TXT contiene: Bologna Firenze 80 Padova Venezia 40 Ferrara Padova 60 Catania Enna 60 Enna Palermo 100 per il nome Verdi la funzioneb restituisce un totale di chilometri pari a 100. NOTA BENE: si consegnino i sorgenti, eseguibile e i file di uscita generati. È possibile utilizzare librerie C (ad esempio per le stringhe). Nel caso si strutturi a moduli l applicazione qualunque libreria utente va riportata nello svolgimento.

Complessità algoritmi su strutture dati

Complessità algoritmi su strutture dati Complessità algoritmi su strutture dati Struttura di dato Ricerca Complessità (caso peggiore) Tavola non ordinata (N Ricerca O(N) elementi) sequenziale Tavola ordinata (N Ricerca binaria O(log2N) elementi)

Dettagli

Complessità algoritmi su strutture dati (riassunto)

Complessità algoritmi su strutture dati (riassunto) Complessità algoritmi su strutture dati (riassunto) Struttura di dato Algoritmo di ricerca Complessità (caso peggiore) applicabile Tavola come array non Ricerca sequenziale O(N) ordinato (N elementi) Tavola

Dettagli

FONDAMENTI DI INFORMATICA II (2h, punti 30/30) 26 Luglio 2011

FONDAMENTI DI INFORMATICA II (2h, punti 30/30) 26 Luglio 2011 FONDAMENTI DI INFORMATICA II (2h, punti 30/30) 26 Luglio 2011 Esercizio 2 PROGRAMMAZIONE IN C (punti 20) Si vogliono trovare gli elementi in comune a due file testo di parole (UNO.TXT e DUE.TXT), ordinarle

Dettagli

Esercizi di preparazione alla prova scritta

Esercizi di preparazione alla prova scritta Esercizi di preparazione alla prova scritta ARGOMENTI: Istruzione dominante, complessità ESERCIZIO n 1 Si analizzi il seguente frammento di codice C: #define N 10 int V[N]={1,2,3,4,5,6,7,8,9,10;... main()

Dettagli

$ PROVA INTERMEDIA 20 Aprile 2017

$ PROVA INTERMEDIA 20 Aprile 2017 $ PROVA INTERMEDIA 20 Aprile 2017 In un file binario alimenti.bin sono scritti i valori calorici (per 100 grammi di prodotto) dei prodotti alimentari. Per ciascun prodotto, il file alimenti.bin contiene

Dettagli

IL CONCETTO DI LISTA!

IL CONCETTO DI LISTA! Liste semplici Obiettivi: Discutere la realizzazione collegata (puntatori a strutture) di liste semplici Introdurre l ADT lista semplice e le operazioni tipiche su essa 1 IL CONCETTO DI LISTA Una lista

Dettagli

L albero e un tipo astratto di dati usato per rappresentare relazioni gerarchiche.

L albero e un tipo astratto di dati usato per rappresentare relazioni gerarchiche. Lezioni di C L albero e un tipo astratto di dati usato per rappresentare relazioni gerarchiche. qstruttura del file system qalbero genealogico qorganigramma qalbero di decisione q... s=6*8+((2+42)*(5+12)+987*7*123+15*54)

Dettagli

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE Prova di Algoritmi e s.d. (1o anno) 17 Settembre 2002 TESTO e RISPOSTE Esercizio 1 (punti 7 in prima approssimazione) Consideriamo alberi binari con insieme dei nodi NODI = N (l'insieme dei naturali).

Dettagli

Esercizio 1: media di numeri reali (uso funzioni e struct)

Esercizio 1: media di numeri reali (uso funzioni e struct) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le

Dettagli

ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2)

ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2) ADT LISTA Pochi Linguaggi forniscono tipo lista fra predefiniti (LISP, Prolog); per gli altri, ADT lista si costruisce a partire da altre strutture dati (in C tipicamente vettori o puntatori) OPERAZIONI

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 25 Luglio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,-8,-4; int N = 7; int i; Scrivere la porzione di codice che sostituisca

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 6 Aprile 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int x = -1; Scrivere la porzione di codice che inserisce

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 27 Giugno 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int i; Scrivere la porzione di codice che sostituisca

Dettagli

Fondamenti di Informatica 1 - Compito A

Fondamenti di Informatica 1 - Compito A Fondamenti di Informatica 1 - Compito A Prof. Marco Gavanelli 18 Giugno 2007 Esercizio (16 punti) Un programma in linguaggio C deve accedere ad un database di studenti, memorizzato in un file binario studenti.bin.

Dettagli

PROGRAMMAZIONE II canale A-D luglio 2008 TRACCIA DI SOLUZIONE

PROGRAMMAZIONE II canale A-D luglio 2008 TRACCIA DI SOLUZIONE PROGRAMMAZIONE II canale A-D 2007-2008 14 luglio 2008 TRACCIA DI SOLUZIONE 1. Si vogliono realizzare mediante puntatori delle liste circolari, cioè delle liste tali che l ultimo elemento della lista punta

Dettagli

Indice come albero binario di ricerca!

Indice come albero binario di ricerca! Indice come albero binario di ricerca! n Obiettivo: Utilizzare una struttura dati del tipo albero binario di ricerca per realizzare un indice su file Ricerca sull indice in memoria centrale, poi accesso

Dettagli

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie

Dettagli

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Dettagli

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa. 3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il

Dettagli

#include <stdio.h> #include <stdlib.h> #define L 20 void Proc(char [], int); int N=L; main () { char *s; int i;

#include <stdio.h> #include <stdlib.h> #define L 20 void Proc(char [], int); int N=L; main () { char *s; int i; Fondamenti di Informatica L-A (A.A. 2002/2003) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista Prova d Esame di Martedì 09/09/2003 durata 2h:30m ESERCIZIO 1 (12 punti) Si scriva una procedura

Dettagli

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione. Alcuni Soluzioni ESERCIZIO 1 Data una sequenza di interi di dimensione dim, determinare se esistono esattamente cont occorrenze del valore val, utilizzando per questo una variabile booleana check. Stato

Dettagli

PROVA SCRITTA 23 MARZO 2010

PROVA SCRITTA 23 MARZO 2010 PROVA SCRITTA 23 MARZO 2010 In un file binario, MY_FILE.DAT, si memorizzano per ciascuno studente universitario: nome e cognome (stringhe, 20 char), matricola (intero), codice del corso di laurea (stringa

Dettagli

E12 Esercizi su Strutture dati dinamiche in C

E12 Esercizi su Strutture dati dinamiche in C E12 Esercizi su Strutture dati dinamiche in C Esercizio 1. Si vuole realizzare una lista caratteri in C utilizzando una rappresentazione semplicemente collegata. Scrivere una struttura nodo che contiene

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 19 Settembre 2006 Esercizio 1 (4 punti) Date le seguenti variabili int pari; int dispari; Stat; Stat s; A[] = 2,3,7,-2,5,-8,-4; int N = 7; int i; Scrivere

Dettagli

Lezione 12 Tabelle Hash

Lezione 12 Tabelle Hash Lezione 12 Tabelle Hash Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 2 ABR: Visita Scrivere un programma che legga

Dettagli

Esercizio. 2 i=i*2) j=j*2)

Esercizio. 2 i=i*2) j=j*2) Esercizio 1 Esercizio 2 i=i*2) j=j*2) Soluzione Il frammento è composto da due parti quasi identiche. L unica differenza è il modo in cui crescono i contatori. Nella prima parte la crescita è lineare mentre

Dettagli

Prossime lezioni e tutorato!

Prossime lezioni e tutorato! Prossime lezioni e tutorato! n 15 Aprile h. 11 Lezione in laboratorio n 20 Aprile (lunedi ) h. 8.45 lezione in Aula 1 (Java) n 22 Aprile h. 11 Lezione in laboratorio Tutorato: n 13 Aprile h. 8.45 n 16

Dettagli

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C:

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C: Fondamenti Informatica B Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2 Esercizio 1 tema 1 Siano date le seguenti definizioni di costanti e tipi in linguaggio C: #define MAX_LENGTH 40

Dettagli

ESERCIZIO: Analisi di un programma. Dato il seguente programma C:

ESERCIZIO: Analisi di un programma. Dato il seguente programma C: : Analisi di un programma Dato il seguente programma C: #include #define D 4 float A(float V[], int k) {int i; float s=0.0; for(i=0;i

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 05 Array. Lab06 1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 05 Array. Lab06 1 Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 05 Array Lab06 1 Esercizio 1 n Creare un programma che legga da input un numero non noto a priori di interi (al

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Damiano Macedonio Esercizio 1 Scrivere una funzione che riceve in ingresso un puntatore ad un array di interi e modifica tale array

Dettagli

Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista

Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 11 Esercitazione: 27 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo del numero di

Dettagli

Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 8 Esercitazione: 11 gennaio 2006 Esercizi su strutture dinamiche

Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 8 Esercitazione: 11 gennaio 2006 Esercizi su strutture dinamiche Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 8 Esercitazione: 11 gennaio 2006 Esercizi su strutture dinamiche Esercizio 1 Liste: calcolo del numero di elementi ripetuti

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

Alberi ed Alberi Binari di Ricerca

Alberi ed Alberi Binari di Ricerca Alberi ed Alberi Binari di Ricerca Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell

Dettagli

Verificare se un albero binario è bilanciato

Verificare se un albero binario è bilanciato Verificare se un albero binario è bilanciato Definizione: Un albero è bilanciato nel Numero dei Nodi, brevemente n- bilanciato, quando, per ogni sottoalbero t radicato in un suo nodo, il numero dei nodi

Dettagli

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione

Dettagli

/* programma per costruire una partizione del grafo in foreste disgiunte */ #include <stdio.h> #include <stdlib.h>

/* programma per costruire una partizione del grafo in foreste disgiunte */ #include <stdio.h> #include <stdlib.h> /* programma per costruire una partizione del grafo in foreste disgiunte */ #include #include /********************/ /* definizione tipi */ /********************/ /* implementazione

Dettagli

Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche:

Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche: Heapsort Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche: T(n) = O(n log(n)) Alg. Ordinamento ottimale Ordina in loco (niente

Dettagli

ADT ALBERO BINARIO (tree)) ADT ALBERO BINARIO

ADT ALBERO BINARIO (tree)) ADT ALBERO BINARIO ADT ALBERO BINARIO (tree)) Rappresentazione collegata (puntatori a strutture) 1 ADT ALBERO BINARIO OPERAZIONI O PRIMITIVE DA REALIZZARE Operazione cons_tree: D x tree -> tree root: tree -> D left: tree

Dettagli

Esercizio 1 Soluzione

Esercizio 1 Soluzione Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 06 Array Lab06 1 Esercizio 1 Creare

Dettagli

strutture e file di testo/binari Esercizio - lettura/filtro/scrittura PEOPLE.TXT PARTNERS.DAT Due persone sono compatibili

strutture e file di testo/binari Esercizio - lettura/filtro/scrittura PEOPLE.TXT PARTNERS.DAT Due persone sono compatibili Fondamenti di Informatica T-1 modulo 2 Laboratorio 06: strutture e file di testo/binari 1 Esercizio i 1: Strutture tt e file Esercizio - lettura/filtro/scrittura È dato un file di testo PEOPLE.TXT che

Dettagli

char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe

char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe Stringhe s char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); c i a o \0 Scrivere un programma che legga da input un array

Dettagli

Lab 08 Stringhe e strutture

Lab 08 Stringhe e strutture Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 08 Stringhe e strutture Lab12 1 Esercizio

Dettagli

ELEMENTI DI INFORMATICA. Linguaggio C

ELEMENTI DI INFORMATICA. Linguaggio C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:

Dettagli

Algoritmo di ordinamento sul posto che ha tempo di esecuzione :

Algoritmo di ordinamento sul posto che ha tempo di esecuzione : QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : O(n2 ) nel caso peggiore O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior algoritmo

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 1: funzione con valore di ritorno di tipo puntatore Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio

Dettagli

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono Algoritmi e Strutture Dati Laboratorio 15/12/2008 Problema della compressione Rappresentare i dati in modo efficiente Impiegare il numero minore di bit per la rappresentazione Goal: risparmio spazio su

Dettagli

accesso * leggiaccessi(char * nomefile, int * dim);

accesso * leggiaccessi(char * nomefile, int * dim); Fondamenti di Informatica L-A (A.A. precedenti al 2008/2009) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista Prova d Esame di Martedì 22 Dicembre 2009 durata 2h ESERCIZIO 1 (10 punti) Un'azienda

Dettagli

Fondamenti di Informatica T1. Lab 04 Array. Lab06 1

Fondamenti di Informatica T1. Lab 04 Array. Lab06 1 Fondamenti di Informatica T1 Lab 04 Array Lab06 1 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0. Tale sequenza può eventualmente contenere

Dettagli

Lab 12 Stringhe e strutture"

Lab 12 Stringhe e strutture Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 12 Stringhe e strutture" Lab12 1

Dettagli

1 (6) 2 (7) 3 (7) 4 (7) 5 (6)

1 (6) 2 (7) 3 (7) 4 (7) 5 (6) CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B anno accademico 010-011 Prof. Danilo ARDAGNA Seconda Prova in Itinere 7.06.011 Durata 1h 30 Valutazioni 1 (6) (7) 3 (7) 4 (7)

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome

Dettagli

Esempio di Prova Scritta

Esempio di Prova Scritta Esempio di Prova Scritta La prova scritta è composta da alcuni esercizi per un totale di 12 punti, sufficienza con 7 punti (durata: circa 1h). Le tipologie di esercizi possibili comprendono: sintesi di

Dettagli

Corso di Informatica 1 Esercitazione n. 7

Corso di Informatica 1 Esercitazione n. 7 Corso di Informatica 1 Esercitazione n. 7 Marco Liverani Esercizio n. 1 Letta in input una sequenza di numeri interi memorizzarli in una lista e stampare la lista stessa. Eliminare dalla lista i nodi che

Dettagli

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in 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

Fondamenti di Informatica T 1, 2009/2010 Modulo 2 Prova d Esame 3a di Giovedì 11 Febbraio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T 1, 2009/2010 Modulo 2 Prova d Esame 3a di Giovedì 11 Febbraio 2010 tempo a disposizione 2h30' Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit3A.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio

Dettagli

Lezione 6: 12 Novembre 2013

Lezione 6: 12 Novembre 2013 Tutorato di Algoritmi e Strutture Dati [CT0371] Tutor: Alberto Carraro Lezione 6: 12 Novembre 2013 Disclaimer: Queste note non sono state sottoposte al consueto controllo riservato alle pubblicazioni ufficiali.

Dettagli

Parte Input e output in linguaggio i C. 3. Programmazione strutturata 1 (if, switch, comunque segnalare dei warning

Parte Input e output in linguaggio i C. 3. Programmazione strutturata 1 (if, switch, comunque segnalare dei warning Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Parte 2 Laboratorio 01 1. Input e output in linguaggio i C 2. Espressioni 3. Programmazione strutturata 1 (if, switch, do while) 1 2 Warning

Dettagli

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 2A di Mercoledì 13 Gennaio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 2A di Mercoledì 13 Gennaio 2010 tempo a disposizione 2h30' Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit2A.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio

Dettagli

Esercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli

Esercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli Esercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli Esercizi per la manipolazione di insiemi (rappresentati tramite liste) Insiemi.c /*Questo file include i prototipi e le definizioni di specifiche

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Puntatori a Funzioni e Callback. Massimo Benerecetti

Puntatori a Funzioni e Callback. Massimo Benerecetti Puntatori a Funzioni e Callback Massimo Benerecetti Puntatori a Funzione Un «puntatore a funzione» è un puntatore che punta all indirizzo di memoria in cui è contenuto il codice eseguibile di una funzione.

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

ADT ALBERO BINARIO (tree)! n Rappresentazione collegata (puntatori a strutture)

ADT ALBERO BINARIO (tree)! n Rappresentazione collegata (puntatori a strutture) ADT ALBERO BINARIO (tree)! n Rappresentazione collegata (puntatori a strutture) 1 ADT ALBERO BINARIO OPERAZIONI PRIMITIVE DA REALIZZARE Operazione! cons_tree: D x tree x tree -> tree! root: tree -> D!

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

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 9/9/2015

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 9/9/2015 Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 9/9/2015 Chi deve recuperare il progetto del modulo 1 ha 1 ora e 0 minuti per svolgere gli esercizi 1, 2, Chi deve recuperare

Dettagli

Compito B. list consolidate(list l1, list l2);

Compito B. list consolidate(list l1, list l2); Fondamenti di Informatica T-1 (A.A. 2014/2015) - Ingegneria Informatica Prof.ssa Mello Prova Parziale d Esame di Martedì 13 Febbraio 2015 durata 1h Totale 12 punti, sufficienza con 7 ESERCIZIO 1 (6 punti)

Dettagli

Algoritmi e Strutture Dati. Lezione 3

Algoritmi e Strutture Dati. Lezione 3 Algoritmi e Strutture Dati Lezione 3 www.iet.unipi.it/a.virdis Antonio Virdis antonio.virdis@unipi.it 1 Sommario Alberi Binari di Ricerca Gestione Stringhe Progettazione Esercizi 2 3 4 Alberi Binari 10

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

Esercizi su ABR. Prof. E. Fachini - Intr. Alg.!1

Esercizi su ABR. Prof. E. Fachini - Intr. Alg.!1 Esercizi su ABR Confronto proprietà ABR e Max-Heap. Proprietà del cammino radice-foglia individuato da una ricerca. Fusione di due ABR. Il successivo calcolato dalla radice Costruzione di un ABR bilanciato

Dettagli

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica 2014/2015 Esercizi Gennaio 2015 - Sergio Marin Vargas Scrivere un programma Una volta che avete

Dettagli

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2003/ novembre 2003

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2003/ novembre 2003 Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2003/2004-19 novembre 2003 COGNOME: NOME: MATRICOLA: Istruzioni: Scrivere solo sui fogli

Dettagli

Opinione calcolamedia( ) Opinione inverti( )

Opinione calcolamedia( ) Opinione inverti( ) Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di memorie

Dettagli

Lezione 6 Struct e qsort

Lezione 6 Struct e qsort Lezione 6 Struct e qsort Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Struct Struct Fino ad ora abbiamo utilizzato

Dettagli

Algoritmo di ordinamento sul posto che ha tempo di esecuzione :

Algoritmo di ordinamento sul posto che ha tempo di esecuzione : QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior

Dettagli

Fondamenti di Informatica T-1 Esercitazione 1. Grammatiche Complemento a 2 Analisi Record di attivazione

Fondamenti di Informatica T-1 Esercitazione 1. Grammatiche Complemento a 2 Analisi Record di attivazione Fondamenti di Informatica T-1 Esercitazione 1 Grammatiche Complemento a 2 Analisi Record di attivazione 1 Contenuto di questa esercitazione Esercizi sulle grammatiche Esercizi sulla rappresentazione dei

Dettagli

1. Realizzare una funzione: int trovaritardatari(file *fprestiti, FILE *frate, Prestito *dest, int dim)

1. Realizzare una funzione: int trovaritardatari(file *fprestiti, FILE *frate, Prestito *dest, int dim) Fondamenti di Informatica L-A (A.A. 2005/2006 - CdS Ingegneria Informatica) Prof.ssa Mello & Prof. Bellavista Seconda Prova Intermedia del 07/12/2005 - durata 2.30h COMPITO C ESERCIZIO 1 (14 punti) Una

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 Soluzione della prova scritta del 31 Gennaio 2006 Esercizio 1 (4 punti) Elencare i tipi di dato predefiniti del linguaggio C, precisandone il dominio e le operazioni principali

Dettagli

Lab 09 Gestione file di testo

Lab 09 Gestione file di testo Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 09 Gestione file di testo Lab15 1

Dettagli

Manualistica 3 Le strutture di controllo

Manualistica 3 Le strutture di controllo Programmazione e Laboratorio di Programmazione Manualistica 3 Le strutture di controllo Programmazione e Laboratorio di Programmazione: Le strutture di controllo 1 Le strutture di controllo Strutture di

Dettagli

Laboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A

Laboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A Ingegneria e Scienze Informatiche - Cesena A.A. 2014-2015 pietro.dilena@unibo.it MergeSort MergeSort MergeSort: esempio MergeSort: pseudocodice Algoritmo di ordinamento ricorsivo basato sulla tecnica Divide

Dettagli

Algoritmi e Strutture di Dati A.A Esempio di prova scritta del 19 gennaio 2018 D.M CFU Libri e appunti chiusi Tempo = 2:00h

Algoritmi e Strutture di Dati A.A Esempio di prova scritta del 19 gennaio 2018 D.M CFU Libri e appunti chiusi Tempo = 2:00h Algoritmi e Strutture di Dati A.A. 2017-2018 Esempio di prova scritta del 19 gennaio 2018 D.M. 270-9CFU Libri e appunti chiusi Tempo = 2:00h Note (es: correzione veloce, eventuali indisponibilità, ecc.)...

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Quinto Appello 016-1 1 Luglio 01 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

Esercizio 1: calcolo insieme intersezione

Esercizio 1: calcolo insieme intersezione Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 19 ottobre 2005 Esercizi su array e matrici Esercizio 1: calcolo insieme intersezione Problema: *******************************************************************

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Insertion Sort Quicksort Heapsort Indice

Dettagli

Lezione 8 Liste. Rossano Venturini. Pagina web del corso.

Lezione 8 Liste. Rossano Venturini. Pagina web del corso. Lezione 8 Liste Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Prova del 18/05/2009 Scrivere un programma

Dettagli

Lezione 10 Liste. Rossano Venturini. Pagina web del corso.

Lezione 10 Liste. Rossano Venturini. Pagina web del corso. Lezione 10 Liste Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Prova del 18/05/2009 Scrivere un programma che legga

Dettagli