25
Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Embed Size (px)

Citation preview

Page 1: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Introduzione al linguaggio C

Elementi di InformaticaA.A. 2004/0513/10/2004

Page 2: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/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

Page 3: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Hello World!

#include <stdio.h>

main(){ printf(“hello world!\n”);}

Punto di ingresso

Page 4: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Hello World!

#include <stdio.h>

main(){ printf(“hello world!\n”);}

Blocco di codice

Page 5: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Hello World!

#include <stdio.h>

main(){ printf(“hello world!\n”);}

istruzione

Page 6: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Compilazione

Pre-processore

Pre-processore CompilatoreCompilatore LinkerLinker

applicazione

librerie

fileoggetto

sorgente

Sorgentemodificato

header

Page 7: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 8: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Variabili

#include <stdio.h>

main(){ int a; int c,b=1;}

Tipo

Page 9: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Variabili

#include <stdio.h>

main(){ int a; int c,b=1;}

nome

Page 10: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Variabili

#include <stdio.h>

main(){ int a; int c,b=1;}

inizializzazione

Page 11: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

Politecnico di Torino

©2

004 -

Fab

io F

orn

o

Variabili: significato

RAM

int a=10;

00001010

a00000000

Page 12: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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)

Page 13: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 14: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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;

Page 15: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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)

Page 16: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 17: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 18: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 19: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 20: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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 */

Page 21: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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 */

Page 22: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 23: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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)

Page 24: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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

Page 25: Introduzione al linguaggio C Elementi di Informatica A.A. 2004/05 13/10/2004

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