Dipartimento di Ingegneria dell’Informazione
Costruzione di una applicazione
Università degli Studi di Parma
Fondamenti di Informatica
Laurea in
Ingegneria Civile e Ingegneria per l’ambiente e il territorio
Ambienti di programmazione
Stefano Cagnoni e Monica Mordonini
Si deve compilare il file (o i file) che contiene
(contengono) il testo del programma (file sorgente,
estensione .c)
Il risultato sono uno o più file oggetto (estensione .o
(Unix) o .obj (Windows))
si devono poi collegare (linking) i file oggetto l‟uno
con l‟altro e con le librerie di sistema al fine di
creare un unico file eseguibile (estensione .exe
(Windows); nome a piacere o a.out se non si
specifica il nome (Unix))
FI - Algoritmi e Programmazione
Perché?
2
Librerie di sistema
L‟elaboratore capisce solo il linguaggio macchina
della CPU utilizzata
il nostro programma, definito in un linguaggio di
programmazione simile al linguaggio naturale, opera
su una macchina astratta, „rivestita‟ del sistema
operativo che controlla le periferiche (stampante,
memoria di massa, ecc.)
alcune istruzioni del linguaggio di programmazione
sono dei brevi programmi forniti insieme al
compilatore, che può inglobarli nel programma
eseguibile nella fase di link
FI - Algoritmi e Programmazione
3
Insieme di componenti software che consentono di
interfacciarsi col sistema operativo, usare le risorse
gestite da quest‟ultimo e realizzare alcune “istruzioni
complesse” del linguaggio
In pratica, insieme di funzioni „preconfezionate‟,
utilizzabili all‟interno di un file sorgente
FI - Algoritmi e Programmazione
4
1
Eseguire un programma
Ambienti integrati di programmazione
Una volta scritto, compilato (con il compilatore) e
collegato (con il linker) lo si può eseguire
sull‟elaboratore
E se non funziona?
Debugger: strumento in grado di eseguire passo
passo il programma, mostrando i valori delle variabili
e la loro evoluzione e tenendo traccia delle funzioni
via via chiamate
FI - Algoritmi e Programmazione
Noi utilizzeremo il DevC++
presente nei laboratori di informatica base
5
Ambiente DevC++
FI - Algoritmi e Programmazione
Il DevC++ è un ambiente integrato per la messa
a punto di programmi in C e in C++.
In questo ambiente è possibile creare,
correggere, compilare, mandare in esecuzione e
memorizzare su disco programmi C/C++.
ambiente turbo C
6
Realizzazione di un programma
Automatizzano la procedura di compilazione e
linking dei file
Possono lanciare il programma sulla macchina e
visualizzarne l‟output a video
Incorporano le funzioni di debug
7
Apertura della finestra di editor
Scrittura del programma e suo salvataggio
Compilazione del programma (success, warnings,
errors)
Esecuzione del programma (run)
L‟input e l‟output dei dati avvengono in una
apposita finestra
Creazione di una versione eseguibile del programma
esegui: viene creato un .exe nella cartella corrente
ambiente turbo C
8
2
Istruzioni di I/O: printf()
Istruzioni di I/O: printf()
printf(stringa di formato
[,lista di espressioni])
printf (“Questa è una frase di prova\n”);
per visualizzare dati sullo standard output (monitor)
lista di espressioni espressione {,espressione}
sono le espressioni il cui valore deve essere visualizzato
stringa di formato: contiene i caratteri da visualizzare ed i
simboli di formato che rappresentano i valori delle espressioni
da visualizzare, specificate nella lista di espressioni:
%d
per la visualizzazione di un numero intero
%f
per la visualizzazione di un numero reale
%c
per la visualizzazione di un carattere
%s
per la visualizzazione di una stringa
ambiente turbo C
9
Istruzioni di I/O: scanf()
consente la lettura di dati dallo standard input e la loro
assegnazione alle variabili di cui si specificano gli
indirizzi
lista indirizzi di variabili indirizzo {,indirizzo}
indirizzo &variabile
stringa di formato come per printf
Esempio
scanf (“%d %f %c”, &n, &x, &c);
ambiente turbo C
%d
e
%d
risulta:
printf
(“Il
codice
ASCII
%d\nviene
visualizzato come %c\n”,61,61);
Quando viene eseguita produce il seguente output:
Il codice ASCII 61
viene visualizzato come A
ambiente turbo C
10
Istruzioni di I/O: printf() e scanf()
scanf (stringa di formato ,
lista indirizzi di variabili)
printf (“La somma di
%d\n”, m, n, m+n);
11
printf (“Inserisci un intero, un float e un
carattere: \n”);
scanf (“%d %f %c”, &n, &x, &c);
printf (“Adesso n vale: %d \n”, n);
printf (“
x vale: %f \n”, x);
printf (“ c è il carattere %c”, c);
printf (“e ha %d come codice ASCII \n”, c);
Inserisci un intero, un float e un carattere:
12 3.14 A
(dati che si suppone vengano inseriti)
Adesso n vale 12
x vale 3.14
c è il carattere A e ha 61 come codice ASCII
ambiente turbo C
12
3