Inicio Guía didáctica Actividades Recursos Vídeos   Ayuda

 
Actividad 1
Actividad 2
Actividad 3
Actividad 4
Actividad 5
Actividad 6
Actividad 7
Actividad 8
Actividad 9
Actividad 10
Actividad 11
Actividad 12
Actividad 13
Actividad 14
Actividad 15

Ejecución

Guión de la actividad

Arrancar el KPL y crear un nuevo programa.

Escribimos en las primeras líneas de código un comentario inicial.

/*Programa: Primitiva

      Autores: Lidia y Pablo

Descripción: Programa que simula el juego de la lotería

primitiva*/

Poner título al programa: Borrar MyNewProgram y poner Primitiva en su lugar.

Primero definimos dos variables tipo ARRAY (premiados tendrá 7 elementos y boleto 12, pues marcar 12 números supone jugar 924 apuestas) que vamos a necesitar en distintos métodos:

Var premiados As Integer[7]

      Var boleto As Integer[12]

Vamos a definir  3 métodos antes de ir al Método Principal:

  • Method CubrirBoleto ()

  • Method GenerarNumeros ()

  • Method Informar ()

En el primero escribimos el código:

Method CubrirBoleto()

 

      Var i As Integer

           

      boleto[1]=ConsoleReadInt("Introduzca número 1: ",True)

      While boleto[1]<1 Or boleto[1]>49

            boleto[1]=ConsoleReadInt("Por favor, introduzca bien número 1: ",True)

      End While

           

      boleto[2]=ConsoleReadInt("Introduzca número 2: ",True)

      While boleto[2]<1 Or boleto[2]>49 Or boleto[2]=boleto[1]

            boleto[2]=ConsoleReadInt("Por favor, introduzca bien número 2: ",True)

      End While

           

      boleto[3]=ConsoleReadInt("Introduzca número 3: ",True)

      While boleto[3]<1 Or boleto[3]>49 Or boleto[3]=boleto[1] Or boleto[3]=boleto[2]

            boleto[3]=ConsoleReadInt("Por favor, introduzca bien número 3: ",True)

      End While

           

      boleto[4]=ConsoleReadInt("Introduzca número 4: ",True)

      While boleto[4]<1 Or boleto[4]>49 Or boleto[4]=boleto[1] Or boleto[4]=boleto[2] Or boleto[4]=boleto[3]

            boleto[4]=ConsoleReadInt("Por favor, introduzca bien número 4: ",True)

      End While

           

      boleto[5]=ConsoleReadInt("Introduzca número 5: ",True)

      While boleto[5]<1 Or boleto[5]>49 Or boleto[5]=boleto[1] Or boleto[5]=boleto[2] Or boleto[5]=boleto[3] Or boleto[5]=boleto[4]

            boleto[5]=ConsoleReadInt("Por favor, introduzca bien número 5: ",True)

      End While

           

      boleto[6]=ConsoleReadInt("Introduzca número 6: ",True)

      While boleto[6]<1 Or boleto[6]>49 Or boleto[6]=boleto[1] Or boleto[6]=boleto[2] Or boleto[6]=boleto[3] Or boleto[6]=boleto[4] Or boleto[6]=boleto[5]

            boleto[6]=ConsoleReadInt("Por favor, introduzca bien número 6: ",True)

      End While

           

      boleto[7]=ConsoleReadInt("Si desea jugar 7 apuestas, introduzca número 7; en caso contrario pulse cero (0): ",True)

      While boleto[7]<0 Or boleto[7]>49 Or boleto[7]=boleto[1] Or boleto[7]=boleto[2] Or boleto[7]=boleto[3] Or boleto[7]=boleto[4] Or boleto[7]=boleto[5] Or boleto[7]=boleto[6]

            boleto[7]=ConsoleReadInt("Por favor, introduzca bien número 7 o teclee cero (0) si desea salir: ",True)

      End While

      If (boleto[7]=0) Then

            For i=8 To 12

                  boleto[i]=0

            Next

            Return

      End If

           

      boleto[8]=ConsoleReadInt("Si desea jugar 28 apuestas, introduzca número 8; en caso contrario pulse cero (0): ",True)

      While boleto[8]<0 Or boleto[8]>49 Or boleto[8]=boleto[1] Or boleto[8]=boleto[2] Or boleto[8]=boleto[3] Or boleto[8]=boleto[4] Or boleto[8]=boleto[5] Or boleto[8]=boleto[6] Or boleto[8]=boleto[7]

            boleto[8]=ConsoleReadInt("Por favor, introduzca bien número 8 o teclee cero (0) si desea salir: ",True)

      End While

      If (boleto[8]=0) Then

            For i=9 To 12

                  boleto[i]=0

            Next

            Return

      End If

           

      boleto[9]=ConsoleReadInt("Si desea jugar 84 apuestas, introduzca número 9; en caso contrario pulse cero (0): ",True)

      While boleto[9]<0 Or boleto[9]>49 Or boleto[9]=boleto[1] Or boleto[9]=boleto[2] Or boleto[9]=boleto[3] Or boleto[9]=boleto[4] Or boleto[9]=boleto[5] Or boleto[9]=boleto[6] Or boleto[9]=boleto[7] Or boleto[9]=boleto[8]

            boleto[9]=ConsoleReadInt("Por favor, introduzca bien número 9 o teclee cero (0) si desea salir: ",True)

      End While

      If (boleto[9]=0) Then

            For i=10 To 12

                  boleto[i]=0

            Next

            Return

      End If

           

      boleto[10]=ConsoleReadInt("Si desea jugar 210 apuestas, introduzca número 10; en caso contrario pulse cero (0): ",True)

      While boleto[10]<0 Or boleto[10]>49 Or boleto[10]=boleto[1] Or boleto[10]=boleto[2] Or boleto[10]=boleto[3] Or boleto[10]=boleto[4] Or boleto[10]=boleto[5] Or boleto[10]=boleto[6] Or boleto[10]=boleto[7] Or boleto[10]=boleto[8] Or boleto[10]=boleto[9]

            boleto[10]=ConsoleReadInt("Por favor, introduzca bien número 10 o teclee cero (0) si desea salir: ",True)

      End While

      If (boleto[10]=0) Then

            For i=11 To 12

                  boleto[i]=0

            Next

            Return

      End If

           

      boleto[11]=ConsoleReadInt("Si desea jugar 462 apuestas, introduzca número 11; en caso contrario pulse cero (0): ",True)

      While boleto[11]<0 Or boleto[11]>49 Or boleto[11]=boleto[1] Or boleto[11]=boleto[2] Or boleto[11]=boleto[3] Or boleto[11]=boleto[4] Or boleto[11]=boleto[5] Or boleto[11]=boleto[6] Or boleto[11]=boleto[7] Or boleto[11]=boleto[8] Or boleto[11]=boleto[9] Or boleto[11]=boleto[10]

            boleto[11]=ConsoleReadInt("Por favor, introduzca bien número 11 o teclee cero (0) si desea salir: ",True)

      End While

      If (boleto[11]=0) Then

            boleto[12]=0

            Return

      End If

           

      boleto[12]=ConsoleReadInt("Si desea jugar 924 apuestas, introduzca número 12; en caso contrario pulse cero (0): ",True)

      While boleto[12]<0 Or boleto[12]>49 Or boleto[12]=boleto[1] Or boleto[12]=boleto[2] Or boleto[12]=boleto[3] Or boleto[12]=boleto[4] Or boleto[12]=boleto[5] Or boleto[12]=boleto[6] Or boleto[12]=boleto[7] Or boleto[12]=boleto[8] Or boleto[12]=boleto[9] Or boleto[12]=boleto[10] Or boleto[12]=boleto[11]

            boleto[12]=ConsoleReadInt("Por favor, introduzca bien número 12 o teclee cero (0) si desea salir: ",True)

      End While

     

End Method

En este método vamos pidiendo al usuario que introduzca los números que desea jugar, asegurándonos de que no los repite y que el número está entre 1 y 49 (entre 0 y 49, si estamos con boleto[i], para i ³ 7). Además, cuando llegamos al séptimo número y sucesivos, el sistema le indicará al usuario si quiere seguir jugando o dejarlo. En caso de querer dejarlo, la variable boleto tomará el valor cero a partir de ese elemento y saldremos del método con RETURN.

En el segundo método escribimos:

Method GenerarNumeros()

           

//con este método generamos la combinación ganadora y la ordenamos

      Var auxiliar As Integer

      Var g As Integer

      Var h As Integer

           

      premiados[1]=Random(1,49)

           

      premiados[2]=Random(1,49)

      While premiados[2]=premiados[1]

            premiados[2]=Random(1,49)

      End While

           

      premiados[3]=Random(1,49)

      While premiados[3]=premiados[1] Or premiados[3]=premiados[2]

            premiados[3]=Random(1,49)

      End While

     

      premiados[4]=Random(1,49)

      While premiados[4]=premiados[1] Or premiados[4]=premiados[2] Or premiados[4]=premiados[3]

            premiados[4]=Random(1,49)

      End While

           

      premiados[5]=Random(1,49)

      While premiados[5]=premiados[1] Or premiados[5]=premiados[2] Or premiados[5]=premiados[3] Or premiados[5]=premiados[4]

            premiados[5]=Random(1,49)

      End While

           

      premiados[6]=Random(1,49)

      While premiados[6]=premiados[1] Or premiados[6]=premiados[2] Or premiados[6]=premiados[3] Or premiados[6]=premiados[4] Or premiados[6]=premiados[5]

            premiados[6]=Random(1,49)

      End While

           

      premiados[7]=Random(1,49)

      While premiados[7]=premiados[1] Or premiados[7]=premiados[2] Or premiados[7]=premiados[3] Or premiados[7]=premiados[4] Or premiados[7]=premiados[5] Or premiados[7]=premiados[6]

            premiados[7]=Random(1,49)

      End While

           

      //ordenamos la combinación ganadora de 6 números

      For g=2 To 6

            auxiliar=premiados[g]

            h=g-1

            While h>=1 And auxiliar<premiados[h]

                  premiados[h+1]=premiados[h]

                  h=h-1

            End While

            premiados[h+1]=auxiliar

      Next

End Method

La función RANDOM devuelve un número entero al azar entre 1  y 49. Cada número que genera el programa comprueba que no ha sido extraído anteriormente y si es así genera otro hasta que sea diferente de todos los anteriores. El premiados[7] será el complementario. Al final del método se ordena la combinación de 6 números con un FOR.

A continuación tecleamos el tercer método que simplemente lo tenemos para escribir información por pantalla cuando lo invoquemos:

Method Informar()

      //listamos información

      ConsoleWriteLine("Si usted marca 6 números, jugará 1 apuesta")

      ConsoleWriteLine("Si usted marca 7 números, jugará 7 apuestas")

      ConsoleWriteLine("Si usted marca 8 números, jugará 28 apuestas")

      ConsoleWriteLine("Si usted marca 9 números, jugará 84 apuestas")

      ConsoleWriteLine("Si usted marca 10 números, jugará 210 apuestas")

      ConsoleWriteLine("Si usted marca 11 números, jugará 462 apuestas")

      ConsoleWriteLine("Si usted marca 12 números, jugará 924 apuestas")

End Method

En el Método Principal, Method Main(), definimos las variables que necesitamos de la siguiente forma:

Var acertados As Integer

      Var acertadocomplementario As Boolean

      Var i As Integer

      Var n As Integer

      Var m As Integer

      Var f As Integer

Escribimos el código siguiente:

ConsoleWriteLine("=====JUEGO DE LA PRIMITIVA=====")

Tecleamos:

Informar()        //invocamos nuestro método Informar

           

      CubrirBoleto()    //invocamos nuestro método CubrirBoleto

con lo que invocamos primero el método Informar y después el CubrirBoleto.

A continuación dejamos dos lineas en blanco con:

ConsoleWriteLine("")

      ConsoleWriteLine("")

Después introducimos las líneas de programación siguientes invocando el método GenerarNumeros y añadiendo algún efecto simpático:

//esto es para retardar y dar emoción al asunto

      ConsoleWriteLine("Generando combinación ganadora")

      Delay(2000)

      ConsoleWriteLine("¡Qué nervios!")

      Delay(3000)

      GenerarNumeros()  //invocamos nuestro método generarnumeros

     ConsoleWriteLine("Combinación ganadora: "+premiados[1]+" - "+premiados[2]+" - "+premiados[3]+" - "+premiados[4]+" - "+premiados[5]+" - "+premiados[6]+" y el complementario "+premiados[7])

  

Escribimos a continuación:

ConsoleWriteLine("")

      ConsoleWriteLine("")

Para contar el número de aciertos y si hemos acertado el complementario diseñamos un FOR en el que comparamos los elementos  de premiados con los elementos de boleto. En caso de que coincida alguno, la variable aciertos aumentará en una unidad, y si el acierto se produce en premiados[7], es decir, en el complementario, la variable acertadocomplementario tomará el valor True:

For n=1 To 7

            For m=1 To 12

                  If (premiados[n]=boleto[m]) Then

                        If n<>7 Then

                             acertados=acertados+1

                        Else

                             acertadocomplementario=True

                        End If

                  End If

            Next

      Next

Por último imprimimos por pantalla el resumen de aciertos:

ConsoleWrite("Usted ha tenido "+acertados+" aciertos")

      If acertadocomplementario=True Then

            ConsoleWriteLine(" y el complementario")

      End If

Guardamos el archivo picando sobre el icono  o Archivo/Guardar, y escribiremos el nombre Primitiva, seleccionando la carpeta donde quiera ir almacenando todas las actividades. Por defecto la carpeta elegida es My Phrograms Files que está en Mis Documentos.

En el caso de existir algún error en el CÓDIGO FUENTE de nuestro programa, KPL nos informa con un aviso de ERROR y el cursor se sitúa sobre la línea y secuencia errónea. Lo rectificaremos.

Al ejecutar el programa (F5), nos sale la siguiente ventana con una explicación inicial y esperando que el usuario introduzca el primer número en la consola:

Introducimos por ejemplo  15,16,17,18,19 y 19 y llegamos a:

El sistema nos dice que hemos introducido mal el sexto número y que lo volvamos a introducir (¡está repetido!). Introducimos 55 y ¿qué obtenemos?

Qué también está mal pues no son válidos los números menores de 1 y mayores de 49. Introducimos 20 y obtenemos:

Vamos a jugar hasta 462 apuestas, así que introduciremos 11 números (por ejemplo añadimos el 21, 22, 23, 24 y 25) y cuando nos diga el programa si deseamos jugar 924 apuestas teclearemos un cero (0), obteniendo por tanto en este ejemplo:

¡Sólo he acertado 3! Espero que tú tengas más suerte. Ejecuta el programa y prueba con otros números.

Planteamiento Ejecución Resolución
 
Enlaces Web de interés

Ver la presentación

 

Autores: Pablo Flórez Valbuena y Lidia Getino Llamas

Abril 2007