Professional Documents
Culture Documents
, ., T
,}
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
3 oI 34 09/30/2010 11.15 AM
per formare una sngoa struzone. Le struzon sono esegute neordne n cu appaono:
I
1
, . , I
n
Esempio
I prmo esempo d programma Processng dsegna cnque rette obque tra oro paraee.
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
4 oI 34 09/30/2010 11.15 AM
'struzone s1ze{200, 200) crea una fnestra d 200 per 200 pxe entro cu avvene
dsegno,
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
5 oI 34 09/30/2010 11.15 AM
'struzone backgJouhd{0) scege nero come coore deo sfondo,
'struzone s1Joke{255) scege banco come coore per dsegno dee nee,
'struzone s1JokeWe1gh1{5) mposta o spessore dee nee a 5 pxe,
'struzone smoo1h{)arrotonda 'estremt dee nee.
Cascuna dee 5 nee d codce che seguono dsegna una nea, ad es. 'struzone 1he{10,
80, 30, 40)dsegna una nea con estrem ne punt d coordnate (10, 80) e (30, 40).
I sstema d coordnate d Processng pone 'orgne deg ass ne'angoo superore snstro
dea fnestra d dsegno, per cu spostandos verso destra aumenta vaore dea prma
coordnata d un punto, mentre spostandos verso basso aumenta vaore dea seconda
coordnata.
S not che 'mmagne appare n banco e nero, poch stato sceto d dsegnare con
mmagn a ve d grgo, scet tra 256 tonat dverse: 0 per nero e 255 per banco.
Ogn struzone de programma seguta da un commento, un testo nserto come
documentazone de programma, che non vene consderato come codce, ma vene scartato
durante 'esecuzone de programma. I comment usat n questo programma sono monoriga,
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
6 oI 34 09/30/2010 11.15 AM
ovvero nzano dopo smbo "//" e termnano n fondo aa rga.
Uso delle variabili
Se s osserva attentamente programma precedente, e cnque rghe paraee sono
dsegnate ncrementando d 10 unt a prma componente de punt estrem d ogn retta.
I prossmo esempo dffersce da precedente per 'ntroduzone d una varabe ntera d nome
x a cu s assegna nzamente vaore 0 con a dichiarazione
1h1 x = 0
e dopo dsegno d ogn nea ncrementata d 10 unt con comando di assegnamento
x=x+10 .
Una dichiarazione ha il compito di creare una variabile stabilendo il nome e l'insieme dei
valori che la variabile pu assumere (ovvero il tipo della variabile, in questo caso di tipo
int che denota i numeri interi), nonche di riservare nella memoria del calcolatore lo
spazio necessario per memorizzare il valore corrente della variabile.
In Processng come n |ava e tant atr nguagg, una varabe non pu essere usata se non
prma dcharata. Invece vedremo che n |avaScrpt a dcharazone d una varabe non
necessara.
L'effetto fnae de programma sempre o stesso, ma, a dfferenza de programma
precedente, codce mette bene n evdenza a reazone tra e coordnate dee 5 nee.
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
7 oI 34 09/30/2010 11.15 AM
lterazione
I costrutt d terazone eseguono un certo numero d vote un'struzone, detta corpo. Un
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
8 oI 34 09/30/2010 11.15 AM
costrutto d terazone anche detto istruzione di ciclo, o sempcemente ciclo.
No esamneremo due tp d costrutt d terazone:
comando while
wh1e {<espJess1ohe og1ca> ) T
L'esecuzone d un comando whe causa 'esecuzone de'struzone T ( corpo de whe) se
espressone ogca (a guardia de whe) vera, po s vauta d nuovo espressone ogca:
se vera s esegue d nuovo struzone, e cos va nch espressone ogca dventa fasa.
Esempio di uso del comando while
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
9 oI 34 09/30/2010 11.15 AM
Osservando codce deg esemp precedent, e cnque rghe paraee sono dsegnate
ncrementando d 10 unt a prma componente de punt estrem d ogn retta.
S ha qund una rpetzone (5 vote) de'esecuzone de comando d traccatura dee nee.
La traccatura dee nee pu avvenre senza scrvere 5 vote o stesso comando, usando
comando whe.
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
10 oI 34 09/30/2010 11.15 AM
I corpo de cco whe dsegna una nea ed ncrementa vaore dea varabe ntera x d 10
unt.
Pertanto, a varabe x assume vaor 0, 10, 20, 30, 40, n corrspondenza de qua una nea
vene dsegnata. Ouando x assume vaore 50, a guarda de cco whe dventa fasa e
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
11 oI 34 09/30/2010 11.15 AM
'esecuzone de cco termna.
La fgura seguente mostra come cco whe possa essere usato per cacoare numer
trangoar, ovvero numer nter postv ottenut come somma de numer nter compres tra 1
e un ntero postvo n.
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
12 oI 34 09/30/2010 11.15 AM
I programma funzona n modo anaogo a dagramma a bocch dscusso n una ezone
precedente (teora deg agortm).
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
13 oI 34 09/30/2010 11.15 AM
comando for
1oJ {T
, E , T
) T
I
1
struzone d nzazzazone;
E a guarda de for ;
I
2
struzone d ncremento o aggornamento;
I
3
corpo de for ;
'esecuzone d un comando for avvene come segue: nnanz tutto eseguta 'struzone I
1
d
nzazzazone (che d soto assegna un vaore ad una varabe, detta varabe d controo de
cco for); se a guarda vera s esegue corpo I
3
e aggornamento I
2
, po s vauta d nuovo
a guarda: se vera s esegue d nuovo corpo e aggornamento, nch a guarda dventa
fasa.
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
14 oI 34 09/30/2010 11.15 AM
Esempio di uso del comando for
Ouesto esempo una rscrttura de programma precedente usando cco for. S not che
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
15 oI 34 09/30/2010 11.15 AM
'struzone che assegna 0 aa varabe x 'struzone d nzazzazone de cco for, mentre
'struzone che ncrementa d 10 unt vaore d x 'struzone d aggornamento de cco for.
I corpo de for costtuto daa soa struzone d traccatura d una nea e vene rpetuto 5
vote.
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
16 oI 34 09/30/2010 11.15 AM
Attenzione: le istruzioni di ciclo non sono solo dei semplici sostituti del comando di
sequenzializzazione che permettono di abbreviare i programmi, ma permettono di fare
molto di pi. Se non usiamo i cicli e vogliamo disegnare J0 righe anziche 5, dobbiamo
modificare il programma, aggiungendo 5 nuovi comandi di disegno.
I prossmo esempo mostra come con e struzon d terazone sa possbe dsegnare un
numero d nee che dpende da numero d second de tempo n cu s anca 'esecuzone de
programma: non pertanto stabre a pror quante nee s devono dsegnare e un tae
programma non s pu reazzare con a soa sequenzazzazone d comand.
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
17 oI 34 09/30/2010 11.15 AM
Aa varabe ntera s assegnato numero de second ett da'oroogo de cacoatore.
Ne'mmagne precedente testo che appare nea fnestra de termnae ndca che vaore
assegnato ad s 4. I programma dsegner pertanto quattro rghe, come mostrato nea
fgura seguente:
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
18 oI 34 09/30/2010 11.15 AM
I corpo
1ne{5*x+16, 46, 5*x+16, 86)
de comando for successvo che esegue a traccatura d una nea vertcae eseguto un
numero d vote par a vaore dea varabe s: nfatt, a varabe x d conteggo de for
nzazzata a 0 e fntanto che suo vaore mnore d queo d s, s tracca una nea e s
ncrementa vaore d x.
ln generale, se s una variabile intera con un valore definito, l'esecuzione del ciclo
1or{n1 x = 6 x<s x=x+1){
/* corpo de1 1or */
)
provoca l'esecuzione ripetuta s volte del corpo del for.
Con e struzon d cco, s pu ncappare ne cosdetto "fencepost error" (errore deo
steccato e de pa), che consste ne'esegure corpo de cco una vota n p o n meno de
numero corretto d terazon. Per essere scur che programma funzon correttamente,
provate ad assegnare de vaor pcco aa varabe s, ad es. 0 o 1 e vedete cosa succede: se
IondamentI dI nIormatIca - 04 - IementI dI IrogrammazIone LIe.///home/steIano/ocuments/pubIIc_htmI_Iatest/I_04_IrogrammazIone.htmI
19 oI 34 09/30/2010 11.15 AM
e prove hanno successo, aora programma dovrebbe essere corretto.
Per concudere 'anas d quest'esempo, s not commento multiriga n fondo a codce. S
tratta d un tpo d commento che nza con smbo "/*" , termna con smbo "*/" e pu
occupare un numero arbtraro d rghe d testo.
Selezione
I costrutt d seezone scegono d esegure un'struzone puttosto che un'atra n base a
vaore d un'espressone ogca ( espressone che assume soo due vaor, vero o falso, e
pertanto una tae espressone anche detta espressione booleana, da George Booe,
matematco e ogco de dcannovesmo secoo).
No esamneremo due tp d costrutt d seezone:
comando if
11 {<espJess1ohe og1ca> ) T