Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
programmazione
Informatica Generale – 14/15
Scienze della comunicazione
cristina gena
cgena@di.unito.it
http://www.di.unito.it/~cgena/
teaching.html
Concetti fondamentali di programmazione
2
Concetti fondamentali di programmazione
3
Concetti fondamentali di programmazione
4
Concetti fondamentali di programmazione
5
Concetti fondamentali di programmazione
7
Concetti fondamentali di programmazione
Linguaggio:
alfabeto: insieme di simboli con cui si possono costruire i termini
del linguaggio (lessico)
sintassi: definita da una grammatica che fornisce le regole di
composizione dei termini in frasi ben formate del linguaggio
semantica: definisce il significato delle frasi ben formate del
linguaggio
8
Sintassi
articoli (indicati con ART)
nomi (indicati con N)
aggettivi (indicati con A)
verbi (indicati con V)
9
Codice
10
Sintassi
il cane mangia una mela
il cane mangia il cane
11
Semantica
12
Concetti fondamentali di programmazione
Linguaggio di programmazione:
frasi ben formate = codice del programma
semantica = esecuzione del programma
13
Concetti fondamentali di programmazione
Compilare un programma:
tradurre il programma P nel linguaggio macchina della macchina M → Pc
eseguire Pc sulla macchina M
La traduzione viene eseguita da un compilatore.
> compila file_sorgente.src → file_eseguibile.exe
> esegui file_eseguibile.exe
Pro:
La compilazione è più efficiente, perché l’esecuzione del programma
compilato, cioè tradotto in linguaggio macchina (il cosiddetto
“eseguibile”) è molto veloce
Contro:
Per eseguire il programma su macchine diverse occorre ri-compilare i
sorgenti!
14
Concetti fondamentali di programmazione
Interpretare un programma:
richiedere l’esecuzione del programma P sulla macchina M
Pro:
L’interpretazione è più flessibile, perché posso eseguire il
programma su macchine diverse
Contro:
E’ meno efficiente (perché ogni volta, prima di eseguire, ritraduce)
15
Concetti fondamentali di programmazione
18
Concetti fondamentali di programmazione
19
Concetti fondamentali di programmazione
20
Concetti fondamentali di programmazione
Object-oriented design
21
Concetti fondamentali di programmazione
verifica PIN
Riceve PIN PIN
autorizz.
cliente
Riceve. versaSoldi. conto
EstrattoConto
22
Concetti fondamentali di programmazione
23
Concetti fondamentali di programmazione
Tipi di dati
• Necessità di astrarre dal concetto elementare
di bit/byte e definire dei tipi di informazione
più vicini a quelli che servono della
definizione di problemi reali
24
Concetti fondamentali di programmazione
25
Concetti fondamentali di programmazione
27
Concetti fondamentali di programmazione
28
Concetti fondamentali di programmazione
29
Concetti fondamentali di programmazione
Variabili, espressioni, assegnamento
• Assegnamento
– Modo per inserire un valore dentro una
variabile
int x
x=3
x=3+5
int y = x + 7
variabile = espressione
3278 “a”
3279 “b”
32
Concetti fondamentali di programmazione
Nome simbolico per la cella di memoria:
variabile
x “a”
x = “a”
y “b”
A x è associato
l’indirizzo 3278
33
Concetti fondamentali di programmazione
Espressioni, assegnamento
• Espressione
– Può essere costruita usando costanti e variabili
e usando gli operatori specificati per il tipo di
dati costanti e variabili
int x
x = 2+4
x=y+z
34
Concetti fondamentali di programmazione
35
Concetti fondamentali di programmazione
36
Concetti fondamentali di programmazione
Array: struttura dati (vettore) composta da dati omogenei,
aventi lo stesso tipo
23
9
5
45
Array di interi 78
0
99
3
52
9
37
Concetti fondamentali di programmazione
Array: struttura dati composta da dati omogenei, aventi lo stesso tipo
38
Concetti fondamentali di programmazione
Array
• Si possono definire vettori di qualunque tipo di dati
• Le dimensioni del vettore possono essere soggette a restrizioni in alcuni
linguaggi
– Devono essere prefissate in alcuni, non in altri
• Gli indici del vettore possono essere fissi (solo numeri interi) in alcuni
linguaggi, o possono essere un qualunque tipo elementare
39
Concetti fondamentali di programmazione
Record
Prodotto cartesiano di tipi differenti. Le sue istanze sono gli elementi del
prodotto cartesiano
Record conto
{contatore numero,
int denaro,
char[] nome}
Le istanze di questo record sono delle triple, come ad esempio (1, 2500,
“rossi”)
40
41
Concetti fondamentali di programmazione
Record
Posso definire delle variabili per ottenere delle istanze
Es. Conto c
c.numero = 1
c.denaro = 2500
c.nome = “rossi”
42
Ogni riga di una tabella di un
database è un record
43
<?xml version="1.0" encoding="iso-8859-1"?>
<rubrica>
<contatto>
<nome>Mario</nome>
<cognome>Rossi</cognome>
<telefono>011-555-5678</telefono>
<email>mario.rossi@libero.it</email>
</contatto>
In questo esempio in XML, ogni
</rubrica> contatto è un record!
44
Concetti fondamentali di programmazione
Puntatore
• Meccanismo per utilizzare gli indirizzi dei dati. Astrazione del concetto
di indirizzo di memoria: si può definire l’indirizzo per un qualunque tipo
di dati
45
46
47