La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Process synchronization

Presentazioni simili


Presentazione sul tema: "Process synchronization"— Transcript della presentazione:

1 Process synchronization
Operating System Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 23 Settembre 2016 © 2005 William Fornaciari

2 Obiettivi Costrutti iterativi do.. while While for

3 Problema: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo

4 Maiuscolo: codice ottimizzato

5 Problema: caratteri MaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo Si continui a chiedere l’inserimento del carattere, fino a quando questo non è corretto

6 Pseudocodice V1 Dati Richiedere l’inserimento di un carattere
L’insieme dei caratteri ammissibili {a, b, c, …, z} Richiedere l’inserimento di un carattere Se carattere inserito corretto Allora stampa a video carattere-32 Altrimenti stampa a video un messaggio di errore ritorna ad 1

7 Pseudocodice V2 Dati Richiedere l’inserimento di un carattere
L’insieme dei caratteri ammissibili {a, b, c, …, z} Richiedere l’inserimento di un carattere Finchè carattere inserito !corretto torna ad 1 Stampa a video carattere-32

8 MaIuScOli: codice V2

9 ATTENZIONE!!! 2. Finchè carattere inserito !corretto
MaIuScOli: codice V2 ATTENZIONE!!! 2. Finchè carattere inserito !corretto Identifica il carattere CORRETTO!

10 MaIuScOli: codice corretto
Richiedere l’inserimento di un carattere Finchè carattere inserito !corretto torna ad 1

11 MaIuScOli: codice corretto
Richiedere l’inserimento di un carattere Finchè carattere inserito !corretto torna ad 1

12 MaIuScOli: codice corretto

13 Come traduco il finché? WHILE
Itera l’esecuzione di una istruzione finché una certa condizione è vera int a, b; scanf("%d%d", &a, &b); while ( b > 0 ) { a = a + a; --b; } printf ("Il valore di a ora è %d", a); condizione di PERMANENZA nel ciclo

14 Il ciclo (loop) while Che cosa calcola?
Itera l’esecuzione di una istruzione fintantoché una certa condizione è vera int a, b; scanf("%d%d", &a, &b); while ( b > 0 ) { a = a + a; --b; } printf ("Il valore di a ora è %d", a); Che cosa calcola? la funzione f(a,b) = a*2b se b>0 a se b≤0

15 Il maggiore tra N numeri
Problema Trovare il maggiore tra N numeri positivi inseriti da tastiera Soluzione Conoscere N Richiedere l’inserimento degli N valori Ricerca del maggiore tra gli N valori

16 Il maggiore: codice

17 Il maggiore tra N numeri: osservazione
Osservazione: Perchè usare un while se conosco il numero di iterazioni del cliclo?

18 Il maggiore: zoom sul codice

19 Il ciclo for cont = 0; while (cont < N) { …; cont++; }
for (cont = 0; cont < N; cont++) { …; }

20 Il ciclo for ATTENZIONE exp.A; while ( cond ) { ist.1;
... ist.N; exp.I; } for ( exp.A; cond; exp.I ) { ist.1; ... ist.N; }

21 Il maggiore – for : codice

22 Il maggiore – while Vs for

23 Ora dovrebbe essere chiara…

24 Problemi di fine giornata…
Modificare gli esercizi di oggi, andando, dove necessario, ad inserire il controllo sugli ingressi Trovare il maggiore tra N numeri positivi inseriti da tastiera (richiedendo il numero se negativo) Dati N numeri, dire se questi sono tutti positivi Dati N numeri, riportarne a video il modulo

25 Fonti per lo studio + Credits
Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 6 Credits Daniele Braga -


Scaricare ppt "Process synchronization"

Presentazioni simili


Annunci Google