Presentazione di PowerPoint - Home | Dipartimento di Ingegneria...

38
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Unità 4 Istruzioni di ciclo Domenico Daniele Bloisi

Transcript of Presentazione di PowerPoint - Home | Dipartimento di Ingegneria...

Page 1: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Corso di Laboratorio di Informatica

Ingegneria Clinica – BCLR

Unità 4

Istruzioni di ciclo

Domenico Daniele Bloisi

Page 2: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Docente

Ing. Domenico Daniele Bloisi, PhD

Ricercatore

Dipartimento di Ingegneria Informatica, Automatica

e Gestionale “Antonio Ruberti”

Via Ariosto 25

(adiacente Piazza Dante,

Manzoni

Tram 3 fermata via Labicana)

email: [email protected]

home page:

Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Pagina 2

http://www.dis.uniroma1.it/~bloisi

Page 3: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Ricevimento

In aula, subito dopo le lezioni

Su appuntamento (tramite invio di una email)

presso:

Dipartimento di Ingegneria Informatica,

Automatica e Gestionale “Antonio Ruberti”,

via Ariosto 25 - II piano, stanza A209

Si invitano gli studenti a controllare regolarmente la

bacheca degli avvisi

http://www.dis.uniroma1.it/~bloisi/didattica/labinf1415.html#Avvisi

Pagina 3 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 4: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Orari

Lunedì 12.00 – 13.30

Aula 4, via del Castro Laurenziano 7A

Martedì 14.00 – 17.15

Aula 15, Laboratorio Didattico via Tiburtina 205

Mercoledì 12.00 – 13.30

Aula 4, via via del Castro Laurenziano 7A

Pagina 4 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 5: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Sommario – Unità 4

• Ripetizione di istruzioni • Istruzione while

• Ciclo di lettura

• Schemi di ciclo • Istruzione for

• Istruzione do

• Cicli annidati

• Istruzioni di controllo del flusso

Pagina 5 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 6: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Istruzioni di controllo del flusso

Finora abbiamo visto:

• istruzioni semplici:

– invocazione di funzioni

– istruzioni semplici, come assegnazione o uso di un operatore di incremento/decremento seguito da ";"

– istruzioni di uscita (break e return)

• istruzioni composte (o strutturate) – blocco di istruzioni ({})

– istruzioni condizionali (if-else, if, switch)

Pagina 6 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 7: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Ripetizione di istruzioni

Nei linguaggi di programmazione esistono due modi

per ottenere la ripetizione di istruzioni:

L'utilizzo di istruzioni di ciclo (o iterative),

che sono una forma di istruzione composta

L'utilizzo di funzioni ricorsive

Pagina 7 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 8: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Cicli definiti ed indefiniti

Si distinguono due tipi di ciclo, che si differenziano in base a

come viene determinato il numero di iterazioni (cioè le

ripetizioni delle istruzioni nel corpo del ciclo):

Nei cicli definiti il numero di iterazioni è noto

prima di iniziare l'esecuzione del ciclo.

Nei cicli indefiniti il numero di iterazioni non è noto

prima di iniziare l'esecuzione del ciclo, ma è legato al

verificarsi di una condizione (questo dipende a sua

volta dalle operazioni eseguite nel corpo del ciclo).

Pagina 8 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 9: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esempi

Ciclo definito:

per 10 volte ripeti la stampa di un *

Ciclo indefinito:

finché l’utente non sceglie di smettere, stampa

un * e chiedi all’utente se smettere

In C, entrambi i tipi di ciclo possono essere realizzati attraverso l’istruzione while.

Il numero di iterazioni è noto

a tempo di compilazione

Il numero di iterazioni non è

noto a tempo di compilazione

Pagina 9 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 10: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Ciclo while

L’istruzione while consente la ripetizione di una

istruzione.

Sintassi

while (condizione)

istruzione

• condizione è un’espressione

• istruzione (detta anche il corpo del ciclo) è una

singola istruzione (anche composta come un

blocco di istruzioni)

Pagina 10 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 11: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Semantica

• viene valutata prima la condizione

• se è vera, viene eseguita istruzione e si torna a

valutare la condizione, procedendo così fino a

quando condizione diventa falsa

• a questo punto, si passa a eseguire l’istruzione che segue il ciclo while

il corpo del ciclo viene eseguito finché la condizione si

mantiene vera. Non appena questa diventa falsa, si esce dal

ciclo e si continua l’esecuzione con l’istruzione successiva al while.

Pagina 11 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 12: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esempio

Stampa di 100 asterischi (ciclo definito)

int i = 0;

while (i < 100) {

printf("*");

i++;

}

Pagina 12 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 13: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Controllo del flusso

condizione

≠ 0

vero

0

falso

istruzione-n+1

istruzione-1

istruzione-n

while (condizione) {

istruzione-1

istruzione-n

}

istruzione-n+1

Pagina 13 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 14: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Funzione getchar

Legge il prossimo carattere dallo standard input e lo

restituisce come valore intero

int getchar( void );

Il carattere letto è restituito come int.

Se i dati terminano o viene riscontrato un errore in lettura, la funzione restituisce il valore EOF.

EOF (End Of File) è una costante simbolica di tipo

int, definita in stdio.h, che generalmente vale -1.

Pagina 14 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 15: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Ciclo while per la lettura

lettura e stampa su video di un insieme di caratteri

in input.

#include <stdio.h>

int main () {

int c;

c = getchar();

while (c != EOF) {

putchar(c);

c = getchar();

}

return 0;

}

ciclo

indefinito

Le iterazioni continuano

fino a quando non

vengono premuti

contemporaneamente i

tasti CTRL e Z (in Windows)

oppure

CTRL e D (in Unix/Mac)

Pagina 15 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 16: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Funzione putchar

Visualizza sullo standard output il carattere immagazzinato in c

int putchar( int c );

Se non ci sono errori, lo stesso carattere letto viene

restituito. Se si verifica un errore, viene restituito EOF.

Pagina 16 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 17: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Ciclo while per la lettura

Versione alternativa

Lettura e stampa su video di un insieme di caratteri

in input.

#include <stdio.h>

int main () {

int c;

while ((c = getchar()) != EOF)

putchar(c);

return 0;

}

ciclo

indefinito

Pagina 17 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 18: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esempio di esecuzione

Pagina 18 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 19: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esempio

Stampa del doppio degli interi letti in input.

#include <stdio.h>

int main () {

int c, dato;

c = scanf("%d", &dato);

while (c != EOF) {

dato *= 2;

printf("%d\n", dato);

c = scanf("%d", &dato);

}

return 0;

}

ciclo

indefinito

Pagina 19 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 20: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Struttura generale del ciclo di lettura

lettura del primo elemento;

while (elemento è valido) {

elaborazione elemento;

lettura elemento successivo;

}

Pagina 20 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 21: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esempio di ciclo while: divisione con le

sottrazioni

int dividendo, divisore, quoziente, resto;

dividendo = ...;

divisore = ...;

quoziente = 0;

resto = dividendo;

while (resto >= divisore) {

quoziente++;

resto -= divisore;

}

printf("quoziente = %d\n", quoziente);

printf("resto = %d\n", resto);

ciclo

definito

Pagina 21 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 22: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esempio di ciclo while: potenza

int base, esponente, potenza;

base = ...;

esponente = ...;

potenza = 1;

while (esponente > 0) {

potenza *= base;

esponente--;

}

ciclo

definito

Pagina 22 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 23: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esempio di ciclo while: prodotto con le

somme

int moltiplicando, moltiplicatore, prodotto;

moltiplicando = ...;

moltiplicatore = ...;

prodotto = 0;

while (moltiplicatore > 0) {

prodotto += moltiplicando;

moltiplicatore--;

}

ciclo

definito

Pagina 23 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 24: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Pagina 24

Elementi caratteristici nella

progettazione di un ciclo

iniziliazzazione

while (condizione) {

operazione

passo successivo

}

Definizione del valore delle variabili

utilizzate nel ciclo prima dell’inizio

dell’esecuzione del ciclo Espressione valutata all’inizio di ogni

iterazione, il cui valore di verità

determina l’esecuzione del corpo del

ciclo o la fine del ciclo

Calcolo del risultato parziale

ad ogni iterazione del ciclo

(nel corpo del ciclo)

Operazione di incremento/decremento

della variabile che controlla le ripetizioni

del ciclo (nel corpo del ciclo)

Page 25: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Terminazione

Una volta progettato il ciclo occorre verificarne la

terminazione.

Occorre, cioè, verificare che l’esecuzione delle

istruzioni del ciclo possa modificare il valore della

condizione in modo da renderla falsa.

Esempio l'istruzione moltiplicatore--; consente di

rendere la condizione (moltiplicatore > 0)

falsa, se moltiplicatore è un numero intero positivo.

Pagina 25 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 26: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Algoritmo: proprietà

Un algoritmo è caratterizzato da:

• non ambiguità: le istruzioni devono essere

univocamente interpretabili dall’esecutore

• eseguibilità: ogni istruzione deve poter essere

eseguita (in tempo finito) con le risorse a

disposizione

• finitezza: l’esecuzione dell’algoritmo deve

terminare in tempo finito per ogni insieme di dati

in ingresso

Pagina 26 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 27: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Errori comuni nella scrittura di cicli while

(1/3)

Mancata inizializzazione di una variabile che viene

utilizzata nella condizione del ciclo.

int i;

while (i != 0) {

printf("%d\n", i);

printf("%d\n", i*i);

printf("prossimo intero\n");

}

Pagina 27 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 28: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Errori comuni nella scrittura di cicli while

(2/3)

Mancato aggiornamento delle variabili che

compaiono nella condizione del ciclo.

int i, dato;

printf("inserisci intero:\n");

i = scanf("%d", &dato);

while (i != EOF) {

printf("quadrato di %d = %d\n",

dato, dato*dato);

}

Pagina 28

Manca l’aggiornamento di i

Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 29: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Errori comuni nella scrittura di cicli while

(3/3)

Numero di iterazioni errato di 1

Esempio: stampa di 10 asterischi

int i = 0;

while (i <= 10) { // corretto: (i < 10)

printf("*");

i++;

}

Pagina 29 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 30: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schemi di ciclo

contatore: conta il numero di valori in un

insieme

accumulatore: accumula i valori di un insieme

valori caratteristici di un insieme: determina un

valore caratteristico tra i valori in un insieme

(ad esempio, il massimo, quando sui valori

dell'insieme e definito un ordinamento)

Pagina 30 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 31: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schema di ciclo contatore: numero di

interi immessi in input

int d, i;

int contatore = 0;

printf("inserisci intero:\n");

i = scanf("%d", &d);

while (i != EOF) {

contatore++;

printf("ho letto: %d\n", d);

printf("inserisci intero:\n");

i = scanf("%d", &d);

}

printf("\nFine lettura, ho letto %d "

" interi\n", contatore);

Pagina 31 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 32: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schema di ciclo contatore: numero di

interi positivi immessi in input

int d, i;

int contatore = 0;

printf("inserisci intero:\n");

i = scanf("%d", &d);

while (i != EOF) {

if(d > 0) contatore++;

printf("ho letto: %d\n", d);

printf("inserisci intero:\n");

i = scanf("%d", &d);

}

printf("\nFine lettura, ho letto %d "

" interi positivi\n", contatore);

Pagina 32 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 33: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schema di ciclo accumulatore: somma

valori interi int d; //intero corrente

int i;

int somma; //variabile usata come accumulatore

somma = 0;

printf("inserisci intero:\n");

i = scanf("%d", &d);

while (i != EOF) {

somma += d;

printf("inserisci intero:\n");

i = scanf("%d", &d);

}

printf("\nSomma totale = %d\n", somma);

Pagina 33 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 34: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schema di ciclo accumulatore:

prodotto valori interi

int n; //intero corrente

int i;

int prodotto; //variabile usata come accumulatore

prodotto = 1;

printf("inserisci intero:\n");

i = scanf("%d", &n);

while (i != EOF) {

prodotto *= n;

printf("inserisci intero:\n");

i = scanf("%d", &n);

}

printf("\nProdotto totale = %d\n", prodotto);

Pagina 34 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 35: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schema di ciclo valori caratteristici di un

insieme: massimo di un intervallo noto

int max; // massimo corrente

max = 0;

int d, i;

printf("inserisci intero:\n");

i = scanf("%d", &d);

while (i != EOF) {

if (d > max) max = d;

printf("inserisci intero:\n");

i = scanf("%d", &d);

}

printf("\n");

if (max == 0)

printf("Insieme di valori vuoto\n");

else

printf("Massimo intero letto = %d\n", max);

Assunzioni

intervallo di interi noto, è

possibile denotare valori

estremi (es. tutti i valori

sono > 0)

l’insieme di interi può

essere vuoto

Problema

trovare il massimo di un

insieme di numeri interi

dati in input.

Pagina 35 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 36: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schema di ciclo valori caratteristici di un

insieme: massimo di un insieme non vuoto

double f; // reale corrente

double max; // massimo corrente

int i;

printf("inserisci dato:\n");

i = scanf("%lf", &f);

max = f;

while (i != EOF) {

if (f > max) max = f;

printf("inserisci dato:\n");

i = scanf("%lf", &f);

}

printf("\nMassimo = %f\n", max);

Assunzioni

nell’insieme vi è almeno un

reale

l’intervallo di reali non è

noto, non si possono

denotare i valori estremi.

Problema

trovare il massimo di un

insieme di numeri reali dati

in input.

Pagina 36 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 37: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Schema di ciclo valori caratteristici di un

insieme: massimo nel caso generale

double f; // reale corrente

double max = 0; // massimo corrente

int i;

printf("inserisci dato:\n");

i = scanf("%lf", &f);

if(i == EOF)

printf("\nInsieme di valori vuoto\n");

else {

max = f;

while (i != EOF) {

if (f > max) max = f;

printf("inserisci dato:\n");

i = scanf("%lf", &f);

}

printf("\nMassimo = %f\n", max);

}

Assunzioni

l’insieme di reali

potrebbe essere

vuoto

l’intervallo di reali

non è noto

Problema

trovare il massimo di un

insieme di numeri reali

dati in input.

Pagina 37 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4

Page 38: Presentazione di PowerPoint - Home | Dipartimento di Ingegneria …bloisi/didattica/ingegneriaClinica... · 2014-10-21 · Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento

Esercizio

Si scriva un programma in grado di prendere in input un carattere c ed un intero n. Il programma deve stampare a

video il carattere n volte su righe separate. Inoltre, si controlli che l’input n sia un numero > 0, in caso contrario il

programma dovrà stampare un messaggio di errore.

Esempio Immettere un carattere c e un intero n (es. e 7):

D 3

D

D

D

Pagina 38 Laboratorio di Informatica

2014/2015

Istruzioni di ciclo

Unità 4