FONDAMENTI DI INFORMATICA -...

33
Fondamenti di Informatica - La programmazione in linguaggio C © 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 1 FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C

Transcript of FONDAMENTI DI INFORMATICA -...

Page 1: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 1

FONDAMENTI DI INFORMATICA

Prof. PIER LUCA MONTESSOROIng. DAVIDE PIERATTONI

Facoltà di IngegneriaUniversità degli Studi di Udine

La programmazione in linguaggio C

Page 2: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 2

Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (iviinclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà degli autori prof. Pier Luca Montessoro e ing. DavidePierattoni, Università degli Studi di Udine.Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministerodell'Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione.Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni susupporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori. L'informazione contenuta in queste slide è ritenuta essere accurata alla data dellapubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senzapreavviso. Gli autori non assumono alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell'informazione). In ogni caso non può essere dichiarata conformità all'informazione contenuta in questeslide.In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devonomai essere rimossi e devono essere riportati anche in utilizzi parziali.

Nota di Copyright

Page 3: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 3

specifichedel problema analisi algoritmo

programmasorgente

implem

entazione

compilazionee linking

programmaeseguibile

esecuzione

controllodei risultati debugging e correzione

del programma

Strumenti per la programmazione

Page 4: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 4

Strumenti per la programmazionespecifiche

del problema analisi algoritmo

programmasorgente

implem

entazione

compilazionee linking

programmaeseguibile

esecuzione

controllodei risultati debugging e correzione

del programma

In questo corso non è previstol’utilizzo di sistemi di analisiautomatica né di strumentidi CASE (Computer AidedSoftware Engineering)

Page 5: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 5

Strumenti per la programmazionespecifiche

del problema analisi algoritmo

programmasorgente

implem

entazione

compilazionee linking

programmaeseguibile

esecuzione

controllodei risultati debugging e correzione

del programma

TEXT EDITOR: programmaper scrivere file di testo (ASCII)Esempi: EDIT di MS-DOS,Notepad, Wordpad o Notepad++ diMS-Windows, gedit o emacs di Unix

Page 6: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 6

Strumenti per la programmazionespecifiche

del problema analisi algoritmo

programmasorgente

implem

entazione

compilazionee linking

programmaeseguibile

esecuzione

controllodei risultati debugging e correzione

del programma

Compilatore C/C++ della GNU

Linguaggio C:gcc -o foobar.exe foobar.c

Linguaggio C++:g++ -o foobar.exe foobar.cpp

Page 7: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 7

Strumenti per la programmazionespecifiche

del problema analisi algoritmo

programmasorgente

implem

entazione

compilazionee linking

programmaeseguibile

esecuzione

controllodei risultati debugging e correzione

del programma

In MS-DOS e in unix per eseguire un programma èsufficiente scriverne il nomesulla linea di comando,seguito da invio:

C:\PROGRAMMI> foobar

Page 8: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 8

Strumenti per la programmazionespecifiche

del problema analisi algoritmo

programmasorgente

implem

entazione

compilazionee linking

programmaeseguibile

esecuzione

controllodei risultati debugging e correzione

del programma

Strumenti di base:• attenta analisi ragionata del codice• selezione di casi significativi• printf (per la stampa dei valori delle variabili)

Strumenti avanzati:• debugger

Page 9: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 9

Utilizzo del compilatore GCC• Compilazione:

C:\PROGR> gcc -o nome.exe nome.c

• Esecuzione:C:\PROGR> nome

• Compilazione per il debugger:C:\PROGR> gcc -g -o nome.exe nome.c

• Esecuzione con debugger grafico:C:\PROGR> gdb nomeC:\PROGR> insight nomeC:\PROGR> nemiver prova

(versioni gcc precedenti alla 3)

(in ambiente Ubuntu)

Page 10: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 10

Principi fondamentali

• “Implementare un algoritmo” significa tradurre una serie di operazioni aritmetico-logiche in procedure eseguibili dal calcolatore

• Tale traduzione è diversa a seconda del linguaggio di programmazione scelto

Un programma C è costituito fondamentalmente da variabili e funzioni

Page 11: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 11

Variabili e funzioni

• Le variabili memorizzano i valori (o dati) in input e/o in output e quelli usati durante l’esecuzione

• Le funzioni sono sequenze di istruzioni, ossia operazioni da effettuare sui dati

Page 12: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 12

Esempio: hello.c#include <stdio.h>#include <stdlib.h>

/* programma principale */

int main(){

printf ("Hello world!\n");return EXIT_SUCCESS;

}

/* fine del programma */

Page 13: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 13

Esempio: hello.c#include <stdio.h>#include <stdlib.h>

/* programma principale */

int main(){

printf ("Hello world!\n");return EXIT_SUCCESS;

}

/* fine del programma */

Direttiva al preprocessor: include il file (del compilatore) stdio.h cheserve per l’utilizzo dellefunzioni di input/output

Page 14: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 14

Esempio: hello.c#include <stdio.h>#include <stdlib.h>

/* programma principale */

int main(){

printf ("Hello world!\n");return EXIT_SUCCESS;

}

/* fine del programma */

Commento: viene ignoratodal compilatore

Page 15: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 15

Esempio: hello.c#include <stdio.h>#include <stdlib.h>

/* programma principale */

int main(){

printf ("Hello world!\n");return EXIT_SUCCESS;

}

/* fine del programma */

Funzione main: tuttocomincia da qui

Corpo della funzione main

Page 16: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 16

Esempio: hello.c#include <stdio.h>#include <stdlib.h>

/* programma principale */

int main(){

printf ("Hello world!\n");return EXIT_SUCCESS;

}

/* fine del programma */Istruzione per stampare la scritta"Hello world!" e poi andare a capo

Istruzione per terminare la funzione main (e quindi ilprogramma) restituendo al sistema operativo il valorenumerico associato, in stdlib.h, a EXIT_SUCCESS

Page 17: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 17

Struttura di un programma• Ogni funzione è identificata da un nome• Il programma inizia sempre l’esecuzione a

partire da una funzione “speciale”: la funzione main

• Nei programmi C più semplici, tutte le operazioni da fare risiedono nella funzione main

• I programmi complessi prevedono che maininvochi altre funzioni, suddividendo le molte istruzioni in blocchi logici più semplici

Page 18: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 18

Direttive al preprocessor

• La prima linea del programma:#include <stdio.h>

è comune a molti programmi C• Indica al compilatore di includere

automaticamente le funzioni della libreria standard di input/output stdio.h, come ad esempio la funzione di stampa su video printf ()

Page 19: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 19

Commenti

• In ogni programma C è utile poter inserire dei commenti, a descrizione di quanto viene eseguito da una o più istruzioni

• La riga di commento:/* programma principale */

non contiene istruzioni C e quindi non viene processata dal compilatore

Page 20: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 20

Input e output

• printf () è una funzione di uso generale offerta della libreria standard di input/output

• Nell’esempio, essa stampa sul monitor (lo standard output) semplicemente la sequenza di caratteri: Hello world!

Page 21: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 21

Esempio: somma.c#include <stdio.h>#include <stdlib.h>

int main() /* somma due numeri interi */{

int num1, num2, somma;

printf ("inserire num1: ");scanf ("%d", &num1);

printf ("inserire num2: ");scanf ("%d", &num2);

somma = num1 + num2;printf ("num1 + num2 = %d\n", somma);

return EXIT_SUCCESS;}

Page 22: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 22

Esempio: somma.c#include <stdio.h>#include <stdlib.h>

int main() /* somma due numeri interi */{

int num1, num2, somma;

printf ("inserire num1: ");scanf ("%d", &num1);

printf ("inserire num2: ");scanf ("%d", &num2);

somma = num1 + num2;printf ("num1 + num2 = %d\n", somma);

return EXIT_SUCCESS;}

dichiarazione di variabili intere

Page 23: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 23

Esempio: somma.c#include <stdio.h>#include <stdlib.h>

int main() /* somma due numeri interi */{

int num1, num2, somma;

printf ("inserire num1: ");scanf ("%d", &num1);

printf ("inserire num2: ");scanf ("%d", &num2);

somma = num1 + num2;printf ("num1 + num2 = %d\n", somma);

return EXIT_SUCCESS;}

input di un intero (input formattato)

Page 24: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 24

Esempio: somma.c#include <stdio.h>#include <stdlib.h>

int main() /* somma due numeri interi */{

int num1, num2, somma;

printf ("inserire num1: ");scanf ("%d", &num1);

printf ("inserire num2: ");scanf ("%d", &num2);

somma = num1 + num2;printf ("num1 + num2 = %d\n", somma);

return EXIT_SUCCESS;}

somma e assegnazione

Page 25: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 25

Esempio: somma.c#include <stdio.h>#include <stdlib.h>

int main() /* somma due numeri interi */{

int num1, num2, somma;

printf ("inserire num1: ");scanf ("%d", &num1);

printf ("inserire num2: ");scanf ("%d", &num2);

somma = num1 + num2;printf ("num1 + num2 = %d\n", somma);

return EXIT_SUCCESS;}

stampa del risultato (output formattato)

Page 26: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 26

Variabili e dichiarazioni

• Per poter essere utilizzate da un’istruzione, tutte le variabili di un programma C devono essere dapprima dichiarate

• Una dichiarazione stabilisce il tipo e il nomedi una o più variabili, come ad esempio: int numero;

• Il tipo di dato determina la natura della variabile, ovvero il modo in cui verrà trattata nelle successive operazioni

Page 27: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 27

Variabili ed espressioni• L’istruzione

numero = numero * 20;

rappresenta di fatto la traduzione di due operazioni logiche distinte

• Dapprima viene valutata l’espressione a destra del segno =

• Il risultato di tale espressione è poi assegnatoalla stessa variabile numero, che viene dunque sovrascritta:

numero ← numero * 20;

Page 28: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 28

Input e output formattato

• scanf () e printf () consentono di leggere e stampare dati formattati

• La funzione scanf () legge un dato dalla tastiera (lo standard input) e ne scrive il valore in una variabile (o locazione in memoria)

• Esse operano in modo diverso a seconda del tipo dei dati da manipolare (numeri interi, numeri floating point, stringhe di caratteri, singoli byte ecc.)

• L’input/output formattato in C è molto potente!

Page 29: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 29

Funzioni e argomenti• Un metodo per comunicare dati alle funzioni

è quello di fornire ad esse una lista di valori, detti argomenti

• Le parentesi che seguono il nome della funzione racchiudono tale lista, come per:scanf ("%d", &numero);

• Esistono funzioni che non si aspettano argomenti: nell’esempio, main () ha la lista di argomenti vuota

Page 30: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 30

Esempio: potenza.c#include <stdio.h>#include <stdlib.h>/* elevamento a potenza con moltiplicazioni successive */int main(){

int base, esponente, potenza, contatore;printf ("inserire base: ");scanf ("%d", &base);printf ("inserire esponente: ");scanf ("%d", &esponente);potenza = 1;contatore = 0;while (contatore < esponente){

potenza = base * potenza;contatore = contatore + 1;

}printf ("potenza = %d\n", potenza);return EXIT_SUCCESS;

}

struttura di controllo: ciclo while

Page 31: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 31

Strutture di controllo• L’esempio precedente rappresenta una

possibile implementazione del calcolo dell’elevamento a potenza (esponente nonnegativo!)

• Il ciclo while è una struttura di controllo, il cui diagramma di flusso è:

Y

N

Page 32: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 32

Strutture di controllo• Il costrutto: while (contatore < esponente){

potenza = base * potenza;contatore = contatore + 1;

}è un semplice ciclo iterativo

• Dapprima viene valutata la condizionecontatore < esponente

• Se tale espressione risulta vera, allora il blocco di istruzioni racchiuse tra le parentesi graffe viene eseguito e, alla fine, la condizione viene valutata di nuovo (iterazione)

Page 33: FONDAMENTI DI INFORMATICA - web.diegm.uniud.itweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/materiale... · Le slide possono essere riprodotte ed utilizzate liberamente dagli

Fondamenti di Informatica - La programmazione in linguaggio C

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 33

Strutture di controllo

• Il ciclo while viene così ripetuto fino a che (while) la condizionecontatore < esponente è ancora vera

• Nell’esempio, le istruzioni interne al ciclo vengono eseguite un numero di volti pari al valore dell’esponente