6 marzo 2002
Laboratorio di informatica 1
(Programmazione)
Laboratorio di Informatica 1
(Programmazione)
Mercoledì 11:30 –13:15
11:30 –13:00
Giovedì
Aula T8
9:30 –11:15
9:45 –11:15
, (14:30-15:15)
Docenti
Dora Giammarresi
Ricevimento: orario da definire + su appuntamento
Ufficio 2002 (piano terra, 2o dente)
e-mail: [email protected]
Miriam Di Ianni (esercizi e progetti)
e-mail: [email protected]
Contenuto del corso
• Programmazione strutturata
Approccio strutturato e disciplinato alla stesura di programmi
• Il linguaggio C
Testo consigliato
H.M.Deitel , P.J.Deitel
C corso completo di programmazione
Apogeo
Esame
• Due prove in itinere (meta’ e fine corso)
– prima: programma svolto fino a quella data
– seconda: tutto il programma
• Due appelli a fine corso
– tutto il programma
+ (in ciascuno dei modi scelti)
• Progetto
modalita’ ancora da definire
Per passare l’esame…
(Studiare) e….
… programmare, programmare, programmare, progra
programmare, programmare, programmare, programm
programmare, programmare, programmare, programm
programmare, programmare, programmare, programm
programmare, programmare, programmare, programm
programmare, programmare, programmare, programm
programmare, programmare, programmare, programm
programmare, programmare, programmare,……
Pagina WEB
Segui puntatore dalla pagina del corso di laurea
….. oppure
www.mat.uniroma2.it\~giammarr\Teaching\Programmazione\
index.html
•
•
•
•
•
•
Programma del corso, testo consigliato
Lezioni svolte, esercizi
Codice dei programmi (“disco” con tutti i programmi del libro)
Informazioni esami
Compilatori
Avvisi vari
Consultarla spesso!
Compilatore Dev-C++
Requisiti di sistema per Dev-C++
•Sistema operativo Microsoft Windows 95, 98, ME, NT 4, o 2000
•RAM: 8 Mb (consigliati 32 Mb)
•CPU: Intel Pentium 100 MHz o compatibile (consigliati 233 MHz)
•Spazio su disco: 30 Mb liberi (consigliati 45 Mb)
Scaricare Dev-C++ da Internet
ftp://ftp.sunet.se/pub/simtelnet/win95/prog/devcpp_4.zip
Istruzioni dettagliate sulla pagina WEB del corso !
Consiglio: seguire le “scorciatoie”….
Osservazioni generali su C
• Chiarezza dei programmi
– Programmi “intricati” sono difficili da leggere, capire, correggere,
collaudare, modificare. (nessun motivo di orgoglio….)
• C e’ un linguaggio “portabile”
–
–
–
–
Programmi possono essere eseguiti su computer diversi
Tuttavia la portabilita’ e’ sempre sfuggente….
Vari dettagli non verranno trattati….
Per dettagli tecnici
• Leggere il manuale del compilatore usato
• Leggere il manuale dell’ ANSI C
• Leggere il libro di Kernigan e Ritchie
Breve storia del C
• C
– Sviluppato da Ritchie a partire da due precendenti linguaggi,
BCPL e B
– Usato per sviluppare UNIX
– Adesso, molti sistemi operativi sono scritti in C or C++
– Hardware indipedente (portabile)
– Alla fine degli anni ‘70 si e’ trasformato nel " C tradizionale “
[Kerninghan, Rich ,Il linguaggio di programmazione C , 1978-(88)]
• Standard C
– Esistevano diverse (leggere) variazioni del C, spesso non
compatibili
– Fu incaricato un comitato che creasse una definizione del C che
fosse “non ambigua, indipendente dalla macchina“
– Standard creato nel 1989, aggiornato nel 1999
Le Librerie del C
• Programmi C sono composti da pezzi/moduli chiamati
funzioni
– Si possono creare delle proprie funzioni
• Vantaggi: si sa esattamente come funzionano
• Svantaggi: perdita di tempo
– Spesso si usano le funzioni delle librerie C
• … come “mattoni”
– Evitare di ri-inventare la ruota!
• Se la funzione esiste, in genere e’ meglio usare quella piuttosto
che riscriversela…
• Le funzioni di libreria sono scritte bene e sono portabili
Ambiente Tipico C
Editor
Programma creato con un
editor e memorizzato
Disk
Fasi di un programma C:
Preprocessor
Il programma preprocessore
esegue il codice.
Disk
1. Edit
Compiler
Disk
Linker
Disk
2. Preprocess
3. Compile
Compilatore crea il codice
oggetto e lo memorizza nel
disco
Memoria
4. Link
Loader
5. Load
Disk
Linker collega il codice
oggetto con le librerie, crea
a.out (nome.exe) e lo
memorizza sul disco
Loader carica il programma
in memoria.
6. Execute
..
..
..
Memoria
CPU
..
..
..
CPU esegue un’istruzione per
volta, eventualmente
memorizzando i nuovi dati
ottenuti dall’esecuzione del
programma
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2
3
4
5
6
7
8
9
Il primo programma in C */
#include <stdio.h>
int main()
{
printf( "Welcome to C!\n" );
return 0;
}
• Commenti
– Testo racchiuso tra /* e */ é ignorato dal computer
– Si usano per descrivere i programmi
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2
3
4
5
6
7
8
9
Il primo programma in C */
#include <stdio.h>
int main()
{
printf( "Welcome to C!\n" );
return 0;
}
• #include <stdio.h>
– Direttiva del preprocessore – dice di caricare il contenuto
di un certo file
– <stdio.h> consente le operazioni standard di
input/output
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2
3
4
5
6
7
8
9
Il primo programma in C */
#include <stdio.h>
int main()
{
printf( "Welcome to C!\n" );
return 0;
}
•int main()
–Un programma C++ contiene una o piu’ funzioni, una delle quali
deve essere main
–Le parentesi si usano per indicare una funzione
–int significa che main “restituisce" un valore intero
–Parentesi { } indicano un blocco
•Il corpo di tutte le funzioni deve stare tra parentesi { }.
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2
3
4
5
6
7
8
9
Il primo programma in C */
#include <stdio.h>
int main()
{
printf( "Welcome to C!\n" );
return 0;
}
• printf( "Welcome to C!\n" );
– E’ una istruzione: indica una azione
• In particolare: stampa la stringa di caratteri tra “ ”
– Tutte le istruzioni terminano con ;
– \ carattere di escape
• In particolare \n carattere newline
Linker
– Quando una funzione viene chiamata, il Linker la cerca
nella libreria
– La inserisce nel programma oggetto
– Se il nome della funzione e' scritto male, il Linker
segnalera' errore perche' non riuscira' a trovarla nella
libreria.
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2
3
4
5
6
7
8
9
Il primo programma in C */
#include <stdio.h>
int main()
{
printf( "Welcome to C!\n" );
return 0;
}
•return 0;
–modo di terminare una funzione
–in questo caso: il programma finisce normalmente
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2
3
4
5
6
7
8
9
Il primo programma in C */
#include <stdio.h>
int main()
{
printf( "Welcome to C!\n" );
return 0;
}
• Parentesi }
–Indica che il main e' finito
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2
3
4
5
6
7
8
9
Il primo programma in C */
#include <stdio.h>
int main()
{
printf( "Welcome to C!\n" );
return 0;
}
Compilo ed eseguo.
Output:
Welcome to C!
Esercizi:
• Istallare il compilatore!
• Compilare (ed eseguire) i programmi visti a lezione
Scarica

versione power point