Algoritmo Ordinamento di 3 Numeri
Sviluppiamo il problema con la
tecnica Top-down
Ordina
3 numeri interi:
0011 0010 1010 1101 0001 0100 1011a b c
1
2
4
Se a > b
Se a > c
Se b > c
scambia a con b
scambia a con c
scambia b con c
Trovare una subroutine generale per risolvere il problema scambia
RAM
a
5
b
3
c
1
comodo
Ordina
3 numeri interi:
0011 0010 1010 1101 0001 0100 1011a b c
1
2
4
Se a > b
Se a > c
Se b > c
scambia a con b
scambia a con c
scambia b con c
Trovare una subroutine generale per risolvere il problema scambia
Private Sub scambia (X,Y AS Integer)
Dim Comodo AS Integer
if X > Y then
Comodo = X
X=Y
Y = Comodo
End if
End Sub
0011 0010 1010 1101 0001 0100 1011
I parametri sono oggetti che la
routine chiamante trasmette alla
routine chiamata e su cui essa
deve operare. In questo modo le
routine generali sono viste come
“scatole chiuse” di cui si
conosce solo la funzione svolta
con cui si può comunicare solo
attraverso i parametri.
1
2
4
Scambia è una routine generale, non è legata a nessun controllo
presente nel form, ma viene attivata solo se richiamata
all’interno del codice.
X e Y sono detti parametri formali della subroutine rendono il
sottoprogramma(cioè la subroutine) indipendente dalla routine
chiamante; sono variabili di input/output del sottoprogramma
Private Sub scambia (X,Y AS Integer)
Private Sub cmdscambia_Click()
Dim Comodo AS Integer
a = VAL(txtPrimoValore.text)
if X > Y then
b = VAL(txtSecondoValore.Text)
Comodo = X
c = VAL(txtTerzoValore.Text)
X=Y
scambia a,b
Y = Comodo
scambia b,c
End if
End Sub
scambia a,c
0011 0010 1010 1101 0001 0100 1011
Questa istruzione scambia scritta
nella routine d’evento richiama la
generale passando ad essa i valori
contenuti nelle variabili a b
1
lblvariabile1.Caption = a
2
lblvariabile1.Caption = b
4
lblvariabile1.Caption = c
End Sub
I valori di a e b sono detti parametri attuali . Questi valori
vengono accolti dalla routine generale per mezzo dei parametri
formali X e Y ed elaborati
Private Sub scambia (X,Y AS Integer)
Private Sub cmdscambia_Click()
Dim Comodo AS Integer
a = VAL(txtPrimoValore.text)
if X > Y then
b = VAL(txtSecondoValore.Text)
Comodo = X
c = VAL(txtTerzoValore.Text)
X=Y
scambia a,b
Y = Comodo
scambia a,c
End if
scambia b,c
End Sub
1
2
lblvariabile1.Caption = a
0011 0010 1010 1101 0001 0100 1011
a
X
b
YX
5
3
c
Y
comodo
lblvariabile1.Caption = b
1
End Sub
3
5
1
3
3
4
lblvariabile1.Caption = c
5
Private Sub scambia (X,Y AS Integer)
Private Sub cmdscambia_Click()
Dim Comodo AS Integer
a = VAL(txtPrimoValore.text)
if X > Y then
b = VAL(txtSecondoValore.Text)
Comodo = X
c = VAL(txtTerzoValore.Text)
X=Y
scambia a,b
Y = Comodo
scambia a,c
End if
scambia b,c
End Sub
0011 0010 1010 1101 0001 0100 1011
a
b
5
3
c
comodo
2
lblvariabile1.Caption = b
1
5
1
3
4
lblvariabile1.Caption = c
End Sub
3
1
lblvariabile1.Caption = a
5
3
3
5
5
Scarica

scambia