Ejercicio de algoritmia resuelto con Visual Basic. Plantear casos, relaciones y procesos con letras (CU00357A)

Resumen: Entrega nº56 del curso Aprender a programar en Visual Basic desde cero.
Codificación aprenderaprogramar.com: CU00357A

Ejercicio complementario y opcional para el curso Aprender a programar en Visual Basic desde cero.

Plantear casos. Método. Valoraciones preliminares. Relaciones y procesos con letras.

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.

Visual Basic

 

El número de casos y el número de series por caso lo elegimos en base a nuestra experiencia en resolución de programas, a nuestra intuición o creencia de que estamos planteando casos particulares que nos permitirán la resolución y por último, como respuesta al ensayo y error. Es decir, si planteamos dos casos y después vemos que el programa no responde bien ante determinadas circunstancias, tendremos que replantear usando distinto número o tipo de casos. En base a lo expuesto plantearemos distintas situaciones usando cuatro series como:

Caso 1. Una serie mayor no empatada y las tres restantes empatadas.

Caso 2. Las series mayores con triple empate en su primer número y sin empate en su segundo número.

Caso 3. Las series mayores con triple empate en su primer número, las dos primeras con empate en su segundo número.

Caso 4. Una serie mayor no empatada y las dos siguientes con empate absoluto en sus cuatro números.

 

Para cada caso escribiremos el proceso primero con un lenguaje más libre (hágalo cada cual como le parezca, a modo de tanteo y reflexión inicial) y después tratando de aproximarnos a un metalenguaje lógico-matemático.

El planteamiento de casos y el metalenguaje previo al pseudocódigo sería el siguiente:

 

Caso 1

 

Paso 1: matriz visual basicla matriz a analizar (ok tiene más de una fila).

 

Paso 2: Extracción de la columna 1img_matriz

 

Paso 3: ¿Orden img_matriz?

 

Paso 4: 22 > 18

 

Paso 5: Orden (1) = 22 33 85 57

 

Paso 6: Nueva matriz a analizar (ok tiene más de una fila) img_matriz

 

Paso 7: Extracción de la columna 1 img_matriz

 

Paso 8: ¿Orden img_matriz?

 

Paso 9: 18 = 18 = 18 Triple empate

 

Paso 10: Sub – matriz a analizar img_matriz

 

Paso 11: Extracción de la columna 1 img_matriz

 

Paso 12: ¿Orden img_matriz?

 

Paso 13: 55 = 55 > 51 doble empate

 

Paso 14: Sub – matriz a analizar img_matriz

 

Paso 15: Extracción de la columna 1 img_matriz

 

Paso 16: ¿Orden img_matriz?

 

Paso 17: 32 > 19

 

Paso 18: Orden (2) ­ = 18 55 32 41

 

Paso 19: Nueva matriz a analizar (ok tiene más de una fila) img_matriz

 

Paso 20: Extracción de la columna 1 img_matriz

 

Paso 21: ¿Orden img_matriz?

 

Paso 22: 18 = 18 Doble empate

 

Paso 23: Sub – matriz a analizar img_matriz

 

Paso 24: Extracción de la columna 1 img_matriz

 

Paso 25: 55 > 51

 

Paso 26: Orden (3) = 18 55 19 11

 

Paso 27: Nueva matriz a analizar img_matriz Sólo tiene una fila

 

Paso 28: Orden (4) = 18 51 82 33

 

 

Caso 2

 

Paso 1: img_matriz Es la matriz a analizar (ok tiene más de una fila).

 

Paso 2: Extracción de la columna 1 img_matriz

 

Paso 3: ¿Orden img_matriz?

 

Paso 4: 33 = 33 = 33 > 12 Triple empate

 

Paso 5: Sub – matriz a analizar img_matriz

 

Paso 6: Extracción de la columna 1 img_matriz

 

Paso 7: ¿Orden img_matriz?

 

Paso 8: 73 > 22

 

Paso 9: Orden (1) = 33 73 85 15

 

Paso 10: Nueva matriz a analizar (ok tiene más de una fila) img_matriz

 

Paso 11: Extracción de la columna 1 img_matriz

 

Paso 12: ¿Orden img_matriz?

 

Paso 13: 33 = 33 > 12 Doble empate

 

Paso 14: Sub – matriz a analizar img_matriz

 

Paso 15: Extracción de la columna 1 img_matriz

 

Paso 16: ¿Orden img_matriz?

 

Paso 17: 22 > 21

 

Paso 18: Orden ­ (2) = 33 22 25 77

 

Paso 19: Nueva matriz a analizar (ok tiene de una fila) img_matriz

 

Paso 20: Extracción de la columna 1 img_matriz

 

Paso 21: ¿Orden img_matriz?

 

Paso 22: 33 > 12

 

Paso 23: Orden (3) = 33 21 13 10

 

Paso 24: Nueva matriz a analizar Sólo tiene una fila. img_matriz

 

Paso 25: Orden (4) = 12 17 31 55

 

 

Caso 3

 

Paso 1: img_matriz Es la matriz a analizar (ok tiene más de una fila).

 

Paso 2: Extracción de la columna 1 img_matriz

 

Paso 3: ¿Orden img_matriz?

 

Paso 4: 56 = 56 = 56 > 31 Triple empate

 

Paso 5: Sub – matriz a analizar img_matriz

 

Paso 6: Extracción de la columna 1 img_matriz

 

Paso 7: ¿Orden img_matriz?

 

Paso 8: 22 = 22 > 10 Doble empate

 

Paso 9: Sub – matriz a analizar img_matriz

 

Paso 10: Extracción de la columna 1 img_matriz

 

Paso 11: ¿Orden img_matriz?

 

Paso 12: 30 > 17

 

Paso 13: Orden (1) = 56 22 30 60

 

Paso 14: Nueva matriz a analizar (ok tiene más de una fila) img_matriz

 

Paso 15: Extracción de la columna 1 img_matriz

 

Paso 16: ¿Orden img_matriz?

 

Paso 17: 56 = 56 > 31 Doble empate

 

Paso 18: Sub – matriz a analizar img_matriz

 

Paso 19: Extracción de la columna 1 img_matriz

 

Paso 20: ¿Orden img_matriz?

 

Paso 21: 22 > 10

 

Paso 22: Orden ­ = 56 22 17 81

 

Paso 23: Nueva matriz a analizar (ok tiene más de una fila) img_matriz

 

Paso 24: Extracción de la columna 1 img_matriz

 

Paso 25: ¿Orden img_matriz?

 

Paso 26: 56 > 31

 

Paso 27: Orden (3) = 56 10 20 32

 

Paso 28: Nueva matriz a analizar Sólo tiene una fila. img_matriz

 

Paso 29: Orden (4) = 31 12 14 16

 

 

Caso 4

 

Paso 1: img_matriz Es la matriz a analizar (ok tiene más de una fila).

 

Paso 2: Extracción de la columna 1 img_matriz

 

Paso 3: ¿Orden img_matriz?

 

Paso 4: 85 > 73

 

Paso 5: Orden (1) = 85 91 17 12

 

Paso 6: Nueva matriz a analizar (ok tiene más de una fila) img_matriz

 

Paso 7: Extracción de la columna 1 img_matriz

 

Paso 8: ¿Orden img_matriz?

 

Paso 9: 73 = 73 > 66 Doble empate

 

Paso 10: Sub – matriz a analizar img_matriz

 

Paso 11: Extracción de la columna 1 img_matriz

 

Paso 12: ¿Orden img_matriz?

 

Paso 13: 18 = 18 Doble empate

 

Paso 14: Sub – matriz a analizar img_matriz

 

Paso 15: Extracción de la columna 1 img_matriz

 

Paso 16: ¿Orden img_matriz?

 

Paso 17: 21 = 21 Doble empate

 

Paso 18: Sub – matriz a analizar img_matriz

 

Paso 19: Extracción de la columna 1 img_matriz

 

Paso 20: ¿Orden img_matriz?

 

Paso 21: 43 = 43 Doble empate

 

Paso 22: Sub – matriz a analizar --> NO HAY SUB – MATRIZ : asignamos orden.

 

Paso 23: Orden ­ = 73 18 21 43

 

Paso 24: Nueva matriz a analizar (ok tiene más de una fila) img_matriz

 

Paso 25: Extracción de la columna 1 img_matriz

 

Paso 26: ¿Orden img_matriz?

 

Paso 27: 73 > 66

 

Paso 28: Orden (3) = 73 18 21 43

 

Paso 29: Nueva matriz a analizar img_matriz Sólo tiene una fila.

 

Paso 30: Orden (4) = 66 12 17 13

 

 

Hemos planteado casos con números en vez de hacerlo con letras. ¿Por qué? Un motivo para ello es que necesitamos hacer comparaciones para determinar cuándo un elemento es mayor que otro, cosa que no podríamos hacer con letras a las que no hubiéramos asignado un valor.

Se han elegido matrices tipo 4x4 porque se estima que una 2x2 no es representativa de un caso genérico y que una 3x3 puede presentar particularidades indeseables.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.
 
Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Donar o colaborar

Este sitio se mantiene abierto gracias al apoyo de muchas personas. Si crees que merece la pena apoyar económicamente este sitio web puedes realizar una donación o colaborar. Contacta con nosotros.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

SEPTIEMBRE - OCTUBRE 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. .NET, C#
5. JavaScript, jQuery
6. HTML, CSS
7. Php, MySql
8. Android, iOS


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación