Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2)...

48
Corso di Laboratorio di Informatica Ingegneria Clinica – BCLR Unità 2 Tipi di dato Domenico Daniele Bloisi

Transcript of Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2)...

Page 1: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Corso di Laboratorio di InformaticaIngegneria Clinica – BCLR

Unità 2

Tipi di dato

Domenico Daniele Bloisi

Page 2: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Docente

Ing. Domenico Daniele Bloisi, PhDRicercatore

Dipartimento di Ingegneria Informatica, Automaticae Gestionale “Antonio Ruberti”Via Ariosto 25(adiacente Piazza Dante,

fermate Manzoni, Vittorio Emanuele,

Tram 3 fermata via Labicana)

Email: [email protected]

Home page: http://www.dis.uniroma1.it/~bloisi2013/2014Tipi di dato

Unità 2Pagina 22013/2014Tipi di dato

Unità 2Pagina 2

Page 3: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

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 avvisihttp://www.dis.uniroma1.it/~bloisi/didattica/labinf1314.html#Avvisi

2013/2014Tipi di datoUnità 2

Pagina 3

Page 4: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Orari

Lunedì 12.00 – 13.30 Aula 15, via Scarpa 14

Lunedì 14.00 – 17.15Aula 15, Laboratorio Didattico via Tiburtina 205

Martedì 14.00 – 15.30 Aula 16, via Scarpa 14

Mercoledì 12.00 – 13.30 Aula 15, via Scarpa 14

2013/2014Tipi di datoUnità 2

Pagina 4

Page 5: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Sommario – Unità 2

• Variabili• Assegnazione• Tipi di dato interi• Lettura e scrittura di interi• Tipi di dato reali• Precisione nelle rappresentazioni• Conversioni di tipo• Tipo di dato primitivo caratteri: char• Insieme dei valori rappresentabili e la clausola unsigned

2013/2014Tipi di datoUnità 2

Pagina 5

Page 6: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipo di dato (1/2)

Per descrivere efficacemente la natura dei dati rappresentabili in un programma e le operazioni per manipolarli si usa il concetto ditipo di dato.

Un tipo di dato è caratterizzato da:

• Dominio. Insieme dei possibili valori Esempi: numeri interi, numeri razionali, etc.

• Operazioni. Funzioni che operano sugli elementi del dominio Esempi: somma, moltiplicazione, etc.

• Letterali. costanti matematiche Esempio: 23, 576, etc.

2013/2014Tipi di datoUnità 2

Pagina 6

Page 7: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipo di dato (2/2)

Le funzioni agiscono su uno o più valori del dominio per produrre un valore (eventualmente non appartenente ad esso)

L’associazione tipo-dato limita gli errori perché protegge il programmatore da associazioni tra dati e operatori non compatibili

2013/2014Tipi di datoUnità 2

Pagina 7

f(i1, i

2, …, i

n) o

Page 8: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipi di dato

Tipi scalari (è definito un ordinamento)Tipi aggregati (si ottengono dagli scalari)

2013/2014Tipi di datoUnità 2

Pagina 8

Page 9: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipi aritmetici

2013/2014Tipi di datoUnità 2

Pagina 9

Page 10: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipi Interi

2013/2014Tipi di datoUnità 2

Pagina 10

Page 11: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipo int

{generalmente}

2013/2014Tipi di datoUnità 2

Pagina 11

Page 12: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio int

int a,b,c; // Dichiarazione di variabile di tipo inta = 1; // Uso di letteralib = 2;c = a + b; // Espressione aritmetica che coinvolge // operatori del linguaggio

Nota: il risultato di x/y e x%y può dipendere dal compilatore quando x e y sono di segno opposto.In ogni caso vale sempre (x/y)*y + x%y = x.

Nota: i valori limite del tipo int sono definiti nelle costantiINT_MIN e INT_MAXall’interno del file di sistema limits.h

2013/2014Tipi di datoUnità 2

Pagina 12

Page 13: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Lettura e scrittura di interi

#include <stdio.h>

int main (){

int num1, num2, somma; /* dichiarazioni */printf("Primo intero\n"); /* prompt */scanf("%d", &num1); /* lettura intero */printf("Secondo intero\n"); /* prompt */scanf("%d", &num2); /* lettura intero */somma = num1 + num2; /* somma e assegnamento */printf("Somma: %d\n", somma); /* stampa somma */

return 0; /* programma terminato con successo */}

2013/2014Tipi di datoUnità 2

Pagina 13

Page 14: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Lettura e scrittura di interi: esecuzione

2013/2014Tipi di datoUnità 2

Pagina 14

Page 15: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Lettura e scrittura di interi:variabili

Page 16: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Lettura e scrittura di interi:printf

Page 17: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Lettura e scrittura di interi:scanf

Page 18: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

La funzione scanf

La funzione che permette l'input di un elenco di variabili è:

int scanf(const char *format, ... )

scanf legge dallo standard input (tastiera) e assegna all'elenco di variabili i valori letti.

Restituisce, in caso di successo, il numero di caratteri letti.

Nota. E' richiesto l'indirizzo della variabile.

2013/2014Tipi di datoUnità 2

Pagina 18

Page 19: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Argomenti di scanf

Alcuni formati possibili sono:%c per il singolo carattere%d per numeri decimali%o per numeri ottali%x per numeri esadecimali%u per unsigned int%f per float%lf per double%s per stringhe%e per formato scientifico

ATTENZIONE!!!

2013/2014Tipi di datoUnità 2

Pagina 19

Page 20: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio scanf

#include <stdio.h>

int main(){

int x;printf("Inserisci un intero:\n");

ATTENZIONE alla &scanf("%d", &x);printf("Ho letto %d\n", x);return 0;

}

2013/2014Tipi di datoUnità 2

Pagina 20

Page 21: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio scanf: esecuzione

2013/2014Tipi di datoUnità 2

Pagina 21

Page 22: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio scanf: senza la &

scanf("%d", x);

2013/2014Tipi di datoUnità 2

Pagina 22

Page 23: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esercizi

Esercizio 2.4Scrivere, compilare ed eseguire l’esempio precedente. Cosa succede se si inserisce una lettera invece che un intero?

Esercizio 2.5Si scriva una funzione in linguaggio C che richieda all’utente due interi e li stampi in ordine inverso rispetto all’inserimento. Esempio:> Immetti primo numero: 5Immetti secondo numero: 1616 5

2013/2014Tipi di datoUnità 2

Pagina 23

Page 24: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Errori tipici – printf VS scanf

scanf può essere utilizzata per chiedere all’utente un dato. Gli argomenti di scanf differiscono da quelli di printf.

scanf ("%d %c %f", &numero, &car, &nu); CORRETTO scanf ("d %d %c \n ciao %f", &numero, &car, &nu);

NON CORRETTO

printf riceve come argomenti tanti %tipodato (%d, %f, %s, …) quante sono le variabili che voglio stampare. Vanno poi, alla fine della printf, inseriti tanti nomi di variabile quanti sono i %tipodato indicati

2013/2014Tipi di datoUnità 2

Pagina 24

Page 25: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Errori tipici – scanf

2013/2014Tipi di datoUnità 2

Pagina 25

#include <stdio.h>

int main (){

int num1, num2, somma; printf("Primo intero\n"); scanf("%d \n", &num1); printf("Secondo intero\n"); scanf("%d", &num2); somma = num1 + num2; printf("Somma: %d\n", somma); return 0;

} Qual è l'output del compilatore?Cosa avviene in esecuzione?

Page 26: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Espressioni di interi

Il seguente frammento di programma mostra espressioni con operatori sui numeri interi:

int a, b, c;a = 10/3+10%3;b = 2*-3+4;c = 2*(a+b);

2013/2014Tipi di datoUnità 2

Pagina 26

Page 27: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Precedenza degli operatori

In assenza di parentesi valgono le seguenti regole di precedenza degli operatori

1. + - unari (es. -x)

2. * / %3. + - binari (es. 3+4)

Esempio: a+b*-c

è equivalente aa+(b*(-c))

2013/2014Tipi di datoUnità 2

Pagina 27

Page 28: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Overflow numerico

L'overflow (trabocco) si verifica quando il risultato dell'operazione non può essere rappresentato mediante il tipo di dato scelto.

int x = 2147483647; // massimo valore rappresentabile mediante intint y = x + 1; // operazione affetta da overflow, poichè il // risultato 2147483648 non è rappresentabile // mediante intprintf("%d", y); // stampa -2147483648, invece di 2147483648 // che è quello che ci aspetteremmo

Esercizio 2.6Verificare il comportamento del frammento di codice presentato

2013/2014Tipi di datoUnità 2

Pagina 28

Page 29: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Operatori di assegnazione composta

somma = somma + addendo;salario = salario * aumento;

si può abbreviare in:

somma += addendo;salario *= aumento;

Per ciascun operatore +, -, *, /, % esiste ilcorrispondente +=, -=, *=, /=, %=.

2013/2014Tipi di datoUnità 2

Pagina 29

Page 30: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Operatori di incremento e decremento

Per incrementare di 1 una variabile intera si puòusare una qualunque delle seguenti tre istruzioniequivalenti:x = x + 1;x += 1;x++;

Analogamente per decrementare di 1x = x - 1;x -= 1;x--;

la forma più concisa è quella che usa l’operatore di post-incremento: ++.

la forma più concisa è quella che usa l’operatore di post-decremento: --.

2013/2014Tipi di datoUnità 2

Pagina 30

Page 31: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Side-effect (1/2)

Il C usa il termine espressione per indicare due diverse nozioni:

1. Le espressioni che hanno come effetto solamente il calcolo di un valore, come ad esempio le espressioni del tipo int, che si possono comporre secondo le regole delle espressioni matematiche;

2. Le espressioni che, oltre a calcolare un valore, corrispondono ad una operazione sulla memoria, come ad esempio un'assegnazione (semplice o composta) oppure un post-incremento. Per queste espressioni useremo il termine espressioni-con-side-effect: il termine side-effect si usa, infatti, per indicare una modifica della memoria del programma.

2013/2014Tipi di datoUnità 2

Pagina 31

Page 32: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Side-effect (2/2)

Espressioni-con-side-effect possono essere trasformate in istruzioni se terminate da “;”.È ciò che avviene nell'assegnazione di variabili.

Esempi:• 23*x+5 è una espressione matematica;• x = 7 è una espressione-con-side-effect il cui valore è 7 (il lato destro dell’assegnazione). Terminandola con “;” si ottiene l’istruzione valida x = 7;• y = x = 7 è anch’essa una espressione valida avente due side-effect: il primo assegna 7 a x, mentre il secondo assegna il valore dell’espressione x = 7 (che vale 7) a y.

2013/2014Tipi di datoUnità 2

Pagina 32

Page 33: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Uso delle espressioni

Sebbene il linguaggio C consenta un uso indifferenziato dei due tipi di espressioni,è preferibile usare le espressioni-con-side-effect per formare delle istruzioni, evitando sempre l’uso di espressioni-con-side-effect all’interno di espressioni matematiche.

2013/2014Tipi di datoUnità 2

Pagina 33

Esempio:x = 5 * (y = 7);dovrebbe essere scritta comey = 7;x = 5 * y;

Page 34: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Riassumendo

le espressioni sono un’astrazione del concetto matematico di funzione e di applicazione di funzione

le espressioni-con-side-effect (istruzioni) sono un’astrazione del concetto di assegnazione cioè di modifica della memoria del programma.

2013/2014Tipi di datoUnità 2

Pagina 34

Page 35: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Definizione di costanti e numeri magici

Un numero magico è un letterale che compare nel codice senza spiegazioni. La presenza di numeri magici diminuisce la leggibilità e la modificabilità dei programmi.

Esempio:int compenso = 20000 * orelavoro;// cosa rappresenta 20000?

È meglio definire dei nomi simbolici (le costanti) e usare queste piuttosto che direttamente i letterali.

// definizione di una costante COMPENSO_ORARIOconst int COMPENSO_ORARIO = 20000;...// qui e’ chiaro cosa COMPENSO_ORARIO rappresentiint compenso = COMPENSO_ORARIO * orelavoro;

2013/2014Tipi di datoUnità 2

Pagina 35

Page 36: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Modificatore const

COMPENSO_ORARIO è una costante, cioè una variabile il cui contenuto non varia durante l’esecuzione del programma.

Questo effetto è ottenuto usando il modificatore const nella dichiarazione della variabile.

const indica che il valore non può essere modificato (cioè rimane costante).

2013/2014Tipi di datoUnità 2

Pagina 36

Page 37: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Vantaggi dell’uso di costanti

I principali vantaggi nell’usare le costanti sono:

• Leggibilità del programma: un identificatore di costante con un nome significativo è molto più leggibile di un numeroEsempio:COMPENSO_ORARIO è autoesplicativo, 20000 non lo è

• Modificabilità del programma: per modificare un valore costante usato nel programma basta semplicemente cambiare la definizione della costanteEsempio:const int COMPENSO_ORARIO = 35000;l’uso dei numeri magici obbliga a modificare tutte le occorrenze del valore nel programma, sostituendo ogni occorrenza di 20000 con 35000.

2013/2014Tipi di datoUnità 2

Pagina 37

Page 38: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Definizioni di costanti tramite #define

Oltre alla definizione di costanti tramite la parola chiave const, è possibile definire costanti tramite la direttiva #define.

#define COMPENSO_ORARIO 20000...int compenso = COMPENSO_ORARIO * orelavoro;

#define è una direttiva che viene processata dal pre-compilatore sostituendo ad ogni occorrenza del nome definito (nell’esempio COMPENSO_ORARIO) il valore corrispondente (nell’esempio 20000).

2013/2014Tipi di datoUnità 2

Pagina 38

Page 39: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipo short

{generalmente}

2013/2014Tipi di datoUnità 2

Pagina 39

Page 40: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio short

short a, b; // Dichiarazione di //variabile di tipo short

a = 22700; // Uso di letterali

Nota: usare short al posto degli int consente di “risparmiare” memoria. Infatti, se si conosce con certezza il dominio di definizione di una variabile e tale dominio rientra in quello degli short, verrà utilizzata una quantità minore di memoria.

2013/2014Tipi di datoUnità 2

Pagina 40

Page 41: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipo long

{generalmente}

2013/2014Tipi di datoUnità 2

Pagina 41

Page 42: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio long

long a, b; // Dichiarazione di // variabili di tipo long

a = 9000000000L; // Uso di letteralib = a + 2L; // Espressione aritm. che coinvolge

// operatori del linguaggio

2013/2014Tipi di datoUnità 2

Pagina 42

Page 43: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipo float

{generalmente}

2013/2014Tipi di datoUnità 2

Pagina 43

Page 44: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio float

float a; // Dichiarazione di variabile// di tipo float

a = 3.14f; // Uso di letteralia *= 2f; // Espressione aritmetica che

// coinvolge operatori// del linguaggio// (equivalente a a=a*2f)

2013/2014Tipi di datoUnità 2

Pagina 44

Page 45: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Tipo double

{generalmente}

2013/2014Tipi di datoUnità 2

Pagina 45

Page 46: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esempio double

double a; // Dichiarazione di variabile di // tipo double

a = 628E-2; // Uso di letteralia++; // Espressione aritmetica che

// coinvolge operatori del // linguaggio// (equivalente a: a=a+1.0)

2013/2014Tipi di datoUnità 2

Pagina 46

Page 47: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Esercizio Teorema di Pitagora

Esercizio 2.6Scrivere un programma che riceva in input da tastiera il valore di due cateti di un triangolo rettangolo e restituisca il valore dell’ipotenusa.

Esempio d’usoinserisci il primo cateto3inserisci il secondo cateto4valore ipotenusa: 5

2013/2014Tipi di datoUnità 2

Pagina 47

Page 48: Presentazione di PowerPointbloisi/didattica/ingegneriaClinica1314/lezioni/2... · Side-effect (1/2) Il C usa il termine espressione per indicare due diverse nozioni: 1. Le espressioni

Soluzione Teorema di Pitagora#include <stdio.h>#include <math.h>

int main (){

double a, b, c;printf("inserisci il primo cateto\n");scanf("%lf", &a);printf("inserisci il secondo cateto\n");scanf("%lf", &b);c = sqrt(a*a + b*b);printf("valore ipotenusa: %f\n", c);return 0;

}

2013/2014Tipi di datoUnità 2

Pagina 48