Process synchronization

Slides:



Advertisements
Presentazioni simili
MATLAB.
Advertisements

MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
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
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
CORSO DI PROGRAMMAZIONE II
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 –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
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 –
ESERCIZI.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 4: 11 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 L Maggio 2015 Marco D. Santambrogio – Gianluca Durelli -
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 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 Iterazione Vs Ricorsione Marco D. Santambrogio – Ver. aggiornata al 8 Gennaio 2016.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 18 Maggio 2016.
Parte 2 Programmare in Matlab – I Sommario: Introduzione: m-file Strutture condizionali e cicli –Istruzione “if” + Operatori logici in MatlabIstruzione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Matteo Ferroni –
Process synchronization
Process synchronization
Process synchronization
Script Marco D. Santambrogio –
Diagrammi 2D e 3D Funzioni di ordine superiore
Array n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati
Process synchronization
Diagrammi 2D e 3D Funzioni di ordine superiore
Process synchronization
Recap su: array e puntatori
Process synchronization
Process synchronization
Process synchronization
Process synchronization
Iterazione Vs Ricorsione
Iterazione Vs Ricorsione
Process synchronization
Alberi n-ary Lezioni di C.
Process synchronization
comprensione e modifica di codice
Process synchronization
Process synchronization
Array n-dimensionali e tipi di dati strutturati
Process synchronization
Diagrammi 2D e 3D Funzioni di ordine superiore
Process synchronization
Iterazione Vs Ricorsione
Process synchronization
Algoritmi di ordinamento
Process synchronization
Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri.
Corso di Fondamenti di Informatica
Transcript della presentazione:

Process synchronization Operating System Lab 7 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Matteo Ferroni – matteo.ferroni@polimi.it Ver. aggiornata al 19 Gennaio 2016 © 2005 William Fornaciari

Logistica… Esame (aka 2ndo compitino): Demo 2ndo compitino 4 Feb 2016 29 Gen 2016 @ 8.30am

Calendario dei Labs: MATLAB 15 Dic 2015, 10.30am-12.30pm, @ B6.27 MATLAB: Ambienti di sviluppo e primi codici 12 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: strutture di controllo, tipi di dato strutturato, e vettori 19 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: funzioni ricorsive 26 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D

Lab 7: Agenda Warm Up (20’) Qualche cosa un po’ più divertente (40’) Altri exe (60’)

Lab 7: Ora.. Warm Up (20’) Qualche cosa un po’ più divertente (40’) shiftSinistro Qualche cosa un po’ più divertente (40’) Altri exe (60’)

shiftSinistro: problema Dato un vettore riga v rappresentante un numero in codifica binaria Si effettui lo shift a sinistra (cioè si spostino a sinistra i singoli bit) fino a che non si incontra il primo 1 Es: v=[0 0 1 0 1 0 1 1] -> [1 0 1 0 1 1 0 0]

shiftSinistro function [ris] = shiftSx(n) if ~isvector(n) | any (n < 0 | n > 1) ris = NaN; elseif n(1) == 1 ris = n; else ris = shiftSx([n(2:length(n)) n(1)]); end

Lab 7: Ora.. Warm Up (20’) Qualche cosa un po’ più divertente (40’) numeroPrimo serie (normale) Altri exe.. (60’)

numeroPrimo: problema Dato un numero intero positivo inserito dall’utente, dire se tale numero è primo (stampa a video 1 se primo, 0 altrimenti) Un numero è primo se è divisibile solo per 1 e se stesso Esempio >>> 7 ---> >>>1 >>> 9 ---> >>>0

numeroPrimo iterativa function [ris] = numPrimo2(x) ris=1; for y=2:sqrt(x) ris = ris*(~(~rem(x,y))); end

numeroPrimo: problema E se lo chiedessi ricorsivo?

numeroPrimo Ricorsiva function [ris] = numPrimo(x,y) if y>sqrt(x) ris = 1 else ris = (~(~rem(x,y)))*numPrimo(x,y+1); end

serie (normale): problema Si consideri la successione definita dalla seguente relazione: x(1) = 0 x(2) = 1 x(n) = 2 * x(n-1) + 3 * x(n-2) Si scriva una funzione succ(n) che calcoli il valore n-esimo della successione.

serie (normale): soluzione function res = succ(n) res = [0 1] if (n>2): for i = 3:1:n res = [res 2*res(i-1) + 3*res(i-2)]; end else if n==2 res = 1 else n ==1 res = 0

Lab 7: Ora… Warm Up (20’) Qualche cosa un po’ più divertente (40’) Altri exe… (60’) serie (ricorsione) sottoMatrici

serie (ricorsione): problema Si consideri la successione definita dalla seguente relazione ricorsiva: x(1) = 0 x(2) = 1 x(n) = 2 * x(n-1) + 3 * x(n-2) Si scriva una funzione ricorsiva succRic(n) che calcoli il valore n-esimo della successione.

serie (ricorsione): soluzione function res = succRic(n) if n==1 % Primo caso base res = 0; elseif n==2 % Secondo caso base res = 1; else % Passo ricorsivo res = 2*succRic(n-1) + 3*succRic(n-2); end

sottoMatrici: problema Creare una matrice di dimensione n*n che nel suo centro contiene un quadrato 2x2 che contenente il valore 1 e, andando verso l'esterno, i valori 2, 3, .. fino a n/2 nella cornice più esterna Es.:

sottoMatrici: soluzione1 function [M] = sottoMatr(n) if(n == 1) M = ones(2,2); else M = sottoMatr(n-1) r = ones(1, size(M, 2)) * n M = [r; M ; r] c = ones(size(M, 1), 1) * n M = [c M c] end

sottoMatrici: soluzione2 function [matrRis]=sottoMatr(n) if n==1 matrRis=ones(2); else matrRis=n*ones(2*n); matrRis(2:2*n-1,2:2*n-1)=sottoMatr(n-1); end

Fonti per lo studio + Credits Introduzione alla programmazione in MATLAB, A.Campi, E.Di Nitto, D.Loiacono, A.Morzenti, P.Spoletini, Ed.Esculapio Capitolo 2, 4, 5 Credits: Prof. Paolo Garza (per l’esercizio sottoMatrici) Emanuele Panigati https://sites.google.com/site/engpanigati/