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

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

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

Introduzione al MATLAB c Parte 3 Script e function

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

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Introduzione a MATLAB

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

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

Laboratorio di Matlab

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Informatica 1. Prova di recupero 21 Settembre 2001

Esercizio 1: funzione con valore di ritorno di tipo puntatore

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

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

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Prove d esame Esercizi con Matlab

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Esercizi C su array e matrici

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione

Funzioni, Stack e Visibilità delle Variabili in C

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.

Esercizio 1 Liste: calcolo perimetro di un poligono

MATLAB Elementi di grafica Costrutti di programmazione

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Preprocessore, linker e libreria standard

Esercitazione Dicembre 2010 (2 ore)

Esercizio 1: calcolo del massimo di una sequenza (versione 1)

Esame Informatica Generale 13/04/2016 Tema A

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

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

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

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

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Lab 10 Passaggio per riferimento

Mini-Corso di Informatica

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015

Esercizio 1. Esercizio 2

Fondamenti di Informatica

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

Le Funzioni e la Ricorsione

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica T-1 Modulo 2

Introduzione a Matlab

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Studente (Cognome Nome):

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

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

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

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

Esercitazione 6. Array

Passare argomenti al programma

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

Esercitazione 5. Corso di Fondamenti di Informatica. Laurea in Ingegneria Informatica

Script in Matlab. INFORMATICA B + C (sezione L-Z) Ingegneria Elettrica, Chimica e dei Materiali

Informatica Applicata al Suono Tutorial Matlab

Programmi su più moduli - Esempio

Fondamenti di Informatica

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Linguaggio C: introduzione

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 25 Gennaio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Fondamenti di Informatica

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

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO IX.2014

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Spazio riservato ai docenti

Stringhe e allocazione dinamica della memoria

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Corso di Matematica per la Chimica

FONDAMENTI DI INFORMATICA

06AZN - Fondamenti di Informatica (GES, LOP, ORG) Esercitazione di laboratorio n. 8 (1/12/09)

Corso sul linguaggio C Modulo Tipi di dato

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Lab 10 Gestione file di testo

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

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Funzioni. function [<risultati>] = nome_funzione ([ par.formali ])

Input/Output di numeri

Introduzione a Matlab. Renato Mainetti

SOLUZIONE ESERCIZIO 1

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Elementi di C++ di base

Confronto tra stringhe. (modulo) Calcolo della media e della varianza. Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo)

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Programmazione a moduli in C

Transcript:

CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2014-2015 Proff. Danilo ARDAGNA, Antonio MIELE Seconda Prova in Itinere 29.6.2015 Cognome Nome Matricola Firma Durata: 2h Valutazioni 1 (7) 2 (6) 3 (6) 4 (7) 5 (6) Si ricorda che non è possibile consultare libri o appunti, o utilizzare la calcolatrice. - 1 - punti 7 La regressione lineare è un metodo statistico che serve per calcolare una linea retta che interpola una sequenza di punti in uno spazio cartesiano. In figura è mostrato un esempio di retta che interpola una data serie di punti. La retta y=mx+q che interpola una data sequenza di punti (x i,y i ) può essere calcolata mediante le seguenti formule: m =!!!!(!!!!)(!!!!)!!!!(!!!!)! q = y mx in cui x e y indicano i valori medi dei vettori x i ed y i. Scrivere una funzione Matlab che riceve come parametri due vettori x ed y contenenti le coordinate della serie di punti, verifica se i due vettori sono consistenti (stessa dimensione) e calcola e restituisce i parametri m e q della retta interpolata. Infine in caso i due vettori non sono consistenti, la funzione segnala un errore. 1

function [m q] = regressione(x, y) assert(all(size(x)==size(y))); 2 mx = mean(x); my = mean(y); m = sum((y-my).*(x-mx))./ sum((x-mx).*(x-mx)); q = my - m.*mx; - 2 - punti 6 Implementare uno script Matlab che 1. legge in input i vettori x ed y 2. esegue l interpolazione mediante la funzione definita nel primo esercizio; 3. disegna la curva interpolata e la sequenza di punti; 4. chiede all utente se vuole eseguire un altra interpolazione. In caso affermativo lo script riparte dal punto 1, altrimenti termina. Si noti che per disegnare una sequenza di punti basta specificare alla funzione plot la stringa o come terzo parametro dopo i due vettori contenenti le coordinate. Facoltativo Fornire una diversa implementazione del punto 1 in modo tale che lo script: 1a. chiede all utente il nome del file contenente le coordinate di una serie di punti (si assuma che ogni riga del file contiene la coordinata x e y di un punto); 1b. carica i dati dal file; continua=true; while continua x = input('inserisci il vettore delle x dei punti: '); y = input('inserisci il vettore delle y dei punti: '); [m q] = regressione(x,y); y1 = m.*x+q; hold on; plot(x,y,'o'); plot(x,y1); hold off; continua=input('vuoi continuare? (true/false) '); end Soluzione facoltativo: continua=true; while continua nomefile = input('inserisci il nome del file: '); [x, y] = textread(nomefile, '%f %f'); [m q] = regressione(x,y); y1 = m.*x+q; hold on; plot(x,y,'o'); plot(x,y1); hold off; continua=input('vuoi continuare? (true/false) '); end 2

3-3 - punti 6 Si consideri la seguente funzione Matlab: function [vett] = (a) if length(a) < 2 vett = a; elseif mod(length(a),2)==0 b = (a(2:end)); vett = [b a(1)]; else b = (a(2:end)); vett = [a(1) b]; end Mostrare come evolve la pila dei workspace ad ogni chiamata a funzione ed uscita dalla funzione, specificando anche il valore dei parametri in ingresso ed uscita, nel caso in cui vengano eseguiti i seguenti due comandi nella command line. Specificare infine il valore di q. v = [1 2 3 4 5]; q = (v); a=[5] 3

a=[5] vett=[5] vett=[5 4] v=? vett=[3 5 4] vett=[3 5 4 2] vett=[1 3 5 4 2] q=[1 3 5 4 2] 4 Dopo l esecuzione della funzione ricorsiva, q vale: q = [1 3 5 4 2]; - 4 - punti 7 Realizzare un programma in C che: Richieda all utente di inserire uno alla volta tutti gli elementi (numeri in virgola mobile) di una matrice quadrata NxN con N=5. Normalizzi la matrice A salvando il risultato in una nuova matrice B Stampi a video B. La matrice normalizzata può essere calcolata con la seguente espressione: B = A kak dove Suggerimento: per il calcolo dell elevamento a potenza e della radice quadrata utilizzare le funzioni pow e sqrt definite nella libreria math.h. La funzione pow riceve come parametri la base e l esponente (due valori in virgola mobile) e restituisce l elevamento a potenza; la funzione sqrt riceve come parametri un valore in virgola mobile e restituisce la radice quadrata del numero. #include <stdio.h> #include <math.h> #define N 5 s X X kak = a(i, j) 2 i j void main() { double a[n][n], b[n][n]; int i, j; 4

float sommaquadrati; float normaa; 5 // caricamento matrice for (i = 0; i < N; ++i) scanf("%f ", &a[i][j]); // calcolo della norma di a sommaquadrati = 0; for (i = 0; i < N; ++i) sommaquadrati = sommaquadrati + pow(a[i][j],2); normaa = sqrt(sommaquadrati); // calcolo di b for (i = 0; i < N; ++i) b[i][j] = a[i][j]/normaa; } // stampa di di b for (i = 0; i < N; ++i){ printf("%f ", b[i][j]); printf("\n"); } - 5 - punti 6 Facendo riferimento al seguente schema logico: Pilota (Numero, Nome, Cognome, DataNascita, Nazione) Costruttore (Nome, Nazione, NomePresidente, CognomePresidente) Auto (Pilota, CostruttoreTelaio, CostruttoreMotore) Circuito(Nome, DataGara, Km) ClassificaCircuito(Posizione, NomeCircuito, Pilota) Auto.Pilota->Pilota.Numero Auto.CostruttoreTelaio->Costruttore.Nome Auto.CostruttoreMotore->Costruttore.Nome ClassificaCircuito.NomeCircuito->Circuito.Nome ClassificaCircuito.Pilota-> Pilota.Numero Indicare le chiavi primarie ed i vincoli di integrità referenziale e formulare in SQL le seguenti interrogazioni: a) Elencare le auto in cui sia il telaio che il motore sono forniti dallo stesso costruttore b) Fornire nome e cognome dei primi tre classificati del gran premio di Monaco c) Fornire nome e cognome dei piloti primi classificati in circuiti la cui lunghezza è superiore ai 6 km 5

6 a) SELECT Pilota FROM Auto WHERE CostruttoreTelaio=CostruttoreMotore b) SELECT Nome, Cognome FROM ClassificaCircuito, Pilota WHERE Pilota=Numero and Posizione between 1 and 3 and NomeCircuito= Monaco c) SELECT DISTINCT Pilota.Nome, Cognome FROM ClassificaCircuito, Pilota, Circuito WHERE Circuito.Nome=NomeCircuito and Pilota=Numero and Posizione=1 and Km>6 6