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

Documenti analoghi
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

RISOLUZIONE DI SISTEMI LINEARI

Scelte ed alternative

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro

Fondamenti di Informatica

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

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

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

MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)

Prove d esame Esercizi con Matlab

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

Programmazione I - Laboratorio

Esercizi Svolti di Programmazione

Laboratorio di Matlab

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

ESERCITAZIONE CON EXCEL SULLE MATRICI

Formalismi per la descrizione di algoritmi

Introduzione al MATLAB c Parte 2

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Introduzione a MATLAB

Vettori e Matrici (array)

Geometria BIAR Esercizi 2

a.a Codice corso: 21012, HOMEWORKS

Informatica B

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Laboratorio di Python

Il teorema di Rouché-Capelli

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

1 SIGNIFICATO DEL DETERMINANTE

MATLAB - Programmazione - 2. Antonino Polimeno

Esercitazione 5: Sistemi a risoluzione immediata.

Corso di Informatica di Base

Laboratorio con DERIVE

ESERCIZI SULLE MATRICI

Laboratorio di Python

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

Introduzione a Matlab

PROGRAMMAZIONE: Le strutture di controllo

Esercizio 1: calcolo insieme intersezione

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

MATLAB Elementi di grafica Costrutti di programmazione

Programmazione web lato client con JavaScript. Marco Camurri 1

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

Laboratorio di Programmazione Laurea in Bioinformatica

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

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

Sistemi lineari - Parte Seconda - Esercizi

Sviluppo di programmi

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

DOCUMENTAZIONE A SUPPORTO DELLA PREPARAZIONE PER LA PROVA SCRITTA

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Esercitazione 4: Vettori e Matrici

Permutazioni e Gioco del 15. Dott.ssa Giovanna Rosone

Introduzione al MATLAB c Parte 3 Script e function

Fondamenti di Informatica

Esercitazioni di Fondamenti Informatica - Modulo A 1

Variabili strutturate

Sistemi II. Sistemi II. Elisabetta Colombo

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

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

ESERCITAZIONE MATLAB

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

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

3. Vettori, Spazi Vettoriali e Matrici

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

f(x) = x e x, prendere come intervallo iniziale [0, 1] e fissare come precisione ε = 10 8.

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

% Scrivere un programma che inizializza un vettore monodimensionale di interi a = [ ]

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

FREEFEM++ Marcello Bellomi. 18 Aprile Università di Verona FREEFEM++

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

Strutture di Controllo

Università degli studi di Bergamo. Informatica II. Programmazione Object Oriented Tutorato. Lezione 1. Dott. Marco Guarnieri Dott. Eros Magri

n deve essere maggiore di 0, altrimenti il metodo restituisce null.

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B. Esempio di seconda prova in itinere A.A

Aritmetica in Floating Point

Matlab. Istruzioni condizionali, cicli for e cicli while.

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011

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

Lab.1 - Excel. Prof. De Michele e Farina

Fondamenti di Informatica T-1 Modulo 2

LESSICO E SINTASSI DEL PASCAL

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione

Esercizio 1. Esercizio 2

APPLICAZIONI LINEARI

Le basi del linguaggio Java

Vettori e Matrici (array)

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Transcript:

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

LAB 4: MATLAB/OCTAVE ESERCIZI DI STRUTTURE DI CONTROLLO, ARRAY E MATRICI SOLUZIONI 2

1 - Esercizi introduttivi Problema 1 Scrivere un programma che prende in input la temperatura in gradi Celsius e restituisce in output i gradi Fahrenheit (Formula: Fahrenheit = Celsius * 9/5 + 32). Nota: Usare la funzione input per l'inserimento di interi. 3

1 - Esercizi introduttivi Soluzione Problema 1 celsius = input('inserire la temperatura in gradi Celsius'); fahrenheit = celsius * (9/5) + 32; fprintf('la temperatura in gradi Fahrenheit e'': %f', fahrenheit); 4

1 - Esercizi introduttivi Soluzione - Problema 2 Scrivere un programma che, avendo come dati in ingresso i parametri a,b,c, risolva la generica equazione di secondo grado, anche nel caso di soluzioni complesse e coniugate. Considerare anche i casi di equazione di primo grado e uguaglianza (che rimane da verificare). Il programma deve stampare il valore di delta, e i valori delle radici con anche messaggi adeguati. 5

1 - Esercizi introduttivi Soluzione - Problema 2 fprintf("consider the Second degree equation : ax^2 + bx + c = 0 \n"); a= input("enter the a integer parameter \n"); b= input("enter the b integer parameter \n"); c= input("enter the c integer parameter \n"); if (a ~= 0) delta = b*b-4*a*c; fprintf("delta = %f\n\n", delta); x1= (-b - sqrt(delta))/(2*a); x2= (-b + sqrt(delta))/(2*a); if (delta ==0) fprintf("the equation has two coincident real solutions.\n"); elseif (delta >0) fprintf("there are two distinct real solutions.\n"); elseif (delta <0) fprintf("there are two complex solutions.\n"); end fprintf("solution x1 ="); disp(x1); fprintf("solution x2 ="); disp(x2); elseif (b~=0) x= -c/b; fprintf("this is a first degree equation. There is one real solution.\n"); fprintf("x= %f\n\n", x); elseif (c==0) fprintf("this is not an equation.\n"); fprintf("there is an equality: 0 is equal to 0.\n"); else fprintf("the number %d is different from 0: inequality.\n", c); end 6

2 -Media Problema 3 Scrivere un programma che calcoli la media di 3 numeri inseriti dall utente. Risolvere il programma in due modi: - i tre valori vengono memorizzati in tre variabili diverse. - i tre valori vengono memorizzati come elementi di un vettore. In questo secondo caso, la media si può calcolare come mean(v), se v è il vettore costruito. 7

2 -Media Soluzione Problema 3 Modo 1 a = input('inserire il primo numero'); b = input('inserire il secondo numero'); c = input('inserire il terzo numero'); media = (a + b + c) / 3; fprintf('la media dei tre numeri, utilizzando il primo metodo, e'': %f\n', media); Modo 2 a(1) = input('inserire il primo numero'); a(2) = input('inserire il secondo numero'); a(3) = input('inserire il terzo numero'); fprintf('la media dei tre numeri, utilizzando il secondo metodo, e'': %f\n', mean(a)); 8

2 -Media Problema 4 Estensione: usando la seconda implementazione, è facile gestire l'inserimento di un numero arbitrario di valori, chiesto come prima cosa all'utente. L'inserimento deve essere in questo caso gestito tramite un ciclo for. 9

2 -Media Soluzione - Problema 4 numero = 0; while (numero <=0 ) numero = input ("Inserisci il numero di elementi da considerare"); end for ii= 1:numero a(ii) = input ("Inserisci un numero"); end fprintf('la media dei numeri e'': %f\n', mean(a)); 10

3 - Tabellina del prodotto Problema 5 Scrivere un file Matlab/Octave per produrre le tabelline dei prodotti di tutti i numeri da 1 a N (N = 10). Per ogni numero mostrare le prime M moltiplicazioni. Il risultato dev'essere una matrice di M righe ed N colonne. 11

3 - Tabellina del prodotto Soluzione - Problema 5 k = input('inserire il numero di moltiplicazioni da effettuare: '); for m = 1:k for n = 1:10 tab(m,n) = m*n; end end disp(tab) 12

3 - Tabellina del prodotto Problema 6 Estensione: Il programma può anche essere risolto senza l'utilizzo di cicli, utilizzando in particolare la funzione repmat, e seguendo questi passi: - generare un vettore riga contenente i valori da 1 a N; - generare un vettore colonna contenente i valori da 1 a M; - ricopiare il vettore riga M volte verso il basso, tramite la funzione repmat. Si ottiene una matrice MxN; - ricopiare il vettore colonna N volte verso destra, tramite la funzione repmat. Si ottiene una matrice MxN; - effettuare il prodotto elemento per elemento delle due matrici MxN calcolate prima. 13

3 - Tabellina del prodotto Soluzione - Problema 6 n=10; m = input('inserire il numero di righe da utilizzare: '); x = 1:1:n y = (1:1:m) x1 = repmat(x,m,1); x2 = repmat(y,1,n); disp(x1.* x2) 14

4 Le città Problema 7 Sono date N città definite dalle loro coordinate euclidee (x,y). Tali coordinate sono scritte in due vettori di N elementi ciascuno (un vettore per le x, uno per le y). Ad esempio, x(1) e y(1) rappresentano le coordinate per la prima città. - Generare casualmente i vettori x e y come segue: x=rand(1,n); y=rand(1,n); osservare i valori risultanti, ed eventualmente moltiplicare i due vettori per 100 in modo che tali valori possano essere interpretati come coordinate espresse in km. - Disegnare la posizione di ogni città (plot) - Calcolare e stampare la matrice NxN delle distanze, in cui ogni cella (i,j) rappresenta la distanza euclidea tra la città i e la città j, calcolata tramite il teorema di Pitagora. - Impostare a NaN tutti gli elementi sulla diagonale principale (in modo da non si considerare la distanza tra una città e stessa). Facoltativo: visualizzare la matrice tramite il comando image. 15

4 Le città Soluzione - Problema 7 n = input('inserire il numero di città da utilizzare: '); x = rand(1,n).*100; y = rand(1,n).*100; for ii = 1:n distanza(ii,:) = sqrt((x(ii)-x).^2 + (y(ii)-y).^2); distanza(ii,ii) = NaN; end; plot(x,y,"o"); image(distanza); 16