PROVA SCRITTA DEL MODULO DI

Documenti analoghi
PROVA SCRITTA DEL MODULO DI

PROVA SCRITTA DEL MODULO DI

PROVA SCRITTA DEL MODULO DI

PROVA SCRITTA DEL MODULO DI

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 5A di Mercoledì 13 Luglio 2011 tempo a disposizione 2h

PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 17/2/2009

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

SECONDA PROVA INTERMEDIA DEL MODULO DI

Fondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 1A di Giovedì 9 Gennaio 2014 tempo a disposizione 2h

PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 2A di Giovedì 26 Gennaio 2017 tempo a disposizione 2h

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

SIMULAZIONE Fondamenti di Informatica T-1 Prova di Laboratorio - 14 Dicembre 2009 Compito B

Fondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 5A di Giovedì 9 Luglio 2015 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2011/2012 Modulo 2. Prova d Esame 3A di Giovedì 9 Febbraio 2012 tempo a disposizione 2h

PROVA SCRITTA DEL CORSO DI. Dedurre la funzione semplificata dall osservazione della tabella o con le leggi dell algebra booleana.

$ PROVA INTERMEDIA 20 Aprile 2017

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 3A di Venerdì 12 Febbraio 2016 tempo a disposizione 2h

ELEMENTI DI INFORMATICA LB ESERCITAZIONE (del 09/03/2007) Files, Strutture e Liste

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 3A di Giovedì 16 Febbraio 2017 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 1A di Giovedì 14 Gennaio 2016 tempo a disposizione 2h

Definizione Allocazione di variabili e vettori Le liste

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 3A di Mercoledì 16 Febbraio 2011 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2018/2019 Modulo 2. Prova d Esame 3A di Giovedì 14 Febbraio 2019 tempo a disposizione 2h

Lezione 8 Struct e qsort

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 1B di Mercoledì 19 Gennaio 2011 tempo a disposizione 2h

Prova Scritta del 20/09/10

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

SECONDA PROVA INTERMEDIA DEL MODULO DI

Fondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 2A di Martedì 29 Gennaio 2015 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 6A di Giovedì 12 Settembre 2013 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 2A di Giovedì 25 Gennaio 2018 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 6A di Giovedì 14 Settembre 2017 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 1A di Martedì 13 Gennaio 2015 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 6A di Mercoledì 14 Settembre 2011 tempo a disposizione 2h

Le strutture /3. Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri.

Fondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 4A di Giovedì 13 Giugno 2013 tempo a disposizione 2h

ESERCIZIO 1 (5 punti) Convertire in binario il valore, espresso in decimale, Si usi la rappresentazione in virgola fissa.

Informatica 1. Prova di recupero 21 Settembre 2001

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 1A di Giovedì 11 Gennaio 2018 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 5A di Giovedì 11 Luglio 2013 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2011/2012 Modulo 2. Prova d Esame 2A di Giovedì 12 Gennaio 2012 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 4A di Giovedì 14 Giugno 2018 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 1A di Giovedì 12 Gennaio 2017 tempo a disposizione 2h

IL CONCETTO DI LISTA!

Esercizio 1 Domanda di teoria (13 punti)

int ninv; /* numero di inventario */

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 4A di Giovedì 15 Giugno 2017 tempo a disposizione 2h

Fondamenti di Informatica T- 1, 2012/2013 Modulo 2

Stampi su file output.txt il voto massimo ed il corrispondente numero di occorrenze. Ad esempio:

Fondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 3A di Giovedì 13 Febbraio 2015 tempo a disposizione 2h

Esercizio 1: parole nel testo

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 5A di Giovedì 7 Luglio 2016 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2018/2019 Modulo 2. Prova d Esame 1A di Giovedì 10 Gennaio 2019 tempo a disposizione 2h

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

Il compito del 11 novembre 2004

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

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

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.

PRIMA PROVA INTERMEDIA DEL MODULO DI

Esercitazione 11. Liste semplici

Funzioni con numero variabile di parametri: Funzioni Variadiche in C. Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati

Fondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 6A di Giovedì 8 Settembre 2016 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 3A di Giovedì 14 Febbraio 2013 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 5A di Giovedì 13 Luglio 2017 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 5A di Giovedì 12 Luglio 2018 tempo a disposizione 2h

Fondamenti di Informatica e Laboratorio T-AB Prova Pratica - 12 Dicembre 2008 Compito A

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 1A di Martedì 22 Dicembre 2009 tempo a disposizione 2h30'

La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre

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

Lezione 6 Struct e qsort

Relativamente agli esempi sopra riportati, al termine dell esecuzione della funzione il file di uscita dovrà contenere quanto riportato a lato.

Esercizio 1 (17 punti)

Funzioni con numero variabile di parametri: Funzioni Variadiche in C. Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati

Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri

case 0: /* child 1 - writing end */ close(fd[0]); // close read end write(fd[1], string, (strlen(string)+1));/* +1 is termination \0 */ return (0);

La copia di un file. contare di quanti caratteri sia composto il file (e quindi determinare la dimensione del file di origine)

Esercitazioni di Informatica (CIV)

Fondamenti di Informatica T-1 Modulo 2

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

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

Esercizi. Filtraggio

Aritmetica dei puntatori

ESERCIZI SVOLTI. # include <iostream.h> # include <stdlib.h> # define int_inf # define int_sup main() { int n1,n2,n3,n4,i,min_prec,minimo;

ALGHERO 5 16 VARIABILE ANCONA 7 9 NUVOLOSO AOSTA 0 4 NEVE BARI VARIABILE BOLOGNA 7 9 PIOGGIA...

Il linguaggio C Strutture

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

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

Esercizio 1 (15 punti)

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

Fondamenti di Informatica 2

Matricola Nome Cognome Aula Fila (dalla cattedra) Posto (dalla porta)

ELEMENTI DI INFORMATICA. Linguaggio C

Scrittura formattata - printf

Fondamenti di Informatica T-1, 2011/2012 Modulo 2. Prova d Esame 1A di Giovedì 22 Dicembre 2011 tempo a disposizione 2h

Esercizio n.1 FONDAMENTI DI INFORMATICA 1. Esercizio n.2. Soluzione. LINGUAGGIO C Funzioni e gestione file: esercitazione

Esercizio 1. Liste di interi

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

Transcript:

PROVA SCRITTA DEL MODULO DI MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (4 punti) (1) (2 punti) Scrivere la tabella di verità degli operatori XOR e AND. (2) (2 punti) Siete stati incaricati di progettare un sensore per l acquisizione di impronte digitali. Sapete di disporre di una risoluzione pari a 500 pixel per pollice e di 256 possibili livelli di grigio per pixel. Il pollice è un unità di misura che indica approssimativamente la larghezza di un pollice. Quanto può essere la minima grandezza, in byte, dell immagine lungo i due assi del piano per la cattura della totalità di una qualsiasi impronta, come nell immagine a lato? Nota: non è importante la ricerca di un valore giusto, quanto il saper indicare il ragionamento che ha portato alla risposta. ESERCIZIO 2 (4 punti) Descrivere in modo chiaro e sintetico l architettura di un moderno calcolatore elettronico. ESERCIZIO 3 (25 punti) (4 punti) In un azienda dedita alla differenziazione dei rifiuti sono stati installati dei separatori ottici per analizzare le tipologie di rifiuti ed inoltrarli ai trattamenti più opportuni. Attraverso i sensori ed un opportuno algoritmo, il sistema è in grado di categorizzare il rifiuto rilevato in: - Classe 0 - CPL: bottiglie e flaconi in plastica; - Classe 1 - Imballaggio: contenitori per liquidi non inclusi nei CPL; - Classe 2 - Tracciante: shoppers e materiali d imballaggio; - Classe 3 - Frazione neutra: cassette per prodotti ortofrutticoli e alimentari; - Classe 4 - Frazione estranea: qualsiasi manufatto non in plastica. Il sistema scrive per ogni riga di un file rifiuti.txt la classe associata al rifiuto osservato in un dato istante, fra le cinque viste sopra, come numero intero compreso tra 0 e 4. A voi si richiede di scrivere un programma C che stampi a video il numero di oggetti per ciascuna classe, espressa in chiaro come CPL, tracciante, etc., in ordine decrescente di quantità. Per fare ciò, decidete di inserire tutti i valori letti da file in una lista concatenata di interi, che poi elaborerete per ottenere i dati richiesti. Inoltre implementate le seguenti funzioni: (4 punti) leggirifiuti() apre il file rifiuti.txt e restituisce una lista concatenata di valori interi corrispondenti ciascuno alle classi individuate dal separatore ottico. (6 punti) elaborarifiuti(lista) riceve una lista concatenata di valori interi e restituisce un vettore di interi chiamato frequenze indicizzato dai valori delle classi. Il valore frequenze[i] conterrà il numero di oggetti di classe i. (8 punti) ordinarifiuti(vettore) riceve un vettore di frequenze e restituisce un altro vettore contenente gli indici delle classi più frequenti, in ordine decrescente di quantità individuata dal vettore in ingresso. (3 punti) stamparifiuti(vettore, classi) stampa a video la coppia classe-quantità, in ordine decrescente, a partire dal vettore classi che contiene la sequenza degli indici delle classi per numero di rifiuti, ordinata, in ingresso. Il valore classe dev esser la stringa corrispondente a ciascuna classe. Per esempio, se vettore=12,0,3,45,1, classi=3,0,2,4,1, la funzione dovrà stampare prima la coppia Frazione neutra: 45 e a seguire le altre secondo l ordine fornito dal vettore classi. Nota: Le funzioni CONS, HEAD, TAIL e ISEMPTY per la gestione della lista di interi sono già implementate. Bonus di 3 punti per chi riuscirà ad implementare ulteriori funzioni per modularizzare il codice.

Soluzione dell esercizio 1. 1) V. dispense del corso. 2) Poiché la larghezza di un pollice viene catturata da 500 pixel, ed il pollice presenta larghezza maggiore di quella delle altre dita, una possibile misura-base per la grandezza dell immagine può essere 500x500 pixel, pari effettivamente alla grandezza delle immagini prodotte da alcuni sensori presenti nel mercato. Volendo utilizzare una potenza di 2, 512x512 pixel è una dimensione più che accettabile. Con 256 livelli di grigio, per rappresentare i quali occorre 1 byte, abbiamo un immagine di 2 18 byte, ovvero 256 KB. Più in generale, qualunque dimensione 500xd, con d>=500 pixel, va bene, in quanto l altezza del pollice risulterà maggiore della sua larghezza, con la dimensione in B calcolata di conseguenza. Soluzione dell esercizio 2. V. dispense del corso. Soluzione dell esercizio 3. #define N 5 //numero classi di rifiuti #include <stdio.h> #include <stdlib.h> typedef struct atomo int v; struct atomo* successivo; lista; //Funzioni per la gestione della lista concatenata lista* CONS(lista* l, int x) lista* t=(lista*)malloc(sizeof(lista)); t->v=x; t->successivo=l; return t; int HEAD(lista *l) return l->v; lista* TAIL(lista *l) t=l->successivo; free(l); return t; int ISEMPTY(lista *l) return l==null;

//Funzioni richieste e funzioni bonus lista* leggirifiuti() lista* l=null; FILE *f; int x; f=fopen("rifiuti.txt","r"); while(!feof(f)) fscanf(f,"%d",&x); l=cons(l,x) fclose(f); return l; int* inizializza() int *v=(int*)malloc(sizeof(int)*n); v[i]=0; return v; int* elaborarifiuti(lista *l) int *frequenze; frequenze=inizializza(); while (!ISEMPTY(l)) i=head(l); frequenze[i]++; l=tail(l); return frequenze; int *copia(int *v) int *c=(int*)malloc(sizeof(int)*n); c[i]=v[i]; return c;

int *generaindici() int *c=(int*)malloc(sizeof(int)*n); c[i]=i; return c; int trovamassimo(int *v, int start, int stop) int imax=start; int vmax=v[start]; for (i=start+1; i<stop; i++) if (v[i]>vmax) vmax=v[i]; imax=i; return imax; void scambia(int* v, int i, int j) int t=v[i]; v[i]=v[j]; v[j]=t; int* ordinarifiuti(int* frequenze) //v. dispense su selection-sort int* w=generaindici(); int* c=copia(frequenze); //necessario lavorare su copia di frequenze int i, imax; //perché? for (i=0; i<n-1; i++) imax=trovamassimo(c,i,n); scambia(c,i,imax); scambia(w,i,imax); return w; char* estraiclasse(int i) switch(i) case 0: return "CPL"; case 1: return "Imballaggi"; case 2: return "Traccianti"; case 3: return "Frazione neutra"; return "Frazione estranea";

void stamparifiuti(int* frequenze, int* ordinata) int i, indice; char *classe; indice=ordinata[i]; classe=estraiclasse(indice); printf("%s: %d\n",classe,frequenze[indice]); int main() lista* l; int *f, *o; l=leggirifiuti(); f=elaborarifiuti(l); o=ordinarifiuti(f); stamparifiuti(f,o); return 0;