Complessità algoritmi su strutture dati (riassunto)
|
|
- Cristiano Luciani
- 7 anni fa
- Visualizzazioni
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 Struttura di dato Ricerca Complessità (caso peggiore) Tavola non ordinata (N Ricerca O(N) elementi) sequenziale Tavola ordinata (N Ricerca binaria O(log2N) elementi)
DettagliComplessità 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
DettagliFONDAMENTI 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
DettagliEsercizi 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 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
DettagliIL 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
DettagliL 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)
DettagliProva 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).
DettagliEsercizio 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
DettagliADT 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
DettagliFondamenti 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
DettagliFondamenti 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
DettagliEsercizio 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
DettagliFondamenti 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
DettagliFondamenti 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.
DettagliPROGRAMMAZIONE 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
DettagliIndice 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
Dettagligiapresente( ) 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
DettagliEsercitazione 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
DettagliARRAY 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;
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
DettagliAlcuni 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
DettagliPROVA 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
DettagliE12 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
DettagliFondamenti 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
DettagliLezione 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
DettagliEsercizio. 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
DettagliProssime 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
DettagliSoluzioni 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
DettagliESERCIZIO: 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
DettagliFondamenti 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
DettagliLaboratorio 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
DettagliEsercizio 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
DettagliEsercitazione 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
DettagliIl 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
DettagliAlberi 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
DettagliVerificare 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
DettagliLE 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 #include /********************/ /* definizione tipi */ /********************/ /* implementazione
DettagliDato 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
DettagliADT 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
DettagliEsercizio 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
Dettaglistrutture 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
Dettaglichar *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
DettagliLab 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
DettagliELEMENTI 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:
DettagliAlgoritmo 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
DettagliEsercizio 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
DettagliAlgoritmi 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
Dettagliaccesso * 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
DettagliFondamenti 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
DettagliLab 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
Dettagli1 (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)
DettagliFondamenti 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
DettagliEsempio 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
DettagliCorso 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
DettagliAlberi 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
DettagliProgrammazione 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
DettagliFondamenti 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
DettagliLezione 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.
DettagliParte 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
DettagliFondamenti 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
DettagliEsercitazioni 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
DettagliStringhe 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
DettagliPuntatori 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.
DettagliAlgoritmi 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
DettagliADT 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!
DettagliLezione 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
DettagliCorso 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
DettagliCompito 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)
DettagliAlgoritmi 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
DettagliPILE 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):
DettagliEsercizi 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
DettagliUniversità 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
DettagliPolitecnico 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
DettagliOpinione 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
DettagliLezione 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
DettagliAlgoritmo 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
DettagliFondamenti 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
Dettagli1. 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
DettagliFondamenti 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
DettagliLab 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
DettagliManualistica 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
DettagliLaboratorio 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
DettagliAlgoritmi 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.)...
DettagliProgrammazione 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,
DettagliEsercizio 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: *******************************************************************
DettagliFondamenti 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.
DettagliAlgoritmi 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
DettagliLezione 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
DettagliLezione 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