220 likes | 334 Views
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 Giammarresi Ricevimento: orario da definire + su appuntamento
E N D
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 Giammarresi Ricevimento: orarioda definire + su appuntamento Ufficio 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 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 + (inciascuno 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 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 programmazioneC , 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
Compiler Memoria Loader Memoria CPU Preprocessor Linker Editor Disk Disk Disk Disk Disk . . . . . . . . . . . . Ambiente Tipico C Programma creato con un editor e memorizzato • Fasi di un programma C: • Edit • Preprocess • Compile • Link • Load • Execute Il programma preprocessore esegue il codice. Compilatore crea il codice oggetto e lo memorizza nel disco Linker collega il codice oggetto con le librerie, crea a.out(nome.exe) e lo memorizza sul disco Loader carica il programma in memoria. CPU esegue un’istruzione per volta, eventualmente memorizzando i nuovi dati ottenuti dall’esecuzione del programma
1 /* Fig. 2.1: fig02_01.c 2 Il primo programma in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 return 0; 9 } 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> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 return 0; 9 } Primo programma: Stampare una riga di testo • #include <stdio.h> • Direttiva del preprocessore – dice di caricare il contenuto di un certo file • <stdio.h> consente le operazioni standard di input/output
1 /* Fig. 2.1: fig02_01.c 2 Il primo programma in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 return 0; 9 } Primo programma: Stampare una riga di testo • 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 { }.
1 /* Fig. 2.1: fig02_01.c 2 Il primo programma in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 return 0; 9 } Primo programma: Stampare una riga di testo • 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.
1 /* Fig. 2.1: fig02_01.c 2 Il primo programma in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 return 0; 9 } Primo programma: Stampare una riga di testo • return 0; • modo di terminare una funzione • in questo caso: il programma finisce normalmente
1 /* Fig. 2.1: fig02_01.c 2 Il primo programma in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 return 0; 9 } Primo programma: Stampare una riga di testo • Parentesi } • Indica che il main e' finito
1 /* Fig. 2.1: fig02_01.c 2 Il primo programma in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!\n" ); 8 return 0; 9 } Primo programma: Stampare una riga di testo Compilo ed eseguo. Output: Welcome to C!
Esercizi: • Istallare il compilatore! • Compilare (ed eseguire) i programmi visti a lezione