1 00:00:08,080 --> 00:00:12,610 Vamos a continuar con el programa que hemos visto en el vídeo anterior. El programa nos ha quedado 2 00:00:12,610 --> 00:00:17,850 bastante complejo. De hecho, fijaos que si era complejo que me he tenido que saltar la estructura que explicaba 3 00:00:17,850 --> 00:00:24,930 antes de, entrada de datos, algoritmo y después salida de datos. Voy a emplear ahora valores lógicos para 4 00:00:24,940 --> 00:00:31,540 simplificar este programa y que se adapte a la estructura que os he explicado. Voy a ir a la línea comandos, voy a 5 00:00:31,540 --> 00:00:37,040 borrar todo lo que había, para hacer un par de ejemplos. Fijaos que hemos visto las variables de tipo lógico, 6 00:00:37,040 --> 00:00:43,330 que devuelven verdadero o falso. Veis, en este caso 3 es mayor que 2 devuelve verdadero. Si hubiera puesto 7 00:00:43,340 --> 00:00:49,040 menor que 2 en este caso devuelve falso. Nosotros también podemos crear directamente variables de 8 00:00:49,070 --> 00:00:58,520 tipo lógico usando 2 comandos que son. True, verdadero y False, falso. Fijaos True es un valor lógico de valor 1 9 00:00:58,540 --> 00:01:04,240 y False falso es un valor lógico, valor 0. Yo puedo asignar una variable estos valores. 10 00:01:04,260 --> 00:01:08,920 Por ejemplo, puedo decir x igual a True, entonces x vale verdadero. Fijaos ahora en el 11 00:01:08,920 --> 00:01:15,140 espacio trabajo. x tiene el valor tipo lógico y es 1. Fijaos que esto es diferente a que yo 12 00:01:15,160 --> 00:01:20,780 hubiera dicho que x valiera 1. ¿Cuál es la diferencia? Le voy a dar al Intro. ¿Observáis la diferencia? 13 00:01:20,780 --> 00:01:26,840 Ha cambiado el tipo de la variable. Esto no es una variable de tipo lógico, no basta con poner x igual a 1. 14 00:01:26,860 --> 00:01:33,520 Es mejor poner x igual a true. True el valor es 1. Aparentemente no hay diferencia pero como vemos en el 15 00:01:33,540 --> 00:01:38,780 espacio de trabajo si hay diferencias. Esto es un valor de tipo lógico. Es el que se usa para tomar decisiones. 16 00:01:38,780 --> 00:01:44,880 Voy a simplificar este programa usando la variable tipo lógico. Esa variable tipo lógico va a valer 17 00:01:44,890 --> 00:01:52,860 verdadero si el año bisiesto. Y va a valer falso si el año no es bisiesto. Fijaos que lo que 18 00:01:52,860 --> 00:01:57,680 nos interesa aquí capturar siempre es el caso en el que fue bisiesto. Vamos a simplificar 19 00:01:57,700 --> 00:02:02,300 el programa asumiendo que el año que ha i ntroducido no es bisiesto usando una variable lógica 20 00:02:02,320 --> 00:02:08,560 Voy a crear esta variable la voy a llamar esBisiesto y voy a asumir, la voy a poner por defecto al valor a falso. 21 00:02:08,560 --> 00:02:14,450 Voy a asumir que el año que ha introducido el usuario no es bisiesto. Y si se demuestra 22 00:02:14,450 --> 00:02:19,100 lo contrario. Si dentro del código consigo demostrar lo contrario, le cambio el valor. 23 00:02:19,100 --> 00:02:25,040 Por ejemplo. ¿Donde puedo demostrar lo contrario? Aquí, se que fue bisiesto. Pues en vez de mostrar el mensaje. 24 00:02:25,040 --> 00:02:31,170 Voy a cambiar el valor de la variable esBisiesto y la voy a poner a verdadero. Efectivamente, fue bisiesto. 25 00:02:31,170 --> 00:02:41,200 Fijaos, pongo por defecto la variable esBisiesto a falso. Todos los casos donde sea falso ya no me hacen falta. 26 00:02:41,210 --> 00:02:48,000 ¿Por qué? Porque en este caso tendría que poner la variable, tendría que escribir siguiendo el ejemplo anterior, 27 00:02:48,000 --> 00:02:55,890 que la variable esBisiesto es falso. Pero ¿Qué ocurre? Que ya era falsa antes; entonces al hacer este uso 28 00:02:55,900 --> 00:03:02,570 de variables lógicas ya me puedo quitar este caso de encima y ya voy simplificando un poco el caso. 29 00:03:02,570 --> 00:03:06,440 ¿Donde hay un mensaje también de que fue bisiesto? Aquí, pues aquí pongo que 30 00:03:06,440 --> 00:03:11,370 la variable esBisiesto es verdadero. He capturado que la variable esBisiesto, el año es bisiesto, tengo que 31 00:03:11,380 --> 00:03:16,560 poner la variable en verdadero. Y aquí tendría que poner de nuevo la variable a falso. Pero como ya se 32 00:03:16,560 --> 00:03:21,930 falso si no ha caído en ningún caso anterior; no hace falta volver a ponerla. Ya he supuesto desde el inicio 33 00:03:21,930 --> 00:03:30,080 que es falso. Borró este caso y fijaos el programa ha quedado ahora bastante más sencillo. Sí alguna 34 00:03:30,100 --> 00:03:34,810 de estas condiciones se cumple se va a cambiar el valor de la variable esbisiesto. Si el el año es bisiesto, se va 35 00:03:34,820 --> 00:03:40,120 cambiar el valor de la variable esBisiesto. Y si no cayera en ninguno de estos dos casos, la variable esBisiesto 36 00:03:40,140 --> 00:03:46,130 no se va a tocar. Y como ya he supuesto que era falsa, pues se va a quedar falsa. Al suponer que es falsa 37 00:03:46,130 --> 00:03:53,660 me he ahorrado condiciones aquí y he simplificado el código. Además como bonus, ahora ya puedo 38 00:03:53,680 --> 00:03:58,450 poner la salida datos aquí fuera. ¿Porqué? Pues es muy fácil. 39 00:03:58,450 --> 00:04:12,030 Si el año fue bisiesto o es bisiesto. Muestro el mensaje fue bisiesto.Y si no muestro el mensaje no fue bisiesto. 40 00:04:12,030 --> 00:04:21,170 Fijaos que es sencillo usando la variable lógica esbisiesto. Puede ser un poco complicado darse 41 00:04:21,170 --> 00:04:29,260 cuenta qué es fácil simplificar el programa usando esta variable lógica. Es difícil; si pensáis que es difícil, 42 00:04:29,280 --> 00:04:34,270 que no se le hubiera ocurrido a vosotros, es normal. Sobre todo al principio; ya con el tiempo ya iréis cogiendo 43 00:04:34,270 --> 00:04:39,620 más experiencia. Pero lo importante en este vídeo es que entendáis los cambios que ha realizado en el programa. 44 00:04:39,630 --> 00:04:43,770 Incluso si os parece más complicado que en el caso anterior. Porque esto de tener una variable, 45 00:04:43,770 --> 00:04:49,050 que vale verdadero o falso y usarla aquí directamente como condición, pues no es trivial. 46 00:04:49,050 --> 00:04:53,140 Fijaos que lo que tenemos que poner aquí siempre en un If es algo que devuelva verdadero o falso. 47 00:04:53,140 --> 00:04:59,740 Y como la variable esbisiesto vale verdadero o falso, la podemos a poner aquí directamente sin ningún operador. 48 00:04:59,740 --> 00:05:04,790 Este truco de usar la variable tipo lógico para simplificar los programas; pues es bastante habitual. 49 00:05:04,790 --> 00:05:09,630 Ya lo sabéis y lo podéis usar en vuestros programas. Por último vamos a ejecutar. Vamos a comprobar que 50 00:05:09,660 --> 00:05:15,620 esto funciona bien. Que no hemos cambiado nada. El año 79 no era bisiesto; debe salir no fue bisiesto. Muy bien. 51 00:05:15,620 --> 00:05:23,270 El año 76 si era bisiesto, vemos que funciona igual. El año 2000 si era bisiesto, el año 1900 no era bisiesto 52 00:05:23,270 --> 00:05:28,070 pues parece que el programa con estas modificaciones que hemos hecho está funcionando igual y es correcto.