DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –

Slides:



Advertisements
Presentazioni simili
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
Advertisements

Process synchronization
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 25 Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 24 Ottobre 2011 Sadegh Astaneh – Marco D. Santambrogio –
Process synchronization
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ulitma lezione… fine corso IEIM 2013 Marco D. Santambrogio – Ver. aggiornata al.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
OPERAZIONI CON TRINOMI DI II° GRADO
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
EQUAZIONI DI SECONDO GRADO
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Diagrammi 2D e 3D Funzioni di ordine superiore
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Input/output 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 8 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Strutture di controllo Marco D. Santambrogio – Ver. aggiornata al 16 Dicembre 2013.
14 marzo 2002 Avvisi:.
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione 1 Marco D. Santambrogio – Ver. aggiornata al 9 Aprile 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
Il linguaggio Fortran 90: 3. Procedure e Funzioni
OPERAZIONI CON TRINOMI DI II° GRADO
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 3 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 27 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Matteo Ferroni –
Process synchronization
Process synchronization
Process synchronization
Process synchronization
Process synchronization
Process synchronization
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo – Ver. aggiornata al 7 Gennaio 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calendario dei Lab 7 Gennaio 2014, LM1  MATLAB: strutture di controllo, tipi di dato strutturato, e vettori 14 Gennaio 2014, LM1  MATLAB: funzioni ricorsive 21 Gennaio 2014, LM1  MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nota per i “7” Cosa:  Prova “colpo-singolo”  No libri, e/o appunti  1 exe in C in 30’ Quando  Domani: martedì 8 Gennaio  Dalle alle 13 Dove  BL

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: Obiettivi Introduzione a Matlab/Octave Cicli Funzioni 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: Agenda  Warm Up (30’)  Qualche cosa un po' più divertente (60’)  Altri exe… (90’) 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: Warm up Warm Up (30’)  Inserisci numeri  Temperatura Qualche cosa un po' più divertente (60’) Altri exe… (90’) 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: Inserisci numeri Acquisiamo numeri da tastiera finché non viene inserito un numero negativo. In ogni caso non accettiamo più di mille numeri 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione: Inserisci numeri vector = [ ]; %crea il vettore vuoto for count = 1:1000 %Raccoglierà al max 1000 valori value = input('next number '); if value < 0 break %Se value negativo usciamo dal ciclo else vector(count) = value; end vector %permette di visualizzare il contenuto di vector 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: Temperatura Scrivere un programma che prende in input la temperatura in gradi Celsius e restituisce in output i gradi Fahrenheit  Formula: Fahrnait = Celsius * 9/

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione: Temperatura temp_c = input('Inserire la temperatura in gradi Celsius: '); temp_f = temp_c * 9/5 + 32; disp(['La temperatura in gradi Fahrenheit è ', num2str(temp_f)]); 10

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: Un po’ di divertimento Warm Up (30’) Qualche cosa un po' più divertente (60’)  Maggiore  Equazione secondo grado Altri exe… (90’) 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: Maggiore Scrivere un programma che prenda in input un array e conti tutti i numeri che sono maggiore di un numero n inserito dall’utente 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione: Maggiore mag = input('Vuoi contare i numeri maggiori di quanto? '); disp('Array (ricorda di inserire i numeri tra parentesi quadre):'); inarray = input(''); counter = 0; for ii=1:length(inarray) if inarray(ii)>mag counter = counter+1; end disp(['I numeri maggiori di ',num2str(mag),' sono ',num2str(counter)]); 13

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione: Maggiore (in due righe) mag = input('Vuoi contare i numeri maggiori di quanto? ’) disp('Array (ricorda di inserire i numeri tra parentesi quadre):’) inarray = input(’’) magV= inarray(inarray>mag); counter = size(magV,2); disp(['I numeri maggiori di ',num2str(mag),' sono ',num2str(counter)]); 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: Equazione secondo grado Scrivere una funzione per il calcolo dell'equazione di secondo grado: ax^2 + bx + c.  Inseriti a, b e c la funzione deve ritornare il valore di delta, e i valori delle radici reali (se esistono).  In caso che delta sia uguale a 0, x1 contiene la soluzione, mentre x2 non è un numero (NaN). 15

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione: Equazione secondo grado function [delta, x1, x2] = eq2g(a,b,c) delta = b^2-4*a*c; if (delta==0) x1=(-b)/(2*a); x2=(-b)/(2*a); else x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); end 16 NOTA: delta, x1 e x2 vengono ritornate al chiamante, indipendentemente da quello che si fa nella funzione!

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: Altri exe Warm Up (30’) Qualche cosa un po' più divertente (60’) Altri exe… (90’)  Cambio base  Scambio elementi  Rilievi altimetrici 17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: Cambio base Ricevere un vettore che rappresenti le singole cifre di un numero in base 2 stampare a video il valore in base 10 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Cambio base - Soluzione 19 function [ris] = cambioBase(n) % N vettore di 0 e 1 esp=[length(n)-1:-1:0]; basi=2.^esp; disp(sum(n.*basi));

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: Scambio elementi Scrivere un programma che dati due array scambi gli elementi di indice dispari  usare la funzione mod 20

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione: Scambio elementi function [inarray1, inarray2] = swapOdd(inarray1, inarray2) for ii=1:min(length(inarray1),length(inarray2)) if (mod(ii,2) == 1) temp=inarray1(ii); inarray1(ii)=inarray2(ii); inarray2(ii) = temp; end 21

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione: Scambio elementi disp('Array1 (ricorda di inserire i numeri tra parentesi quadre):'); inarray1 = input(''); disp('Array2 (ricorda di inserire i numeri tra parentesi quadre):'); inarray2 = input(''); [inarray1, inarray2] = swapOdd(inarray1, inarray2); disp('Ora gli array sono: '); disp(inarray1); disp(inarray2); 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio: Rilievi altimetrici Si sviluppi un programma in matlab che acquisisce da tastiera i dati relativi a rilievi altimetrici e stampa a video l’altitudine media di tutti quelli che hanno latitudine compresa tra 10 e 80 e longitudine tra 30 e 60 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione (1ma parte) : rilievi altimetrici more = input('vuoi inserire valori altimetrici? (s/n)'); ii=1; while more=='s' arch(ii).altitudine = input('altitudine '); arch(ii).longitudine = input('longitudine '); arch(ii).latitudine = input('latitudine '); ii = ii+1; more = input('vuoi inserire altri valori altimetrici? (s/n)'); end 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione (2nda parte) : rilievi altimetrici jj=1; for ii=1:length(arch) %attenzione: la condizione deve essere scritta sulla stessa linea… if arch(ii).latitudine>=10&&arch(ii).latitudine =30&&arch(ii).longitudine<=60 elemSelez(jj) = arch(ii).altitudine; jj=jj+1; end disp(['la media degli elementi selezionati e` ' num2str(mean(elemSelez))]); 25

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio  Introduzione alla programmazione in MATLAB, A.Campi, E.Di Nitto, D.Loiacono, A.Morzenti, P.Spoletini, Ed.Esculapio Capitoli 2, 3 e 4 Credits  Emanuele Panigati 26