Post on 02-May-2015
6 marzo 2002
Laboratorio di informatica 1(Programmazione)
Laboratorio di Informatica 1 (Programmazione)
Mercoledì 11:30 –13:15 , (14:30-15:15) 11:30 –13:00
Giovedì 9:30 –11:15 9:45 –11:15
Aula T8
Docenti
Dora GiammarresiRicevimento: orario da definire + su appuntamentoUfficio 2002 (piano terra, 2o dente)
e-mail: giammarr@mat.uniroma2.it
Miriam Di Ianni (esercizi e progetti)e-mail: diianni@mat.uniroma2.it
Contenuto del corso
• Programmazione strutturata
Approccio strutturato e disciplinato alla stesura di programmi
• Il linguaggio C
Testo consigliatoTesto consigliato
H.M.Deitel , P.J.DeitelC 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, programmare,programmare, programmare, programmare, programmare,programmare, programmare, programmare, programmare,programmare, programmare, programmare, programmae,programmare, programmare, programmare, programmare,programmare, programmare, programmare, programmare,programmare, programmare, programmare, programmare, programmare, programmare, programmare,……
Pagina WEB
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!
Segui puntatore dalla pagina del corso di laurea ….. oppure
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
Fasi di un programma C:
1. Edit
2. Preprocess
3. Compile
4. Link
5. Load
6. Execute
Programma creato con un editor e memorizzato
Il programma preprocessoreesegue il codice.
Loader carica il programmain memoria.
CPU esegue un’istruzione per volta, eventualmente memorizzando i nuovi dati ottenuti dall’esecuzione del programma
Compilatore crea il codiceoggetto e lo memorizza nel disco
Linker collega il codice oggetto con le librerie, crea a.out (nome.exe) e lo memorizza sul disco
Loader
Memoria
Compiler
Editor
Preprocessor
Linker
Memoria
.
.
.
.
.
.
.
.
.
.
.
.
Disk
Disk
Disk
Disk
Disk
CPU
Primo programma: Stampare una riga di testo
• Commenti
– Testo racchiuso tra /* e */ é ignorato dal computer
– Si usano per descrivere i programmi
1 /* Fig. 2.1: fig02_01.c
2 Il primo programma in C */
3 #include <stdio.h>45 int main()6 {
7 printf( "Welcome to C!\n" );
8 return 0;9 }
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2 Il primo programma in C */
3 #include <stdio.h>45 int main()6 {
7 printf( "Welcome to C!\n" );
8 return 0;9 }
• #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 Il primo programma in C */
3 #include <stdio.h>45 int main()6 {
7 printf( "Welcome to C!\n" );
8 return 0;9 }
•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 Il primo programma in C */
3 #include <stdio.h>45 int main()6 {
7 printf( "Welcome to C!\n" );
8 return 0;9 }
• 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 Il primo programma in C */
3 #include <stdio.h>45 int main()6 {
7 printf( "Welcome to C!\n" );
8 return 0;9 }
•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 Il primo programma in C */
3 #include <stdio.h>45 int main()6 {
7 printf( "Welcome to C!\n" );
8 return 0;9 }
• Parentesi }
–Indica che il main e' finito
Primo programma: Stampare una riga di testo
1 /* Fig. 2.1: fig02_01.c
2 Il primo programma in C */
3 #include <stdio.h>45 int main()6 {
7 printf( "Welcome to C!\n" );
8 return 0;9 }
Compilo ed eseguo.
Output:
Welcome to C!
EserciziEsercizi:
• Istallare il compilatore!
• Compilare (ed eseguire) i programmi visti a lezione