![Page 1: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/1.jpg)
© Il Team di “Programmazione Scientifica”
Corso di
Laboratorio di
Calcolo
Variabili e memoria
![Page 2: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/2.jpg)
© Il Team di “Programmazione Scientifica”
Variabili e costanti
a = 2;
b = 3.5;
c = 2.;
0xffffa000
0xffffa001
0xffffa002 00000010
0xffffa003
0xffffa004
0xffffa005
0xffffa006
0xffffa007
![Page 3: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/3.jpg)
© Il Team di “Programmazione Scientifica”
Variabili e costanti
a = 2;
b = 3.5;
c = 2.;
Nota: per brevità
le variabili intere
sono rappresentate
usando solo 8 bit
0xffffa000
0xffffa001
0xffffa002 00000010
0xffffa003
0xffffa004
0xffffa005
0xffffa006
0xffffa007
![Page 4: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/4.jpg)
© Il Team di “Programmazione Scientifica”
Variabili e costanti
a = 2;
b = 3.5;
c = 2.;
0xffffa000
0xffffa001
0xffffa002 00000010
0xffffa003 01000000
0xffffa004 11100000
0xffffa005 00000000
0xffffa006 00000000
0xffffa007
3.5 = (1 + 0.75)*21
NOTA: l‟esponente è
rappresentato in
eccesso (cap.1,p.19)
![Page 5: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/5.jpg)
© Il Team di “Programmazione Scientifica”
Variabili e costanti
a = 2;
b = 3.5;
c = 2.; 0xffffa002 00000010
0xffffa003 01000000
0xffffa004 11100000
0xffffa005 00000000
0xffffa006 00000000
0xffffa007 01000000
0xffffa008 10000000
0xffffa009 00000000
0xffffa00a 00000000
2. = (1 + 0)*21
![Page 6: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/6.jpg)
© Il Team di “Programmazione Scientifica”
Variabili e costanti
a = 2;
b = 3.5;
c = 2.;
d = „f‟; 0xffffa003 01000000
0xffffa004 11100000
0xffffa005 00000000
0xffffa006 00000000
0xffffa007 01000000
0xffffa008 10000000
0xffffa009 00000000
0xffffa00a 00000000
0xffffa00b 01100110
f ↔ 102 (6616)
![Page 7: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/7.jpg)
© Il Team di “Programmazione Scientifica”
Operatori matematici
c = a + b;
0xffffa002 00000010
0xffffa003 01000000
0xffffa004 11100000
0xffffa005 00000000
0xffffa006 00000000
0xffffa007 11000000
0xffffa008 00000000
0xffffa009 00000000
0xffffa00a 00000000
![Page 8: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/8.jpg)
© Il Team di “Programmazione Scientifica”
Operatori matematici
c = a + b;
0xffffa002 00000010
0xffffa003 01000000
0xffffa004 11100000
0xffffa005 00000000
0xffffa006 00000000
0xffffa007 01000000
0xffffa008 10000000
0xffffa009 00000000
0xffffa00a 00000000
Nota: nel registro
della CPU il numero 2 viene “promosso” a
float
![Page 9: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/9.jpg)
© Il Team di “Programmazione Scientifica”
Operatori matematici
c = a + b;
0xffffa002 00000010
0xffffa003 01000000
0xffffa004 11100000
0xffffa005 00000000
0xffffa006 00000000
0xffffa007 01000000
0xffffa008 10000000
0xffffa009 00000000
0xffffa00a 00000000
![Page 10: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/10.jpg)
© Il Team di “Programmazione Scientifica”
Operatori matematici
c = a + b;
0xffffa002 00000010
0xffffa003 01000000
0xffffa004 11100000
0xffffa005 00000000
0xffffa006 00000000
0xffffa007 01000001
0xffffa008 00110000
0xffffa009 00000000
0xffffa00a 00000000
5.5 = (1 + 0.375)*22
![Page 11: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/11.jpg)
© Il Team di “Programmazione Scientifica”
Operatori speciali
a = 2;
b = ++a;
0xffffa002 00000010
0xffffa003
![Page 12: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/12.jpg)
© Il Team di “Programmazione Scientifica”
Operatori speciali
a = 2;
b = ++a;
0xffffa002 00000011
0xffffa003 00000011
![Page 13: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/13.jpg)
© Il Team di “Programmazione Scientifica”
Operatori speciali
a = 2;
b = ++a;
a = 2;
b = a++;
0xffffa002 00000010
0xffffa003
![Page 14: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/14.jpg)
© Il Team di “Programmazione Scientifica”
Operatori speciali
a = 2;
b = ++a;
a = 2;
b = a++;
0xffffa002 00000011
0xffffa003 00000010
![Page 15: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/15.jpg)
© Il Team di “Programmazione Scientifica” 15
Caratteristiche del C
(strong) typing tutte le variabili vanno dichiarate
ogni istruzione è terminata dal “;”
parole riservate: char, double, float,
int,long, short, unsigned, while, for,
do, if, then, else, void
Tokens: parole chiave, identificatori/variabili, costanti,
operatori, simboli di interpunzione Es: int main (void) { }
Gli identificatori devono cominciare con “_” o con una
lettera, NON con un numero
![Page 16: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/16.jpg)
© Il Team di “Programmazione Scientifica”
Programmi e variabili
main() {
float tc, tf = 90., conv;
float offset = 32.;
conv = 5./9.;
tc = (tf – offset) * conv;
}
? 90. ?
tc tf conv
![Page 17: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/17.jpg)
© Il Team di “Programmazione Scientifica”
Programmi e variabili
main() {
float tc, tf = 90., conv;
float offset = 32.;
conv = 5./9.;
tc = (tf – offset) * conv;
}
? 90. ? 32.
tc tf conv offset
![Page 18: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/18.jpg)
© Il Team di “Programmazione Scientifica”
Programmi e variabili
main() {
float tc, tf = 90., conv;
float offset = 32.;
conv = 5./9.;
tc = (tf – offset) * conv;
}
? 90. 0.555 32.
tc tf conv offset
![Page 19: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/19.jpg)
© Il Team di “Programmazione Scientifica”
Programmi e variabili
main() {
float tc, tf = 90., conv;
float offset = 32.;
conv = 5./9.;
tc = (tf – offset) * conv;
}
32.22 90. 0.555 32.
tc tf conv offset
![Page 20: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/20.jpg)
© Il Team di “Programmazione Scientifica”
Test
Cosa accade se eseguo il programma?
Nulla, perché non ci sono istruzioni di output!
![Page 21: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/21.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
scanf(“%f”, &tf);
![Page 22: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/22.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
scanf(“%f”, &tf);
90
![Page 23: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/23.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
scanf(“%f”, &tf);
90 = (1+0.40625)26
010000011011010000000000...
(1/4 + 1/8 + 1/32)
![Page 24: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/24.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
scanf(“%f”, &tf);
90.
90 = (1+0.40625)26
010000011011010000000000...
![Page 25: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/25.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
printf(“%f F = %f C\n”, tf, tc);
![Page 26: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/26.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
printf(“%f F = %f C\n”, tf, tc);
![Page 27: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/27.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
printf(“%f F = %f C\n”, tf, tc);
90.000000 F = ...
![Page 28: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/28.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
printf(“%f F = %f C\n”, tf, tc);
90.000000 F = 32.222222 C...
![Page 29: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/29.jpg)
© Il Team di “Programmazione Scientifica”
Input/Output
printf(“%f F = %f C\n”, tf, tc);
90.000000 F = 32.222222 C
>
![Page 30: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/30.jpg)
© Il Team di “Programmazione Scientifica”
Importanza della rappresentazione
tf =(tc – offset) * 5./ 9.;
(tc – offset) * 5./ 9;
(tc – offset) * 5 / 9;
tf = 5 / 9 * (tc – offset);
![Page 31: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/31.jpg)
© Il Team di “Programmazione Scientifica”
Direttive
#include
Consente di includere il contenuto di un
altro file
#define
Definisce un simbolo (Attenzione!!!)
#ifdef, #ifndef, #else
Compilazione condizionale
![Page 32: Variabili e memoria - Welcome to the INFN Roma Home Page · 2012-10-09 · © Il Team di “Programmazione Scientifica” Variabili e costanti a = 2; b = 3.5; c = 2.; 0xffffa000 0xffffa001](https://reader033.vdocument.in/reader033/viewer/2022050214/5f609304028f2543654b3822/html5/thumbnails/32.jpg)
© Il Team di “Programmazione Scientifica”
#include
#include <stdio.h>
per input/output
#include <stdlib.h>
generazione numeri casuali, exit, time
#include <math.h>
libreria matematica (con opzione –lm )
– sin(x), cos(x), sqrt(x), exp(x), pow(x,y),
log(x), fabs(x), iabs(x)
#include ”/home/studenti/lclb01/myheader.h”