Os cuento la idea. Es una función muy simple, consiste en una función que tiene que devolver "verdadero" en
caso de que no sea un día laborable o estemos de vacaciones. En caso contrarió devolverá "falso".
Este es el texto que he podido traducir del inglés.
Citar:
Esta es su tabla de la verdad y la salida de la función: (Podía haber usado librando, de permiso, descanso...)
Citar:
Creo que el principal problema radica en el array "solucióncorrecta", en su orden. Cuando compara ambos array, testusuario y solucioncorrecta.
Como tenemos dos parámetros booleanos, debemos crear una función que nos genere todos los posibles valores que pueden tomar las entradas.
He creado una batería de test para comprobar la salida.
Private solucioncorrecta As Boolean[] = [True, False, True, True]
Private testusuario As New Boolean[]
Public Sub Main()
CrearTest()
ComprobarTest()
End
Private Function descanso(dialaborable As Boolean, vacaciones As Boolean) As Boolean
If Not dialaborable Or vacaciones Then
Return True
Else
Return False
Endif
End
Private Sub CrearTest()
Dim bboleanos As Boolean[] = [False, True]
Dim x, y As Boolean
For Each x In bboleanos
For Each y In bboleanos
'Con esta forma de poner los parametros,el resultado sale invertido
'testusuario.Add(descanso(x, y))
'De esta forma no
testusuario.Add(descanso(y, x))
Next
Next
'Stop
End
Public Sub ComprobarTest()
Dim x As Integer
For x = 0 To solucioncorrecta.Max
If testusuario[x] = solucioncorrecta[x] Then
Print "OK!"
Else
Print "Error!"
Endif
Next
End
Private testusuario As New Boolean[]
Public Sub Main()
CrearTest()
ComprobarTest()
End
Private Function descanso(dialaborable As Boolean, vacaciones As Boolean) As Boolean
If Not dialaborable Or vacaciones Then
Return True
Else
Return False
Endif
End
Private Sub CrearTest()
Dim bboleanos As Boolean[] = [False, True]
Dim x, y As Boolean
For Each x In bboleanos
For Each y In bboleanos
'Con esta forma de poner los parametros,el resultado sale invertido
'testusuario.Add(descanso(x, y))
'De esta forma no
testusuario.Add(descanso(y, x))
Next
Next
'Stop
End
Public Sub ComprobarTest()
Dim x As Integer
For x = 0 To solucioncorrecta.Max
If testusuario[x] = solucioncorrecta[x] Then
Print "OK!"
Else
Print "Error!"
Endif
Next
End
Lo importante del ejercicio es comprobar el correcto funcionamiento de la función.
¿ Qué me podéis decir del orden de la solución en el array y el testeo de la misma ?.
Podría comparar con el array solución de derecha a izquierda y al revés. Hacer dos veces lo mismo.
Os adjunto el código implementado para Gambas.
Siento no haber puesto descansando, tome la traducción muy literalmente.
Como ultimo dato, es un ejercicio perteneciente a:
CodingBat
Saludos
ejemplo1_funcion_durmiendo.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | ejemplo1_funcion_durmiendo.tar.gz | |
Tamaño: | 5.13 KB | |
Descargado: | 66 veces |
ejemplo1_funcion_durmiendo.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | ejemplo1_funcion_durmiendo.tar.gz | |
Tamaño: | 5.13 KB | |
Descargado: | 66 veces |
ejemplo1_funcion_durmiendo.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | ejemplo1_funcion_durmiendo.tar.gz | |
Tamaño: | 5.13 KB | |
Descargado: | 66 veces |