#include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del...

83

Transcript of #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del...

Page 1: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.
Page 2: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>

main() {

printf (“ciao”); printf (“mondo!”);}

L’esecuzione inizia da main()Il corpo del programma è racchiuso da

parentesi graffe

Page 3: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>

main() {

printf (“ciao”); printf (“mondo!”);}

Il programma è composto da una serie di istruzioni printf che vengono eseguite in sequenza.

Page 4: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>

main() {

printf (“ciao”); printf (“mondo!”);}

Ogni istruzione deve terminare con un punto e virgola

Page 5: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

L’istruzione printf permette la stampa su video di ciò che è racchiuso tra parentesi tonde e doppi apici.

printf (“tre”);

Visualizza sullo schermo

tre

Page 6: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

E’ un’istruzione che dice al calcolatore che nel programma si useranno le funzioni contenute nel file stdio.h (standard input-output)

Sono le funzioni che permettono di:-inviare messaggi sul video-di leggere valori dalla tastiera

Page 7: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

• Il C distingue tra lettere maiuscole e minuscole

• Le istruzioni sono tutte scritte in minuscolo

Page 8: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

• Sono sequenze di caratteri con funzioni speciali.

• Quelle più usate:\n va a linea nuova\t salta di una tabulazione\b ritorna di un carattere indietro \\ stampa il carattere \\” stampa il carattere “

Page 9: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

printf (“ciao”);printf (“mondo”)

visualizza ciaomondo (anche lo spazio è un carattere come gli altri)

printf (“ciao\n”);Printf(“mondo”);

Visualizza: ciao mondo

Page 10: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

La sequenza \n fa andare il cursore a riga nuova

Per lasciare una linea vuota si deve inserire un ulteriore \n

Se si desidera lasciare una riga prima della visualizzazione si fa precedere da \n

Printf (“\nAREA RETTANGOLO\n\n”):

Page 11: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

/* Calcolo area rettangolo */

•Inizia con /* e finisce con */•Può estendersi su più linee•Può apparire in qualsiasi parte del programma•E’ possibile farla precedere da // ma in questo caso deve terminare a fine linea

Page 12: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

/* calcolo area rettangolo*/

#include <stdio.h>

main(){

int base;int altezza;int area;

base = 3;altezza = 7;area = base*altezza;

printf(“%d”, area);}

Page 13: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

• Il formato della dichiarazione di una variabile è:

tipo nome-variabile;

• Il tipo di una variabile ne definisce la sua dimensione e l’insieme di operazioni che si possono effettuare su di essa• Il nome di una variabile la identifica

Page 14: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Tipo Uso Dimensione in bit

char caratteri di testo ASCII 8

short int numeri interi piccoli da -32768 a + 32767 16

unsigned short int numeri interi positivi piccoli da 0 a 65535 16

int numeri interi da -2147483648 a 2147483647 32

unsigned int numeri positivi da 0 a 4294967295 32

float Numeri a virgola mobile (precisione singola) 32

double Numeri a virgola mobile (precisione doppia, notazione scientifica)

64

Page 15: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

E’ possibile fare con le variabili ogni tipo di operazione matematica elementare:Addizione (+)Sottrazione (-)Moltiplicazione (*)Divisione (/)Resto della divisione (%)

Page 16: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Le variabili possono essere dichiarate:- Sia all’inizio del programma (dopo main() e la

parentesi graffa)

- Sia prima di main()

Page 17: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Le dichiarazioni delle variabili dello stesso tipo possono essere effettuate in sequenza separate da una virgola

int base, altezza, area;

Page 18: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

I nomi delle variabili devono:- Iniziare con una lettera o con il carattere _- Possono contenere lettere, cifre e .- Le lettere maiuscole sono considerate diverse

dalle corrispondenti minuscole- Non può essere usata una parola chiave del

linguaggio né può essere uguale a un nome di funzione

Page 19: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Alla dichiarazione di una variabile corrisponde anche la sua definizione la quale fa si che le venga riservato uno spazio in memoria centrale.

Page 20: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

L’istruzione:

base = 3;

Assegna alla variabile base il valore 3, inserisce, cioè, il valore 3 nello spazio di memoria riservato alla variabile

Page 21: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Tra i doppi apici il simbolo % stabilisce che il carattere che lo segue definisce il formato di stampa della variabile.

d (decimal) indica che si desidera la visualizzazione di un intero nel sistema decimale

Page 22: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

E’ possibile visualizzare il valore delle variabili nel seguente modo:

printf(“Base: %d\n”, base);printf(“Altezza: %d\n”, altezza);printf(“Area: %d”, area);

Base: 3Altezza: 7Area: 21

Page 23: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Quando un valore è ripetuto in modo ricorrente è opportuno rappresentarlo con un nome simbolicoLa definizione delle costanti, posta all’inizio del programma, avviene attraverso la macro seguente:

#define NOME-COSTANTE valore-costante

#define BASE 3

Page 24: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

/* Calcolo area rettangolo */

#include <stdio.h>#define BASE 3#define ALTEZZA 7main(){

int area;area = BASE * ALTEZZA;printf (“Base: %d\n”, BASE);printf(“Altezza: %d\n”, ALTEZZA);printf(“Area: %d\n”, area);

}

Page 25: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Scanf (“%d”, &base)

L’esecuzione di questa istruzione fa si che il sistema attenda in input un dato da parte dell’utente.

Il simbolo & deve precedere il nome della variabile

&base indica l’indirizzo di memoria in cui si trova il valore della variabile base

Page 26: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

/* Calcolo area rettangolo*/#include <stdio.h>

int base, altezza, area;main (){

printf (“Valore base: “);scanf (“%d”, &base);printf (“Valore altezza: “);scanf (”%d”, &altezza);

area = base* altezza;

printf (“Base: %d\n”, base);printf (“Altezza: %d\n”, altezza);printf (“Area: %d”, area);

}

Page 27: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Printf (“%d %d %d”, base, altezza, area);

10 13 130

Printf (“%d\n %d\n %d\n”, base, altezza, area);

1013130

Printf (“%d\n %d\nArea: %d” base, altezza, area);

1013Area: 130

Page 28: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

printf (“%5d\n%5d\n%5d, base, altezza, area);

1 0 1 3 1 3 0

printf (“%-5d\n%-5d\n%5d, base, altezza, area);

1 3 1 3 01 0

Page 29: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Assumono valori alfanumerici che comprendono:

• Lettere minuscole• Lettere maiuscole• Cifre decimali• Caratteri speciali (.,;:@+-*/%..........)

Page 30: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

char x, y, z;

La parola chiave char specifica che gli identificatori x, y e z si riferiscono a variabili di tipo carattere

Page 31: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

x = ‘A’;y = ‘%’;z = ‘&’;

Per assegnare un valore costante ad una variabile char lo si deve racchiudere tra apici

Page 32: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

%c specifica il formato di stampa carattere.

printf(“%c%c%c”, x, y, z);

l’esecuzione dell’istruzione produce:A%&

mentre l’istruzione:printf(“%c %c %c”, x, y, z);

produce:A % &

Page 33: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Si possono stampare valori di tipi diversi all’interno della stessa printf. Se n e m sono variabili int si può essere scrivere:x = ‘a’;y = ‘b’;n = 100;m = 50;printf(“%c = %d %c = %d”, x, n, y, m);

che restituisce:a = 100 b = 50

Page 34: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

scanf(“%c”, &x);

Con l’istruzione scanf si possono inserire i caratteri durante l’esecuzione

Page 35: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Esistono altre due funzioni, contenute sempre nella libreria stdio.h, che permettono di leggere e scrivere caratteri:

getchar e putchar

Page 36: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

x =getchar();

Con questa istruzione il programma si blocca in attesa di un carattere introdotto da tastiera.

Per visualizzare il carattere abbiamo la funzione:

x =putchar();

Page 37: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>

main()

{char x, y, z;printf(“digita tre caratteri: “);scanf(“%c%c%c”, &x, &y, &z);}

#include <stdio.h>

main()

{char x, y, z;printf(“digita tre caratteri: “);x = getchar();y = getchar();z = getchar();printf(“hai digitato: “);putchar(x);putchar(y);putchar(z);}

Page 38: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Una variabile di tipo char permette di memorizzare un singolo carattere.

Per memorizzare invece una sequenza di caratteri occorre utilizzare gli array o le stringhe.

Page 39: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

L’array è un insieme di variabili tutte dello stesso tipo, cui si fa riferimento mediante un stesso nome. L’accesso ad un determinato elemento si realizza mediante un indice.

int a(10);char b(20);

Indicano rispettivamente una struttura formata da 10 elementi interi e una struttura formata da 20 elementi di tipo char

Page 40: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

a[2] = 71

0 1 2 3 4

Assegna al secondo elemento dell’array il valore 71

71

Page 41: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

b[3] = ‘r’

0 1 2 3 4

Assegna al terzo elemento il carattere r

r

Page 42: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Una stringa consiste in una sequenza di caratteri.

char nome[10]; stringa di nove caratteri più carattere null

char negozio[] = “Zara s.p.a.”

Definisce una stringa di caratteri di nome negozio e il cui numero di elementi dipende dal numero di elementi presenti tra apici più uno, il carattere null (\0) che chiude la stringa

Page 43: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

La stringa è un array di char dove un insieme di caratteri è trattato come una singola unità

Quando si parla di caratteri, infatti, può essere interessante manipolare l’intero insieme di caratteri appartenenti ad un array, in quanto costituiscono nel loro insieme un vocabolo o un’intera frase

Page 44: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

char d = ‘r’;char d[2] = ‘r’;char d[] = “r”;

La prima assegna a d il carattere r, la seconda assegna al terzo elemento dell’array il carattere r , la terza assegna a d la sequenza di caratteri r e \0.

Page 45: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Per visualizzare il contenuto di una stringa si utilizza %s:

printf(“%s”, negozio);

visualizza:

Zara s.p.a

Page 46: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Per inserire da tastiera si usa scanf:

scanf(“%s”, negozio);

Copia l’input in negozio senza usare &

Page 47: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Per poter copiare il contenuto di una stringa in un’altra occorre utilizzare la funzione strcpy contenuta nella libreria <string.h>

strcpy(nome1,nome2);

Il contenuto della stringa nome2 viene copiato nella stringa nome1

Page 48: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

E’ possibile assegnare ad una variabile un valore iniziale al momento della sua dichiarazione

int a = 0, b = 50, c = 100;

Page 49: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Per gli array (se definiti prima di main):int voti[5] = {6, 7, 8, 10, 5,3};

Per le stringhe occorre porre il valore tra doppi apici:

char frase[] = “esempio variabili”;

oppure:Char frase[30] = {‘e’,’s’,’e’,’m’,’p’,’i’,’o’,’

‘,’v’,’a’,’r’,’i’,’a’,’b’,’i’,’l’,’i’,’\0’};

Page 50: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Una funzione è costituita da un insieme di istruzioni che realizzano un compito: a partire da uno o più valori presi in input, essa restituisce un determinato valore di output

Page 51: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

w = abs(j); valore assoluto

L’insieme delle istruzioni che la compongono è contenuto nella libreria standard math.h

Per poter utilizzare tale funzione occorre inserire prima di main:

#include <math.h>;

Page 52: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

stdio.h funzioni di input/output

math.hfunzioni matematiche

string.h funzioni che operano su stringhe

Page 53: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Quando si desidera eseguire un’istruzione, al verificarsi di una condizione, si utilizza l’istruzione if.

if (espressione) istruzione;

Dove se espressione è vera viene eseguita istruzione;

Page 54: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

if i < 100printf(“minore di 100”);

La valutazione dell’espressione i < 100 può restituire solo i valori vero o falso che in C corrispondono ai valori 1 e 0.

Page 55: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

if(i>100) printf(“maggiore di 100”);

L’esempio precedente è identico alla successiva espressione dove a assume valore 1 o 0 a seconda che l’espressione sia vera o falsa

a = i>100;if(a!=0) printf(“maggiore di100”);

a=i>100;if(a) printf(“maggiore di 100”);

iiii

Page 56: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

La sintassi completa dell’istruzione if è:

If(espressione) istruzione1;{else istruzione2};

Dove istruzione1 viene eseguita se espressione risulta vera, altrimenti, se è falsa, viene eseguita istruzione2.

Page 57: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>main(){int i;printf(“dammi un intero: “);scanf(“%d”, &i);if(i>100) printf(“maggiore di 100\n”);else printf(“minore o uguale a 100”);

Page 58: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

if (i<100) printf(“minore di 100”);printf(“prossima istruzione”);

La seconda printf viene eseguita indipendentemente dalla valutazione di i<100.

Page 59: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Lo stesso avviene per la clausola else nelle istruzioni seguenti:

if (i<100) printf(“minore di 100”);else printf(“maggiore o uguale a 100);printf(“istruzione successiva”);

Page 60: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>int i, mag_100, min_100;main(){mag_100 = 0;min_100 = 0;printf(“digitare un intero: “);scanf(“%d”,&i);if (i>100) { printf(“maggiore di 100\n”); mag_100 = 1;}

else { printf(“minore o uguale a 100”); min_100 = 1;}}

Page 61: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Un if può comparire all’interno di un altro if

if (i<100)if (i>0) printf(“minore di 100 e maggiore di 0”); else printf(“minore di 100 ma non maggiore di 0);

elseprintf(“maggiore o uguale a 100”);

Page 62: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

if (i<100) {if (i>0) printf(“minore di 100 e maggiore di 0”);

}else

printf(“maggiore o uguale a 100”);

Page 63: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

if (i<100)if (i>0) printf(“minore di 100 e maggiore di 0”); else printf(“minore di 100 ma non maggiore di 0);

elseif (i==100) printf(“uguale a 100”);else printf(“maggiore di 100”);

Page 64: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Quando si desidera ripetere un’operazione un determinato numero di volte si può riscrivere sequenzialmente l’istruzione corrispondente.

somma = 0;somma = somma + 4;somma = somma + 4; somma = somma + 4;

Page 65: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Lo stesso risultato si può ottenere con un ciclo in cui l’istruzione si ripete:

somma = 0;for(i=1; i<=3; i = i+1) somma = somma + 4;

Page 66: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

somma = 0;for(i=1; i<=3; i = i+1) somma = somma + 4;

Alla variabile somma viene assegnato il valore 0. L’istruzione for assegna il valore 1 alla variabile i (inizializzazione). Successivamente:1. i<=3 allora vai al passo 2 altrimenti termina2. somma = somma + 43. i = i+ 1, vai al passo 1

Page 67: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Il formato è il seguente:

for(esp1; esp2; esp3)istruzione

Il ciclo non viene eseguito neppure una volta se esp2 risulta falsa.

Il ciclo viene eseguito fino a che esp2 non risulti essere falsa.

Page 68: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Se istruzione è costituita da un gruppo di istruzioni, questo deve essere racchiuso tra parentesi graffe:

somma = 0;for(i=1; i<=3; i=i+1) { scanf(%d”, &numero); somma = somma + numero;}

Page 69: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>main(){int i, somma, numero;printf(“Somma 5 numeri \n“);somma = 0;for(i=0; i<=5; i=i+1) {printf(“inserire intero “);scanf(“%d”, &numero);somma = somma + numero;}printf(“Somma: %d\n”, somma);}

Page 70: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Anche l’istruzione while permette la ripetizione di un’istruzione o di un gruppo di istruzioni:

while (esp)istruzione

Viene eseguita l’istruzione finchè esp risulta vera. Il ciclo termina non appena il valore di esp risulta falso.

Page 71: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

i = 1;while (i<=4) { for (i=1;i<=4; i=i+1){printf(“inserire intero: “); printf(“inserire intero: “);scanf(“%d”, &numero); scanf(“%d”, &numero);somma = somma + numero; somma = somma + numero;i = i + 1; }}

Page 72: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

•Con while non si ha la garanzia che l’istruzione o gruppo di istruzioni vengano eseguiti almeno una volta perché, se esp risulta subito falsa, si passa direttamente all’istruzione successiva al while.•Con while non è sempre noto a priori il numero il numero di volte che occorre ripetere l’istruzione o gruppo di istruzioni

Page 73: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

L’istruzione do……while valuta la condizione alla fine del ciclo stesso: per questo il corpo del ciclo viene eseguito almeno una volta.

doistruzione/iwhile (esp)

Page 74: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

#include <stdio.h>main(){int n;do{printf(“inserire un intero compreso tra 10 e 20: “);scanf(“%d”, &n”);} while (n<10 || n>20);printf (“il numero inserito è: %d”, n);}

Page 75: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

L’incremento unitario di una variabile si ottiene con l’istruzione :somma = somma + 1

In C è possibile ottenere lo stesso risultato con l’operatore ++++somma

Page 76: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Somma = somma – 1;

Equivale a

--somma;

Page 77: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

c = ++a + b;

La variabile a viene incrementata di un’unità e sommata alla variabile b; il risultato viene poi assegnato a c

Page 78: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Gli operatori di incremento e decremento possono sia precedere sia seguire la variabile

++somma equivale a somma++

Page 79: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

Se gli operatori vengono usati all’interno di espressioni valgono le seguenti regole:•se l’operatore ++(--) precede la variabile, prima il valore della variabile incrementato (decrementato) e poi viene valutata l’intera espressione•se l’operatore ++(--) segue la variabile, prima viene valutata l’intera espressione e poi il valore della variabile viene incrementato (decrementato)

Page 80: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

int a, b, c;a = 5;b = 7;c = a++ + b;printf(“%d\n”, a);printf(“%d\n”, b);printf(“%d\n”, c);

Page 81: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

a += 5 equivale a a = a + 5

a *= 2 equivale a a = a * 2

a -= b equivale a a = a – b

a*= 4+b equivale a a = a * (4 + b)

Page 82: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

! - ++ --

* / %

• + -

> >= < <=

Page 83: #include main() { printf (ciao); printf (mondo!); } Lesecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe.

== !=

&&

||

?:

= += -= *= /= %=