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

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

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

1 (8) 2 (9) 3 (4) 4 (5) 5 (6)

1 (4) 2 (16) 3 (6) 4 (6)

Il presente plico contiene 2 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

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

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

CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI

CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI

Esame di Informatica Generale 9 CFU 19 Aprile 2011 Professori: Carulli, Fiorino, Mazzei

13 Esercizi di Riepilogo

15 Riepilogo di esercizi in MATLAB

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

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

13 Esercizi di Riepilogo

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/ febbraio 2004

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori

Esercizio 1: parole nel testo

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

1. Date due matrici S e T di uguali dimensioni, definiamo la somma delle differenze assolute: numrighe. numcol SAD=5&

Esame di Informatica Generale 2/4/2012 Professori: Carulli, Fiorino. Docente Risultati Scritto Orali Fiorino martedì sera mercoledì mattina Carulli

Politecnico di Milano Facoltà di Ingegneria Milano Leonardo A.A. 2007/08

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

Fondamenti di Informatica 2

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Esercitazione 6. Array

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

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica B [079904]

Fondamenti di Informatica T-1 modulo 2

Fondamenti di Informatica 2

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2007/2008

Esercizio 1: funzione con valore di ritorno di tipo puntatore

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!

Elementi di Informatica e Programmazione Allievi Ingegneria Informatica, Elettronica e delle Telecomunicazioni, Automazione Industriale

Fondamenti di Informatica 2

Fondamenti di Informatica 12. Linguaggio C -4

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Esercizi C su array e matrici

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

PARTE

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA

Linguaggio C: Array Valeria Cardellini

- int nbrani = 0; //numero di brani presenti in archivio. int creaplaylist(tipobrano[] playlist, int n, TipoGenere g, TipoFile t);

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Fondamenti di Informatica T-1

Informatica A. Istruzioni

Progetti su più File Array e Funzioni

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

Esame di Informatica Generale 6 CFU 23 Gennaio 2012 Professori: Carulli, Fiorino

Fondamenti di Informatica 2

Opinione calcolamedia( ) Opinione inverti( )

Fondamenti di Informatica 2

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Prova in itinere del 20 Novembre 2013 RIGA COLONNA MATRICOLA

Concetti chiave. Gli Array o Vettori. Array Elementi dell array Indici e lunghezza dell array Inizializzazione di vettori Array multidimensionali

Il presente plico contiene 3 esercizi e 2 domande e deve essere debitamente compilato con cognome e nome, e numero di matricola.

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta

Esercitazione 11. Liste semplici

Esercizio 1: calcolo insieme intersezione

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

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Fondamenti di Informatica 2

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Informatica 1. Prova di recupero 21 Settembre 2001

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 8 Febbraio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Matrici. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Informatica B

Esercitazione di Reti degli elaboratori

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Lab 09 Gestione file di testo

13 Esercizi di Riepilogo

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

Esercizio 1 (17 punti)

Esercitazione 6. Corso di Fondamenti di Informatica

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

Esercizio 1. Esercizio 1 - Soluzione

Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei

Esercitazione 8. Array multidimensionali

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Esercizio 1 Conta degli elementi distinti (file esercizio1.c e leggi.h/leggi.c - 15 punti)

Matrici. Unità 7. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Programmazione I - Laboratorio

Esercizio 1 (15 punti)

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

Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica, Prof. G. Boracchi Allievi Ingegneria Civile e Mitigazione del Rischio

Programmazione I (Classe 1)

Il presente plico contiene 4 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Esercizi. Filtraggio

Appello di Fondamenti di Informatica 12/09/2017

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

NB: sono richieste almeno 4 risposte esatte per la correzione delle domande aperte

SOLUZIONE. ELEMENTI DI INFORMATICA Sede di Mondovì

Transcript:

CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2013-2014 Proff. Danilo ARDAGNA, Antonio MIELE Primo appello 14.7.2014 Cognome Nome Matricola Firma Durata: 2h Valutazioni 1 (12) 2 (6) 3 (4) 4 (4) 5 (6) Si ricorda che non è possibile consultare libri o appunti, o utilizzare la calcolatrice. - 1 - punti 12 Si consideri una versione semplificata della battaglia navale in cui le navi possono essere posizionate solo in orizzontale. Il campo di gioco di un singolo giocatore può essere rappresentato tramite un tipo typedef int CampoGioco[10][10]; in cui ogni cella della matrice quadrata assume valore 1 (presenza di una nave) o 0 (mare). Le navi possono essere lunghe da una a cinque celle. Ad esempio, nell istanza della matrice riportata sotto c è un campo di gioco in cui sono presenti 5 navi (per questioni di spazio, il campo è di dimensione 5x5): una nave lunga 4 nella prima riga, una nave lunga 1 nella terza riga, una nave lunga 2 e una lunga 1 nella quarta riga e una nave lunga 4 nella quinta riga. 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 Si scriva un sottoprogramma analisicampo che ricevuto in ingresso una matrice quadrata di tipo CampoGioco e qualsiasi altro parametro ritenuto necessario svolga, nell ordine, le seguenti attività: visualizzi per ogni riga, il numero di navi presenti e la loro lunghezza; visualizzi il numero di navi complessivamente presenti; visualizzi, per ogni lunghezza di nave trovata il numero di navi di tale lunghezza. Con riferimento al campo di gioco in questione, il sottoprogramma visualizzerà: Riga 1: 1 nave lunga 4; Riga 3: 1 nave lunga 1; Riga 2: Riga 4: 1 nave lunga 2; 1 nave lunga 1; Riga 5: 1 nave lunga 4; 1

Totale navi: 5 Numero di navi lunghe 1: 2 Numero di navi lunghe 2: 1 Numero di navi lunghe 3: 0 Numero di navi lunghe 4: 2 Numero di navi lunghe 5: 0 2 Soluzione #include<stdio.h> #define MAX_L 5 #define MAX_D 10 typedef int CampoGioco[MAX_D][MAX_D]; void analisicampo(campogioco campo, int dim); void analisicampo(campogioco campo, int dim){ int conteggiotot[max_l], conteggioriga[max_l]; int i, j, l, tot; tot=0; /*inizializzo il conteggio complessivo delle navi*/ for(i=0; i<max_l; i++) conteggiotot[i] = 0; for(i=0; i<dim; i++){ /*scorro tutte le righe*/ /*inizializzo il conteggio delle navi per la riga corrente*/ for(j=0; j<max_l; j++) conteggioriga[j] = 0; /*analizzo la riga corrente*/ l=0; for(j=0; j<dim; j++){ if(campo[i][j]==1) /*incremento la lunghezza della nave corrente*/ l++; if((campo[i][j]==0 j==dim-1) && l>0){ /*abbiamo raggiunto la fine della nave corrente*/ conteggioriga[l-1]++; tot++; l=0; /*riporto le statistiche per la riga corrente ed aggiorno le statistiche complessive*/ printf("riga %d: ",i+1); for(j=0; j<max_l; j++) { if(conteggioriga[j]>0){ conteggiotot[j] = conteggiotot[j] + conteggioriga[j]; printf(" %d nave lunga %d;",conteggioriga[j],j+1); printf("\n"); /*stampo le statistiche complessive*/ printf("totale navi: %d\n",tot); for(l=0; l<max_l; l++) 2

printf("numero di navi lunghe %d: %d\n",l+1,conteggiotot[l]); 3 /*non richiesto dall esercizio*/ void main(){ CampoGioco campo; int i,j; for(i=0; i<max_d; i++){ for(j=0; j<max_d; j++){ scanf("%d",&campo[i][j]); analisicampo(campo,max_d); - 2 - punti 6 Descrivere le attività svolte dal seguente codice Matlab: A = load( dati.txt ) indexes = find(a>2 & A<5) x=-pi:0.1:pi; y = A(indexes(1))*sin(x); plot(x,y) dove dati.txt è un file di testo che contiene su una sola riga il seguente testo 100 2 5 5 20 4 5 2 20 3 3 54 Nella prima riga la funzione load carica nella variabile A un array riga di 12 elementi memorizzato nel file di testo dati.txt. La funzione find della seconda riga restituisce un vettore di indici di A che individuano elementi compresi tra 2 e 5. Nell esempio riportato indexes conterrà gli indici 6, 10 e 11. La terza riga definisce un vettore x contenente una successione di numeri compresi tra π e π, ognuno incrementato rispetto al precedente di una quantità pari a 0.1. La riga quattro calcola il valore del seno per i punti dell array x e lo moltiplica per il valore di A nella posizione 6 (index(1)) cioè 4. Infine plot(x,y) crea un grafico bidimensionale congiungendo mediante segmenti di retta i punti definiti dalle coppie cartesiane (x(i), y(i)). 3

4-3 - punti 4 Indicare l output prodotto a video dal seguente programma C: #include <stdio.h> void main() { int x,y,i; x=1; y=3; printf("i x y\n"); for (i=10; i>=0; i--) { y = y +i%2; if(i%2==0) x=y*2 -i; else if(i%3==0){ y=x+i; x = x + 1; printf("%d %d %d\n",i,x,y); L output a video della printf è: i x y 10-4 3 9-3 5 8 2 5 7 2 6 6 6 6 5 6 7 4 10 7 3 11 13 2 24 13 1 24 14 0 28 14-4 - punti 4 Spiegare per quali motivi nei moderni calcolatori si preferisce utilizzare la rappresentazione in complemento a 2 rispetto a quella in modulo e segno. Stesso hardware per effettuare somme e sottrazioni (aspetto più importante). Inoltre, una sola rappresentazione per lo zero 4

- 5 - punti 6 Dato il seguente schema logico: 5 Cliente (CodiceFiscale, Nome, Cognome, Sesso, DataNascita, Indirizzo) Volo(NumeroVolo, DataVolo, OraPartenza, OraArrivo, CittaPartenza, CittaArrivo) PrenotazioneVolo(CodiceFiscalePasseggero, NumeroVolo, DataVolo, Costo) specificare le chiavi ed i vincoli di integrità referenziale. Formulare inoltre in SQL le seguenti query: a) Indicare nome e cognome dei passeggeri che hanno effettuato almeno un volo con destinazione Barcellona nel 2014 b) Elencare i passeggeri nati nel 1983 residenti a Milano c) Indicare il codice fiscale dei passeggeri che hanno preso voli diretti da Milano Linate a Barcellona il giorno 10/7/2014. Chiavi: Cliente: CodiceFiscale Volo: NumeroVolo, DataVolo PrenotazioneVolo: CodiceFiscalePasseggero, NumeroVolo, DataVolo Vincoli integrità referenziale: CodiceFiscalePasseggero-> CodiceFiscale E tra gli attiibuti (NumeroVolo, DataVolo) di PrenotazioneVolo e la coppia di attributi (NumeroVolo, DataVolo) della relazione Volo a) SELECT Nome, Cognome FROM Cliente, Volo, PrenotazioneVolo WHERE CodiceFiscale= CodiceFiscalePasseggero AND Volo.NumeroVolo= PrenotazioneVolo.NumeroVolo AND Volo.DataVolo = PrenotazioneVolo.DataVolo AND CittaArrivo= Barcellona AND PrenotazioneVolo.DataVolo between 1/1/2014 AND 31/12/2014 b) SELECT * FROM Cliente WHERE DataNascita between 1/1/1983 AND 31/12/1983 AND Indirizzo like %Milano% c) SELECT CodiceFiscalePasseggero FROM Volo, PrenotazioneVolo WHERE Volo.NumeroVolo= PrenotazioneVolo.NumeroVolo AND Volo.DataVolo= PrenotazioneVolo.DataVolo AND CittaPartenza= Milano Linate AND CittaArrivo= Barcellona AND DataVolo=10/7/2014 5