Upload
romana-viviani
View
219
Download
1
Embed Size (px)
Citation preview
Introduzione al linguaggio C
Elementi di InformaticaA.A. 2004/0513/10/2004
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Hello World!
#include <stdio.h>
main(){ printf(“hello world!\n”);}
Direttive preprocessore
Programma
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Hello World!
#include <stdio.h>
main(){ printf(“hello world!\n”);}
Punto di ingresso
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Hello World!
#include <stdio.h>
main(){ printf(“hello world!\n”);}
Blocco di codice
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Hello World!
#include <stdio.h>
main(){ printf(“hello world!\n”);}
istruzione
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Compilazione
Pre-processore
Pre-processore CompilatoreCompilatore LinkerLinker
applicazione
librerie
fileoggetto
sorgente
Sorgentemodificato
header
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Variabili
#include <stdio.h>
main(){ int a; int c,b=1;}
Dichiarazione di una variabile
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Variabili
#include <stdio.h>
main(){ int a; int c,b=1;}
Tipo
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Variabili
#include <stdio.h>
main(){ int a; int c,b=1;}
nome
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Variabili
#include <stdio.h>
main(){ int a; int c,b=1;}
inizializzazione
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Variabili: significato
RAM
int a=10;
00001010
a00000000
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Tipi di variabili
Interi int: dimensione variabile (2 byte su PC a
16bit, 4 byte su PC a 32) long: 4 byte
Numeri in virgola mobile float: 4 byte double: 8 byte
Caratteri char: 1 byte (in realtà possono essere
utilizzati come numeri)
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Esercizio
Sapendo che gli interi sono rappresentati in modulo e segno, calcolare il valore massimo e minimo che può essere contenuto in ciascun tipo di variabile
Verificare le condizioni di overflow mediante un programma in C
Verficare le condizioni di underflow mediante un programma C
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Tabella riassuntiva tipi
char Intero, 1 Byte char i = 10;
short Intero, 2 Byte short i = 2321;
int Intero, 2-4 Byte int i = -2322;
long Intero, 4 Byte long i = 2345678;
float Numero con virgola, 4 Byte
float i = 2.34;
double Numero con virgola, 8 byte
double i = -1.2e-20;
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Modificatore unsigned
La parola chiave unsigned indica che il tipo intero deve essere senza segno
Esempi char i; /* range (-27, 27-1) */ unsigned char i; /* range (0, 28-1) */
1 010 0 110
1 010 0 110
= -93 (signed)
= 163 (unsigned)
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Costanti
#include <stdio.h>
#define PI 3.14159
main(){ int a; int c, float pi=PI;}
definizione di una costante
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Costanti
#include <stdio.h>
#define PI 3.14159
main(){ int a; int c, float pi=PI;}
Utilizzo di una costante
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Espressioni aritmetiche
main(){ int a,b,c;
a = 10; b = a+1; c = a*(b-10); c = b/a; c = a/b;}
Assegnamenti
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Espressioni ed assegnamenti
main(){ int a,b,c;
a = 10; b = a+1; c = a*(b-10); c = b/a; c = a/b;} Espressione
aritmetica
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Assegnamenti
Cosa succede quando si assegnano fra di loro variabili di tipo differente?
dim(dest) > dim(orig)Ok, nessun
problema
dim(dest) < dim(orig)Troncamento!
int a=10;long b;float c=23.5;
b = a; /* ok */b = 1000000; a = b; /* troncamento! */b = c; /* troncamento! */C = a; /* ok */
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
Espressioni di confronto
Operatori aritmetici di confronto:< > == !=
Se il confronto è vero il risultato è 1 Se è falso il risultato è 0
int r,a=10;int b=2;float c=23.5;
r = a < b; /* r vale 0*/r = a != b; /* r vale 1 */r = a < c < b; /* r vale 1 */
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
printf
La funzione printf stampa stringhe e numeri sullo standard output
printf(“formato”, …);
Esempio:
printf(“I valori sono %d e %f\n”, 10, 2.3);
Risultato:
I valori sono 10 e 2.30000
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
printf
Il primo parametro è la stringa di formato
Ogni %d e %f deve avere un parametro corrispondente di seguito
%c vuole un carattere (char) %d vuole un intero (int) %ld vuole un intero (long) %f vuole un numero con virgola (float o
double)
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
scanf
La funzione scanf permettere di leggere dati da tastiera eseguendo le corrette conversioni
scanf(“formato”, …); Esempio:
scanf(“%d”, &a); Risultato
Il programma si blocca in attesa che venga inserito da tastiera un intero
Appena premuto invio il valore inserito viene copiato dentro a
Politecnico di Torino
©2
004 -
Fab
io F
orn
o
scanf
Il primo parametro è sempre una stringa di formato
I parametri successivi sono determinati dagli indicatori di tipo %c legge un char %d legge un intero %f legge un float %lf legge un double
Ogni parametro deve essere preceduto dal simbolo “&” Questo indica “l’indirizzo” della variabile, perché scanf
deve sapere dove andare a scrivere il valore letto