1 00:00:00,000 --> 00:00:08,179 Venga, vamos. A ver, los operadores aritméticos, ¿está claro? 2 00:00:09,720 --> 00:00:12,339 María, da ejemplo como delegada. 3 00:00:13,539 --> 00:00:20,839 Los operadores aritméticos sirven para hacer expresiones con números y que a su vez dan números, eso está claro. 4 00:00:21,620 --> 00:00:29,300 Sobre la suma y la resta, no tenemos ninguna duda, todos sabemos lo que significa el operador suma y el operador resta, todos lo sabemos. 5 00:00:29,300 --> 00:00:34,579 Y funciona tanto con números enteros como decimales, hasta ahí ninguna duda. 6 00:00:35,299 --> 00:00:42,060 El operador producto, todos tenemos claro lo que hace y funciona tanto con números enteros como decimales, ¿vale? 7 00:00:42,100 --> 00:00:43,399 Sobre ahí ningún problema. 8 00:00:44,420 --> 00:00:46,079 ¿Qué pasa con este operador? 9 00:00:47,079 --> 00:00:51,340 El operador división, ese ya no está tan claro. 10 00:00:52,000 --> 00:00:56,299 Cuidado con este porque nos puede inducir a errores a veces en programas 11 00:00:56,299 --> 00:01:02,500 si no tenemos claro que no es lo mismo la división entera que la división decimal, ¿vale? 12 00:01:03,179 --> 00:01:07,159 Entonces, primera cosa que vamos a incluir aquí, ¿vale? 13 00:01:11,640 --> 00:01:22,319 La división entera y la decimal no son la misma, no son iguales. 14 00:01:22,319 --> 00:01:39,650 aunque ambas se hacen con el operador este de aquí, ¿verdad?, con este operador, ¿vale? 15 00:01:39,650 --> 00:01:51,840 Entonces, cuidado con eso, ¿verdad?, si tenemos en qué momento el operador división, el operador cociente, 16 00:01:51,939 --> 00:01:58,760 en qué momento el operador cociente se estará comportando como división entera, es decir, saca el cociente pasando del resto, 17 00:01:58,760 --> 00:02:01,859 ¿Y en qué momento se estará comportando como división decimal? 18 00:02:02,540 --> 00:02:07,599 Es decir, haciendo la división con decimales, olvidándose del concepto de resto 19 00:02:07,599 --> 00:02:12,259 ¿En qué momento os imagináis que puede estar comportándose de una manera o de la otra? 20 00:02:12,340 --> 00:02:13,000 ¿En qué contexto? 21 00:02:15,300 --> 00:02:18,199 En función del tipo de variable con la que opere, ¿verdad? 22 00:02:18,919 --> 00:02:24,240 Es decir, si nosotros tenemos aquí dos variables enteras 23 00:02:24,240 --> 00:02:34,879 Si yo, por ejemplo, hago esto, n1 igual a n1 entre n2, ¿vale? 24 00:02:35,360 --> 00:02:40,979 Este operador es el operador división, eso está claro, sirve para dividir. 25 00:02:41,780 --> 00:02:43,479 Ahora la pregunta es, ¿qué división es? 26 00:02:43,900 --> 00:02:47,180 ¿Me hace el cociente entero, el cociente entero, pasando del resto? 27 00:02:48,159 --> 00:02:51,560 Porque si me hace el cociente entero, ¿cuál es el cociente de la división entre 35? 28 00:02:51,560 --> 00:03:19,169 35, el cociente sería, si dividís 34 y 35 con la cajita de primaria, el cociente que me daría, 0, ¿no?, me daría 0, vale, pues en este caso, este está haciendo la división entera y por tanto me da 0, porque los números con los que trabaja son enteros, están declarados como enteros, 29 00:03:19,169 --> 00:03:44,699 Entonces, esa es la información que la máquina virtual va a buscar para saber si tiene que hacer cociente entero o división con decimales, ¿vale? En este caso, como está trabajando con números enteros, me hace la división entera, claro, entonces, si yo aquí muestro n1, no hay ninguna duda que esto me va a dar 0, ¿verdad? 30 00:03:44,699 --> 00:03:50,770 Vale, esto me da cero como me esperaba 31 00:03:50,770 --> 00:03:52,250 Pero cuidado, porque a lo mejor 32 00:03:52,250 --> 00:03:54,229 Podríais pensar, ah, vale 33 00:03:54,229 --> 00:03:55,449 No te preocupes 34 00:03:55,449 --> 00:03:57,629 Yo me pongo aquí una variable double 35 00:03:57,629 --> 00:03:59,050 Para guardar el resultado 36 00:03:59,050 --> 00:04:02,229 Y voy a guardarlo 37 00:04:02,750 --> 00:04:04,590 En la variable double 38 00:04:04,590 --> 00:04:06,229 Espera, vamos a hacerlo 39 00:04:06,229 --> 00:04:08,169 En otro 40 00:04:08,169 --> 00:04:10,229 Vale, decimos, vale, vale, no, yo quiero decimales 41 00:04:10,770 --> 00:04:12,349 Quiero decimales 42 00:04:12,349 --> 00:04:14,430 Entonces voy a guardarlo 43 00:04:14,430 --> 00:04:15,409 En una variable double 44 00:04:15,409 --> 00:04:19,009 N1 entre N2 45 00:04:19,009 --> 00:04:20,750 la división con decimales 46 00:04:20,750 --> 00:04:22,269 entre N1 entre N2 47 00:04:22,269 --> 00:04:24,730 será 0, lo que sea 48 00:04:24,730 --> 00:04:27,050 9 patatín, muy cerca de 0,9 49 00:04:27,050 --> 00:04:27,649 será 50 00:04:27,649 --> 00:04:30,230 vale, entonces, ah, lo guardo en un double 51 00:04:30,230 --> 00:04:31,550 volvemos a ejecutar esto 52 00:04:31,550 --> 00:04:35,050 vale, y me sigue dando 0 53 00:04:35,050 --> 00:04:36,689 diríamos, uy, pero 54 00:04:36,689 --> 00:04:38,529 ¿cómo que me da 0 si el resultado es un double? 55 00:04:39,269 --> 00:04:40,310 a ver, es que 56 00:04:40,310 --> 00:04:42,449 recordad que cuando la máquina virtual 57 00:04:42,449 --> 00:04:44,569 se encuentra una asignación con una expresión 58 00:04:44,569 --> 00:04:47,790 lo primero que hace es evaluar 59 00:04:47,790 --> 00:04:49,230 la expresión y concentrarse en ella 60 00:04:49,230 --> 00:04:51,089 y le importa 61 00:04:51,089 --> 00:04:53,730 absolutamente nada la variable 62 00:04:53,730 --> 00:04:55,850 de la izquierda, cuando ya tiene la expresión 63 00:04:55,850 --> 00:04:57,870 evaluada y hecha, ya se lo asciende 64 00:04:57,870 --> 00:04:59,970 a la variable, entonces ¿qué hace la máquina virtual? 65 00:05:00,310 --> 00:05:01,709 se va a esta expresión 66 00:05:01,709 --> 00:05:03,649 y dice, vamos a ver, tengo que hacer 67 00:05:03,649 --> 00:05:05,730 una división, lo que tengo que dividir 68 00:05:05,730 --> 00:05:07,730 ¿qué es? dos números enteros 69 00:05:07,730 --> 00:05:09,269 porque me voy aquí arriba, son 70 00:05:09,269 --> 00:05:11,189 declarados int 71 00:05:11,189 --> 00:05:13,629 pues entonces no hay duda, me están pidiendo 72 00:05:13,629 --> 00:05:15,790 cociente entero, ¿vale? entonces me piden 73 00:05:15,790 --> 00:05:18,050 cociente entero, porque los números que involucra 74 00:05:18,050 --> 00:05:19,649 son entero, me los pide 75 00:05:19,649 --> 00:05:21,470 y entonces ahora ya 76 00:05:21,470 --> 00:05:23,629 hago la división entera y me da cero 77 00:05:23,629 --> 00:05:25,850 ala, esa parte ya está, ahora me voy 78 00:05:25,850 --> 00:05:27,129 a la segunda parte, que es 79 00:05:27,129 --> 00:05:29,970 ahora voy a asignar esto a la variable 80 00:05:29,970 --> 00:05:31,930 me dice, ¿resultado 81 00:05:31,930 --> 00:05:33,790 qué es? es double, ¿puedo meter in en 82 00:05:33,790 --> 00:05:34,910 double? así que puedo 83 00:05:34,910 --> 00:05:37,269 le pongo coma, cero, cero, cero y ya está 84 00:05:37,269 --> 00:05:38,410 pues entonces él 85 00:05:38,410 --> 00:05:41,370 mete el cero en double 86 00:05:41,370 --> 00:05:43,110 promocionándolo a double 87 00:05:43,110 --> 00:05:46,209 Es decir, poniéndole 0,000000 88 00:05:46,209 --> 00:05:48,069 ¿Vale? 89 00:05:48,250 --> 00:05:50,389 Pero la parte decimal la hemos perdido igualmente 90 00:05:50,389 --> 00:05:51,050 ¿Verdad? 91 00:05:52,290 --> 00:05:53,810 ¿Vale? Pues primera cosa 92 00:05:53,810 --> 00:05:56,610 El operador división 93 00:05:56,610 --> 00:05:57,769 Se comporta 94 00:05:57,769 --> 00:06:00,870 Como cociente entero o como división decimal 95 00:06:00,870 --> 00:06:02,649 En función de los operadores 96 00:06:02,649 --> 00:06:04,269 Que involucra 97 00:06:04,269 --> 00:06:05,750 Si son enteros es cociente 98 00:06:05,750 --> 00:06:08,350 Y luego ya que ese resultado va a una variable 99 00:06:08,350 --> 00:06:10,009 No pasa nada, la promocionará 100 00:06:10,009 --> 00:06:11,730 Pero la promocionará poniéndole el 0,0000 101 00:06:11,730 --> 00:06:14,029 no se va a inventar los decimales de nuevas 102 00:06:14,029 --> 00:06:17,509 vale, entonces si nosotros quisiéramos 103 00:06:17,509 --> 00:06:18,350 la división decimal 104 00:06:18,350 --> 00:06:20,269 pues entonces tendríamos que hacer 105 00:06:20,269 --> 00:06:21,490 declarar 106 00:06:21,490 --> 00:06:25,569 las variables como decimales 107 00:06:25,569 --> 00:06:26,110 obviamente 108 00:06:26,110 --> 00:06:28,290 si yo tengo aquí dos numeritos 109 00:06:28,290 --> 00:06:29,889 de 1 igual a 34 110 00:06:29,889 --> 00:06:33,250 y de 2 igual a 35 111 00:06:33,250 --> 00:06:35,529 pues entonces ahora ya 112 00:06:35,529 --> 00:06:37,129 esto sí que tiene sentido 113 00:06:37,129 --> 00:06:39,230 resultado igual a 114 00:06:39,230 --> 00:06:41,670 de 1 entre de 2 115 00:06:41,670 --> 00:06:44,910 Ahora ya, en la máquina virtual ve esto 116 00:06:44,910 --> 00:06:46,610 División, ¿qué tipo de división? 117 00:06:46,730 --> 00:06:47,170 No lo sé 118 00:06:47,170 --> 00:06:50,870 Voy a mirar qué es lo que tengo alrededor 119 00:06:50,870 --> 00:06:52,910 Anda, tienes variables decimales 120 00:06:52,910 --> 00:06:54,730 Double, pues entonces 121 00:06:54,730 --> 00:06:57,470 División decimal, y te hace la división con decimales 122 00:06:57,470 --> 00:06:59,589 Y una vez que la división con decimales 123 00:06:59,589 --> 00:07:01,410 Lo guarda aquí 124 00:07:01,410 --> 00:07:03,790 Como resultado es decimal 125 00:07:03,790 --> 00:07:05,569 Perfectamente le cabe, no hay problema 126 00:07:05,569 --> 00:07:07,750 Si el resultado fuera int 127 00:07:07,750 --> 00:07:09,089 Ya sabéis lo que pasaría 128 00:07:09,089 --> 00:07:10,730 Que el compilador me diría 129 00:07:10,730 --> 00:07:12,649 Oye, da a Belenín, no puedo 130 00:07:12,649 --> 00:07:14,589 Y tendríamos que hacer el casting, ¿verdad? 131 00:07:15,069 --> 00:07:16,490 Que es lo que dijimos el último día 132 00:07:16,490 --> 00:07:19,110 Vale, pero ahora mismo 133 00:07:19,110 --> 00:07:19,949 Tal y como está 134 00:07:19,949 --> 00:07:25,569 Uy, si no pongo que me lo muestre 135 00:07:25,569 --> 00:07:27,209 Complicado 136 00:07:27,209 --> 00:07:34,949 ¿Vale? 137 00:07:35,589 --> 00:07:36,470 Esto ya sí 138 00:07:36,470 --> 00:07:40,230 Entonces, este operador de los aritméticos 139 00:07:40,230 --> 00:07:42,269 Es el único que si no sois 140 00:07:42,269 --> 00:07:44,050 Cuidadosos y tenéis las cosas claras 141 00:07:44,050 --> 00:07:46,110 A lo mejor una aplicación no hace 142 00:07:46,110 --> 00:07:47,709 Lo que tiene que hacer y no entendéis por qué 143 00:07:47,709 --> 00:07:50,589 y a lo mejor es simplemente por eso, porque creéis que está haciendo 144 00:07:50,589 --> 00:07:52,790 un tipo de división y no entendéis 145 00:07:52,790 --> 00:07:55,009 por qué no dan decimales o no entendéis un resultado 146 00:07:55,009 --> 00:07:56,750 y ese resultado es que no es 147 00:07:56,750 --> 00:07:58,850 una división decimal, sino un cociente 148 00:07:58,850 --> 00:08:00,569 y un cociente porque las variables 149 00:08:00,569 --> 00:08:02,850 están declaradas como y, ¿vale? pues primera cosa 150 00:08:02,850 --> 00:08:04,850 ahí clavada 151 00:08:04,850 --> 00:08:06,810 en la cabeza, y ahora haríais 152 00:08:06,810 --> 00:08:08,310 una pregunta, seguramente 153 00:08:08,310 --> 00:08:10,029 ¿qué sería? 154 00:08:10,670 --> 00:08:12,569 anda, y si una variable es decimal 155 00:08:12,569 --> 00:08:14,889 y otra es entera, ¿me deja 156 00:08:14,889 --> 00:08:15,529 mezclar? 157 00:08:15,529 --> 00:08:19,050 pues tiene pinta, podemos intuir que sí 158 00:08:19,050 --> 00:08:21,230 porque como ya sabemos que existe el concepto 159 00:08:21,230 --> 00:08:23,250 promoción automática que es cuando me hace 160 00:08:23,250 --> 00:08:25,129 falta el int pasarlo a double, lo paso a double 161 00:08:25,129 --> 00:08:27,290 sin problema, pues seguramente 162 00:08:27,290 --> 00:08:28,329 también sea capaz de hacerlo ahí 163 00:08:28,329 --> 00:08:30,750 ¿verdad? vamos a probar ahora 164 00:08:30,750 --> 00:08:33,009 a la variable resultado 165 00:08:33,009 --> 00:08:34,269 yo voy a hacer 166 00:08:34,269 --> 00:08:37,190 n1, que n1 está declarada 167 00:08:37,190 --> 00:08:38,769 como entera y vale 168 00:08:38,769 --> 00:08:40,450 34, n1 169 00:08:40,450 --> 00:08:42,649 entre d2 170 00:08:42,649 --> 00:08:44,929 que d2 está declarada como 171 00:08:44,929 --> 00:08:47,190 decimal y vale 35 172 00:08:47,190 --> 00:08:50,830 el compilador no da problemas 173 00:08:50,830 --> 00:08:52,269 estamos haciendo una operación 174 00:08:52,269 --> 00:08:53,669 con variables 175 00:08:53,669 --> 00:08:56,830 que son de dos tipos de datos diferentes 176 00:08:56,830 --> 00:08:58,250 entera y decimal 177 00:08:58,250 --> 00:09:00,649 no pasa nada, el siempre 178 00:09:00,649 --> 00:09:02,470 un entero lo puede pasar a decimal, siempre 179 00:09:02,470 --> 00:09:04,429 poniendo coma 0 0 0 180 00:09:04,429 --> 00:09:06,610 pues lo pasa a decimal, estupendamente 181 00:09:06,610 --> 00:09:08,909 el n1 que es 34 lo pasa a 34 182 00:09:08,909 --> 00:09:10,789 punto 0 0 0 0, lo pasa a decimal 183 00:09:10,789 --> 00:09:12,470 y hace la división 184 00:09:12,470 --> 00:09:13,750 ¿vale? 185 00:09:13,750 --> 00:09:20,820 No lo he mostrado 186 00:09:20,820 --> 00:09:30,059 El profil este 187 00:09:30,059 --> 00:09:30,779 ¿Vale? 188 00:09:36,080 --> 00:09:37,019 Espera, espera, espera 189 00:09:37,019 --> 00:09:39,320 Que lo estoy diciendo mal 190 00:09:39,320 --> 00:09:40,639 Espera un segundito 191 00:09:40,639 --> 00:09:44,340 Resultado lo tengo como 192 00:09:44,340 --> 00:09:56,320 Espera, espera, espera 193 00:09:56,320 --> 00:09:57,340 Se me ha ido la pinza 194 00:09:57,340 --> 00:09:58,759 Lo he 195 00:09:58,759 --> 00:10:06,149 Entre dedos 196 00:10:06,149 --> 00:10:10,539 Casting 197 00:10:10,539 --> 00:10:18,070 Lo ha tratado como división entera 198 00:10:18,070 --> 00:10:29,750 D2 es 35 199 00:10:29,750 --> 00:10:56,200 Vamos a poner aquí esto 200 00:10:56,200 --> 00:11:00,639 Porque hay una cosa que no os estoy diciendo bien 201 00:11:00,639 --> 00:11:01,299 ¿Vale? 202 00:11:03,340 --> 00:11:04,419 Esto de aquí 203 00:11:04,419 --> 00:11:10,970 Control X 204 00:11:10,970 --> 00:11:16,429 ¿Vale? 205 00:11:16,429 --> 00:11:27,250 Y cuando mezclamos tipos 206 00:11:27,250 --> 00:11:30,100 ¿Vale? 207 00:11:31,200 --> 00:11:32,679 Cuando mezclamos tipos 208 00:11:32,679 --> 00:11:35,940 os he dicho que la variable entera la promociona 209 00:11:35,940 --> 00:11:40,000 y aquí me lo está haciendo al revés 210 00:11:40,000 --> 00:11:43,740 la decimal es la que está quitándole la parte entera 211 00:11:43,740 --> 00:11:47,879 entonces vamos a dejarlo así en interrogación 212 00:11:47,879 --> 00:11:50,759 porque hay una cosa que me está resultando un poquito confusa 213 00:11:50,759 --> 00:11:55,139 vale, entonces el operador división 214 00:11:55,139 --> 00:11:57,779 lo que hay que tener claro es que es de los aritméticos 215 00:11:57,779 --> 00:12:02,080 es el único que puede generar un poquito de confusión 216 00:12:02,080 --> 00:12:05,100 en función de las variables con las que operemos 217 00:12:05,100 --> 00:12:06,440 o hace división entera 218 00:12:06,440 --> 00:12:08,919 o hace división decimal, depende de los operandos 219 00:12:08,919 --> 00:12:09,879 con los que trabaje 220 00:12:09,879 --> 00:12:13,080 este operador es un operador 221 00:12:13,080 --> 00:12:14,600 que usamos continuamente 222 00:12:14,600 --> 00:12:16,879 el operador resto 223 00:12:16,879 --> 00:12:18,360 entre dos operandos 224 00:12:18,360 --> 00:12:20,659 todo el mundo sabe lo que es el operador módulo 225 00:12:20,659 --> 00:12:21,460 o el operador resto 226 00:12:21,460 --> 00:12:24,480 es el resto de la división entera 227 00:12:24,480 --> 00:12:26,220 resto de división entera 228 00:12:26,220 --> 00:12:28,039 bueno, dime 229 00:12:28,039 --> 00:12:30,600 lo mismo te salto de error porque arriba 230 00:12:30,600 --> 00:12:31,740 tenías ya 231 00:12:31,740 --> 00:12:34,039 definido que N1 es igual a 232 00:12:34,039 --> 00:12:35,799 N1 entre 233 00:12:35,799 --> 00:12:36,740 N2 234 00:12:36,740 --> 00:12:42,259 puede ser, sí 235 00:12:42,259 --> 00:12:44,000 sí, lo que pasa es que ahora como me cuesta 236 00:12:44,000 --> 00:12:45,820 pensar y hablar a la vez, prefiero dejarlo 237 00:12:45,820 --> 00:12:47,940 aparcado, ¿vale? y luego 238 00:12:47,940 --> 00:12:49,940 lo miro, pero sí, sí, sí, hay alguna cosa 239 00:12:49,940 --> 00:12:52,080 aquí que me ha resultado un poquito contradictoria 240 00:12:52,080 --> 00:12:53,919 pero ya me pararé 241 00:12:53,919 --> 00:12:55,919 sobre ello para no ponernos 242 00:12:55,919 --> 00:12:57,779 aquí a... pero puede ser, puede ser 243 00:12:57,779 --> 00:12:59,220 que vaya por ahí, ¿vale? 244 00:13:00,159 --> 00:13:01,860 vale, el operador este 245 00:13:01,860 --> 00:13:02,840 módulo 246 00:13:02,840 --> 00:13:05,899 este operador es muy útil 247 00:13:05,899 --> 00:13:08,299 ayer seguramente en alguno de los ejemplos 248 00:13:08,299 --> 00:13:10,919 ya lo usasteis 249 00:13:10,919 --> 00:13:13,360 para establecer la condición 250 00:13:13,360 --> 00:13:15,659 de si un número es múltiplo de otro 251 00:13:15,659 --> 00:13:16,980 pues está claro 252 00:13:16,980 --> 00:13:18,879 si el resto de un número entre otro es cero 253 00:13:18,879 --> 00:13:21,759 entonces el operador resto de la división entera 254 00:13:21,759 --> 00:13:23,399 se usa mucho 255 00:13:23,399 --> 00:13:25,740 para hacer muchas cosas 256 00:13:25,740 --> 00:13:26,799 ¿vale? 257 00:13:26,840 --> 00:13:28,179 todos sabéis lo que significa 258 00:13:28,179 --> 00:13:29,639 el resto de la división entera 259 00:13:29,639 --> 00:13:30,740 y que el operador es este 260 00:13:30,740 --> 00:13:33,539 bueno, pues en cuanto a los de asignación 261 00:13:33,539 --> 00:13:35,840 los aritméticos ya están, no hay mucho que ver 262 00:13:35,840 --> 00:13:37,580 operador de asignación 263 00:13:37,580 --> 00:13:40,200 tenemos perfectamente lo que significa 264 00:13:40,200 --> 00:13:41,440 no hay nada que ver, ¿vale? 265 00:13:42,179 --> 00:13:42,580 a ver 266 00:13:42,580 --> 00:13:45,240 forma abreviada 267 00:13:45,240 --> 00:13:47,799 que la vais a ver 268 00:13:47,799 --> 00:13:50,379 muchísimo, para hacer asignaciones 269 00:13:50,379 --> 00:13:51,559 forma abreviada 270 00:13:51,559 --> 00:13:53,700 ayer la usasteis ya 271 00:13:53,700 --> 00:13:55,080 en alguno de los vídeos que grabasteis con Estefano 272 00:13:55,080 --> 00:13:57,879 esta la vais a usar continuamente y hay que empezar 273 00:13:57,879 --> 00:13:59,779 a manejarla, hay veces 274 00:13:59,779 --> 00:14:02,940 que a la hora de asignar 275 00:14:02,940 --> 00:14:04,100 una variable 276 00:14:04,100 --> 00:14:06,519 en la propia expresión 277 00:14:06,519 --> 00:14:08,220 aparece esa variable 278 00:14:08,220 --> 00:14:09,580 ¿vale? 279 00:14:10,759 --> 00:14:12,139 entonces se usa mucho 280 00:14:12,139 --> 00:14:13,399 una forma compacta 281 00:14:13,399 --> 00:14:14,879 que vais a ver 282 00:14:14,879 --> 00:14:17,500 muy a menudo 283 00:14:17,500 --> 00:14:39,950 vale 284 00:14:39,950 --> 00:14:42,250 lo podríamos llamar 285 00:14:42,250 --> 00:14:43,970 asignación compactada 286 00:14:43,970 --> 00:14:44,809 no es que tenga nombre 287 00:14:44,809 --> 00:14:45,830 pero bueno 288 00:14:45,830 --> 00:14:50,899 aquí lo que dice 289 00:14:50,899 --> 00:14:53,779 lo que dice el texto 290 00:14:53,779 --> 00:14:58,519 todo el documento que tengo escrito, es que se puede combinar la asignación con operadores 291 00:14:58,519 --> 00:15:01,720 para hacer más compacta la operación de asignación. 292 00:15:02,519 --> 00:15:04,899 ¿Vale? Entonces, ¿esto cómo funciona? 293 00:15:06,440 --> 00:15:11,080 A ver, la asignación siempre es a una variable, eso está claro, ¿verdad? 294 00:15:11,759 --> 00:15:13,899 A una variable le asignamos a una expresión. 295 00:15:14,779 --> 00:15:18,080 Pero una situación que se da muy a menudo, muy a menudo, 296 00:15:18,080 --> 00:15:35,509 es que esta expresión de aquí involucra, involucra la propia variable x, ¿vale? 297 00:15:35,590 --> 00:15:39,990 Eso puede ocurrir mucho, la propia variable x está involucrada en la expresión, ¿vale? 298 00:15:40,049 --> 00:15:48,610 Podría ser x más 3, el ejemplo más sencillo, y eso no pasa nada, porque la propia variable está involucrada aquí, 299 00:15:48,690 --> 00:15:52,490 ya sabemos cómo funciona, la máquina virtual, de la izquierda se olvida, 300 00:15:52,490 --> 00:15:55,009 se pone a evaluar la expresión 301 00:15:55,009 --> 00:15:57,370 cogiendo una copia 302 00:15:57,370 --> 00:15:59,090 del valor que hay aquí, cogiendo una copia 303 00:15:59,090 --> 00:16:01,350 ¿tiene 7? vale, coge una copia 304 00:16:01,350 --> 00:16:02,990 de 7, evalúa 305 00:16:02,990 --> 00:16:05,409 7 más 3, 10, o lo que sea 306 00:16:05,409 --> 00:16:07,330 si es muy grandote, una vez que 307 00:16:07,330 --> 00:16:09,289 tiene ya el valor final 308 00:16:09,289 --> 00:16:11,450 se va a esta variable 309 00:16:11,450 --> 00:16:13,289 y solo ya al final se va a esta variable 310 00:16:13,289 --> 00:16:15,409 y le mete el valor pisando lo que hubiera 311 00:16:15,409 --> 00:16:17,110 en este caso 10, vale 312 00:16:17,110 --> 00:16:19,289 luego es una situación muy habitual que esta 313 00:16:19,289 --> 00:16:21,509 expresión involucre a una variable que está aquí 314 00:16:21,509 --> 00:16:27,610 Vale, pues esto normalmente se suele compactar de la siguiente manera 315 00:16:27,610 --> 00:16:35,110 Que mi operación es x más 3 316 00:16:35,110 --> 00:16:39,730 Pues quitamos el operador, la expresión sería x más 3 317 00:16:39,730 --> 00:16:41,769 La idea sería lo siguiente 318 00:16:41,769 --> 00:16:44,850 Mi expresión es x más 3 319 00:16:44,850 --> 00:16:49,490 Y este x más 3 se lo quiero asignar a la variable x 320 00:16:49,490 --> 00:16:54,169 Pues pongo el igual, ahí delante 321 00:16:54,169 --> 00:16:56,470 perdón, detrás 322 00:16:56,470 --> 00:16:58,509 lo pongo ahí 323 00:16:58,509 --> 00:17:00,950 y digo, olvídate del igual 324 00:17:00,950 --> 00:17:02,570 haz mi operación 325 00:17:02,570 --> 00:17:05,250 y asígnasela a la variable que esté más cerca 326 00:17:05,250 --> 00:17:06,029 del igual 327 00:17:06,029 --> 00:17:08,849 y esto ya me sobra 328 00:17:08,849 --> 00:17:13,630 entonces cuando vemos el operador 329 00:17:13,630 --> 00:17:15,009 más igual 330 00:17:15,009 --> 00:17:16,490 menos igual 331 00:17:16,490 --> 00:17:19,589 por igual, división igual 332 00:17:19,589 --> 00:17:20,890 por ciento igual 333 00:17:20,890 --> 00:17:23,589 cuando vemos esto junto, que lo podemos ver así junto 334 00:17:23,589 --> 00:17:25,890 en cualquier expresión 335 00:17:25,890 --> 00:17:33,329 lo podemos ver así. Esto significa, significa, haz la operación olvidándote del igual. 336 00:17:34,430 --> 00:17:40,730 Quítalo y haz la operación olvidándote del igual. Esto. Una vez que ya has hecho la 337 00:17:40,730 --> 00:17:48,130 operación ignorando el igual, ahora ya ese valor que te ha dado, asígnaselo a la variable 338 00:17:48,130 --> 00:17:54,509 que está justo pegadita a donde te has encontrado el operador. Asígnaselo a X. Eso significa, 339 00:17:54,509 --> 00:17:57,329 bueno, pues esto 340 00:17:57,329 --> 00:17:59,750 se usa continuamente porque 341 00:17:59,750 --> 00:18:01,970 es más rápido de escribir 342 00:18:01,970 --> 00:18:03,369 en expresiones más complejas 343 00:18:03,369 --> 00:18:05,529 y siempre lo vais a encontrar así 344 00:18:05,529 --> 00:18:07,130 un operador seguido del igual 345 00:18:07,130 --> 00:18:10,369 y la forma de interpretar 346 00:18:10,369 --> 00:18:12,049 eso es esa, el truco más fácil es 347 00:18:12,049 --> 00:18:14,150 vale, yo veo aquí más igual por igual 348 00:18:14,150 --> 00:18:15,549 no me lío, donde yo sea 349 00:18:15,549 --> 00:18:17,509 donde yo vea ese operador 350 00:18:17,509 --> 00:18:19,809 tapo el igual 351 00:18:19,809 --> 00:18:20,829 como si no existiera 352 00:18:20,829 --> 00:18:23,789 tapo todos los iguales y es que este operador 353 00:18:23,789 --> 00:18:25,509 los tapo, ¿vale? 354 00:18:26,069 --> 00:18:28,329 hago la operación resultante 355 00:18:28,329 --> 00:18:29,450 hago la operación 356 00:18:29,450 --> 00:18:31,549 ya tengo el valor 357 00:18:31,549 --> 00:18:34,349 pues ese valor me va a la variable 358 00:18:34,349 --> 00:18:36,210 que esté a la izquierda donde estaba ese operador 359 00:18:36,210 --> 00:18:37,250 eso significa 360 00:18:37,250 --> 00:18:40,220 ¿vale? 361 00:18:41,279 --> 00:18:43,319 entonces, si a n le queremos quitar 1 362 00:18:43,319 --> 00:18:46,000 pues haríamos esto 363 00:18:46,000 --> 00:18:47,579 ¿vale? 364 00:18:49,019 --> 00:18:50,920 entonces, esto ya es una asignación 365 00:18:50,920 --> 00:18:53,859 esto no es que luego se le asigne además a otra cosa 366 00:18:53,859 --> 00:18:56,779 no, esto ya es una asignación 367 00:18:56,779 --> 00:19:00,279 esta expresión sería exactamente igual a hacer 368 00:19:00,279 --> 00:19:03,619 n-1, vale, quito el igual, n-1 369 00:19:03,619 --> 00:19:05,819 y ahora n-1 a quién se lo asigno 370 00:19:05,819 --> 00:19:09,079 a la variable que tengo a la izquierda del operador, a n 371 00:19:09,079 --> 00:19:13,579 vale, así puedo deshacer este operador 372 00:19:13,579 --> 00:19:15,160 y esto es igual que una asignación 373 00:19:15,160 --> 00:19:17,279 pero esta sentencia yo me la encuentro suelta 374 00:19:17,279 --> 00:19:35,400 vale, y puede ser esto arbitrariamente complejo 375 00:19:35,400 --> 00:19:44,599 Podríamos tener x más igual 3 por x menos n. 376 00:19:46,400 --> 00:19:48,619 Bueno, pues da igual, yo quito el igual. 377 00:19:49,440 --> 00:19:51,640 Me queda una expresión, la evalúo. 378 00:19:52,259 --> 00:19:56,339 Y ahora el resultado de toda esa expresión va a parar a x. 379 00:19:58,079 --> 00:20:02,200 Entonces, hombre, el objetivo cuando uno construye expresiones es hacer cosas más o menos que se entiendan. 380 00:20:02,200 --> 00:20:03,720 cuando uno le queda una expresión muy grande 381 00:20:03,720 --> 00:20:05,940 a lo mejor es más clara si la divide 382 00:20:05,940 --> 00:20:07,839 en expresiones en diferentes líneas 383 00:20:07,839 --> 00:20:08,779 y la va construyendo 384 00:20:08,779 --> 00:20:11,640 pero bueno, el funcionamiento de los operadores es ese de ahí 385 00:20:11,640 --> 00:20:13,519 que os digo 386 00:20:13,519 --> 00:20:16,079 uy, que asusto