1 00:00:00,000 --> 00:00:03,339 A ver, Lenin, siéntate, porfa. 2 00:00:04,559 --> 00:00:08,060 Vale, pues entonces vamos a ver lo que vosotros seguramente hayáis hecho. 3 00:00:08,560 --> 00:00:09,779 Leer los datos de entrada. 4 00:00:09,900 --> 00:00:15,640 En este caso, el dato de entrada es la nota, no directamente si está aprobado o no, sino la nota. 5 00:00:16,199 --> 00:00:22,460 Y ahora, el resultado ya sabemos que es mostrar el mensaje, lo de siempre. 6 00:00:23,679 --> 00:00:29,679 Pues este mensajito habrá que ver qué valor le damos. 7 00:00:30,000 --> 00:00:45,100 Y este mensajito, ya sabemos que tenemos dos posibilidades, o bien darle promocionas o bien darle repites, son las dos posibilidades. 8 00:00:45,979 --> 00:00:55,859 ¿Y de qué depende darle una cosa o darle otra? De una condición, como aquí la condición puede quedarnos ya un poco larga, vamos a sacarla un boolean fuera. 9 00:00:55,859 --> 00:01:26,329 Y ahora, ¿cuándo promociona? Promociona cuando ocurre una de dos cosas, una de dos. O bien aprueba todo o bien aprueba dos de las tres. Con lo cual, promociona cuando ocurren una de dos posibilidades. 10 00:01:26,329 --> 00:01:58,890 Entonces, la primera posibilidad que apruebe las tres, es decir, que nota uno sea mayor o igual que cinco y que nota dos sea mayor o igual que cinco, estoy muy tonta, mayor o igual que cinco y nota tres mayor o igual que cinco. 11 00:01:58,890 --> 00:02:00,609 Esta es una de las posibilidades 12 00:02:00,609 --> 00:02:02,750 ¿Vale? 13 00:02:02,790 --> 00:02:04,829 Entonces siempre usamos por defecto 14 00:02:04,829 --> 00:02:07,430 La versión con el doble símbolo 15 00:02:07,430 --> 00:02:09,449 A menos que yo decida 16 00:02:09,449 --> 00:02:10,550 Asignar ahí algo 17 00:02:10,550 --> 00:02:11,789 Pero es que aquí no asigno nada 18 00:02:11,789 --> 00:02:12,689 Solo hago comparación 19 00:02:12,689 --> 00:02:13,710 Entonces doble símbolo 20 00:02:13,710 --> 00:02:14,389 Entonces 21 00:02:14,389 --> 00:02:18,629 Si ocurre esto sabemos que promociona seguro 22 00:02:18,629 --> 00:02:20,629 Pero también puede promocionar 23 00:02:20,629 --> 00:02:22,110 Si ocurre 24 00:02:22,110 --> 00:02:25,330 Que apruebe las dos primeras 25 00:02:25,330 --> 00:02:27,270 O que apruebe la segunda y la tercera 26 00:02:27,270 --> 00:02:28,969 o que apruebe la primera y la tercera. 27 00:02:29,490 --> 00:02:31,110 También puede promocionar uno de esos casos. 28 00:02:32,469 --> 00:02:35,389 Entonces, también puede promocionar, 29 00:02:35,889 --> 00:02:37,090 aquí habrá un OR, 30 00:02:37,610 --> 00:02:40,349 de algo que ahora ya es más complicado de escribir, 31 00:02:40,469 --> 00:02:42,550 porque aquí lo que queremos escribir es 32 00:02:42,550 --> 00:02:45,430 que apruebe al menos dos. 33 00:02:46,090 --> 00:02:47,870 Aprobar al menos dos. 34 00:02:48,490 --> 00:02:52,009 No hay en Java una función que sea al menos dos de tres, no. 35 00:02:52,009 --> 00:02:55,430 Todo lo tenemos que programar desde cero, todo básico. 36 00:02:55,430 --> 00:03:12,449 Pues aprobar al menos dos, traducido ya al lenguaje Java, al único que le entiende, al menos dos será que se cumpla que esta y esta son mayores o iguales que cinco, o bien que esta y esta sean mayores o iguales que cinco, o bien que esta y esta sean mayores o iguales que cinco. 37 00:03:12,449 --> 00:03:15,289 Pues todo eso, ni más ni menos que todo eso. 38 00:03:17,110 --> 00:03:52,469 Y esto será que nota 1 y nota 2 mayor o igual que 5, o que nota 2 y nota 3 mayor o igual que 5, o que nota 1 y nota 3 mayor o igual que 5. 39 00:03:52,469 --> 00:03:55,169 vale, a ver 40 00:03:55,169 --> 00:03:57,310 si ahora reviso 41 00:03:57,310 --> 00:03:58,310 los paréntesis 42 00:03:58,310 --> 00:04:03,000 aquí me faltaría este paréntesis 43 00:04:03,000 --> 00:04:04,580 aquí no iría, sino que iría 44 00:04:04,580 --> 00:04:09,280 ahí, luego así de rollo 45 00:04:09,280 --> 00:04:09,960 es la condición 46 00:04:09,960 --> 00:04:13,120 pero es que poniéndolo en una expresión 47 00:04:13,120 --> 00:04:14,180 booleana es que no hay otra 48 00:04:14,180 --> 00:04:17,899 y la de arriba te da cuenta de que 49 00:04:17,899 --> 00:04:20,519 no, a ver 50 00:04:20,519 --> 00:04:22,720 es que no le apuestes y aunque lo ponga aquí 51 00:04:22,720 --> 00:04:23,639 en la expresión aprobada 52 00:04:23,639 --> 00:04:28,180 si, si 53 00:04:28,180 --> 00:04:29,740 Si aprueba al menos dos, ¿vale? 54 00:04:29,779 --> 00:04:30,839 Sí, sí, es el siguiente paso. 55 00:04:31,180 --> 00:04:32,699 Ya no sé qué es, estoy concentrada en quitar esto 56 00:04:32,699 --> 00:04:34,100 y no os he escuchado, pero sí, 57 00:04:34,720 --> 00:04:37,439 era el siguiente paso que íbamos a decir, ¿vale? 58 00:04:38,360 --> 00:04:40,439 Entonces, esto es lo primero que hemos escrito 59 00:04:40,439 --> 00:04:43,060 nosotros pensando, tengo dos posibilidades, 60 00:04:43,060 --> 00:04:46,579 o apruebo las tres o apruebo al menos dos, ¿vale? 61 00:04:46,620 --> 00:04:48,759 Entonces, eso clavado tal cual es, 62 00:04:48,959 --> 00:04:50,160 aprobar las tres es esta, 63 00:04:51,000 --> 00:04:55,279 pero también tengo la posibilidad de aprobar al menos dos, ¿vale? 64 00:04:55,279 --> 00:04:56,699 entonces 65 00:04:56,699 --> 00:04:59,000 nos queda esta expresión 66 00:04:59,000 --> 00:05:01,279 que sí, que tiene sentido, está toda bien 67 00:05:01,279 --> 00:05:03,180 hecha, entonces ahora ya cuando nos queda una expresión 68 00:05:03,180 --> 00:05:05,319 booleana larga, podemos empezar 69 00:05:05,319 --> 00:05:07,360 a plantearnos, espérate a ver si a lo mejor 70 00:05:07,360 --> 00:05:08,939 estoy escribiendo cosas de forma 71 00:05:08,939 --> 00:05:11,420 reventada, espérate a ver, vamos a ver 72 00:05:11,420 --> 00:05:13,220 en realidad no pasa nada 73 00:05:13,220 --> 00:05:15,060 me queda una expresión booleana larga pero yo 74 00:05:15,060 --> 00:05:17,160 he comprobado que expresa la idea 75 00:05:17,160 --> 00:05:18,600 que quiero y la dejo 76 00:05:18,600 --> 00:05:20,720 pues ya está, no pasa nada en realidad 77 00:05:20,720 --> 00:05:22,819 lo único es que bueno 78 00:05:22,819 --> 00:05:25,199 a lo mejor si dedico unos minutos 79 00:05:25,199 --> 00:05:27,120 a pensar en ella, pues puedo 80 00:05:27,120 --> 00:05:29,160 simplificarla y que 81 00:05:29,160 --> 00:05:31,120 refleje exactamente lo mismo. 82 00:05:31,680 --> 00:05:33,000 Que sea una expresión booleana 83 00:05:33,000 --> 00:05:34,240 idéntica y que refleje lo mismo. 84 00:05:34,980 --> 00:05:37,060 Entonces, aquí miramos y pensamos, espérate, 85 00:05:38,680 --> 00:05:40,319 aprobar las tres 86 00:05:40,319 --> 00:05:42,860 está contenido dentro de la idea 87 00:05:42,860 --> 00:05:44,879 de aprobar al menos dos, ¿no? Porque esto es 88 00:05:44,879 --> 00:05:46,980 aprobar las tres o aprobar 89 00:05:46,980 --> 00:05:48,879 al menos dos. Son las dos ideas que he 90 00:05:48,879 --> 00:05:51,079 programado. O apruebo las tres 91 00:05:51,079 --> 00:05:52,660 o apruebo al menos dos. 92 00:05:53,560 --> 00:05:54,959 Pero es que aprobar las tres 93 00:05:54,959 --> 00:05:56,920 es un subconjunto 94 00:05:56,920 --> 00:05:57,699 en realidad 95 00:05:57,699 --> 00:06:00,720 de los casos de aprobar al menos dos 96 00:06:00,720 --> 00:06:02,879 porque cuando apruebas las tres 97 00:06:02,879 --> 00:06:04,180 has aprobado al menos dos 98 00:06:04,180 --> 00:06:06,779 luego la idea de aprobar 99 00:06:06,779 --> 00:06:08,240 al menos dos, que es esta 100 00:06:08,240 --> 00:06:10,839 esta 101 00:06:10,839 --> 00:06:12,540 ya incluye aprobar las tres 102 00:06:12,540 --> 00:06:14,980 porque cuando tú has aprobado las tres 103 00:06:14,980 --> 00:06:16,079 también 104 00:06:16,079 --> 00:06:18,819 has aprobado al menos dos 105 00:06:18,819 --> 00:06:21,100 luego todo esto 106 00:06:21,100 --> 00:06:22,920 no es tanto una lógica 107 00:06:22,920 --> 00:06:25,040 de ir mirando los operadores 108 00:06:25,040 --> 00:06:27,100 de ir cambiando, sino de 109 00:06:27,100 --> 00:06:29,439 nuestros propios enunciados nos hacen llegar 110 00:06:29,439 --> 00:06:31,240 conclusiones, oye si 111 00:06:31,240 --> 00:06:32,879 yo apruebo al menos dos 112 00:06:32,879 --> 00:06:35,800 esa situación me incluye la situación 113 00:06:35,800 --> 00:06:37,060 de haber aprobado las tres 114 00:06:37,060 --> 00:06:38,740 se la incluye 115 00:06:38,740 --> 00:06:39,920 luego 116 00:06:39,920 --> 00:06:43,740 si esto de aquí 117 00:06:43,740 --> 00:06:45,720 va a ser siempre true 118 00:06:45,720 --> 00:06:46,579 si lo es esto 119 00:06:46,579 --> 00:06:51,879 o sea si esto es true, esto va a ser siempre true 120 00:06:51,879 --> 00:06:53,699 siempre, si esto es true 121 00:06:53,699 --> 00:06:55,139 Esto va a ser true seguro 122 00:06:55,139 --> 00:06:56,920 ¿Vale? 123 00:06:59,759 --> 00:07:02,620 Entonces, puedo quitar esta de aquí arriba 124 00:07:02,620 --> 00:07:03,540 ¿Vale? 125 00:07:04,060 --> 00:07:06,279 Puedo simplificar y quitarla 126 00:07:06,279 --> 00:07:08,100 Que si la dejo está mal 127 00:07:08,100 --> 00:07:08,800 No está mal 128 00:07:08,800 --> 00:07:10,920 La condición en realidad significa 129 00:07:10,920 --> 00:07:14,180 Va a ser falsa y true en los mismos casos 130 00:07:14,180 --> 00:07:15,879 Falsa y verdad en los mismos casos 131 00:07:15,879 --> 00:07:17,699 Pero es redundante 132 00:07:17,699 --> 00:07:19,120 Es redundante 133 00:07:19,120 --> 00:07:20,959 Si apruebo al menos dos 134 00:07:20,959 --> 00:07:24,920 Eso incluye el caso de haber aprobado las tres 135 00:07:24,920 --> 00:07:26,040 Si yo apruebo las tres 136 00:07:26,040 --> 00:07:28,379 si yo meto 137 00:07:28,379 --> 00:07:30,439 notas mayores o iguales que 5 138 00:07:30,439 --> 00:07:32,120 es que esta ya se va a hacer true 139 00:07:32,120 --> 00:07:34,120 esta ya se va a hacer true, con lo cual que esta 140 00:07:34,120 --> 00:07:36,339 se haga true me da igual, porque esta ya se va a hacer 141 00:07:36,339 --> 00:07:37,899 true, ¿vale? 142 00:07:38,519 --> 00:07:40,540 sin embargo, si solo apruebo 2 143 00:07:40,540 --> 00:07:42,300 esta 144 00:07:42,300 --> 00:07:43,779 se va a hacer true también 145 00:07:43,779 --> 00:07:45,959 esta se haría false, pero 146 00:07:45,959 --> 00:07:47,899 no me importa que no esté, porque sería 147 00:07:47,899 --> 00:07:49,680 false and true, no me importa quitarla 148 00:07:49,680 --> 00:07:52,259 ¿vale? es decir 149 00:07:52,259 --> 00:07:54,259 repetimos 150 00:07:54,259 --> 00:07:56,519 porque da igual tenerla que no tenerla 151 00:07:56,519 --> 00:07:58,160 vamos a ver los dos casos críticos 152 00:07:58,160 --> 00:08:00,160 si yo apruebo las tres 153 00:08:00,160 --> 00:08:01,720 si apruebo las tres esta es true 154 00:08:01,720 --> 00:08:03,199 pero esta también 155 00:08:03,199 --> 00:08:06,300 con lo cual esta ni haría falta 156 00:08:06,300 --> 00:08:08,600 haberla evaluado porque si apruebo las tres 157 00:08:08,600 --> 00:08:09,920 esta también es true 158 00:08:09,920 --> 00:08:11,259 y como aquí hay un or 159 00:08:11,259 --> 00:08:13,480 esta ni me haría falta haberla mirado 160 00:08:13,480 --> 00:08:14,579 luego en ese caso me sobra 161 00:08:14,579 --> 00:08:19,579 ¿vale? y si no he aprobado 162 00:08:19,579 --> 00:08:20,839 las tres esta es false 163 00:08:20,839 --> 00:08:23,279 pero la que se va a hacer true es esta 164 00:08:23,279 --> 00:08:24,480 si he aprobado al menos dos 165 00:08:24,480 --> 00:08:26,540 luego esta es la que manda 166 00:08:26,540 --> 00:08:28,839 si no he aprobado las tres, la que manda es esta 167 00:08:28,839 --> 00:08:31,259 luego esta también, me da igual que esté o que no esté 168 00:08:31,259 --> 00:08:32,139 sobra también 169 00:08:32,139 --> 00:08:35,639 entonces yo escribo las condiciones 170 00:08:35,639 --> 00:08:37,460 pues me organizo 171 00:08:37,460 --> 00:08:39,639 pienso, vale, estas son las situaciones, las programo 172 00:08:39,639 --> 00:08:41,019 y luego puedo refinar 173 00:08:41,019 --> 00:08:43,799 y dejarla más, se puede quedar más corta 174 00:08:43,799 --> 00:08:44,139 ¿verdad? 175 00:08:44,759 --> 00:08:46,720 entonces esta cláusula de aquí arriba 176 00:08:46,720 --> 00:08:50,809 pues podríamos 177 00:08:50,809 --> 00:08:59,850 podríamos quitarla 178 00:08:59,850 --> 00:09:02,009 o sea, al meterla en estos simbolitos 179 00:09:02,009 --> 00:09:05,870 Esto es como meter esto en un comentario 180 00:09:05,870 --> 00:09:07,490 Que para Java no existe, ¿vale? 181 00:09:09,389 --> 00:09:09,649 ¿Vale? 182 00:09:09,730 --> 00:09:11,909 Son barras de disco, todo lo que se abra 183 00:09:11,909 --> 00:09:13,970 Hasta que se encuentra 184 00:09:13,970 --> 00:09:15,309 El siguiente asterisco barra 185 00:09:15,309 --> 00:09:17,570 Es un comentario 186 00:09:17,570 --> 00:09:18,509 Para Java no existe 187 00:09:18,509 --> 00:09:20,809 Entonces esta cláusula de aquí arriba 188 00:09:20,809 --> 00:09:23,730 Si está, no molesta 189 00:09:23,730 --> 00:09:25,610 Pero le damos trabajo a Java evaluando 190 00:09:25,610 --> 00:09:26,850 Cosas que no le hacen falta 191 00:09:26,850 --> 00:09:28,330 ¿Vale? 192 00:09:29,330 --> 00:09:31,529 Luego esta condición nos valdría 193 00:09:31,529 --> 00:09:33,529 Y es difícil simplificarla más 194 00:09:33,529 --> 00:09:49,669 Ahora lo interesante sería 195 00:09:49,669 --> 00:09:54,740 Vamos a modificar este programa 196 00:09:54,740 --> 00:09:55,919 Ahora después del recreo 197 00:09:55,919 --> 00:09:58,659 Para que no me dé 198 00:09:58,659 --> 00:10:00,740 Solo dos posibilidades, promocionas o repites 199 00:10:00,740 --> 00:10:01,740 Sino para que me dé tres 200 00:10:01,740 --> 00:10:03,419 Promocionas 201 00:10:03,419 --> 00:10:05,860 Promocionas con uno 202 00:10:05,860 --> 00:10:07,080 O repites 203 00:10:07,080 --> 00:10:09,779 Que sería el siguiente refinado 204 00:10:09,779 --> 00:10:11,720 Porque aquí cuando te dice que promocionas 205 00:10:11,720 --> 00:10:12,919 No te dice si con una o no 206 00:10:12,919 --> 00:10:15,679 Entonces el siguiente refinado sería promocionas 207 00:10:15,679 --> 00:10:17,879 Promocionas con una o repites 208 00:10:17,879 --> 00:10:19,580 entonces ¿cómo hacemos esto? 209 00:10:20,659 --> 00:10:21,899 pues ahora después del recreo 210 00:10:21,899 --> 00:10:23,659 lo hacemos, ¿vale?