Algoritmi, Strutture Dati e Programmi
UD 2.b: Programmazione in Pascal
Prof. Alberto Postiglione
Dipartimento di Scienze della Comunicazione
AA 2007-2008
Università degli Studi di Salerno
Modificata il
22/11/2007
„
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Il Linguaggio di Programmazione Pascal
e
Esistono molti linguaggi di programmazione. Per motivi zion e
ca
didattici utilizzeremo una versione “ridotta” di unmuni
o
ailC Pascal.
linguaggio di programmazione tra i più semplici,
l
l
e
de
ze
n
ie
Sc
i
d
Questo linguaggio presenta tutte letocaratteristiche
dei
n
e
linguaggi più “complessi”, anchertse
im non è molto utilizzato
a
p
dai programmatori professionisti
(se non nella versione,
Di
chiamata Delphi).
UD 2.b
# 2
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
1
Modificata il
22/11/2007
„
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Il Linguaggio di Programmazione Pascal
e
Un buon compilatore Pascal (Dev-Pascal 1.9.2 + Free zion e
a
nic
Pascal compiler) lo si può scaricare, gratuitamente,
u
om
aC
all’indirizzo: http://www.bloodshed.net/devpascal.html.
l
l
e
e
ed
z
ien
Sc
i
d
E’ sicuramente utile un testo introduttivo
sulla
to
n
e
programmazione in Pascal. Un manuale
di introduzione al
im
rt
pa
i
linguaggio lo si può trovare Din rete agli indirizzi
¾ http://it.wikibooks.org/wiki/Programmare_in_Pascal (Wikipedia).
¾ http://www.marcocantu.it/epascal/default.htm (Pascal nella
versione Delphi )
¾ http://www.matematiche.org/ (seguendo il link “Dispense”)
# 3
UD 2.b
Modificata il
22/11/2007
„
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Il Linguaggio di Programmazione Pascal
e
Un programma nel linguaggio di programmazione Pascalzièon e
ica
suddiviso in due blocchi
un
m
o
aC
¾ (DATI) Blocco delle dichiarazioni degli oggetti di llavoro
el
d
(principalmente variabili, costanti e tipi di dato).
ze
ien
c
¾ (ISTRUZIONI) Blocco delle istruzioni racchiuse
tra le parole
S
di
o
chiave begin …. End
t
en
im
t
r
pa
Di
Ogni programma comincia con la parola “program”
seguita dal nome che noi attribuiamo al programma
Ogni istruzione termina con un punto e virgola ‘;’
UD 2.b
# 4
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
2
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Tipi di Dato “Predefiniti”
Tipi di dato elementari:
¾ Integer (numero intero)
a
el l
d
e
¾ Char (singolo carattere)
nz
e
i
Sc
¾ Boolean (può valere VERO o FALSO)
di
o
t
¾…
en
m
i
rt
Tipi di dato “composti”
pa
Di
¾ String (sequenza di caratteri)
¾ Real (numero reale)
„
ne
zio
a
nic
mu
o
C
¾ Array (Vettore o matrice)
¾ Record (gruppo di dati eterogenei)
¾ Text (File contenente testi)
¾…
# 5
UD 2.b
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Modificata il
22/11/2007
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Esempi di dichiarazioni
Const
Mio_Nome = “Luigi”;
Mia_Età
= 35;
Var
Numero_Brano : integer;
UD 2.b
Titolo_Brano
: string;
Costo_CD
: real;
# 6
e
i on
z
ica
un
m
o
aC
l
l
de
ze
n
ie
Sc
i
od
nt
e
im
rt
a
p
Di
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
3
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzioni principali
Principali istruzioni
¾ Lettura/scrittura
a
el l
d
¾ Decisione (corrisponde alla decisione binaria) nze
ie
Sc
¾ Ciclo
i
d
to
n
e
im
rt
a
ip
Per facilitare la lettura del Dcodice,
è opportuno che le
¾ Assegnazione (corrisponde alla Sequenza)
„
ne
zio
a
nic
mu
o
C
istruzioni vengano scritte indentate, in base alla
profondità dell’istruzione
UD 2.b
# 7
Modificata il
22/11/2007
„
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzioni di Lettura e scrittura
e
Servono per leggere e scrivere il valore di una variabilezion e
ca
dall’input o sull’output (ad es. lettura da tastiera emuni
o
aC
scrittura su video)
l
l
e
de
ze
n
ie
Sc
i
Write (Variabile): corrisponde ad inviare
il valore
od
nt
e
corrente della Variabile alla periferica
di output
im
rt
a
p
i
(tipicamente il monitor); D
Read (Variabile): corrisponde a inserire nella Variabile il
valore che viene immesso dalla periferica di input
(tipicamente la tastiera)
UD 2.b
# 8
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
4
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzioni di I/O: Esempio
e
ne
Programma 1: Legge un carattere da input e lo manda
zio
a
nic
in output
mu
program Leggi;
var car: char
begin
read(car);
write(car);
end.
UD 2.b
# 9
Modificata il
22/11/2007
„
„
a
el l
d
e
nz
e
i
Sc
di
o
t
en
m
i
rt
pa
Di
Co
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione di Assegnazione (Sequenza)
e
e
Assegnazione: Istruzione che assegna il valore attuale
i on
z
ica
di un’espressione ad una variabile
un
m
o
Sintassi:
UD 2.b
# 10
aC
el l
d
ze
ien
c
S
di
Nome della Variabile := Espressione;
o
t
en
im
t
r
pa
Di
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
5
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione di Assegnazione: Esempio 2
e
ne
Programma 2: Legge due numeri e manda in output la
zio
a
nic
loro somma
mu
program Somma;
var totale: integer;
begin
read(x);
read(y);
totale :=x+y;
write (totale);
end.
# 11
UD 2.b
Modificata il
22/11/2007
„
a
el l
d
e
nz
e
i
Sc
di
o
t
en
m
i
rt
pa
Di
m
Co
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione condizionale (Decisione Binaria)
e
e
E’ un’istruzione che valuta una condizione ed esegue, zin
i on
ica
alternativa, un insieme di istruzioni o un altro in
unbase
m
o
aC
all’esito del confronto (VERO/FALSO).
l
l
e
de
ze
n
ie
Sc end
then begin Istruzioni
i
1
d
to
n
else begin eIstruzioni2 end
im
rtcomposte da una sola
a
¾ Se Istruzioni1 o Istruzioni2 sono
p
Di
istruzione, la coppia di begin … end può essere omessa
if Condizione
„
Se la condizione è soddisfatta si esegue il then,
altrimenti si esegue l’else
UD 2.b
# 12
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
6
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione condizionale: Esempio
e
ne
Programma 3: Legge due numeri e manda in output
zio il
a
ic
massimo
un
om
program Massimo;
var x,y: integer;
begin
read(x);
read(y);
if x > y
then write (x)
else write (y);
end
# 13
UD 2.b
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Modificata il
22/11/2007
„
„
C
lla
e
d
ze
n
e
ci posizioni non
NOTA: in queste
iS
d
o
va inserito
nt il punto e virgola,
e
im l’istruzione non è
in quanto
rt
pa
i
ancora
terminata
D
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione ciclica
e
e
E’ un’istruzione che valuta una condizione ed esegue un
i on
z
ica
insieme di istruzioni se il confronto dà esito VERO
un e
m
o
a CFALSO
poi torna ad eseguire il test. In caso di esito
l
l
de
ze
si “esce dal ciclo”, cioè viene eseguita l’istruzione
n
cie
immediatamente successiva l’end del dciclo
iS
to
en
m
i
rt
pa
i
D
Sintassi:
while Condizione do
begin
Lista Istruzioni
end
UD 2.b
# 14
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
7
Modificata il
22/11/2007
„
„
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione ciclica: Esempio
e
i on
Programma 4: Calcola la somma di 10 numeri
az
nic
mu
o
C
lla
e
Algoritmo informale:
d
ze
n
e
1) inizializza Totale con 0
ci
iS
d
o
2) Esegui per 10 volte le seguenti
due istruzioni
nt
e
im
2.1) leggi (x)
rt
pa
i
2.2) effettua laDsomma di x con Totale
3) stampa Totale
„
Ho bisogno di un meccanismo che mi permetta di eseguire
per 10 volte le istruzioni 2.1 e 2.2 (qualcosa che conti il
numero di volte che 2.1 e 2.2 vengono eseguite!)
UD 2.b
# 15
Modificata il
22/11/2007
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione ciclica: Esempio
Program Somma2;
var x, K, totale: integer;
begin
totale := 0;
K := 1;
while K <= 10 do
begin
end
UD 2.b
read (x);
totale := totale + x;
K:=K+1;
end;
write (totale);
# 16
e
i on
z
ica
un
m
o
aC
l
l
de
ze
n
ie
Sc
i
od
nt
e
im
rt
a
p
Di
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
8
Modificata il
22/11/2007
Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal
Istruzione ciclica: Esempio (alternativo)
Program Somma2bis;
var x, K, totale: integer;
begin
totale := 0;
for K :=1 to 10 do
begin
a
el l
d
e
nz
e
i
Sc
di
o
t
en
m
i
rt
pa
Di
ne
zio
a
nic
mu
o
C
read (x);
totale := totale + x;
end;
write (totale);
end
UD 2.b
# 17
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
9