You are on page 1of 9

2006-2012 aprenderaprogramar.

com

aprenderaprogramar.com

12

Ejerciciodealgoritmiaresuelto
conVisualBasic.Plantearcasos,
relacionesyprocesosconletras.
(CU00357A)
Seccin:Cursos
Categora:CursoVisualBasicNivelI
Fechaltimaactualizacin:2012
Autor:MarioR.Rancel
Resumen:Entregan56delCursoVisualBasicNivelI
Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
EjerciciocomplementarioyopcionalparaelcursoProgramacinenVisualBasic.NivelI.

EJERCICIORESUELTOCONVISUALBASIC.PLANTEARCASOS,RELACIONESYPROCESOSCONLETRAS

Plantearcasos.Mtodo.Valoracionespreliminares.Relacionesyprocesosconletras.

Hemos de programar pensando en todas las situaciones posibles (al menos todas las que se nos
ocurran), de forma que el programa sea capaz de resolverlas todas. El nmero de casos y el nmero de
series por caso lo elegimos en base a nuestra experiencia en resolucin de programas, a nuestra
intuicin o creencia de que estamos planteando casos particulares que nos permitirn la resolucin y
por ltimo, como respuesta al ensayo y error. Es decir, si planteamos dos casos y despus vemos que el
programa no responde bien ante determinadas circunstancias, tendremos que replantear usando
distinto nmero o tipo de casos. En base a lo expuesto plantearemos distintas situaciones usando
cuatro series como:

Caso1. Una serie mayor no empatada y las tres restantes empatadas.
Caso2. Las series mayores con triple empate en su primer nmero y sin empate en su segundo nmero.
Caso3. Las series mayores con triple empate en su primer nmero, las dos primeras con empate en su
segundo nmero.
Caso4. Una serie mayor no empatada y las dos siguientes con empate absoluto en sus cuatro nmeros.

Para cada caso escribiremos el proceso primero con un lenguaje ms libre (hgalo cada cual como le
parezca, a modo de tanteo y reflexin inicial) y despus tratando de aproximarnos a un metalenguaje
lgico-matemtico.

El planteamiento de casos y el metalenguaje previo al pseudocdigo sera el siguiente:

Caso1

Paso1:
|
|
|
|
|
|
.
|

\
|
11 19 55 18
33 82 51 18
57 85 33 22
41 32 55 18
Es la matriz a analizar (ok tiene ms de una fila).

Paso2: Extraccin de la columna 1


|
|
|
|
|
|
.
|

\
|
18
18
22
18

Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
Paso3:Orden
|
|
|
|
|
|
.
|

\
|
18
18
22
18
?
Paso4: 22 > 18
Paso5:Orden = 22 33 85 57
Paso6:Nueva matriz a analizar (ok tiene ms de una fila)
|
|
|
|
.
|

\
|
11 19 55 18
33 82 51 18
41 32 55 18

Paso7: Extraccin de la columna 1
|
|
|
|
.
|

\
|
18
18
18

Paso8: Orden
|
|
|
|
.
|

\
|
18
18
18
?
Paso9: 18 = 18 = 18 Triple empate
Paso10:Sub matriz a analizar
|
|
|
|
.
|

\
|
11 19 55
33 82 51
41 32 55

Paso11: Extraccin de la columna 1
|
|
|
|
.
|

\
|
55
51
55

Paso12:Orden
|
|
|
|
.
|

\
|
55
51
55
?
Paso13:55 = 55 > 51 doble empate
Paso14:Sub matriz a analizar
|
|
.
|

\
|
11 19
41 32

Paso15: Extraccin de la columna 1
|
|
.
|

\
|
19
32

Paso16:Orden
|
|
.
|

\
|
19
32
?
Paso17:32 > 19
Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
Paso18:Orden = 18 55 32 41
Paso19:Nueva matriz a analizar (ok tiene ms de una fila)
|
|
.
|

\
|
11 19 55 18
33 82 51 18

Paso20:Extraccin de la columna 1
|
|
.
|

\
|
18
18

Paso21:Orden
|
|
.
|

\
|
18
18
?
Paso22: 18 = 18 Doble empate
Paso23:Sub matriz a analizar
|
|
.
|

\
|
11 19 55
33 82 51

Paso24:Extraccin de la columna 1
|
|
.
|

\
|
55
51

Paso25:55 > 51
Paso26:Orden = 18 55 19 11
Paso27:Nueva matriz a analizar ( ) 33 82 51 18 Slo tiene una fila
Paso28:Orden = 18 51 82 33

Caso2
Paso1:
|
|
|
|
|
|
.
|

\
|
77 25 22 33
15 85 73 33
55 31 17 12
10 13 21 33
Es la matriz a analizar (ok tiene ms de una fila).
Paso2: Extraccin de la columna 1
|
|
|
|
|
|
.
|

\
|
33
33
12
33

Paso3:Orden
|
|
|
|
|
|
.
|

\
|
33
33
12
33
?
Paso4: 33 = 33 = 33 > 12 Triple empate
Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
Paso5:Sub matriz a analizar
|
|
|
|
.
|

\
|
77 25 22
15 85 73
10 13 21

Paso6: Extraccin de la columna 1
|
|
|
|
.
|

\
|
22
73
21

Paso7: Orden
|
|
|
|
.
|

\
|
22
73
21
?
Paso8: 73 > 22
Paso9:Orden = 33 73 85 15
Paso10:Nueva matriz a analizar (ok tiene ms de una fila)
|
|
|
|
.
|

\
|
77 25 22 33
55 31 17 12
10 13 21 33

Paso11: Extraccin de la columna 1
|
|
|
|
.
|

\
|
33
12
33

Paso12:Orden
|
|
|
|
.
|

\
|
33
12
33
?
Paso13:33 = 33 > 12 Doble empate
Paso14:Sub matriz a analizar
|
|
.
|

\
|
77 25 22
10 13 21

Paso15: Extraccin de la columna 1
|
|
.
|

\
|
22
21

Paso16:Orden
|
|
.
|

\
|
22
21
?
Paso17:22 > 21
Paso18:Orden = 33 22 25 77
Paso19:Nueva matriz a analizar (ok tiene de una fila)
|
|
.
|

\
|
55 31 17 12
10 13 21 33

Paso20:Extraccin de la columna 1
|
|
.
|

\
|
12
33

Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
Paso21:Orden
|
|
.
|

\
|
12
33
?
Paso22: 33 > 12
Paso23:Orden = 33 21 13 10
Paso24:Nueva matriz a analizar ( ) 55 31 17 12 Slo tiene una fila.
Paso25:Orden = 12 17 31 55

Caso3
Paso1:
|
|
|
|
|
|
.
|

\
|
32 20 10 56
60 30 22 56
16 14 12 31
81 17 22 56
Es la matriz a analizar (ok tiene ms de una fila).
Paso2: Extraccin de la columna 1
|
|
|
|
|
|
.
|

\
|
56
56
31
56

Paso3:Orden
|
|
|
|
|
|
.
|

\
|
56
56
31
56
?
Paso4: 56 = 56 = 56 > 31 Triple empate
Paso5:Sub matriz a analizar
|
|
|
|
.
|

\
|
32 20 10
60 30 22
81 17 22

Paso6:Extraccin de la columna 1
|
|
|
|
.
|

\
|
10
22
22

Paso7: Orden
|
|
|
|
.
|

\
|
10
22
22
?
Paso8: 22 = 22 > 10 Doble empate
Paso9: Sub matriz a analizar
|
|
.
|

\
|
60 30
81 17

Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
Paso10:Extraccin de la columna 1
|
|
.
|

\
|
30
17

Paso11: Orden
|
|
.
|

\
|
30
17
?
Paso12:30 > 17
Paso13:Orden = 56 22 30 60
Paso14:Nueva matriz a analizar (ok tiene ms de una fila)
|
|
|
|
.
|

\
|
32 20 10 56
16 14 12 31
81 17 22 56

Paso15: Extraccin de la columna 1
|
|
|
|
.
|

\
|
56
31
56

Paso16:Orden
|
|
|
|
.
|

\
|
56
31
56
?
Paso17:56 = 56 > 31 Doble empate
Paso18:Sub matriz a analizar
|
|
.
|

\
|
32 20 10
81 17 22

Paso19:Extraccin de la columna 1
|
|
.
|

\
|
10
22

Paso20:Orden
|
|
.
|

\
|
10
22
?
Paso21:22 > 10
Paso22:Orden = 56 22 17 81
Paso23:Nueva matriz a analizar (ok tiene ms de una fila)
|
|
.
|

\
|
32 20 10 56
16 14 12 31

Paso24:Extraccin de la columna 1
|
|
.
|

\
|
56
31

Paso25:Orden
|
|
.
|

\
|
56
31
?
Paso26:56 > 31
Paso27:Orden = 56 10 20 32
Paso28:Nueva matriz a analizar ( ) 16 14 12 31 Slo tiene una fila.
Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
Paso29:Orden = 31 12 14 16

Caso4
Paso1:
|
|
|
|
|
|
.
|

\
|
13 17 12 66
43 21 18 73
12 17 91 85
43 21 18 73
Es la matriz a analizar (ok tiene ms de una fila).
Paso2: Extraccin de la columna 1
|
|
|
|
|
|
.
|

\
|
66
73
85
73

Paso3:Orden
|
|
|
|
|
|
.
|

\
|
66
73
85
73
?
Paso4: 85 > 73
Paso5:Orden = 85 91 17 12
Paso6:Nueva matriz a analizar (ok tiene ms de una fila)
|
|
|
|
.
|

\
|
13 17 12 66
43 21 18 73
43 21 18 73

Paso7: Extraccin de la columna 1
|
|
|
|
.
|

\
|
66
73
73

Paso8: Orden
|
|
|
|
.
|

\
|
66
73
73
?
Paso9: 73 = 73 > 66 Doble empate
Paso10:Sub matriz a analizar
|
|
.
|

\
|
43 21 18
43 21 18

Paso11: Extraccin de la columna 1
|
|
.
|

\
|
18
18

Paso12:Orden
|
|
.
|

\
|
18
18
?
Ejercicio resuelto con Visual Basic. Casos, relaciones y procesos con letras.

2006-2012 aprenderaprogramar.com
Paso13:18 = 18 Doble empate
Paso14:Sub matriz a analizar
|
|
.
|

\
|
43 21
43 21

Paso15: Extraccin de la columna 1
|
|
.
|

\
|
21
21

Paso16:Orden
|
|
.
|

\
|
21
21
?
Paso17:21 = 21 Doble empate
Paso18:Sub matriz a analizar
|
|
.
|

\
|
43
43

Paso19:Extraccin de la columna 1
|
|
.
|

\
|
43
43

Paso20:Orden
|
|
.
|

\
|
43
43
?
Paso21: 43 = 43 Doble empate
Paso22:Sub matriz a analizar NO HAY SUB MATRIZ : asignamos orden.
Paso23:Orden = 73 18 21 43
Paso24:Nueva matriz a analizar (ok tiene ms de una fila)
|
|
.
|

\
|
13 17 12 66
43 21 18 73

Paso25:Extraccin de la columna 1
|
|
.
|

\
|
66
73

Paso26:Orden
|
|
.
|

\
|
66
73
?
Paso27:73 > 66
Paso28:Orden = 73 18 21 43
Paso29:Nueva matriz a analizar ( ) 13 17 12 66 Slo tiene una fila.
Paso30:Orden = 66 12 17 13

Hemos planteado casos con nmeros en vez de hacerlo con letras. Por qu? Un motivo para ello es
que necesitamos hacer comparaciones para determinar cundo un elemento es mayor que otro, cosa
que no podramos hacer con letras a las que no hubiramos asignado un valor. Se han elegido matrices
tipo 4x4 porque se estima que una 2x2 no es representativa de un caso genrico y que una 3x3 puede
presentar particularidades indeseables.


Prximaentrega:CU00358A