6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

22
6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

Transcript of 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

Page 1: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

6 marzo 2002

Laboratorio di informatica 1(Programmazione)

Page 2: 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

Page 3: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

Docenti

Dora GiammarresiRicevimento: orario da definire + su appuntamentoUfficio 2002 (piano terra, 2o dente)

e-mail: [email protected]

Miriam Di Ianni (esercizi e progetti)e-mail: [email protected]

Page 4: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

Contenuto del corso

• Programmazione strutturata

Approccio strutturato e disciplinato alla stesura di programmi

• Il linguaggio C

Page 5: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

Testo consigliatoTesto consigliato

H.M.Deitel , P.J.DeitelC corso completo di programmazione Apogeo

Page 6: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 7: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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,……

Page 8: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 9: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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”….

Page 10: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 11: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 12: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 13: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 14: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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 }

Page 15: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 16: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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 { }.

Page 17: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 18: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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.

Page 19: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 20: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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

Page 21: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

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!

Page 22: 6 marzo 2002 Laboratorio di informatica 1 (Programmazione)

EserciziEsercizi:

• Istallare il compilatore!

• Compilare (ed eseguire) i programmi visti a lezione