Process synchronization

Slides:



Advertisements
Presentazioni simili
EQUAZIONI DI 2° GRADO.
Advertisements

MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
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
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 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 Strutture di controllo Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
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 –
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Matteo Ferroni –
Process synchronization
Process synchronization
© 2007 SEI-Società Editrice Internazionale, Apogeo
Java World Matrici.
Esercizio fatture.
Process synchronization
Script Marco D. Santambrogio –
Diagrammi 2D e 3D Funzioni di ordine superiore
Array n-dimensionali e tipi di dati strutturati
Process synchronization
Process synchronization
Strutture di controllo
Process synchronization
Diagrammi 2D e 3D Funzioni di ordine superiore
Recap su: array e puntatori
Process synchronization
Process synchronization
Corso Java Matrici.
Strutture di controllo
Iterazione Vs Ricorsione
Process synchronization
Alberi n-ary Lezioni di C.
Process synchronization
Process synchronization
Java Matrici.
comprensione e modifica di codice
Process synchronization
comprensione e modifica di codice
Process synchronization
Process synchronization
Array n-dimensionali e tipi di dati strutturati
APPUNTI SUL LINGUAGGIO C
Process synchronization
Diagrammi 2D e 3D Funzioni di ordine superiore
Process synchronization
Process synchronization
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
Corso di Fondamenti di Informatica
Transcript della presentazione:

Process synchronization Operating System Lab 6 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Matteo Ferroni – matteo.ferroni@polimi.it Ver. aggiornata al 20 Ottobre 2015 © 2005 William Fornaciari

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

Introduzione a Matlab/Octave Lab 6: Obiettivi Introduzione a Matlab/Octave Cicli Funzioni

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

Lab 6: Warm up Warm Up (20’) Qualche cosa un po' più divertente (40’) Inserisci numeri Temperatura Qualche cosa un po' più divertente (40’) Altri exe… (60’)

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

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

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/5 + 32

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)]);

Lab 6: Un po’ di divertimento Warm Up (20’) Qualche cosa un po' più divertente (40’) Maggiore Equazione secondo grado Altri exe… (60’)

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

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)]);

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)]);

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).

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 NOTA: delta, x1 e x2 vengono ritornate al chiamante, indipendentemente da quello che si fa nella funzione!

Lab 6: Altri exe Warm Up (20’) Qualche cosa un po' più divertente (40’) Altri exe… (60’) Cambio base Scambio elementi

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

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

Problema: Scambio elementi Scrivere un programma che dati due array scambi gli elementi di indice dispari usare la funzione mod

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

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);

Fonti per lo studio Credits Fonti per lo studio Emanuele Panigati 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 https://sites.google.com/site/engpanigati/