1 00:00:01,840 --> 00:00:10,039 Bueno, pues de cara simplemente a mencionarlo, para que no nos vayamos de aquí sin saber lo que es. 2 00:00:11,060 --> 00:00:13,599 Los operadores para construir expresiones. 3 00:00:13,919 --> 00:00:25,280 Ya el otro día hicimos un repaso más o menos de todos los aritméticos que involucran números y nos dan números. 4 00:00:25,280 --> 00:00:28,420 Había pequeños, matices 5 00:00:28,420 --> 00:00:30,000 Y el de división en particular 6 00:00:30,000 --> 00:00:31,780 Pues que funcionaba de dos maneras diferentes 7 00:00:31,780 --> 00:00:33,740 Si divide enteros o si divide decimales 8 00:00:33,740 --> 00:00:36,619 Pero bueno, son los que más fáciles nos resultan 9 00:00:36,619 --> 00:00:38,640 Porque sumar, restar, multiplicar, dividir 10 00:00:38,640 --> 00:00:40,679 Y hacer el resto o el módulo lo hemos hecho toda la vida 11 00:00:40,679 --> 00:00:42,439 Pues es lo mismo pero plantado aquí 12 00:00:42,439 --> 00:00:44,579 Ya está, eso en cuanto a los aritméticos 13 00:00:44,579 --> 00:00:46,179 Los relacionales 14 00:00:46,179 --> 00:00:48,600 Los relacionales mezclan 15 00:00:48,600 --> 00:00:50,579 Números o cosas ordenadas 16 00:00:50,579 --> 00:00:51,880 Cosas ordenadas 17 00:00:51,880 --> 00:00:54,640 Que hasta ahora para nosotros son números solo 18 00:00:54,640 --> 00:01:02,600 porque no hemos visto más tipos de datos, pues mezclan números o cosas ordenadas y nos dan booleanos o condiciones, 19 00:01:03,060 --> 00:01:07,560 el menor que, mayor que, eso también nos es fácil usarlos porque los hemos usado toda la vida, 20 00:01:07,680 --> 00:01:12,359 el menor que, mayor que, menor, igual y distinto nos es fácil, pues es lo mismo plantarlo pero aquí, 21 00:01:13,219 --> 00:01:19,340 mezcla números para obtener condiciones y luego ya los operadores lógicos o booleanos 22 00:01:19,340 --> 00:01:24,640 que a lo mejor son los que menos familias nos resultan 23 00:01:24,640 --> 00:01:27,519 porque si no hemos estudiado en matemáticas 24 00:01:27,519 --> 00:01:29,939 pues álgebra de bulo, lógica 25 00:01:29,939 --> 00:01:33,260 pues a lo mejor no estamos acostumbrados al AND y al OR 26 00:01:33,260 --> 00:01:35,439 muchos a lo mejor si lo estáis 27 00:01:35,439 --> 00:01:37,620 porque habéis estudiado lógica en matemáticas 28 00:01:37,620 --> 00:01:40,939 pero el que no lo haya estudiado no se acuerde 29 00:01:40,939 --> 00:01:42,500 te ha dado un sofoco, ¿a que sí? 30 00:01:43,700 --> 00:01:44,799 te ha dado un sofoco 31 00:01:44,799 --> 00:01:49,260 pues el que no haya estudiado lógica 32 00:01:49,260 --> 00:01:50,900 el AND, el OR y el NOT 33 00:01:50,900 --> 00:01:52,099 a lo mejor le suena menos 34 00:01:52,099 --> 00:01:54,859 pero ahora es el momento de que entendamos 35 00:01:54,859 --> 00:01:56,480 de que esos operadores lógicos 36 00:01:56,480 --> 00:01:58,299 el AND, el OR y el NOT 37 00:01:58,299 --> 00:02:01,239 lo que hacen es combinar condiciones 38 00:02:01,239 --> 00:02:02,739 cosas que a la vez 39 00:02:02,739 --> 00:02:04,500 que a su vez son verdad o mentira 40 00:02:04,500 --> 00:02:06,019 para obtener una condición más grande 41 00:02:06,019 --> 00:02:09,020 el AND ya sabemos lo que combina 42 00:02:09,020 --> 00:02:10,639 dos condiciones 43 00:02:10,639 --> 00:02:11,780 las combina con el AND 44 00:02:11,780 --> 00:02:13,379 si ambas son ciertas 45 00:02:13,379 --> 00:02:15,219 la total es cierta 46 00:02:15,219 --> 00:02:17,020 y solo con que alguna de las dos sea falsa 47 00:02:17,020 --> 00:02:18,840 pues entonces la total es falsa 48 00:02:18,840 --> 00:02:21,539 y el OR combina dos condiciones 49 00:02:21,539 --> 00:02:23,539 para dar una condición más compleja 50 00:02:23,539 --> 00:02:25,659 y la condición compleja 51 00:02:25,659 --> 00:02:26,620 será verdadera 52 00:02:26,620 --> 00:02:28,879 solo con que una de las dos lo sea 53 00:02:28,879 --> 00:02:30,520 me da igual cual o las dos 54 00:02:30,520 --> 00:02:33,680 bueno, pues eso es lo que 55 00:02:33,680 --> 00:02:34,659 vimos el otro día 56 00:02:34,659 --> 00:02:37,580 y luego ya, según uno ya va formando expresiones 57 00:02:37,580 --> 00:02:39,599 para hacer programas, pues ya se va familiarizando 58 00:02:39,599 --> 00:02:40,020 con ello 59 00:02:40,020 --> 00:02:42,419 y nos dejamos en el tintero 60 00:02:42,419 --> 00:02:45,740 los operadores que trabajan a nivel de bits 61 00:02:45,740 --> 00:02:48,500 que tiene una utilidad 62 00:02:48,500 --> 00:02:50,400 bueno, relativa 63 00:02:50,400 --> 00:02:52,219 pero a veces pueden ser prácticos 64 00:02:52,219 --> 00:02:54,300 ¿vale? vamos a revisarlos 65 00:02:54,300 --> 00:02:55,879 muy rápidamente aquí en la pizarra 66 00:02:55,879 --> 00:02:57,680 y no es que nos olvidemos de ellos 67 00:02:57,680 --> 00:03:00,439 pero es raro que nos surjan algún ejercicio 68 00:03:00,439 --> 00:03:00,960 es raro 69 00:03:00,960 --> 00:03:02,000 ¿vale? 70 00:03:13,310 --> 00:03:14,770 vale, como va a ser muy rápido 71 00:03:14,770 --> 00:03:16,870 ni voy a borrar el proyector 72 00:03:16,870 --> 00:03:17,949 para no cargármelo 73 00:03:17,949 --> 00:03:19,750 de tanto encender y 74 00:03:19,750 --> 00:03:21,530 apagar y ya está 75 00:03:21,530 --> 00:03:28,379 uy, os he sacado 76 00:03:28,379 --> 00:03:30,080 me podríais denunciar, pero no me habéis dado 77 00:03:30,080 --> 00:03:32,340 ah, si me disteis la autorización, ah no, me dijisteis 78 00:03:32,340 --> 00:03:33,560 que nos importaba la voz 79 00:03:33,560 --> 00:03:35,979 pero la imagen no, ¿quién no me la ha dado? 80 00:03:36,960 --> 00:03:38,219 de palabra sí lo pregunté 81 00:03:38,219 --> 00:03:40,000 me dijisteis todo, no ha pasado nada, así que sí 82 00:03:40,000 --> 00:03:47,819 bueno, pues 83 00:03:47,819 --> 00:03:53,550 ahí se queda 84 00:03:53,550 --> 00:03:59,080 ¿quién quiere salir? 85 00:04:01,080 --> 00:04:08,020 Bueno, pues muy rapidito 86 00:04:08,020 --> 00:04:09,939 Entonces, vosotros 87 00:04:09,939 --> 00:04:11,539 Os tenéis que quedar en la cabeza 88 00:04:11,539 --> 00:04:13,479 Todas estas cosas que os digo tienen que estar en la cabeza 89 00:04:13,479 --> 00:04:15,840 Que existen operadores a nivel de bits 90 00:04:15,840 --> 00:04:17,399 Que tienen ese aspecto 91 00:04:17,399 --> 00:04:18,600 Y si alguna vez 92 00:04:18,600 --> 00:04:21,019 De repente tenéis que hacer operaciones a nivel de bits 93 00:04:21,019 --> 00:04:22,060 Sabemos a qué me refiero con eso 94 00:04:22,060 --> 00:04:23,620 Pues decir, ah, vale, tengo estos operadores 95 00:04:23,620 --> 00:04:26,860 Igual simplifico mi programa si los uso 96 00:04:26,860 --> 00:04:28,720 Voy a ver cómo funcionaba 97 00:04:28,720 --> 00:04:31,879 Eso es lo que tenéis que dejaros aquí registrado. 98 00:04:32,459 --> 00:04:46,139 Vale, pues esos operadores son los que, si yo tengo una variable, por ejemplo, una variable entera, 99 00:04:46,339 --> 00:04:54,319 tengo una variable, esa variable entera, en este caso por ser int, ya sabemos que está formada por 32 bits, los que sean. 100 00:04:54,319 --> 00:05:01,819 ¿Vale? Bueno, 32 bits, los que sean. 101 00:05:01,819 --> 00:05:19,040 Bueno, todos los operadores que hemos visto trabajan con esta variable en su conjunto, si es un número y representa el 27, pues trabaja con el 27, para sumarlo, para restarlo, lo que sea, pues los operadores a nivel de bit son capaces de trabajar con cada bit por separado, simplemente. 102 00:05:19,660 --> 00:05:21,240 ¿Para qué puede ser interesante eso? 103 00:05:21,560 --> 00:05:27,579 Pues a lo mejor para aplicaciones en las cuales a mí me interesa registrar información binaria del tipo 104 00:05:27,579 --> 00:05:31,779 tengo un conjunto de sensores y quiero registrar qué sensor está activo, 105 00:05:32,160 --> 00:05:34,120 este está activo, este no, este está activo, este no. 106 00:05:34,579 --> 00:05:39,379 Entonces dedicar una variable con un montón de bits para indicar si un sensor está activo o no, 107 00:05:39,379 --> 00:05:42,480 a lo mejor es un desperdicio, podemos dedicar una única variable 108 00:05:42,480 --> 00:05:45,600 y cada bit tiene su significado por separado. 109 00:05:46,019 --> 00:05:47,720 Cada bit tiene su significado por separado. 110 00:05:47,720 --> 00:05:50,500 Este asociado al primer sensor, este al segundo 111 00:05:50,500 --> 00:05:52,839 Entonces, en algún tipo de aplicaciones 112 00:05:52,839 --> 00:05:53,740 Podría tener su interés 113 00:05:53,740 --> 00:05:56,420 Pero las aplicaciones industriales 114 00:05:56,420 --> 00:05:58,579 En realidad se harían con otro software 115 00:05:58,579 --> 00:05:59,459 No se harían con este 116 00:05:59,459 --> 00:06:01,139 Entonces, por eso lo mencionamos por encima 117 00:06:01,139 --> 00:06:03,759 Pero, ¿cuáles son? 118 00:06:03,939 --> 00:06:05,740 Pues ahí estaban escritos en el 119 00:06:05,740 --> 00:06:08,879 Documento 120 00:06:08,879 --> 00:06:11,019 Estos 121 00:06:11,019 --> 00:06:14,800 Desplazamiento izquierda-derecha 122 00:06:14,800 --> 00:06:17,199 Y derecha sin signo 123 00:06:17,199 --> 00:06:18,899 Y luego esto es de aquí y listo. 124 00:06:19,139 --> 00:06:21,459 Y nos quedamos tan tranquilos. 125 00:06:24,620 --> 00:06:24,839 Vale. 126 00:06:26,759 --> 00:06:27,279 Este. 127 00:06:28,199 --> 00:06:30,939 Este lo usaríamos de esta manera. 128 00:06:31,199 --> 00:06:31,500 N. 129 00:06:32,879 --> 00:06:34,759 Desplazamiento a la izquierda y aquí una cantidad. 130 00:06:35,019 --> 00:06:35,839 3, por ejemplo. 131 00:06:36,899 --> 00:06:41,279 Pues esta es una expresión que uno asigna a otra variable, como siempre. 132 00:06:42,819 --> 00:06:43,259 ¿Vale? 133 00:06:43,259 --> 00:06:47,459 Es un operador, con lo cual este operador sirve para formar una expresión con él. 134 00:06:47,540 --> 00:06:48,379 Por ejemplo, esto. 135 00:06:48,379 --> 00:06:51,060 Y el resultado se lo asignamos a algún lado 136 00:06:51,060 --> 00:06:54,639 Los resultados de las expresiones van a alguna parte 137 00:06:54,639 --> 00:06:56,339 Suponer que a esa variable, me da igual 138 00:06:56,339 --> 00:06:58,720 Bueno, pues esta expresión lo que significa 139 00:06:58,720 --> 00:06:59,740 Cogemos esta variable 140 00:06:59,740 --> 00:07:03,040 Y desplazamos a la izquierda sus bits 141 00:07:03,040 --> 00:07:05,220 Tantas posiciones como me diga este 142 00:07:05,220 --> 00:07:08,759 Es decir, si n fuera esa variable 143 00:07:08,759 --> 00:07:11,259 Se caerían estos tres, se caerían 144 00:07:11,259 --> 00:07:14,860 Y por aquí entrarían ceros 145 00:07:14,860 --> 00:07:16,160 ¿Vale? 146 00:07:16,959 --> 00:07:18,360 Se hace un desplazamiento 147 00:07:18,360 --> 00:07:21,600 entonces, para eso sirve 148 00:07:21,600 --> 00:07:23,319 se hace el desplazamiento a la izquierda 149 00:07:23,319 --> 00:07:25,160 de tantos bits cayéndose los de aquí 150 00:07:25,160 --> 00:07:26,420 y aquí rellándose con 0 151 00:07:26,420 --> 00:07:28,839 y esa nueva variable que obtenemos 152 00:07:28,839 --> 00:07:30,759 pues se asigna donde yo quiera 153 00:07:30,759 --> 00:07:32,220 vale 154 00:07:32,220 --> 00:07:34,839 puede tener 155 00:07:34,839 --> 00:07:37,220 esta operación en realidad 156 00:07:37,220 --> 00:07:39,800 es una forma rápida 157 00:07:39,800 --> 00:07:41,040 de hacer 158 00:07:41,040 --> 00:07:43,439 multiplicaciones por potencias 159 00:07:43,439 --> 00:07:44,079 de 2, ¿verdad? 160 00:07:44,720 --> 00:07:47,060 porque cada vez que hacemos un desplazamiento a la izquierda 161 00:07:47,060 --> 00:07:48,740 estamos multiplicando por 2 162 00:07:48,740 --> 00:07:50,399 en binario 163 00:07:50,399 --> 00:07:52,540 uno tiene este número 164 00:07:52,540 --> 00:07:53,959 este número es el 1 165 00:07:53,959 --> 00:07:56,379 si desplazamos a la izquierda se convierte en este 166 00:07:56,379 --> 00:07:58,540 2, si lo desplazamos a la izquierda otra vez 167 00:07:58,540 --> 00:07:59,639 se convierte en este 168 00:07:59,639 --> 00:08:03,139 4, si lo desplazamos a la izquierda otra vez 169 00:08:03,139 --> 00:08:04,540 se convierte en este, 8 170 00:08:04,540 --> 00:08:06,779 entonces en realidad cada desplazamiento 171 00:08:06,779 --> 00:08:08,660 a la izquierda es como multiplicar por 2 172 00:08:08,660 --> 00:08:10,860 entonces esto sería igual a 173 00:08:10,860 --> 00:08:13,160 multiplicar por 2 elevado a 3 174 00:08:13,160 --> 00:08:14,899 es una forma rápida de hacer 175 00:08:14,899 --> 00:08:16,779 multiplicaciones por potencias exactas de 2 176 00:08:16,779 --> 00:08:21,560 No va a ser habitual que lo veáis 177 00:08:21,560 --> 00:08:24,819 ¿Quién me ha hablado? 178 00:08:26,120 --> 00:08:26,959 ¿A eso? 179 00:08:28,420 --> 00:08:30,560 Sí, pero está explicado en el documento de habla virtual 180 00:08:30,560 --> 00:08:36,179 Está ahí, está explicado el significado de eso 181 00:08:36,179 --> 00:08:38,399 ¿Vale? Entonces 182 00:08:38,399 --> 00:08:41,740 Este es lo mismo 183 00:08:41,740 --> 00:08:43,100 Desplazamiento a la derecha 184 00:08:43,100 --> 00:08:44,879 Si lo cambiamos aquí 185 00:08:44,879 --> 00:08:50,860 Pues lo mismo 186 00:08:50,860 --> 00:08:52,220 Pero van a la derecha 187 00:08:52,220 --> 00:08:55,240 Se caen estos, se caen estos 188 00:08:55,240 --> 00:08:56,879 ¿Y por aquí qué entra? 189 00:08:57,840 --> 00:09:00,960 Pues por aquí entra depende de lo que valga el bit de signo 190 00:09:00,960 --> 00:09:03,519 No sé si en sistemas informáticos 191 00:09:03,519 --> 00:09:07,179 Habéis visto ya si la codificación complemento a 2, complemento a 1 192 00:09:07,179 --> 00:09:09,899 Pues ya sabéis que este bit es el bit de signo 193 00:09:09,899 --> 00:09:11,139 Que es 1 si es negativo 194 00:09:11,139 --> 00:09:13,139 Entonces, si este es un 1 195 00:09:13,139 --> 00:09:16,259 Lo que se mete por la izquierda son unos 196 00:09:16,259 --> 00:09:18,879 Y eso se hace así para conservar el signo 197 00:09:19,460 --> 00:09:21,440 Del numerito resultante, para conservarlo 198 00:09:21,440 --> 00:09:24,320 Si esto fuera un cero, lo que se mete por aquí son ceros 199 00:09:24,320 --> 00:09:26,799 Simplemente, y lo que salga por aquí se cae 200 00:09:26,799 --> 00:09:29,600 Entonces, el desplazamiento a la derecha 201 00:09:29,600 --> 00:09:32,340 En realidad es como si dividiéramos 202 00:09:32,340 --> 00:09:34,200 Ahora, en potencias hasta el de dos 203 00:09:34,200 --> 00:09:35,600 Es lo mismo, ¿no? 204 00:09:35,600 --> 00:09:37,159 Si yo desplazo a la derecha 205 00:09:37,159 --> 00:09:39,019 Voy dividiendo entre dos 206 00:09:39,019 --> 00:09:41,019 Cada vez que desplazo uno, va, divide entre dos 207 00:09:41,019 --> 00:09:44,480 Bueno, pues esos son los desplazamientos 208 00:09:44,480 --> 00:09:46,159 Luego hay un desplazamiento a la derecha 209 00:09:46,159 --> 00:09:46,740 Que es este 210 00:09:46,740 --> 00:09:49,759 Que es, con tres cositas 211 00:09:49,759 --> 00:09:50,720 Que es sin signo 212 00:09:50,720 --> 00:09:53,639 que es cuando estamos usando la variable 213 00:09:53,639 --> 00:09:54,679 no como si fuera un número 214 00:09:54,679 --> 00:09:56,440 sino a lo mejor la interpretación que os he dicho antes 215 00:09:56,440 --> 00:09:57,759 que cada bit significa una cosa 216 00:09:57,759 --> 00:10:00,799 entonces es desplazamiento a la derecha también del 3 217 00:10:00,799 --> 00:10:03,179 pero aquí se mete ceros 218 00:10:03,179 --> 00:10:05,320 independientemente de lo que valga el bit S 219 00:10:05,320 --> 00:10:06,519 independiente de lo que valga 220 00:10:06,519 --> 00:10:07,980 se meten ceros 221 00:10:07,980 --> 00:10:10,799 entonces podría interesar 222 00:10:10,799 --> 00:10:12,279 si esto no representa un número 223 00:10:12,279 --> 00:10:14,379 sino que representa el estado de sensores 224 00:10:14,379 --> 00:10:16,940 por ejemplo, pues yo quiero meter aquí ceros siempre 225 00:10:16,940 --> 00:10:17,320 no 1 226 00:10:17,320 --> 00:10:19,580 pues es la diferencia entre este y este 227 00:10:19,580 --> 00:10:22,120 lo que se mete por la izquierda 228 00:10:22,120 --> 00:10:22,379 ¿vale? 229 00:10:23,379 --> 00:10:25,340 bueno, esos son los operadores de desplazamiento de bits 230 00:10:25,340 --> 00:10:27,460 que nos permiten mover bits 231 00:10:27,460 --> 00:10:29,659 entonces, esos, nosotros no 232 00:10:29,659 --> 00:10:31,340 claro, pero 233 00:10:31,340 --> 00:10:33,580 Java, la librería de Java 234 00:10:33,580 --> 00:10:35,940 que acompaña y que hace cosas y nosotros saberlo 235 00:10:35,940 --> 00:10:37,259 o sea, cada vez que llamamos 236 00:10:37,259 --> 00:10:39,779 un system.app.println, cada vez que llamamos 237 00:10:39,779 --> 00:10:41,460 ahora mismo estamos llamando a pocas 238 00:10:41,460 --> 00:10:43,480 sentencias ya hechas, pero cada vez que 239 00:10:43,480 --> 00:10:44,980 llamamos a un montón de sentencias de Java 240 00:10:44,980 --> 00:10:47,559 la máquina virtual necesita 241 00:10:47,559 --> 00:10:49,700 llamar a programas 242 00:10:49,700 --> 00:10:51,580 que ya están hechos, que están 243 00:10:51,580 --> 00:10:53,539 en la JRE. Pues 244 00:10:53,539 --> 00:10:55,559 esos programas sí que usan 245 00:10:55,559 --> 00:10:57,600 esto, porque para construir sus variables 246 00:10:57,600 --> 00:10:59,419 pues va llevando los bits de un lado a otro. 247 00:11:00,299 --> 00:11:01,360 Entonces, claro que los usa, 248 00:11:01,639 --> 00:11:03,059 pero esto se usa a muy bajo nivel. 249 00:11:03,720 --> 00:11:04,519 Entonces nosotros 250 00:11:04,519 --> 00:11:07,379 tan a bajo nivel no llegamos. Nosotros 251 00:11:07,379 --> 00:11:09,240 nos interesa el numerito entero, normalmente. 252 00:11:10,299 --> 00:11:11,559 ¿Vale? Pero esto 253 00:11:11,559 --> 00:11:12,879 sí que lo usa. 254 00:11:13,620 --> 00:11:15,759 Las clases de Java de las que tiramos nosotros 255 00:11:15,759 --> 00:11:18,059 lo tenemos más adelante, así que lo usan 256 00:11:18,059 --> 00:11:19,600 porque ya sí que trabajan a bajo nivel 257 00:11:19,600 --> 00:11:20,379 vamos a ver los datos 258 00:11:20,379 --> 00:11:24,120 vale, esto en cuanto a los operadores de desplazamiento 259 00:11:24,120 --> 00:11:25,379 que lo dejamos aquí 260 00:11:25,379 --> 00:11:26,659 y 261 00:11:26,659 --> 00:11:28,580 y luego están 262 00:11:28,580 --> 00:11:30,840 los que no lo veis 263 00:11:30,840 --> 00:11:31,700 pero los 264 00:11:31,700 --> 00:11:34,679 los operadores 265 00:11:34,679 --> 00:11:35,879 de 266 00:11:35,879 --> 00:11:38,200 comparación de bits 267 00:11:38,200 --> 00:11:41,340 estos 268 00:11:41,340 --> 00:11:43,840 los escribo aquí y ahora 269 00:11:43,840 --> 00:11:45,299 a ver 270 00:11:45,299 --> 00:11:51,460 Este, este 271 00:11:51,460 --> 00:11:55,870 Y este, este 272 00:11:55,870 --> 00:12:00,250 ¿Vale? Estos cuatro operadores 273 00:12:00,250 --> 00:12:09,029 Vale 274 00:12:09,029 --> 00:12:13,759 Estos se parecen 275 00:12:13,759 --> 00:12:14,899 Bueno, más que se parecen 276 00:12:14,899 --> 00:12:17,419 Este y este es que son el mismo 277 00:12:17,419 --> 00:12:19,580 De hecho, a los operadores lógicos 278 00:12:19,580 --> 00:12:21,360 Que habíamos ya visto el otro día 279 00:12:21,360 --> 00:12:23,279 ¿Verdad? El otro día ya habíamos visto 280 00:12:23,279 --> 00:12:24,779 Que si yo tengo una condición 281 00:12:24,779 --> 00:12:26,440 Esta, por ejemplo 282 00:12:26,440 --> 00:12:28,559 La condición C1 283 00:12:28,559 --> 00:12:30,379 Que tiene el valor que tenga 284 00:12:30,379 --> 00:12:34,639 tengo otra condición 285 00:12:34,639 --> 00:12:36,019 la condición c2 286 00:12:36,019 --> 00:12:37,360 que tiene el valor que tenga 287 00:12:37,360 --> 00:12:40,419 ahora yo puedo hacer por ejemplo 288 00:12:40,419 --> 00:12:43,299 c1 igual a c1 289 00:12:43,299 --> 00:12:45,220 a c2 290 00:12:45,220 --> 00:12:47,600 esto es perfectamente válido 291 00:12:47,600 --> 00:12:47,899 ¿verdad? 292 00:12:48,620 --> 00:12:50,080 este operador lógico 293 00:12:50,080 --> 00:12:53,100 es el AND de dos cosas lógicas 294 00:12:53,100 --> 00:12:53,860 de dos condiciones 295 00:12:53,860 --> 00:12:56,100 si esta es verdad y esta es verdad 296 00:12:56,100 --> 00:12:57,820 el resultado final es verdad 297 00:12:57,820 --> 00:12:58,919 y ese true va ahí 298 00:12:58,919 --> 00:13:01,659 Ese es el uso que habíamos visto 299 00:13:01,659 --> 00:13:03,360 Bueno, pero es que este operador 300 00:13:03,360 --> 00:13:05,559 También funciona 301 00:13:05,559 --> 00:13:07,899 También lo puedo poner yo combinando números 302 00:13:07,899 --> 00:13:10,399 Es decir, esto también sería válido 303 00:13:10,399 --> 00:13:12,120 N1 lo que sea 304 00:13:12,120 --> 00:13:12,980 Igual a 7 305 00:13:12,980 --> 00:13:15,639 N2 igual a 5, por ejemplo 306 00:13:15,639 --> 00:13:17,519 Y ahora yo hago esto 307 00:13:17,519 --> 00:13:20,799 N1 igual a 308 00:13:20,799 --> 00:13:22,500 N2 309 00:13:22,500 --> 00:13:23,480 And 310 00:13:23,480 --> 00:13:26,139 N1, por ejemplo 311 00:13:26,139 --> 00:13:29,379 Con lo que sabemos hasta ahora diríamos 312 00:13:29,379 --> 00:13:31,299 A ver, este es un operador lógico 313 00:13:31,299 --> 00:13:33,059 Que hace el AND lógico 314 00:13:33,059 --> 00:13:35,019 Entre dos cosas que son condiciones 315 00:13:35,019 --> 00:13:36,860 Como aquí 316 00:13:36,860 --> 00:13:39,179 Pero esto no son condiciones, son números 317 00:13:39,179 --> 00:13:42,539 ¿Cómo es que puedo poner este operador? 318 00:13:42,940 --> 00:13:45,840 Vale, pues es que este operador tiene otra interpretación 319 00:13:45,840 --> 00:13:47,539 Funciona de otra manera 320 00:13:47,539 --> 00:13:49,539 Cuando combina números 321 00:13:49,539 --> 00:13:51,519 Cuando combina números 322 00:13:51,519 --> 00:13:52,480 Funciona de otra manera 323 00:13:52,480 --> 00:13:54,500 Cuando combina condiciones 324 00:13:54,500 --> 00:13:57,519 Funciona tal y como hemos visto el otro día 325 00:13:57,519 --> 00:13:59,879 Pero cuando combina números 326 00:13:59,879 --> 00:14:01,299 Funciona de otra manera 327 00:14:01,299 --> 00:14:02,840 ¿Y cómo funciona? 328 00:14:04,840 --> 00:14:06,039 Bueno, pues 329 00:14:06,039 --> 00:14:08,240 Si aquí tuviéramos N1, por ejemplo 330 00:14:08,240 --> 00:14:10,039 Con sus bits 331 00:14:10,039 --> 00:14:14,929 Y aquí tuviéramos 332 00:14:14,929 --> 00:14:17,750 Este es N1 333 00:14:17,750 --> 00:14:21,950 Y este es N2 334 00:14:21,950 --> 00:14:36,840 Por ejemplo, ese es N1 y ese es N2 335 00:14:36,840 --> 00:14:39,679 vale, pues que hace el AND este 336 00:14:39,679 --> 00:14:41,220 opera a nivel de bits 337 00:14:41,220 --> 00:14:42,879 es un operador a nivel de bits, lo hemos dicho 338 00:14:42,879 --> 00:14:45,340 y que es lo que hace, va bit por bit 339 00:14:45,340 --> 00:14:47,799 haciendo una operación de AND 340 00:14:47,799 --> 00:14:49,840 entre ceros y unos, como si el cero fuera 341 00:14:49,840 --> 00:14:51,220 false y el uno fuera true 342 00:14:51,220 --> 00:14:54,120 es lo que hace, entonces va uno por uno 343 00:14:54,120 --> 00:14:55,259 cero y uno 344 00:14:55,259 --> 00:14:57,899 cero y uno, el AND 345 00:14:57,899 --> 00:14:59,019 vale, es cero 346 00:14:59,019 --> 00:15:01,519 uno y cero 347 00:15:01,519 --> 00:15:03,820 imaginaos que el uno es true 348 00:15:03,820 --> 00:15:06,139 y el cero es false, pues uno y cero 349 00:15:06,139 --> 00:15:08,600 es cero, uno y cero es cero 350 00:15:08,600 --> 00:15:10,279 uno y uno, aquí tengo dos true 351 00:15:10,279 --> 00:15:12,440 pues uno, y así va bit por bit 352 00:15:12,440 --> 00:15:14,600 por separado, cero y cero, cero, uno y uno 353 00:15:14,600 --> 00:15:15,960 uno, uno y uno, y uno 354 00:15:15,960 --> 00:15:18,559 cero y cero, cero y uno 355 00:15:18,559 --> 00:15:20,539 cero, cero, cero 356 00:15:20,539 --> 00:15:21,720 cero y uno 357 00:15:21,720 --> 00:15:23,580 eso es lo que hace 358 00:15:23,580 --> 00:15:26,379 va bit por bit como si hiciera 359 00:15:26,379 --> 00:15:28,519 un and donde el uno es true y el cero 360 00:15:28,519 --> 00:15:28,940 es false 361 00:15:28,940 --> 00:15:35,679 entonces esto en realidad se puede interpretar 362 00:15:35,679 --> 00:15:36,960 como por ejemplo 363 00:15:36,960 --> 00:15:44,919 apagar y encender. Es decir, si tú haces un AND con 0, por ejemplo, pues obviamente 364 00:15:44,919 --> 00:15:53,240 estás poniéndolo todo a 0. Pero si quieres poner todos los sensores o lo que fuera a 365 00:15:53,240 --> 00:16:01,139 0 menos el último, pues harías un AND con 1. Si haces un AND con 1, este lo dejas como 366 00:16:01,139 --> 00:16:06,740 está y los demás los pones todos a 0. ¿Verdad? Si haces un AND con 1, estás haciendo 367 00:16:06,740 --> 00:16:19,370 un AND con esto, con todo esto. Entonces, ¿eso qué significa? Que este sensor de aquí 368 00:16:19,370 --> 00:16:22,669 se va a quedar con el estado que tuviera, si tenía un 0 se quedaba con 0, si tenía 369 00:16:22,669 --> 00:16:28,490 un 1 se quedaba con 1 y los demás todos a 0. Más o menos se podría hacer la relativa 370 00:16:28,490 --> 00:16:32,090 utilidad que pudiera tener este operador. Pero a vosotros lo que se os tiene que quedar 371 00:16:32,090 --> 00:16:40,370 es que este operador AND funciona tanto para combinar condiciones de la manera que vimos 372 00:16:40,370 --> 00:16:42,389 el otro día, como para combinar 373 00:16:42,389 --> 00:16:43,870 números, en realidad. 374 00:16:44,149 --> 00:16:46,450 Ese es el uso más extraño que vais a ver, pero sí que podéis 375 00:16:46,450 --> 00:16:48,370 verlo. Y cuando combina 376 00:16:48,370 --> 00:16:49,850 números, lo que hace es 377 00:16:49,850 --> 00:16:51,389 va bit por bit 378 00:16:51,389 --> 00:16:53,809 haciendo el AND 379 00:16:53,809 --> 00:16:56,350 interpretando el 1 como true y el 0 como false. 380 00:16:57,129 --> 00:16:58,690 Es como si hiciera una suma. 381 00:16:58,769 --> 00:16:59,610 Como si hiciera una suma. 382 00:17:00,269 --> 00:17:02,230 Porque 0 y 0 es 0, 0 y 1 es 1 383 00:17:02,230 --> 00:17:04,470 y 1 y 1, pues, una suma binaria. 384 00:17:07,690 --> 00:17:08,289 Y el OR 385 00:17:08,289 --> 00:17:09,369 que es este, 386 00:17:11,900 --> 00:17:13,039 el OR lo mismo 387 00:17:13,039 --> 00:17:14,519 Pero 388 00:17:14,519 --> 00:17:16,759 Haciendo un or 389 00:17:16,759 --> 00:17:18,000 0 y 0 sería 0 390 00:17:18,000 --> 00:17:19,240 1 y 0 sería 1 391 00:17:19,240 --> 00:17:20,660 0 y 0 sería 0 392 00:17:20,660 --> 00:17:22,180 1 y 0 sería 1 393 00:17:22,180 --> 00:17:23,539 Lo mismo 394 00:17:23,539 --> 00:17:24,960 A 1 por 1 395 00:17:24,960 --> 00:17:31,150 ¿Vale? 396 00:17:32,910 --> 00:17:34,809 Y luego está el negado 397 00:17:34,809 --> 00:17:35,410 Por ejemplo 398 00:17:35,410 --> 00:17:38,509 Yo podría hacer n1 igual al negado de n2 399 00:17:38,509 --> 00:17:40,349 De ese otro operador que está en la lista 400 00:17:40,349 --> 00:17:41,069 El negado 401 00:17:41,069 --> 00:17:43,049 El negado es cambio 402 00:17:43,049 --> 00:17:44,430 Cojo n2 403 00:17:44,430 --> 00:17:45,990 Y cambio los bits 404 00:17:45,990 --> 00:17:47,450 El que tenga 0 se pone a 1 405 00:17:47,450 --> 00:17:48,750 y el que tiene 1 se pone a 0 406 00:17:48,750 --> 00:17:50,390 el resultado va a la variable que yo quiera 407 00:17:50,390 --> 00:17:55,740 bueno, eso es un poco 408 00:17:55,740 --> 00:17:57,420 por encima de estos operadores 409 00:17:57,420 --> 00:18:00,220 que tenéis que registrar que hay operadores 410 00:18:00,220 --> 00:18:01,740 que actúan a nivel de bits 411 00:18:01,740 --> 00:18:06,329 porque en algunas aplicaciones 412 00:18:06,329 --> 00:18:07,809 os podéis encontrar que están ahí 413 00:18:07,809 --> 00:18:10,309 y luego ya 414 00:18:10,309 --> 00:18:12,130 las peculiaridades de uso de cada uno 415 00:18:12,130 --> 00:18:13,890 pues si lo necesitáis 416 00:18:13,890 --> 00:18:15,869 ya podéis ir a ver, este es exactamente como funcionaba 417 00:18:15,869 --> 00:18:17,390 pero os tenéis que tener identificados en la cabeza 418 00:18:17,390 --> 00:18:19,630 y sobre todo lo que no tenéis es que volveros loco 419 00:18:19,630 --> 00:18:22,089 que en un código veis un AND 420 00:18:22,089 --> 00:18:24,190 que combina números, es decir, pero ¿cómo puede ser 421 00:18:24,190 --> 00:18:25,309 si el AND es de condiciones? 422 00:18:25,930 --> 00:18:27,990 Puede ser, entonces se interpreta 423 00:18:27,990 --> 00:18:28,630 como hemos dicho. 424 00:18:30,170 --> 00:18:33,549 ¿Vale? Vale. 425 00:18:33,990 --> 00:18:47,539 Pues, bueno, 426 00:18:47,640 --> 00:18:49,920 pues entonces, para construir expresiones 427 00:18:49,920 --> 00:18:51,559 ya sabemos 428 00:18:51,559 --> 00:18:53,160 las herramientas que tenemos. 429 00:18:53,980 --> 00:18:55,759 Porque tenemos las variables 430 00:18:55,759 --> 00:18:56,960 de los tipos que hemos dicho 431 00:18:56,960 --> 00:18:58,460 y los operadores. 432 00:18:59,460 --> 00:19:01,299 Y podemos combinar variables 433 00:19:01,299 --> 00:19:08,759 variables y operadores para construir expresiones. Ahora ya el problema real es, cuando yo tengo 434 00:19:08,759 --> 00:19:14,240 una situación real, construir la expresión que la refleja. Ese es el problema, porque 435 00:19:14,240 --> 00:19:18,339 eso ya se trata de que yo lo piense. Pero las herramientas que tenemos, que son los 436 00:19:18,339 --> 00:19:22,000 operadores y las variables con los tipos que conocemos, ya los conocemos todos. Eso es 437 00:19:22,000 --> 00:19:26,400 lo que tenemos para hacer expresiones. Ahora se trata de que nuestras expresiones reflejen 438 00:19:27,019 --> 00:19:31,140 el problema que yo estoy resolviendo. Que lo reflejen bien y que no me equivoco yo poniendo 439 00:19:31,140 --> 00:19:33,180 poniéndolas, que te da cuidado con 440 00:19:33,180 --> 00:19:35,619 la precedencia de los operadores 441 00:19:35,619 --> 00:19:37,380 que ponga paréntesis si hacen falta, etc. 442 00:19:37,519 --> 00:19:38,339 Ahora se trata de eso. 443 00:19:39,519 --> 00:19:39,700 ¿Vale? 444 00:19:40,960 --> 00:19:42,220 Bueno, pues entonces 445 00:19:42,220 --> 00:19:45,980 cerramos ya esto 446 00:19:45,980 --> 00:19:51,490 de los operadores 447 00:19:51,490 --> 00:19:52,009 y ahora 448 00:19:52,009 --> 00:19:54,170 siguiente 449 00:19:54,170 --> 00:19:57,410 de todos los ejercicios que habéis 450 00:19:57,410 --> 00:19:59,250 hecho, que en principio 451 00:19:59,250 --> 00:20:01,230 serían estos primeritos que en el aula virtual 452 00:20:01,230 --> 00:20:03,450 que los puse yo ahí para que practicarais 453 00:20:03,450 --> 00:20:03,950 un poco 454 00:20:03,950 --> 00:20:06,950 a ver, estoy aquí con los distintos tokens 455 00:20:06,950 --> 00:20:08,670 que debería decir los distintos elementos 456 00:20:08,670 --> 00:20:10,589 para que familiarizarais 457 00:20:10,589 --> 00:20:11,910 pues esta línea hay que poner al principio 458 00:20:11,910 --> 00:20:13,789 esta es la declaración de una variable 459 00:20:13,789 --> 00:20:15,529 y este es su tipo de dato 460 00:20:15,529 --> 00:20:19,089 vale, bueno, estos ejercicios 461 00:20:19,089 --> 00:20:21,049 que los dejé ahí 462 00:20:21,049 --> 00:20:23,690 para que practicarais a los que no hemos hecho referencia 463 00:20:23,690 --> 00:20:24,650 estaban por un lado 464 00:20:24,650 --> 00:20:26,869 y luego por otro lado estaba 465 00:20:26,869 --> 00:20:29,609 estos del lunes 466 00:20:29,609 --> 00:20:30,849 vale 467 00:20:30,849 --> 00:20:32,930 bueno pues a ver 468 00:20:32,930 --> 00:20:34,369 ahora es el momento de 469 00:20:34,369 --> 00:20:37,230 que hagamos algunos, de que me digáis que dudas 470 00:20:37,230 --> 00:20:38,789 habéis encontrado algún ejercicio 471 00:20:38,789 --> 00:20:41,390 de que trabajemos sobre ellos 472 00:20:41,390 --> 00:20:42,230 antes de empezar 473 00:20:42,230 --> 00:20:44,670 ya el tema siguiente 474 00:20:44,670 --> 00:20:48,930 entonces hay alguien que sienta que no lo tiene todo 475 00:20:48,930 --> 00:20:50,029 absolutamente bajo control 476 00:20:50,029 --> 00:20:54,650 todo el mundo lo tenéis todo bajo control 477 00:20:54,650 --> 00:20:55,650 que suerte 478 00:20:55,650 --> 00:20:58,069 o sea nadie tiene ninguna duda 479 00:20:58,069 --> 00:20:59,950 ¿todo el mundo ha hecho todos los ejercicios exactos bien? 480 00:21:00,029 --> 00:21:01,369 ¿nadie quiere que hagamos ninguno aquí? 481 00:21:08,190 --> 00:21:08,930 vale, o sea, estos 482 00:21:08,930 --> 00:21:11,450 a ver, el problema de estos últimos es 483 00:21:11,450 --> 00:21:13,269 que efectivamente 484 00:21:13,269 --> 00:21:15,410 ya hay que elaborar 485 00:21:15,410 --> 00:21:17,269 condiciones y combinar 486 00:21:17,269 --> 00:21:19,230 esas condiciones con operadores booleanos 487 00:21:19,230 --> 00:21:20,890 y luego ya como 488 00:21:20,890 --> 00:21:22,950 el código ya va a depender 489 00:21:22,950 --> 00:21:24,690 va a hacer unas cosas u otras de esa condición 490 00:21:24,690 --> 00:21:25,890 pues tengo que tener un operador alternativo 491 00:21:25,890 --> 00:21:28,930 entonces ahí se hace un poquito más 492 00:21:28,930 --> 00:21:31,170 dioso, vale, a ver 493 00:21:31,170 --> 00:21:33,829 ¿Cuál podemos hacer? 494 00:21:33,930 --> 00:21:34,890 ¿Cuál queréis que hagamos? 495 00:21:35,569 --> 00:21:37,069 ¿Cuál os ha dado más 496 00:21:37,069 --> 00:21:38,410 Ansiedad? 497 00:21:38,950 --> 00:21:40,029 Si es que alguno os ha dado ansiedad 498 00:21:40,029 --> 00:21:43,490 ¿Por qué estáis tan pasivos? 499 00:21:52,619 --> 00:21:53,980 A ver, por ejemplo 500 00:21:53,980 --> 00:21:54,740 El 20 501 00:21:54,740 --> 00:21:57,660 ¿Alguien tendría algún problema en hacer el 20? 502 00:21:59,980 --> 00:22:15,849 A ver, vamos a ver 503 00:22:15,849 --> 00:22:18,769 Vamos a hacer algunos sueltos 504 00:22:18,769 --> 00:22:20,329 A modo de repaso 505 00:22:20,329 --> 00:22:22,930 Y sobre todo con la intención de que 506 00:22:22,930 --> 00:22:24,289 os despertéis 507 00:22:24,289 --> 00:22:26,650 venga, vamos a poner aquí 508 00:22:26,650 --> 00:22:36,160 a ver, que ya estoy liando 509 00:22:36,160 --> 00:22:37,099 demasiado el proyecto 510 00:22:37,099 --> 00:22:42,839 vale, venga, pues voy a hacer 511 00:22:42,839 --> 00:22:45,359 otro proyecto diferente, este de primeras pruebas 512 00:22:45,359 --> 00:22:47,539 es en el que he ido recogiendo todo lo que hemos probado 513 00:22:47,539 --> 00:22:49,240 aquí en clase, que es el caso de una aula virtual 514 00:22:49,240 --> 00:22:50,220 pues 515 00:22:50,220 --> 00:22:53,339 voy a, ahora empezamos otro proyecto 516 00:22:53,339 --> 00:22:55,359 donde vamos a meter los ejercicios varios 517 00:22:55,359 --> 00:22:57,220 que a lo mejor revisemos ahora 518 00:22:57,220 --> 00:22:59,079 y lo subo como proyecto separado 519 00:22:59,079 --> 00:23:01,299 venga, pues este proyecto 520 00:23:01,299 --> 00:23:02,220 se va a llamar 521 00:23:02,220 --> 00:23:13,509 Ejercicios varios, tema 1 522 00:23:13,509 --> 00:23:16,490 Ahora, ejercicios varios, tema 1 523 00:23:16,490 --> 00:23:17,390 Venga, ya está 524 00:23:17,390 --> 00:23:26,400 Vale, pues venga, por ejemplo 525 00:23:26,400 --> 00:23:30,720 Hemos dicho, este de aquí 526 00:23:30,720 --> 00:23:32,180 Voy a copiar esto 527 00:23:32,180 --> 00:23:49,839 Y este es el 20 528 00:23:49,839 --> 00:23:55,730 Espera 529 00:23:55,730 --> 00:23:59,420 Ejercicio 20, lunes 530 00:23:59,420 --> 00:24:02,140 vale, juicio 20 531 00:24:02,140 --> 00:24:04,200 lunes, y vamos a poner aquí 532 00:24:04,200 --> 00:24:07,660 su 533 00:24:07,660 --> 00:24:14,049 venga 534 00:24:14,049 --> 00:24:15,430 esto de aquí 535 00:24:15,430 --> 00:24:17,970 mejor así porque no es jabalón 536 00:24:17,970 --> 00:24:30,119 vale, pues venga 537 00:24:30,119 --> 00:24:32,279 primero de siempre 538 00:24:32,279 --> 00:24:33,779 uno lo ha denunciado, se asegura 539 00:24:33,779 --> 00:24:35,400 de que entiende bien lo que tiene que hacer 540 00:24:35,400 --> 00:24:37,880 y cuando lo tiene ya claro, porque está 541 00:24:37,880 --> 00:24:39,940 bien especificado y no necesita más aclaraciones 542 00:24:39,940 --> 00:24:42,240 ya se plantea como construirlo 543 00:24:42,240 --> 00:24:49,599 Y de nuevo no se lo plantea en secuencia, al menos que sea muy sencillo, esta a lo mejor podría plantearse en secuencia, pero bueno. 544 00:24:50,960 --> 00:25:00,740 Aquí, resultado del programa, resultado del programa, mostrar un mensaje, resultado del programa. 545 00:25:02,140 --> 00:25:08,500 Decir si el estudiante aprobó al menos una de ellas o no aprobó al menos una de ellas. 546 00:25:08,500 --> 00:25:31,299 Luego el resultado es uno de dos posibles mensajes, ¿verdad? El resultado este de aquí se mueve entre dos posibilidades, se mueve entre decir aprobó o no aprobó, ¿vale? 547 00:25:31,299 --> 00:25:33,539 Entonces, pues esto es lo de siempre 548 00:25:33,539 --> 00:25:35,859 Resultado va a ser una cosa u otra 549 00:25:35,859 --> 00:25:38,319 Va a ser una cosa u otra 550 00:25:38,319 --> 00:25:42,039 En función de una condición 551 00:25:42,039 --> 00:25:44,259 Va a ser una cosa u otra en función de una condición 552 00:25:44,259 --> 00:25:46,700 Y esa cosa u otra, ¿cuál va a ser? 553 00:25:47,619 --> 00:25:50,900 Aprobó al menos una 554 00:25:50,900 --> 00:25:54,039 No aprobó ninguna 555 00:25:54,039 --> 00:26:03,960 No aprobó ninguna 556 00:26:03,960 --> 00:26:09,559 ¿Vale? Entre estas dos posibilidades se mueve 557 00:26:09,559 --> 00:26:12,539 La condición cuál va a ser 558 00:26:12,539 --> 00:26:16,839 Aprobar al menos una de dos notas 559 00:26:16,839 --> 00:26:18,960 Que son los datos de entrada al programa 560 00:26:18,960 --> 00:26:21,220 Luego el programa tiene datos de entrada 561 00:26:21,220 --> 00:26:23,099 Bueno, pues vamos a leerlos 562 00:26:23,099 --> 00:26:43,920 Vale 563 00:26:43,920 --> 00:26:48,259 Vale, pues venga, los leemos 564 00:26:48,259 --> 00:26:57,210 Introduzca nota primera 565 00:26:57,210 --> 00:27:02,950 nota1 566 00:27:02,950 --> 00:27:07,130 igual a scan.nextint 567 00:27:07,130 --> 00:27:09,190 e introduzca 568 00:27:09,190 --> 00:27:09,769 nota2 569 00:27:09,769 --> 00:27:13,420 joder, esto no era 570 00:27:13,420 --> 00:27:16,119 vale 571 00:27:16,119 --> 00:27:19,099 introduzca 572 00:27:19,099 --> 00:27:19,900 nota2 573 00:27:19,900 --> 00:27:22,859 vale, datos de entrada 574 00:27:22,859 --> 00:27:24,859 ya están, no hay más 575 00:27:24,859 --> 00:27:26,799 datos de entrada, son estos dos 576 00:27:26,799 --> 00:27:28,779 uno, una cosa que uno hace 577 00:27:28,779 --> 00:27:29,819 a menudo y no hay que hacer 578 00:27:29,819 --> 00:27:31,640 es inventarse información 579 00:27:31,640 --> 00:27:33,980 uno tiene que tener muy claro su programa 580 00:27:33,980 --> 00:27:36,180 qué información de partida tiene 581 00:27:36,180 --> 00:27:37,960 y no inventarse la información adicional 582 00:27:37,960 --> 00:27:40,480 este solo tiene como información 583 00:27:40,480 --> 00:27:42,299 de partida dos notas 584 00:27:42,299 --> 00:27:44,759 las pide y las lee 585 00:27:44,759 --> 00:27:46,819 y ya no se puede inventar más información 586 00:27:46,819 --> 00:27:48,619 entonces con esas dos notas 587 00:27:48,619 --> 00:27:50,019 tiene que ser capaz de 588 00:27:50,019 --> 00:27:51,359 construir el resultado 589 00:27:51,359 --> 00:27:54,380 ya hemos dicho que el resultado es 590 00:27:54,380 --> 00:27:56,799 o este string 591 00:27:56,799 --> 00:27:57,859 o este string 592 00:27:57,859 --> 00:28:00,700 vale, pero depende entonces de una condición 593 00:28:00,700 --> 00:28:02,299 que yo tengo que ser capaz 594 00:28:02,299 --> 00:28:03,660 de construir 595 00:28:03,660 --> 00:28:05,720 con los datos que tengo 596 00:28:05,720 --> 00:28:08,140 y los datos que tengo son nota 1 y nota 2 597 00:28:08,140 --> 00:28:08,920 no tengo más datos 598 00:28:08,920 --> 00:28:11,759 vale, pues esa condición 599 00:28:11,759 --> 00:28:13,480 ahora es cuando la leemos despacio 600 00:28:13,480 --> 00:28:15,200 y esa condición nos dice 601 00:28:15,200 --> 00:28:17,640 la condición que yo tengo que elaborar 602 00:28:17,640 --> 00:28:19,200 es una condición que tiene que ser verdad 603 00:28:19,200 --> 00:28:21,740 si al menos una de las dos notas 604 00:28:21,740 --> 00:28:23,079 es mayor o igual que 5 605 00:28:23,079 --> 00:28:24,980 y falsa en caso contrario 606 00:28:24,980 --> 00:28:27,720 pues ahora ya entendiendo ese enunciado 607 00:28:27,720 --> 00:28:30,039 tenemos que trasladarlo a una expresión 608 00:28:30,039 --> 00:28:33,900 que combine los datos de entrada y los operadores que conocemos. 609 00:28:34,740 --> 00:28:37,440 Pues venga, ¿cómo expresamos en código la condición 610 00:28:37,440 --> 00:28:42,519 al menos una de las dos notas es mayor o igual que 5? 611 00:28:43,380 --> 00:28:44,619 ¿Cómo lo escribiríais, Claudia? 612 00:28:45,759 --> 00:28:46,720 Díctame la tal cual. 613 00:28:48,579 --> 00:28:50,400 Lo que acabo de decir, que es, 614 00:28:50,900 --> 00:28:54,440 díctame cómo escribo yo aquí la condición Java 615 00:28:54,440 --> 00:28:58,240 que expresa esa idea, que al menos una de las dos es mayor o igual que 5. 616 00:29:00,039 --> 00:29:08,880 Repite 617 00:29:08,880 --> 00:29:18,269 Esta es la condición que expresa 618 00:29:18,269 --> 00:29:20,470 Para ti que al menos una de las dos 619 00:29:20,470 --> 00:29:21,549 Sea mayor o igual que 5 620 00:29:21,549 --> 00:29:26,420 Claro, no es lo mismo I o O 621 00:29:26,420 --> 00:29:28,279 No, no es lo mismo 622 00:29:28,279 --> 00:29:31,809 ¿Vale? 623 00:29:33,710 --> 00:29:35,630 Entonces, aquí en esta condición 624 00:29:35,630 --> 00:29:36,930 Parece más o menos claro 625 00:29:36,930 --> 00:29:39,309 Pero muchas veces en otro tipo de condiciones 626 00:29:39,309 --> 00:29:40,250 Más elaboradas 627 00:29:40,250 --> 00:29:42,430 No es tan fácil distinguir 628 00:29:42,430 --> 00:29:44,569 Si es un AND o un OR lo que nos interesa 629 00:29:44,569 --> 00:29:46,750 Aquí sí, aquí de 630 00:29:46,750 --> 00:29:48,410 Al menos una de las dos 631 00:29:48,410 --> 00:29:50,650 Lo tenemos que traducir nosotros al idioma 632 00:29:50,650 --> 00:29:53,910 O una o la otra 633 00:29:53,910 --> 00:29:55,670 O una y la otra 634 00:29:55,670 --> 00:29:57,349 Tenemos que traducirlo a ese idioma 635 00:29:57,349 --> 00:29:58,130 A lo o a li 636 00:29:58,130 --> 00:30:00,470 Aquí traducirlo a lo o a li es fácil 637 00:30:00,470 --> 00:30:01,990 Si es al menos una de las dos 638 00:30:01,990 --> 00:30:03,849 O la primera o la segunda 639 00:30:03,849 --> 00:30:06,950 Pues traducirlo o la primera o la segunda 640 00:30:06,950 --> 00:30:08,609 Es el or lógico y el operador 641 00:30:08,609 --> 00:30:09,930 Or, lo booleano or 642 00:30:09,930 --> 00:30:10,349 ¿Vale? 643 00:30:13,930 --> 00:30:15,450 Entonces, ¿puedo ponerlo así? 644 00:30:16,069 --> 00:30:17,329 O puedo ponerlo así 645 00:30:17,329 --> 00:30:18,150 ¿Verdad? 646 00:30:18,509 --> 00:30:21,309 ¿cómo lo pondríais? 647 00:30:21,369 --> 00:30:22,130 ¿qué elegiríais? 648 00:30:23,029 --> 00:30:24,529 ¿ponerlo con uno o con dos? 649 00:30:25,230 --> 00:30:26,009 ¿con dos? 650 00:30:26,609 --> 00:30:28,109 ¿por qué elegirías con dos? 651 00:30:28,470 --> 00:30:29,410 ya que estás lanza 652 00:30:29,410 --> 00:30:30,609 dime 653 00:30:30,609 --> 00:30:36,279 no, mala respuesta 654 00:30:36,279 --> 00:30:40,440 o sea, si alguien ha elegido con dos 655 00:30:40,440 --> 00:30:42,220 tendrá un criterio para elegir con dos 656 00:30:42,220 --> 00:30:44,539 no pasa nada, que podéis contestar mal 657 00:30:44,539 --> 00:30:47,140 o decirlo mal, pero mejor si estáis vivos 658 00:30:47,140 --> 00:30:50,759 ¿por qué podría tener sentido poner dos 659 00:30:50,759 --> 00:30:51,359 en vez de uno? 660 00:30:53,259 --> 00:30:54,839 Lo dijimos el día anterior. 661 00:30:55,339 --> 00:30:56,940 ¿Cómo es que no lo tenéis en la cabeza? 662 00:30:59,059 --> 00:31:00,059 ¿Que por qué? 663 00:31:01,579 --> 00:31:03,099 A ver, el operador 664 00:31:03,099 --> 00:31:04,920 os dijimos que yo lo podría escribir así. 665 00:31:05,660 --> 00:31:06,720 ¿Vale? ¿Y es válido? 666 00:31:07,039 --> 00:31:08,299 O lo podría escribir así. 667 00:31:08,480 --> 00:31:10,960 Y también es válido. Entonces, ya que hay dos alternativas, 668 00:31:11,599 --> 00:31:13,200 primera pregunta, ¿cuál elegiríais? 669 00:31:13,200 --> 00:31:15,200 Me habéis dicho que... 670 00:31:15,980 --> 00:31:18,559 Con dos. 671 00:31:19,740 --> 00:31:20,099 ¿Perdón? 672 00:31:20,759 --> 00:31:23,640 elegiríais esta, vale, y ahora la pregunta es 673 00:31:23,640 --> 00:31:23,960 ¿por qué? 674 00:31:37,750 --> 00:31:40,549 a ver, en los dos 675 00:31:40,549 --> 00:31:42,170 claro, los hay 676 00:31:42,170 --> 00:31:43,470 o sea, no es que 677 00:31:43,470 --> 00:31:47,180 hay casos en los cuales 678 00:31:47,180 --> 00:31:49,380 procede 679 00:31:49,380 --> 00:31:50,920 poner una de las versiones, otros casos en los cuales 680 00:31:50,920 --> 00:31:53,240 procede poner la otra, pusimos un ejemplo 681 00:31:53,240 --> 00:31:54,720 el otro día de un caso en el cual 682 00:31:54,720 --> 00:31:57,579 había una diferencia muy grande entre poner la una y la otra 683 00:31:57,579 --> 00:31:59,559 entonces, lo que está claro 684 00:31:59,559 --> 00:32:01,400 lo que comparten las dos, lo que dijimos 685 00:32:01,400 --> 00:32:03,500 el otro día es que el resultado 686 00:32:03,500 --> 00:32:05,500 de la condición, final, resultado 687 00:32:05,500 --> 00:32:07,019 de la condición, ponga yo 688 00:32:07,019 --> 00:32:08,900 esto o no lo ponga 689 00:32:08,900 --> 00:32:11,259 siempre va a ser la misma 690 00:32:11,259 --> 00:32:12,680 siempre va a ser, en este caso, el or 691 00:32:12,680 --> 00:32:15,579 o sea, me da igual poner una que dos 692 00:32:15,579 --> 00:32:17,420 resultado va a valer 693 00:32:17,420 --> 00:32:19,259 siempre igual, que será 694 00:32:19,259 --> 00:32:21,380 true, si cualquiera 695 00:32:21,380 --> 00:32:22,339 de las dos es true 696 00:32:22,339 --> 00:32:24,619 o incluso las dos 697 00:32:24,619 --> 00:32:27,059 o false, si lo son las dos 698 00:32:27,059 --> 00:32:29,299 eso, ponga yo una o dos 699 00:32:29,299 --> 00:32:30,579 eso va a ser así 700 00:32:30,579 --> 00:32:33,599 Pero aparte pasaban cosas distintas 701 00:32:33,599 --> 00:32:36,000 Aparte de la asignación sin más 702 00:32:36,000 --> 00:32:37,599 Pasaban cosas distintas 703 00:32:37,599 --> 00:32:38,759 Respecto a poner una o dos 704 00:32:38,759 --> 00:32:41,779 Entonces, en esas cosas distintas que pasaban 705 00:32:41,779 --> 00:32:43,480 Es donde está la explicación 706 00:32:43,480 --> 00:32:46,180 De por qué me puede interesar ni poner uno solo o dos 707 00:32:46,180 --> 00:32:47,099 En determinados casos 708 00:32:47,099 --> 00:32:48,299 ¿Me habéis dicho dos? 709 00:32:48,779 --> 00:32:51,980 ¿Alguien más me puede decir por qué podría tener sentido poner dos? 710 00:32:54,140 --> 00:32:54,700 Ándate 711 00:32:54,700 --> 00:33:02,640 Al revés 712 00:33:02,640 --> 00:33:04,559 Vale, entonces 713 00:33:04,559 --> 00:33:06,359 La historia va por ahí 714 00:33:06,359 --> 00:33:18,700 Si ponemos solo uno, la máquina virtual evalúa las dos, una y la otra, evalúa las dos y ahora hace el oro, vale, está claro. 715 00:33:19,279 --> 00:33:28,279 Si tiene los dos, va evaluando en secuencia, primero evalúa la primera, si con eso ya es capaz de hacer el resultado global, de la segunda pasa. 716 00:33:28,279 --> 00:33:29,859 entonces 717 00:33:29,859 --> 00:33:32,380 nos interesa más 2 718 00:33:32,380 --> 00:33:34,779 porque si esta ya fuera true 719 00:33:34,779 --> 00:33:35,839 si esta ya fuera true 720 00:33:35,839 --> 00:33:37,259 puede ignorar esta 721 00:33:37,259 --> 00:33:40,720 entonces es una evaluación menos que hay que hacer 722 00:33:40,720 --> 00:33:42,960 más tiempo de procesamiento 723 00:33:42,960 --> 00:33:44,700 ganado, o sea el programa más rápido 724 00:33:44,700 --> 00:33:46,420 entonces por defecto 725 00:33:46,420 --> 00:33:48,180 siempre poner 2 726 00:33:48,180 --> 00:33:50,740 porque si yo aquí ya tengo 727 00:33:50,740 --> 00:33:51,740 el resultado global 728 00:33:51,740 --> 00:33:55,039 cuando esta sea true, solo lo voy a tener cuando esta sea true 729 00:33:55,039 --> 00:33:57,160 claro, cuando esta sea false voy a necesitar evaluar esta 730 00:33:57,160 --> 00:33:58,579 a ver si es true o false 731 00:33:58,579 --> 00:34:00,940 pero en los casos, en las ejecuciones 732 00:34:00,940 --> 00:34:03,359 en las ejecuciones en las que coincida 733 00:34:03,359 --> 00:34:04,299 que nota uno es true 734 00:34:04,299 --> 00:34:06,799 pues en esas ejecuciones voy a ir más rápido 735 00:34:06,799 --> 00:34:07,759 porque de esta paso 736 00:34:07,759 --> 00:34:11,039 entonces esa sería la explicación 737 00:34:11,039 --> 00:34:12,260 de por qué poner dos en vez de una 738 00:34:12,260 --> 00:34:14,239 si pongo una, aunque esta sea true 739 00:34:14,239 --> 00:34:16,280 esta la voy a evaluar siempre 740 00:34:16,280 --> 00:34:17,420 pues que pérdida de tiempo 741 00:34:17,420 --> 00:34:19,099 ¿vale? eso era 742 00:34:19,099 --> 00:34:22,260 entonces, ahora cuando hacéis la pregunta 743 00:34:22,260 --> 00:34:23,579 que también respondimos el otro día 744 00:34:23,579 --> 00:34:25,920 pues entonces 745 00:34:25,920 --> 00:34:28,460 ¿por qué existen dos versiones? 746 00:34:29,139 --> 00:34:30,099 ¿por qué existen? 747 00:34:30,420 --> 00:34:31,940 ¿por qué existe esta versión? 748 00:34:32,079 --> 00:34:32,800 ¿tendría sentido? 749 00:34:35,260 --> 00:34:36,800 hacerlo siempre en secuencia 750 00:34:36,800 --> 00:34:38,579 y cuando ya tengo el resultado global 751 00:34:38,579 --> 00:34:40,860 lo asigno y el resto deja de evaluarlo 752 00:34:40,860 --> 00:34:43,260 ¿por qué existe esta otra versión? 753 00:34:45,739 --> 00:34:46,820 ¿alguien le suele 754 00:34:46,820 --> 00:34:48,039 recuerda del otro día? 755 00:34:48,639 --> 00:34:49,619 os digo un ejemplo además 756 00:34:49,619 --> 00:34:52,920 ¿por qué tiene sentido que exista esta otra versión? 757 00:34:52,920 --> 00:34:58,099 a ver, era porque hay veces 758 00:34:58,099 --> 00:35:00,760 que una condición 759 00:35:00,760 --> 00:35:01,920 además 760 00:35:01,920 --> 00:35:03,539 hace cosas 761 00:35:03,539 --> 00:35:06,280 ¿no? ¿no recordáis lo de los 762 00:35:06,280 --> 00:35:08,019 operadores incremento y todo eso? 763 00:35:08,840 --> 00:35:10,659 yo aquí puedo añadir, en una expresión 764 00:35:10,659 --> 00:35:12,119 siempre puedo añadir 765 00:35:12,119 --> 00:35:14,300 si me da la gana, por ejemplo, un operador 766 00:35:14,300 --> 00:35:16,199 incremento o decremento 767 00:35:16,199 --> 00:35:16,900 puedo añadir esto 768 00:35:16,900 --> 00:35:19,559 y estoy compactando 769 00:35:19,559 --> 00:35:21,320 en esa expresión dos cosas 770 00:35:21,320 --> 00:35:23,000 primera, la condición 771 00:35:23,000 --> 00:35:25,880 y luego el incremento de este 772 00:35:25,880 --> 00:35:27,360 lo estoy compactando en una 773 00:35:27,360 --> 00:35:30,219 entonces, si yo le pongo dos 774 00:35:30,219 --> 00:35:31,639 en las ejecuciones 775 00:35:31,639 --> 00:35:33,079 en las cuales esto sea true 776 00:35:33,079 --> 00:35:35,099 este incremento no se va a hacer 777 00:35:35,099 --> 00:35:37,539 pero si yo le pongo uno 778 00:35:37,539 --> 00:35:39,219 en todas las ejecuciones 779 00:35:39,219 --> 00:35:41,159 independientemente de que esto sea true o false 780 00:35:41,159 --> 00:35:43,920 esto se va a evaluar, con lo cual este incremento se va a hacer 781 00:35:43,920 --> 00:35:45,500 entonces hay situaciones 782 00:35:45,500 --> 00:35:46,760 en las cuales 783 00:35:46,760 --> 00:35:49,639 el funcionamiento del programa es distinto 784 00:35:49,639 --> 00:35:51,099 si yo pongo dos y una 785 00:35:51,099 --> 00:35:54,559 y esa situación será cuando en las cláusulas 786 00:35:54,559 --> 00:35:56,960 las condiciones pequeñitas que hay a continuación 787 00:35:56,960 --> 00:35:58,599 además de la condición 788 00:35:58,599 --> 00:35:59,440 se hagan cosas 789 00:35:59,440 --> 00:36:01,860 además de la condición se hagan cosas 790 00:36:01,860 --> 00:36:03,340 entonces ahí sí va a ser distinto 791 00:36:03,340 --> 00:36:06,280 por ejemplo, ¿qué otra cosa podríamos hacer? 792 00:36:07,219 --> 00:36:08,519 esto, que es una tontería 793 00:36:08,519 --> 00:36:10,559 pero, a ver si 794 00:36:10,559 --> 00:36:11,179 me deja 795 00:36:11,179 --> 00:36:15,900 vale, esto 796 00:36:15,900 --> 00:36:17,760 pero lo podríamos hacer 797 00:36:17,760 --> 00:36:20,199 esto es una expresión 798 00:36:20,199 --> 00:36:22,039 ya nos iremos familiarizando con ella 799 00:36:22,039 --> 00:36:25,420 yo puedo, a la vez que uso 800 00:36:25,420 --> 00:36:27,119 una variable, a la vez que la uso 801 00:36:27,119 --> 00:36:29,679 en una expresión, a la vez que la uso 802 00:36:29,679 --> 00:36:31,340 puedo de paso asignarle un valor 803 00:36:31,340 --> 00:36:33,400 puedo hacer eso si me da la gana 804 00:36:33,400 --> 00:36:35,679 a la vez que uso una variable 805 00:36:35,679 --> 00:36:37,719 en una expresión, puedo asignarle 806 00:36:37,719 --> 00:36:39,159 un valor, entonces 807 00:36:39,159 --> 00:36:40,960 esto que me haría, esto me hace 808 00:36:40,960 --> 00:36:42,260 nota 2 le asigna 7 809 00:36:42,260 --> 00:36:45,159 y ahora ya hace la expresión 810 00:36:45,159 --> 00:36:47,159 ¿vale? en este caso es una tontería 811 00:36:47,159 --> 00:36:49,039 ¿no? porque esto va a ser siempre true 812 00:36:49,039 --> 00:36:50,500 pero bueno, lo que me interesa a mí 813 00:36:50,500 --> 00:36:51,820 indicar es que 814 00:36:51,820 --> 00:36:54,800 incorporar que cuando en una 815 00:36:54,800 --> 00:36:56,920 expresión usamos una variable, yo puedo además 816 00:36:56,920 --> 00:36:58,300 en ese momento asignarle valor 817 00:36:58,300 --> 00:37:00,059 por ejemplo aquí 818 00:37:00,059 --> 00:37:02,559 asignarle un 7 sería una tontería 819 00:37:02,559 --> 00:37:04,639 pero yo podría a lo mejor plantearme 820 00:37:04,639 --> 00:37:06,440 leerla en ese momento y hacer eso 821 00:37:06,440 --> 00:37:11,619 podría plantearme 822 00:37:11,619 --> 00:37:12,179 hacer esto 823 00:37:12,179 --> 00:37:15,300 y me ahorro el next in de arriba 824 00:37:15,300 --> 00:37:17,880 es decir, la leo 825 00:37:17,880 --> 00:37:19,860 en el mismo momento 826 00:37:19,860 --> 00:37:21,219 que la leo, ya la evalúo 827 00:37:21,219 --> 00:37:24,139 primero la leo y luego la evalúo 828 00:37:24,139 --> 00:37:25,199 esto es válido 829 00:37:25,199 --> 00:37:27,960 porque también es una asignación, en lugar del 7 830 00:37:27,960 --> 00:37:29,119 le asigno esto 831 00:37:29,119 --> 00:37:31,300 entonces, en resumen 832 00:37:31,300 --> 00:37:34,079 una variable, en el momento 833 00:37:34,079 --> 00:37:36,059 en el que la usamos en cualquier expresión 834 00:37:36,059 --> 00:37:37,800 en la que sea, me da igual que sea una expresión 835 00:37:37,800 --> 00:37:39,980 relacionar o la que sea, una variable 836 00:37:39,980 --> 00:37:41,239 cuando yo la uso en una expresión 837 00:37:41,239 --> 00:37:44,159 puedo de paso, si quiero, además asignarle valor 838 00:37:44,159 --> 00:37:45,679 en esa expresión, puedo 839 00:37:45,679 --> 00:37:48,079 aquí tenemos un ejemplo 840 00:37:48,079 --> 00:37:49,639 ¿vale? en la que 841 00:37:49,639 --> 00:37:52,239 le asignamos un valor fruto de leer del teclado 842 00:37:52,239 --> 00:37:54,880 y además ya la usamos en la expresión que sea 843 00:37:54,880 --> 00:37:57,239 bueno, pues en este tipo de situaciones 844 00:37:57,239 --> 00:38:00,239 aquí la diferencia obviamente es enorme 845 00:38:00,239 --> 00:38:02,380 entre una barrita y dos 846 00:38:02,380 --> 00:38:06,619 ¿vale? si yo pongo dos barritas 847 00:38:06,619 --> 00:38:09,860 esta lectura se va a hacer o no se va a hacer 848 00:38:09,860 --> 00:38:11,360 en función de si esto es true o no es true 849 00:38:11,360 --> 00:38:13,840 porque si pongo dos barritas 850 00:38:13,840 --> 00:38:15,659 si esto es true, aquí no llego 851 00:38:15,659 --> 00:38:18,179 pero si pongo solo una barrita 852 00:38:18,179 --> 00:38:20,139 me da igual que esto sea truco falso 853 00:38:20,139 --> 00:38:22,280 siempre voy a llegar aquí, siempre 854 00:38:22,280 --> 00:38:26,619 en este caso 855 00:38:26,619 --> 00:38:28,119 si yo estoy leyendo la nota 856 00:38:28,119 --> 00:38:30,239 ahí, pondría una barrita 857 00:38:30,239 --> 00:38:31,320 porque yo quiero leer las dos 858 00:38:31,320 --> 00:38:34,260 entonces quiero que se ejecuten las dos condiciones 859 00:38:34,260 --> 00:38:36,480 pero en el caso en el que yo estaba 860 00:38:36,480 --> 00:38:38,280 que ya las tenía leídas y que yo no estoy 861 00:38:38,280 --> 00:38:40,639 haciendo nada, nada más que evaluar la condición 862 00:38:40,639 --> 00:38:42,739 en el caso en el que yo estaba 863 00:38:42,739 --> 00:38:51,239 no, no, no, no, no, no 864 00:38:51,239 --> 00:38:51,900 eso es otra cosa 865 00:38:51,900 --> 00:38:53,599 si fuera aprobada las dos, tendría que ser un and 866 00:38:53,599 --> 00:38:54,800 pero es otra cosa, no, no, no 867 00:38:54,800 --> 00:38:57,000 están mezclando cosas 868 00:38:57,000 --> 00:39:02,440 claro, pero 869 00:39:02,440 --> 00:39:04,219 claro, entonces tienes que poner un and 870 00:39:04,219 --> 00:39:05,699 pero es que eso es otro problema 871 00:39:05,699 --> 00:39:07,159 ahora lo ponemos 872 00:39:07,159 --> 00:39:10,539 en este caso, para expresar que al menos una de las dos 873 00:39:10,539 --> 00:39:12,340 esté aprobada, tiene que ser uno 874 00:39:12,340 --> 00:39:14,519 y una barra o dos 875 00:39:14,519 --> 00:39:16,920 eso ya depende de si en alguna de las condiciones 876 00:39:16,920 --> 00:39:18,159 haces algo 877 00:39:18,159 --> 00:39:20,099 aparte de evaluar la condición 878 00:39:20,099 --> 00:39:22,400 como asignar 879 00:39:22,400 --> 00:39:24,440 como incrementar si haces algo 880 00:39:24,440 --> 00:39:26,500 si no haces nada, que aquí no hacemos nada 881 00:39:26,500 --> 00:39:27,800 solamente tenemos la condición 882 00:39:27,800 --> 00:39:29,920 pues entonces dos barritas 883 00:39:29,920 --> 00:39:32,059 ¿vale? porque si esta ya es verdadera 884 00:39:32,059 --> 00:39:32,920 no quieres entrar aquí 885 00:39:32,920 --> 00:39:35,420 y si sí que haces algo 886 00:39:35,420 --> 00:39:36,860 como asignar valor 887 00:39:36,860 --> 00:39:40,079 entonces querrías entrar aquí también 888 00:39:40,079 --> 00:39:41,639 porque además de la condición 889 00:39:41,639 --> 00:39:43,079 además estás haciendo algo 890 00:39:43,079 --> 00:39:44,760 entonces pondría solo una barrita 891 00:39:44,760 --> 00:39:46,639 ¿vale? 892 00:39:47,099 --> 00:39:49,360 esa, vamos a 893 00:39:49,360 --> 00:39:50,960 ponerlo aquí 894 00:39:50,960 --> 00:40:06,599 Entonces el programa tal y sería este, hemos puesto el or doble barra porque aquí en esta condición no tenemos ninguna necesidad de entrar, si es falsa, perdón si es tú la primera y la dejaríamos así, esta versión ya estaría. 895 00:40:06,599 --> 00:40:45,400 Vale, vamos a incorporar aquí, vamos a incorporar aquí, si ponemos el or como una, vamos a indicar aquí, solo evalúa, solo evalúa la segunda condición si es necesario, si es necesario. 896 00:40:45,400 --> 00:40:47,739 En este caso será necesario 897 00:40:47,739 --> 00:40:51,360 Si la primera es false 898 00:40:51,360 --> 00:40:58,269 ¿Vale? 899 00:40:58,309 --> 00:40:59,469 Si la primera es false 900 00:40:59,469 --> 00:41:02,110 Es cuando es necesario evaluar la segunda 901 00:41:02,110 --> 00:41:03,389 Para ver como es la total 902 00:41:03,389 --> 00:41:05,710 Pero si la primera es true no le hace falta 903 00:41:05,710 --> 00:41:07,489 Vale, si ponemos 904 00:41:07,489 --> 00:41:10,670 El or como una única barra 905 00:41:10,670 --> 00:41:11,670 Como una única barra 906 00:41:11,670 --> 00:41:13,550 Evalúa las dos 907 00:41:13,550 --> 00:41:20,440 Entonces, por ejemplo, vamos a suponer que vamos a hacer 908 00:41:20,440 --> 00:41:22,420 Vamos a hacer este programa con otra versión 909 00:41:22,420 --> 00:41:23,659 Le decimos directamente 910 00:41:23,659 --> 00:41:26,280 introduzca las dos notas 911 00:41:26,280 --> 00:41:27,579 vamos a ponerle aquí 912 00:41:27,579 --> 00:41:32,639 introduzca 913 00:41:32,639 --> 00:41:35,000 las dos notas 914 00:41:35,000 --> 00:41:37,039 por ejemplo, introduzca las dos notas 915 00:41:37,039 --> 00:41:38,699 vale, y ahora 916 00:41:38,699 --> 00:41:41,139 vamos a leer las notas 917 00:41:41,139 --> 00:41:43,079 a la vez que hacemos la condición 918 00:41:43,079 --> 00:41:44,900 vamos a hacer esto 919 00:41:44,900 --> 00:41:51,920 vamos a hacer esto 920 00:41:51,920 --> 00:41:52,900 voy a 921 00:41:52,900 --> 00:41:55,360 cambiarlo para que 922 00:41:55,360 --> 00:41:57,760 espérate 923 00:41:57,760 --> 00:41:59,599 yo le doy a control c, vale 924 00:41:59,599 --> 00:42:00,300 y ahora 925 00:42:00,300 --> 00:42:03,719 voy a copiar aquí y lo voy 926 00:42:03,719 --> 00:42:04,900 bajando para que 927 00:42:04,900 --> 00:42:11,949 vale, pues entonces, introduzca 928 00:42:11,949 --> 00:42:14,010 las dos notas, en la misma condición 929 00:42:14,010 --> 00:42:15,130 en la misma condición 930 00:42:15,130 --> 00:42:17,429 yo voy a asignarle valor a nota 1 931 00:42:17,429 --> 00:42:18,969 leyéndola del teclado 932 00:42:18,969 --> 00:42:21,929 del teclado, scan.nextint 933 00:42:21,929 --> 00:42:25,829 así, y la otra 934 00:42:25,829 --> 00:42:27,789 también, en la misma condición 935 00:42:27,789 --> 00:42:30,329 a la vez 936 00:42:30,329 --> 00:42:34,110 que la uso para la condición 937 00:42:34,110 --> 00:42:35,150 a la vez que la uso 938 00:42:35,150 --> 00:42:38,690 la leo, que lo puedo hacer perfectamente 939 00:42:38,690 --> 00:42:40,250 ¿vale? 940 00:42:42,409 --> 00:42:44,389 o sea, a la vez 941 00:42:44,389 --> 00:42:45,389 que uso la variable 942 00:42:45,389 --> 00:42:48,329 para que forme parte 943 00:42:48,329 --> 00:42:50,409 de la condición, a la vez le doy 944 00:42:50,409 --> 00:42:52,269 un valor, le doy un valor y la uso 945 00:42:52,269 --> 00:42:54,449 hemos dicho que es algo que podemos incorporar 946 00:42:54,449 --> 00:42:56,469 el asignar valor 947 00:42:56,469 --> 00:42:58,389 a una variable en el momento de usarla 948 00:42:58,389 --> 00:42:59,110 en una expresión 949 00:42:59,110 --> 00:43:01,909 ¿vale? voy a ponerlo aquí 950 00:43:01,909 --> 00:43:08,239 Podemos asignar 951 00:43:08,239 --> 00:43:10,719 Valor a una variable 952 00:43:10,719 --> 00:43:15,679 A la vez que la usamos 953 00:43:15,679 --> 00:43:17,980 En una expresión 954 00:43:17,980 --> 00:43:25,909 ¿Qué es lo que estamos haciendo aquí? 955 00:43:26,369 --> 00:43:28,230 A la vez que la usamos en la expresión 956 00:43:28,230 --> 00:43:29,610 De ser mayor o igual que 5 957 00:43:29,610 --> 00:43:30,369 Le damos valor 958 00:43:30,369 --> 00:43:32,889 Aquí lo mismo 959 00:43:32,889 --> 00:43:34,550 A la vez que la usamos en la expresión 960 00:43:34,550 --> 00:43:36,030 De ser mayor o igual que 5 961 00:43:36,030 --> 00:43:37,489 Le damos valor 962 00:43:37,489 --> 00:43:38,750 Ese valor que le damos 963 00:43:38,750 --> 00:43:39,869 Lo que pasa es que he leído del teclado 964 00:43:39,869 --> 00:43:41,389 Pero me da igual, como si le diera yo 7 965 00:43:41,389 --> 00:43:44,010 bueno, pues entonces 966 00:43:44,010 --> 00:43:47,010 ahora ya esta versión del programa 967 00:43:47,010 --> 00:43:49,090 si yo le pongo 968 00:43:49,090 --> 00:43:50,190 doble barra 969 00:43:50,190 --> 00:43:52,829 cuando la primera nota que meto 970 00:43:52,829 --> 00:43:55,250 es aprobada, ya no me pide la segunda 971 00:43:55,250 --> 00:43:56,809 pasa de la segunda completamente 972 00:43:56,809 --> 00:43:58,929 entonces, hombre 973 00:43:58,929 --> 00:44:00,929 si el programa continúa y yo necesito tener 974 00:44:00,929 --> 00:44:03,489 las dos notas inicializadas, este programa no funcionaría 975 00:44:03,489 --> 00:44:05,070 ¿no? 976 00:44:05,929 --> 00:44:07,269 por ejemplo, vamos a suponer 977 00:44:07,269 --> 00:44:09,190 que además de mostrar el resultado 978 00:44:09,190 --> 00:44:11,349 si es aprobó 979 00:44:11,349 --> 00:44:13,710 Le vamos a poner antes que diga 980 00:44:13,710 --> 00:44:15,710 Las notas que sacó son 981 00:44:15,710 --> 00:44:18,610 Y luego nos diga, aprobó al menos una o no 982 00:44:18,610 --> 00:44:23,309 Las notas son 983 00:44:23,309 --> 00:44:26,269 Y le ponemos aquí 984 00:44:26,269 --> 00:44:31,820 N1 más 985 00:44:31,820 --> 00:44:35,420 N2, eh, nota 1, perdón 986 00:44:35,420 --> 00:44:39,079 Nota 1 más 987 00:44:39,079 --> 00:44:41,800 Nota 2, ¿vale? 988 00:44:41,800 --> 00:44:45,230 Ahí 989 00:44:45,230 --> 00:44:47,610 Vale, entonces este programa 990 00:44:47,610 --> 00:44:49,530 Primero muestra las notas 991 00:44:49,530 --> 00:44:51,409 Son, concatena con nota 1 992 00:44:51,409 --> 00:44:52,190 Le da un string 993 00:44:52,190 --> 00:44:55,190 Y ahora ya ese string lo vuelve a concatenar con nota 2 994 00:44:55,190 --> 00:44:56,789 Vamos a poner un espacio entre medias 995 00:44:56,789 --> 00:44:58,070 Para que 996 00:44:58,070 --> 00:44:59,610 Y 997 00:44:59,610 --> 00:45:03,230 Ahora, las notas que sacó 998 00:45:03,230 --> 00:45:04,469 Dirá, las notas son 999 00:45:04,469 --> 00:45:06,909 Nota 1, lo concatenará con i 1000 00:45:06,909 --> 00:45:08,230 Y luego nota 2, vale 1001 00:45:08,230 --> 00:45:11,170 Y luego ya nos dirá si ha aprobado al menos una o no 1002 00:45:11,170 --> 00:45:11,989 Vale 1003 00:45:11,989 --> 00:45:15,030 Bueno, pues entonces 1004 00:45:15,030 --> 00:45:16,909 Ahora hacemos una versión del programa 1005 00:45:16,909 --> 00:45:19,030 Vamos a comentar esto 1006 00:45:19,030 --> 00:45:23,840 Vamos a comentar esto 1007 00:45:23,840 --> 00:45:24,539 Entonces 1008 00:45:24,539 --> 00:45:27,559 Este programita que hemos hecho 1009 00:45:27,559 --> 00:45:28,400 Vamos a probarlo 1010 00:45:28,400 --> 00:45:31,199 La versión donde hacemos, leemos antes 1011 00:45:31,199 --> 00:45:33,159 Y luego evaluamos 1012 00:45:33,159 --> 00:45:38,349 Venga, introduzca nota 1 1013 00:45:38,349 --> 00:45:40,210 Un 4, introduzca nota 2 1014 00:45:40,210 --> 00:45:42,150 Un 6, las notas son 4 y 6 1015 00:45:42,150 --> 00:45:43,769 Aproba al menos una, vale 1016 00:45:43,769 --> 00:45:46,969 Hombre, lo normal es que uno haga más casos de prueba 1017 00:45:46,969 --> 00:45:49,469 Por ejemplo, vamos a ponerle dos suspensos 1018 00:45:49,469 --> 00:45:50,929 No aprobó ninguna, vale 1019 00:45:50,929 --> 00:45:52,190 Vamos a ponerle dos aprobados 1020 00:45:52,190 --> 00:45:54,510 A ver si con dos aprobados también funciona bien el programa 1021 00:45:54,510 --> 00:45:56,809 Aprobó al menos una, vale 1022 00:45:56,809 --> 00:45:58,750 Bueno, después de una cantidad de pruebas 1023 00:45:58,750 --> 00:46:00,329 Esta versión que hemos hecho funciona 1024 00:46:00,329 --> 00:46:01,989 ¿Vale? 1025 00:46:02,670 --> 00:46:05,269 Venga, vamos a comentar ahora esta versión 1026 00:46:05,269 --> 00:46:12,639 Y vamos a quedarnos con esta 1027 00:46:12,639 --> 00:46:18,599 ¿Vale? 1028 00:46:21,889 --> 00:46:23,730 Nota 1, claro, tengo 1029 00:46:23,730 --> 00:46:26,369 La tengo que declarar arriba 1030 00:46:26,369 --> 00:46:28,250 Fuera del 1031 00:46:28,250 --> 00:46:31,980 Int nota 1 1032 00:46:31,980 --> 00:46:33,900 Y esto se queda aquí 1033 00:46:33,900 --> 00:46:34,320 Ahí 1034 00:46:34,320 --> 00:46:37,179 Nota 2 1035 00:46:37,179 --> 00:46:38,880 Y esto se queda así 1036 00:46:38,880 --> 00:46:41,840 Vale 1037 00:46:41,840 --> 00:46:44,619 Bueno, siguiente versión del programa 1038 00:46:44,619 --> 00:46:45,539 No os perdáis 1039 00:46:45,539 --> 00:46:48,360 Le decimos, introduzca las dos notas 1040 00:46:48,360 --> 00:46:51,300 Eso, silencio 1041 00:46:51,300 --> 00:46:57,000 introduzca las dos notas 1042 00:46:57,000 --> 00:46:58,280 y ahora ya 1043 00:46:58,280 --> 00:47:00,139 ponemos directamente la condición 1044 00:47:00,139 --> 00:47:02,380 pero aprovechamos en la condición 1045 00:47:02,380 --> 00:47:04,880 para de paso pedir la nota primero 1046 00:47:04,880 --> 00:47:06,860 la nota 1 1047 00:47:06,860 --> 00:47:08,800 o sea, se quedará esperando 1048 00:47:08,800 --> 00:47:09,840 la consola 1049 00:47:09,840 --> 00:47:12,000 cuando le hayamos dado el valor 1050 00:47:12,000 --> 00:47:13,820 lo leerá y lo llevará a nota 1 1051 00:47:13,820 --> 00:47:15,940 y luego hará el OR con esto 1052 00:47:15,940 --> 00:47:17,659 el OR con este 1053 00:47:17,659 --> 00:47:18,719 se quedará esperando 1054 00:47:18,719 --> 00:47:21,219 y después de leer nota 2 1055 00:47:21,219 --> 00:47:23,099 hace, vale, cuál 1056 00:47:23,099 --> 00:47:24,940 va a ser el problema de este 1057 00:47:24,940 --> 00:47:26,760 y ahora ya mostramos las dos notas 1058 00:47:26,760 --> 00:47:29,280 no, las notas son 1059 00:47:29,280 --> 00:47:30,179 y resultado 1060 00:47:30,179 --> 00:47:36,639 vale, cuál es 1061 00:47:36,639 --> 00:47:37,739 el problema de este código 1062 00:47:37,739 --> 00:47:40,699 pues que efectivamente el compilador 1063 00:47:40,699 --> 00:47:42,480 me dice, oye 1064 00:47:42,480 --> 00:47:44,679 perdona, que si 1065 00:47:44,679 --> 00:47:46,139 nota uno, la lees 1066 00:47:46,139 --> 00:47:48,320 y es verdadera 1067 00:47:48,320 --> 00:47:50,400 ya no voy a entrar ahí 1068 00:47:50,400 --> 00:47:52,599 ya no voy a entrar, porque como ya es 1069 00:47:52,599 --> 00:47:54,559 verdadera, el orden total 1070 00:47:54,559 --> 00:47:55,920 es verdadero, ya no voy a entrar 1071 00:47:55,920 --> 00:47:58,539 y te dice, y me estás diciendo 1072 00:47:58,539 --> 00:48:00,639 que hemos anotado dos, no tengo muy 1073 00:48:00,639 --> 00:48:02,420 claro que si voy a poder mostrarla, depende 1074 00:48:02,420 --> 00:48:04,500 la podré mostrar si 1075 00:48:04,500 --> 00:48:06,539 esta ha sido falsa y me has obligado a entrar 1076 00:48:06,539 --> 00:48:07,920 aquí, pero si esa ha sido verdadera, no 1077 00:48:07,920 --> 00:48:10,639 vale, entendéis el 1078 00:48:10,639 --> 00:48:12,159 problema, entonces en esta situación 1079 00:48:12,159 --> 00:48:14,500 aquí tendríamos que arreglarlo 1080 00:48:14,500 --> 00:48:15,920 y poner una barra 1081 00:48:15,920 --> 00:48:18,380 y ya el compilador se queda tranquilo 1082 00:48:18,380 --> 00:48:19,960 y dice, ah vale, ahora sé seguro 1083 00:48:19,960 --> 00:48:22,420 que me da igual que esta me dé falsa o true 1084 00:48:22,420 --> 00:48:24,300 voy a entrar en la otra 1085 00:48:24,300 --> 00:48:26,239 voy a entrar en la otra 1086 00:48:26,239 --> 00:48:28,639 entonces aquí el compilador 1087 00:48:28,639 --> 00:48:30,119 ya nos ha hecho ver la diferencia 1088 00:48:30,119 --> 00:48:31,739 entre poner doble barra y una 1089 00:48:31,739 --> 00:48:35,019 ¿está claro? 1090 00:48:43,260 --> 00:48:43,880 bueno, a ver 1091 00:48:43,880 --> 00:48:45,300 la clave no es tanto poner la misma línea 1092 00:48:45,300 --> 00:48:46,559 sino entender la diferencia entre 1093 00:48:46,559 --> 00:48:48,119 María, explícaselo, anda 1094 00:48:48,119 --> 00:48:52,199 sí, o sea, pero la diferencia es 1095 00:48:52,199 --> 00:48:54,300 entre, no es tanto poner la misma línea 1096 00:48:54,300 --> 00:48:55,579 sino entre poner dos barras y una 1097 00:48:55,579 --> 00:49:05,940 claro, porque te las está preguntando 1098 00:49:05,940 --> 00:49:06,679 por separado 1099 00:49:06,679 --> 00:49:10,300 lo están preguntando por separado 1100 00:49:10,300 --> 00:49:13,320 eso 1101 00:49:13,320 --> 00:49:14,679 la pide a la vez que evalúa 1102 00:49:14,679 --> 00:49:16,639 entonces si no le hace falta evaluar 1103 00:49:16,639 --> 00:49:17,820 porque ya esta es true 1104 00:49:17,820 --> 00:49:20,760 vale, entonces aquí el compilador 1105 00:49:20,760 --> 00:49:24,210 entonces 1106 00:49:24,210 --> 00:49:26,769 aquí el compilador si no escribe esto rápido 1107 00:49:26,769 --> 00:49:27,769 y pone las dos barras 1108 00:49:27,769 --> 00:49:30,550 porque está acostumbrado y siempre pone las dos barras 1109 00:49:30,550 --> 00:49:32,230 si no lo escribe rápido 1110 00:49:32,230 --> 00:49:34,269 podría no darse cuenta de ese problema 1111 00:49:34,269 --> 00:49:35,329 podría no darse cuenta 1112 00:49:35,329 --> 00:49:38,190 pero aquí el compilador ya nos ha avisado 1113 00:49:38,190 --> 00:49:42,489 y nos ha dicho, al ponerse rojo no nos ha dejado seguir, y el compilador nos avisa. 1114 00:49:43,110 --> 00:49:48,230 Pero imaginaos que tenemos un programa en el cual esto se ha inicializado, 1115 00:49:49,510 --> 00:49:54,610 que suele ser la situación habitual, que uno cuando declara variables las inicializa 1116 00:49:54,610 --> 00:49:58,510 y luego ya le va dando valores según los usuarios van dando datos. 1117 00:49:59,710 --> 00:50:04,050 Entonces, si esto fuera un programa en el cual esto está inicializado, 1118 00:50:04,289 --> 00:50:07,530 porque por restricciones del procedimiento, por lo que sea, está inicializado, 1119 00:50:08,190 --> 00:50:26,349 Ahora ya el compilador no me va a avisar de que la estoy liando, no me va a avisar, porque yo pongo doble barra y él dice, vale, yo esto no lo voy a hacer, si esto es true, si esto es true no lo voy a hacer, con lo cual nota 2 se va a quedar con el valor de arriba, con el 0, no con el que le has metido, ¿me estoy explicando? 1120 00:50:26,349 --> 00:50:28,409 Vamos a ejecutarlo 1121 00:50:28,409 --> 00:50:30,349 Esta versión 1122 00:50:30,349 --> 00:50:34,769 Vale, introduzca las dos notas 1123 00:50:34,769 --> 00:50:35,789 Se queda esperando la primera 1124 00:50:35,789 --> 00:50:37,230 Un 3 1125 00:50:37,230 --> 00:50:39,829 Y se queda esperando la segunda 1126 00:50:39,829 --> 00:50:41,510 Porque la primera era falsa 1127 00:50:41,510 --> 00:50:44,010 Con lo cual, necesita la segunda 1128 00:50:44,010 --> 00:50:45,809 Se queda esperando un 6 1129 00:50:45,809 --> 00:50:47,909 Las notas son 3 y 6 es probablemente menos 1 1130 00:50:47,909 --> 00:50:50,030 Ahora vamos a darle una nota en la cual 1131 00:50:50,030 --> 00:50:51,449 Esta ya sea true 1132 00:50:51,449 --> 00:50:53,469 Como esta es true, ahí no entra 1133 00:50:53,469 --> 00:50:55,989 Vamos a volver a ejecutar 1134 00:50:55,989 --> 00:50:58,329 le damos 7 1135 00:50:58,329 --> 00:51:01,030 ¿veis? ya ha pasado de pedir 1136 00:51:01,030 --> 00:51:02,789 la segunda nota, ha pasado y te dice 1137 00:51:02,789 --> 00:51:05,389 ¿cuántas son 7 y 0? 0 porque 0 inicializamos 1138 00:51:05,389 --> 00:51:07,070 y de la segunda ha pasado 1139 00:51:07,070 --> 00:51:08,809 ¿vale? 1140 00:51:08,869 --> 00:51:11,030 con lo cual el programa estaría funcionando mal 1141 00:51:11,030 --> 00:51:12,869 porque le estaría dejando la nota a 0 1142 00:51:12,869 --> 00:51:14,070 la segunda nota a 0 1143 00:51:14,070 --> 00:51:15,949 si ya la primera tiene aprobada pasaría 1144 00:51:15,949 --> 00:51:17,469 entonces 1145 00:51:17,469 --> 00:51:20,650 todos son pequeños matices 1146 00:51:20,650 --> 00:51:22,449 pequeñas cositas 1147 00:51:22,449 --> 00:51:23,829 que son muy básicas 1148 00:51:23,829 --> 00:51:26,090 pero que hay veces hacen que una aplicación 1149 00:51:26,090 --> 00:51:26,949 funcione mal 1150 00:51:26,949 --> 00:51:29,050 y no sabes por qué funciona mal 1151 00:51:29,050 --> 00:51:31,429 porque te crees que no, que es que en todo esto has hecho tu algoritmo mal 1152 00:51:31,429 --> 00:51:33,329 y no has hecho el algoritmo mal seguramente 1153 00:51:33,329 --> 00:51:35,769 sino es un error muy sencillo, muy básico 1154 00:51:35,769 --> 00:51:38,269 y a veces encontrar los errores básicos 1155 00:51:38,269 --> 00:51:39,809 es lo más difícil 1156 00:51:39,809 --> 00:51:42,289 ¿vale? encontrar los errores sencillitos 1157 00:51:42,289 --> 00:51:46,510 vale, pues entonces, queda claro y clarísimo 1158 00:51:46,510 --> 00:51:48,530 la diferencia entre 1159 00:51:48,530 --> 00:51:51,550 lo ponemos aquí 1160 00:51:51,550 --> 00:51:53,570 lo ponemos aquí 1161 00:51:53,570 --> 00:51:57,760 si ponemos 1162 00:51:57,760 --> 00:51:59,579 doble barra 1163 00:51:59,579 --> 00:52:01,840 la segunda nota 1164 00:52:01,840 --> 00:52:04,000 no se lee 1165 00:52:04,000 --> 00:52:05,960 si la 1166 00:52:05,960 --> 00:52:07,579 primera 1167 00:52:07,579 --> 00:52:10,300 es mayor o igual 1168 00:52:10,300 --> 00:52:11,579 que 5 1169 00:52:11,579 --> 00:52:13,960 ¿vale? entonces aquí en esta versión 1170 00:52:13,960 --> 00:52:16,119 si queremos las dos notas 1171 00:52:16,119 --> 00:52:18,519 porque luego el programa sigue haciendo cosas con las notas 1172 00:52:18,519 --> 00:52:20,119 pues si queremos las dos 1173 00:52:20,119 --> 00:52:21,420 porque sigue haciendo cosas con las notas 1174 00:52:21,420 --> 00:52:22,659 suponemos que es una aplicación más grande 1175 00:52:22,659 --> 00:52:23,880 pues si queremos las dos te voy a poner 1176 00:52:23,880 --> 00:52:25,400 ¿vale? 1177 00:52:25,460 --> 00:52:27,599 vale 1178 00:52:27,599 --> 00:52:30,179 pues vamos a parar un segundito