1 00:00:00,000 --> 00:00:04,519 Vamos con el 31, que es un poco así rarito, ¿verdad? 2 00:00:06,519 --> 00:00:08,660 ¿Alguno de vosotros lo ha hecho? 3 00:00:09,800 --> 00:00:10,759 ¿Has dado tiempo a hacerlo? 4 00:00:11,900 --> 00:00:12,339 Vale. 5 00:00:13,019 --> 00:00:13,460 ¿Perdón? 6 00:00:15,060 --> 00:00:15,980 ¿Que deje el qué? 7 00:00:18,079 --> 00:00:20,640 Vale, pero lo tienes en tu pantalla también. 8 00:00:22,960 --> 00:00:23,399 Vale. 9 00:00:24,679 --> 00:00:28,039 Bueno, entonces, primero lo de siempre es leerlo, 10 00:00:28,100 --> 00:00:29,000 entender lo que hay que hacer, 11 00:00:29,000 --> 00:00:31,780 y luego hacerse una primera composición del lugar en la cabeza. 12 00:00:32,399 --> 00:00:34,979 Ahora mismo, como son IF y SWITCH y operador ternario, 13 00:00:35,240 --> 00:00:37,219 lo que estamos haciendo, operador ternario y IF y SWITCH, 14 00:00:37,320 --> 00:00:38,439 es decir, lógica booleana. 15 00:00:38,920 --> 00:00:44,500 Sobre todo aquí la clave es encontrar cuántas ramas tiene mi programa 16 00:00:44,500 --> 00:00:47,020 y fijar las condiciones para cada una de las ramas. 17 00:00:47,119 --> 00:00:49,740 Es el único pensamiento lógico ahora mismo que estamos teniendo. 18 00:00:50,280 --> 00:00:52,700 Darnos cuenta de que el enunciado que nos plantean 19 00:00:52,700 --> 00:00:55,659 va a tener varias posibilidades de actuación 20 00:00:55,659 --> 00:00:59,119 e identificar qué condición está asociada 21 00:00:59,119 --> 00:01:00,979 a cada una de esas posibilidades de actuación 22 00:01:00,979 --> 00:01:03,960 y luego ya plasmar eso en un código 23 00:01:03,960 --> 00:01:05,659 que normalmente, pues, no se unir. 24 00:01:06,019 --> 00:01:07,680 Si son dos posibilidades de actuación, 25 00:01:07,920 --> 00:01:09,180 unif el save.pelota. 26 00:01:09,319 --> 00:01:13,019 Si son varias, unif el save, el save, el save. 27 00:01:13,640 --> 00:01:17,780 Y si son varias, dependiendo del valor de una variable, 28 00:01:18,200 --> 00:01:20,120 pues, en lugar de unif el save, el save, 29 00:01:20,280 --> 00:01:21,959 pues, un switch case que queda más claro. 30 00:01:22,640 --> 00:01:23,239 De eso se trata. 31 00:01:23,340 --> 00:01:25,260 Es el único pensamiento ahora que tenemos en la cabeza. 32 00:01:25,260 --> 00:01:26,700 a eso y bueno, luego ya, claro, 33 00:01:27,280 --> 00:01:29,040 manejar, tener claro el funcionamiento 34 00:01:29,040 --> 00:01:30,939 de los tipos de datos, las variables 35 00:01:30,939 --> 00:01:32,920 y todo eso. A ver, 36 00:01:33,819 --> 00:01:34,799 tú me ibas a preguntar algo. 37 00:01:35,819 --> 00:01:36,719 Ah, dime, dime. 38 00:01:36,719 --> 00:01:38,900 ¿El examen va a ser 39 00:01:38,900 --> 00:01:40,040 con esa característica de PINODE, que era 40 00:01:40,040 --> 00:01:42,280 la PINODE y era con ASPEN? 41 00:01:44,859 --> 00:01:46,239 ¿Va a aparecer eso o no? 42 00:01:46,700 --> 00:01:48,340 No sé si se va a aparecer. 43 00:01:48,519 --> 00:01:50,060 Hasta mañana por la mañana no lo sabré. 44 00:01:51,019 --> 00:01:52,379 Pero no va a ser 45 00:01:52,379 --> 00:01:54,439 difícil, no va a ser difícil, 46 00:01:54,439 --> 00:01:55,659 no va a ser difícil 47 00:01:55,659 --> 00:01:58,500 es un ejercicio más y ni siquiera 48 00:01:58,500 --> 00:02:00,159 de los difíciles, hay de más fáciles 49 00:02:00,159 --> 00:02:02,680 hay de más difíciles, pues ni siquiera de los difíciles 50 00:02:02,680 --> 00:02:04,680 ¿vale? pero no obsesionéis 51 00:02:04,680 --> 00:02:05,859 tanto con el examen 52 00:02:05,859 --> 00:02:07,439 ¿cómo? 53 00:02:10,960 --> 00:02:12,039 pues no lo sé 54 00:02:12,039 --> 00:02:13,539 no sé, decirte 55 00:02:13,539 --> 00:02:15,139 pues 56 00:02:15,139 --> 00:02:17,960 todo puede ser fácil y difícil 57 00:02:17,960 --> 00:02:19,840 o sea, si tú a largo lo llamas difícil 58 00:02:19,840 --> 00:02:21,300 pues hombre, este es largo 59 00:02:21,300 --> 00:02:23,060 porque tienes un montón de posibilidades 60 00:02:23,060 --> 00:02:24,939 Si es 40, 50, 60 61 00:02:24,939 --> 00:02:26,319 ¿Vale? 62 00:02:26,919 --> 00:02:28,979 Esto, sin embargo, pues sabiendo Arraiz 63 00:02:28,979 --> 00:02:31,520 Y otras cosas, pues a lo mejor se queda más cortito 64 00:02:31,520 --> 00:02:33,400 No lo sé 65 00:02:33,400 --> 00:02:34,099 ¿A ti te parece difícil? 66 00:02:36,000 --> 00:02:36,439 Pregunto 67 00:02:36,439 --> 00:02:38,580 Tú dirías que no 68 00:02:38,580 --> 00:02:41,199 Pues entonces, maravilloso 69 00:02:41,199 --> 00:02:43,280 No tienes por qué preocuparte 70 00:02:43,280 --> 00:02:44,639 ¿Vale? 71 00:02:45,460 --> 00:02:47,280 Bueno, pues entonces, este programa 72 00:02:47,280 --> 00:02:49,400 Con lo que sabemos ahora, se trata de 73 00:02:49,400 --> 00:02:51,139 ¿Cuántas posibilidades tengo? 74 00:02:51,139 --> 00:02:53,180 hombre, pues a ver, como tener tengo un montón 75 00:02:53,180 --> 00:02:55,300 tantas como números me hayan dado 76 00:02:55,300 --> 00:02:57,599 ¿no? desde el 0, 1, 2, 3 77 00:02:57,599 --> 00:02:59,620 claro, entonces no puedo hacer un 78 00:02:59,620 --> 00:03:01,620 sí, tendría siempre una opción 79 00:03:01,620 --> 00:03:03,479 estupenda, que es hacer 80 00:03:03,479 --> 00:03:05,500 un switch case con un 81 00:03:05,500 --> 00:03:07,520 case que tenga 100 ramas 82 00:03:07,520 --> 00:03:09,639 y sí, el programa 83 00:03:09,639 --> 00:03:11,819 funciona, y desde luego 84 00:03:11,819 --> 00:03:13,860 va a ser computacionalmente 85 00:03:13,860 --> 00:03:14,740 niquelado 86 00:03:14,740 --> 00:03:17,259 pero a nivel de código pesadísimo 87 00:03:17,259 --> 00:03:18,919 ¿vale? a nivel de código muy pesado 88 00:03:18,919 --> 00:03:21,520 entonces, entendéis que con un switch case 89 00:03:21,520 --> 00:03:23,419 a lo que me refiero, ¿no? sería case 0, 0 90 00:03:23,419 --> 00:03:25,199 case 1, 1, case 2, 2 91 00:03:25,199 --> 00:03:27,560 ¿vale? pues si uno tiene la paciencia de escribirlo así 92 00:03:27,560 --> 00:03:29,639 pues el programa está estupendamente hecho y va a pasar 93 00:03:29,639 --> 00:03:31,360 toda la fase de pruebas 94 00:03:31,360 --> 00:03:33,020 la va a pasar con una nota muy alta 95 00:03:33,020 --> 00:03:35,240 porque computacionalmente va a tener muy poco coste 96 00:03:35,240 --> 00:03:37,620 ¿vale? en cuanto lleguemos al case 97 00:03:37,620 --> 00:03:39,259 listo, pero 98 00:03:39,259 --> 00:03:41,599 a nivel de elegibilidad de código 99 00:03:41,599 --> 00:03:42,979 pues un poco pesado, un poco largo 100 00:03:42,979 --> 00:03:44,939 y sobre todo vamos a practicarlo 101 00:03:44,939 --> 00:03:47,280 a plantearlo de otra manera en la que podamos 102 00:03:47,280 --> 00:03:48,300 practicar un poco más 103 00:03:48,300 --> 00:03:49,759 entonces 104 00:03:49,759 --> 00:03:52,759 aquí imagino lo que habéis pensado 105 00:03:52,759 --> 00:03:54,240 lo que lo habéis abordado es 106 00:03:54,240 --> 00:03:56,759 bueno, puedo dividirlo al menos 107 00:03:56,759 --> 00:03:57,580 en 108 00:03:57,580 --> 00:03:59,979 10 109 00:03:59,979 --> 00:04:02,719 subramas, o sea la rama 110 00:04:02,719 --> 00:04:04,580 de si es 111 00:04:04,580 --> 00:04:06,199 el 20, bueno 112 00:04:06,199 --> 00:04:08,740 por ejemplo la rama de todos los 50 113 00:04:08,740 --> 00:04:10,680 pues todos empiezan igual 114 00:04:10,680 --> 00:04:12,400 50 y, 50 y 115 00:04:12,400 --> 00:04:14,419 entonces todo eso lo puede meter en una sola rama 116 00:04:14,419 --> 00:04:16,620 que es cuando tenga una cifra 117 00:04:16,620 --> 00:04:17,699 decimal 5 118 00:04:17,699 --> 00:04:20,399 sé que va a funcionar como 50i 119 00:04:20,399 --> 00:04:22,899 y el otro concatenado con lo que sea 120 00:04:22,899 --> 00:04:24,779 vale, si es un 1, pues 1 121 00:04:24,779 --> 00:04:27,240 entonces, puedo hacerlo con ramas y subramas 122 00:04:27,240 --> 00:04:28,740 vale, englobando 123 00:04:28,740 --> 00:04:30,579 en función de la decena 124 00:04:30,579 --> 00:04:32,660 en la que esté, en función de la decena 125 00:04:32,660 --> 00:04:34,240 actúo de una manera 126 00:04:34,240 --> 00:04:36,519 entonces, si yo trabajo en función 127 00:04:36,519 --> 00:04:38,860 de la decena, ya lo he reducido 128 00:04:38,860 --> 00:04:40,519 a 10 posibilidades 129 00:04:40,519 --> 00:04:42,459 al menos, ya un switch case con 10 130 00:04:42,459 --> 00:04:44,620 posibilidades, ya es un switch case 131 00:04:44,620 --> 00:04:46,259 muy manejable, un switch case con 10 132 00:04:46,259 --> 00:04:48,939 posibilidades podemos necesitarlo 133 00:04:48,939 --> 00:04:50,620 muy a menudo. Entonces, 134 00:04:50,759 --> 00:04:52,699 si lo rebajamos a la decena, 135 00:04:52,779 --> 00:04:54,920 ya tenemos un switch case de 10 posibilidades. 136 00:04:55,620 --> 00:04:56,660 Y ahora ya sí, dentro 137 00:04:56,660 --> 00:04:58,860 de ese case, pues ahora 138 00:04:58,860 --> 00:05:00,480 tendré que distinguir 139 00:05:00,480 --> 00:05:02,819 si la unidad es 1, 140 00:05:02,939 --> 00:05:03,959 es 2, es 3. 141 00:05:04,540 --> 00:05:06,220 Ese podría ser el primer planteamiento. 142 00:05:06,819 --> 00:05:08,680 Vamos a reducirlo a 143 00:05:08,680 --> 00:05:10,920 10 caminos basándonos 144 00:05:10,920 --> 00:05:12,720 en la decena, y luego 145 00:05:12,720 --> 00:05:14,399 ya a partir de ahí seguimos trabajando. 146 00:05:14,500 --> 00:05:15,939 Es lo primero que se nos ocurriría. 147 00:05:16,259 --> 00:05:39,560 Entonces si lo planteamos así tenemos que sacar la decena y la unidad, claro, pero eso ya sabemos hacerlo porque recordad que siempre todos los problemas nos apoyamos en cosas que ya hemos resuelto y que como ya la hemos resuelto pues ya la tenemos en la cabeza, entonces ya hemos resuelto sacar decenas, centenas, unidades y podríamos resolver sacar unidades de millar, decenas de millar, 148 00:05:39,560 --> 00:05:42,519 Pero como eso ya se debería hacer en un bucle 149 00:05:42,519 --> 00:05:43,680 Para que no se haga muy pesado 150 00:05:43,680 --> 00:05:45,620 Pues ya lo haremos cuando veamos el bucle 151 00:05:45,620 --> 00:05:48,759 Bueno, pues nos apoyamos en esa situación 152 00:05:48,759 --> 00:05:51,339 De sacar la decena y la centena 153 00:05:51,339 --> 00:05:53,100 Y la unidad que ya hemos resuelto 154 00:05:53,100 --> 00:05:54,680 Y empezamos a trabajar así 155 00:05:54,680 --> 00:05:55,899 ¿Vale? 156 00:05:55,939 --> 00:05:57,480 Imagino que es como lo habéis planteado, ¿no? 157 00:06:00,120 --> 00:06:01,060 Pues entonces 158 00:06:01,060 --> 00:06:02,759 Aquí 159 00:06:02,759 --> 00:06:06,360 Como tenemos que leer el numerito 160 00:06:06,360 --> 00:06:26,300 Vale 161 00:06:26,300 --> 00:06:28,279 Pues nada 162 00:06:28,279 --> 00:06:31,019 un numerito 163 00:06:31,019 --> 00:06:42,060 a ver, otra cosa os digo 164 00:06:42,060 --> 00:06:43,300 también de cara a mañana 165 00:06:43,300 --> 00:06:46,160 si alguien 166 00:06:46,160 --> 00:06:47,879 se atasca por algo que tiene que tener 167 00:06:47,879 --> 00:06:49,980 en la cabeza, eso también es 168 00:06:49,980 --> 00:06:51,180 un problema, por ejemplo 169 00:06:51,180 --> 00:06:53,959 uy, es que no me acuerdo 170 00:06:53,959 --> 00:06:55,139 de escribir esto 171 00:06:55,139 --> 00:06:57,660 y es que es una chorrada 172 00:06:57,660 --> 00:06:59,579 es una chorrada 173 00:06:59,579 --> 00:07:02,139 por esto no me puede girar, pues sí 174 00:07:02,139 --> 00:07:03,899 porque esto 175 00:07:03,899 --> 00:07:06,079 son cosas básicas, uno no puede fallar 176 00:07:06,079 --> 00:07:08,180 temas básicos de memoria o de habilidad 177 00:07:08,180 --> 00:07:09,860 para ver cómo sacarlo si no se acuerda 178 00:07:09,860 --> 00:07:11,699 hay un montón de habilidades 179 00:07:11,699 --> 00:07:13,920 que uno tiene que tener frescas y 180 00:07:13,920 --> 00:07:15,699 trabajadas si quiere ser programador 181 00:07:15,699 --> 00:07:17,899 entonces, es que no me he acordado 182 00:07:17,899 --> 00:07:19,560 de esto, por esto no puede ser que 183 00:07:19,560 --> 00:07:22,079 sí, porque que tú te acuerdes 184 00:07:22,079 --> 00:07:24,180 de las cosas, es algo básico 185 00:07:24,180 --> 00:07:25,759 si quieres ser desarrollador 186 00:07:25,759 --> 00:07:27,920 otra cosa es que bueno, que yo que sé 187 00:07:27,920 --> 00:07:28,639 que 188 00:07:28,639 --> 00:07:32,519 que haya una chorrada 189 00:07:32,519 --> 00:07:34,019 que claramente, pues porque sea 190 00:07:34,019 --> 00:07:36,379 traspapelada la de escribir, pues falta un punto y coma 191 00:07:36,379 --> 00:07:37,879 pues si no funciona 192 00:07:37,879 --> 00:07:40,100 ese tipo de chorradas, pues hay algunas que se 193 00:07:40,100 --> 00:07:41,220 asocian claramente 194 00:07:41,220 --> 00:07:44,379 pero porque no recordéis las cosas 195 00:07:44,379 --> 00:07:46,100 eso sí lo tengo 196 00:07:46,100 --> 00:07:48,220 muy en cuenta, la memoria es fundamental 197 00:07:48,220 --> 00:07:49,500 ¿vale? 198 00:07:52,269 --> 00:07:53,069 pues hala 199 00:07:53,069 --> 00:07:55,649 un numerito que asumimos que es de dos 200 00:07:55,649 --> 00:07:57,009 cifras, de 0 a 99 201 00:07:57,009 --> 00:07:58,970 bueno, de 1 a 2 cifras 202 00:07:58,970 --> 00:08:01,709 de verdad que el ruido 203 00:08:01,709 --> 00:08:03,769 de fondo me hace desvariar 204 00:08:03,769 --> 00:08:05,069 y no saber lo que digo 205 00:08:05,069 --> 00:08:12,480 Pues venga 206 00:08:12,480 --> 00:08:17,839 Las unidades sabemos como sacarlas 207 00:08:17,839 --> 00:08:19,600 Que es el resto de dividir el número 208 00:08:19,600 --> 00:08:21,220 Entre 10 209 00:08:21,220 --> 00:08:24,980 Si el número tiene dos cifras 210 00:08:24,980 --> 00:08:27,240 El resto de dividirlo entre 10 211 00:08:27,240 --> 00:08:28,040 Serán las unidades 212 00:08:28,040 --> 00:08:31,779 Si el número está entre 0 y 9 213 00:08:31,779 --> 00:08:33,659 Es decir, solo tiene una cifra 214 00:08:33,659 --> 00:08:36,440 También me da las unidades 215 00:08:36,440 --> 00:08:38,240 Por ejemplo, el resto de dividir 216 00:08:38,240 --> 00:08:39,360 3 entre 10 es 3 217 00:08:39,360 --> 00:08:40,279 Las unidades 218 00:08:40,279 --> 00:08:42,980 el resto de dividir, 5 entre 10 es 5 219 00:08:42,980 --> 00:08:44,539 las unidades, luego 220 00:08:44,539 --> 00:08:46,740 para el subcaso de que el número 221 00:08:46,740 --> 00:08:48,740 tenga solo una cifra, es decir, de 0 a 9 222 00:08:48,740 --> 00:08:49,899 también 223 00:08:49,899 --> 00:08:52,559 este operador resto me devolvería 224 00:08:52,559 --> 00:08:54,600 las unidades, que serían el propio número 225 00:08:54,600 --> 00:08:56,580 claro, y ahora 226 00:08:56,580 --> 00:08:58,740 las decenas 227 00:08:58,740 --> 00:09:00,419 las decenas 228 00:09:00,419 --> 00:09:03,019 serían el cociente de dividirlo 229 00:09:03,019 --> 00:09:04,279 entre 10 230 00:09:04,279 --> 00:09:06,659 si el número 231 00:09:06,659 --> 00:09:08,879 está entre 10 y 99, está claro 232 00:09:08,879 --> 00:09:10,080 que me da las decenas 233 00:09:10,080 --> 00:09:19,820 Y si el número está entre 0 y 9, que son los casos raros, pues también me da las decenas, porque me daría 0 el cociente, que es justo, decenas 0. 234 00:09:22,100 --> 00:09:29,399 Entonces, cuando uno hace un programa general, pues normalmente uno lo piensa para los casos estándar. 235 00:09:29,960 --> 00:09:36,659 En este caso, si uno está pensando en unidades y decenas, pues uno ya inconscientemente piensa en números de dos cifras. 236 00:09:36,659 --> 00:09:38,139 Pero 237 00:09:38,139 --> 00:09:40,879 Uno tiene que situarse 238 00:09:40,879 --> 00:09:42,299 También lo que llamamos 239 00:09:42,299 --> 00:09:44,940 En teoría 240 00:09:44,940 --> 00:09:46,340 De pruebas 241 00:09:46,340 --> 00:09:47,919 Los casos raros 242 00:09:47,919 --> 00:09:50,059 ¿Vale? Y los casos raros 243 00:09:50,059 --> 00:09:51,820 En este caso serían 244 00:09:51,820 --> 00:09:55,000 Uy, es en el que inconscientemente me estoy poniendo 245 00:09:55,000 --> 00:09:55,960 En el que no tiene decenas 246 00:09:55,960 --> 00:09:58,679 ¿En el que no tiene decenas todavía funciona? Pues sí 247 00:09:58,679 --> 00:09:59,799 Sí me funciona 248 00:09:59,799 --> 00:10:03,629 Pues venga, y ahora ya 249 00:10:03,629 --> 00:10:06,029 Podemos hacer nuestra primera 250 00:10:06,029 --> 00:10:08,870 caja gorda con subcajitas 251 00:10:08,870 --> 00:10:10,690 y esa caja gorda 252 00:10:10,690 --> 00:10:12,690 con subcajitas la podemos ir completando 253 00:10:12,690 --> 00:10:14,490 y esa caja gorda 254 00:10:14,490 --> 00:10:16,429 ya hemos dicho que puede ser un switch 255 00:10:16,429 --> 00:10:18,509 que se base en las decenas 256 00:10:18,509 --> 00:10:20,649 porque es el primer planteamiento 257 00:10:20,649 --> 00:10:22,789 que nos hemos hecho, yo voy a reducir 258 00:10:22,789 --> 00:10:24,649 en lugar de las 100 ramas 259 00:10:24,649 --> 00:10:26,070 que tengo, voy a reducir a 10 260 00:10:26,070 --> 00:10:28,809 basado en las decenas, ya tengo una 261 00:10:28,809 --> 00:10:30,549 primer esqueleto 262 00:10:30,549 --> 00:10:32,649 una primera estructura y a partir de ahí 263 00:10:32,649 --> 00:10:34,450 podemos ir refinando y ir llenando 264 00:10:34,450 --> 00:10:36,289 las cajas, que una vez tenemos 265 00:10:36,289 --> 00:10:38,210 una versión digo, ojo, pero si esto lo podía hacer 266 00:10:38,210 --> 00:10:40,190 más fácil así, puedo quitar esto, puedo meter 267 00:10:40,190 --> 00:10:41,610 esto aquí, puedo hacer, pues ya está 268 00:10:41,610 --> 00:10:43,809 vamos iterando y nos vamos dando cuenta 269 00:10:43,809 --> 00:10:45,889 anda, pero esto lo puedo meter aquí, pues venga, lo meto 270 00:10:45,889 --> 00:10:48,129 pero idealmente, una vez que uno tiene 271 00:10:48,129 --> 00:10:50,350 la cabeza, su composición del lugar 272 00:10:50,350 --> 00:10:51,809 sobre por donde van a ir los tiros 273 00:10:51,809 --> 00:10:54,429 pues se hace su arquitectura 274 00:10:54,429 --> 00:10:56,309 su esqueleto con sus cajitas negras 275 00:10:56,309 --> 00:10:57,269 y luego va rellenando 276 00:10:57,269 --> 00:11:00,429 pues aquí ese primer esqueleto nuestro 277 00:11:00,429 --> 00:11:01,570 sería el switch case 278 00:11:01,570 --> 00:11:04,090 un switch 279 00:11:04,090 --> 00:11:05,629 Basado en las decenas 280 00:11:05,629 --> 00:11:10,259 Y ahora ya pues tenemos 281 00:11:10,259 --> 00:11:12,919 Tantos casos como decenas 282 00:11:12,919 --> 00:11:24,419 Uy, perdón 283 00:11:24,419 --> 00:11:26,139 Que he puesto punto y coma en vez de dos puntos 284 00:11:26,139 --> 00:11:27,419 Vale 285 00:11:27,419 --> 00:11:38,220 1, 2, 3, 4, 5 286 00:11:38,220 --> 00:11:46,519 1, 2, 3 287 00:11:46,519 --> 00:11:49,860 1, 2, bueno lo voy poniendo así 288 00:11:49,860 --> 00:11:51,639 Y así sé rápidamente cuando he terminado 289 00:11:51,639 --> 00:11:53,960 Caso 1 290 00:11:53,960 --> 00:11:57,519 Caso 2 291 00:11:57,519 --> 00:12:00,539 3 292 00:12:00,539 --> 00:12:02,460 4 293 00:12:02,460 --> 00:12:20,700 Y me faltaba el 9 294 00:12:20,700 --> 00:12:33,600 Vale, pues este ya es 295 00:12:33,600 --> 00:12:35,360 Un primer esqueleto con el que podemos 296 00:12:35,360 --> 00:12:36,159 Empezar a trabajar 297 00:12:36,159 --> 00:12:37,940 ¿Vale? 298 00:12:41,340 --> 00:12:43,840 Los casos 0 y 1 299 00:12:43,840 --> 00:12:44,840 Son los más raros 300 00:12:44,840 --> 00:12:46,779 Porque no siguen un patrón 301 00:12:46,779 --> 00:12:49,240 No es 11, 12, 13 302 00:12:49,240 --> 00:12:50,320 No siguen un patrón 303 00:12:50,320 --> 00:12:53,620 De 2 hasta 9 son casos más 304 00:12:53,620 --> 00:12:55,340 Más 305 00:12:55,340 --> 00:12:58,519 Sencillos 306 00:12:58,519 --> 00:13:00,179 Entonces nuestro resultado va a ser 307 00:13:00,179 --> 00:13:01,320 Mostrar una cadena, ¿verdad? 308 00:13:02,059 --> 00:13:06,360 Pues entonces, nuestro resultado, que sea este, el result. 309 00:13:06,759 --> 00:13:08,940 Ahora, nos vamos al 2 directamente. 310 00:13:09,860 --> 00:13:12,860 El result sabemos que será algo como esto. 311 00:13:30,210 --> 00:13:40,210 Será algo como esto, pero lo que irá detrás será 1, 2, 3, 4, 5, 6, 7, 8, 9, en función de la otra. 312 00:13:40,889 --> 00:13:41,210 ¿Verdad? 313 00:13:44,450 --> 00:14:19,919 Entonces, ahora ya sí que, perdón que no lo he repetido, es que se me había puesto el switch. 314 00:14:26,299 --> 00:14:26,899 Unidades 315 00:14:26,899 --> 00:14:43,419 Ahora lo mostramos entero 316 00:14:43,419 --> 00:14:57,730 Claro, ahora lo mostramos entero 317 00:14:57,730 --> 00:14:59,169 Dentro del 318 00:14:59,169 --> 00:15:00,590 Estamos haciendo los 20 319 00:15:00,590 --> 00:15:12,179 7, 8 320 00:15:12,179 --> 00:15:13,440 Me faltaría el 9 321 00:15:13,440 --> 00:15:20,399 Y si no es ninguno de los anteriores 322 00:15:20,399 --> 00:15:22,600 Que si no es ninguno de los anteriores sería el 0 323 00:15:22,600 --> 00:15:25,000 Vale, entonces 324 00:15:25,000 --> 00:15:28,779 Dentro de mi case este de aquí 325 00:15:28,779 --> 00:15:30,159 este 326 00:15:30,159 --> 00:15:32,559 cierra aquí 327 00:15:32,559 --> 00:15:38,100 vale, entonces 328 00:15:38,100 --> 00:15:39,700 dentro del caso 2 329 00:15:39,700 --> 00:15:42,220 sé que el texto va a empezar con 20 330 00:15:42,220 --> 00:15:44,620 y luego a result le tendré 331 00:15:44,620 --> 00:15:46,679 que concatenar 1 o 2 332 00:15:46,679 --> 00:15:48,379 o 3 o 4, no lo sé 333 00:15:48,379 --> 00:15:50,659 dependiendo de cuáles sean las 334 00:15:50,659 --> 00:15:51,080 unidades 335 00:15:51,080 --> 00:15:54,639 entonces, pues yo dentro 336 00:15:54,639 --> 00:15:56,519 de aquí puedo poner 337 00:15:56,519 --> 00:15:58,960 todo el bloque de sentencias que yo quiera y necesite 338 00:15:58,960 --> 00:16:00,639 todo el que a mí me dé la gana puedo poner 339 00:16:00,639 --> 00:16:02,740 Pues en particular voy a poner 340 00:16:02,740 --> 00:16:05,120 Primero el prefijo del numerito 341 00:16:05,120 --> 00:16:06,600 Primero el prefijo, que es 20 342 00:16:06,600 --> 00:16:08,320 Y luego, ¿qué voy a hacer? 343 00:16:08,419 --> 00:16:11,559 Pues no lo sé, le tendré que concatenar con 1, con 2 o con 3 344 00:16:11,559 --> 00:16:12,580 No lo sé qué hacer 345 00:16:12,580 --> 00:16:14,620 ¿Vale? Pues 346 00:16:14,620 --> 00:16:16,679 De nuevo tendré que abrir ahí 347 00:16:16,679 --> 00:16:18,980 Las ramas correspondientes, tantas como 348 00:16:18,980 --> 00:16:20,379 Posibles unidades 349 00:16:20,379 --> 00:16:30,460 ¿Vale? 350 00:16:32,899 --> 00:16:34,480 Si las unidades son 1 351 00:16:34,480 --> 00:16:37,639 A mi resultado le concateno el 1 352 00:16:37,639 --> 00:16:40,600 y lo vuelvo a asignar 353 00:16:40,600 --> 00:16:41,379 al resultado 354 00:16:41,379 --> 00:16:44,480 y lo mismo con lo demás 355 00:16:44,480 --> 00:17:14,670 porque a lo que tenía 356 00:17:14,670 --> 00:17:16,390 result de antes, que es a 20 357 00:17:16,390 --> 00:17:18,769 result ya tenía un valor de antes 358 00:17:18,769 --> 00:17:20,769 entonces le concatenas 359 00:17:20,769 --> 00:17:21,269 lo nuevo 360 00:17:21,269 --> 00:17:24,589 y el resultado se lo vuelves a asignar 361 00:17:24,589 --> 00:17:26,490 a result para que sobrescriba lo que tenía 362 00:17:26,490 --> 00:17:28,410 que eso es lo que hace el max igual 363 00:17:28,410 --> 00:17:29,990 el max igual resulta que 364 00:17:29,990 --> 00:17:32,569 acuérdate que lo que hace es como si el igual no existiera 365 00:17:32,569 --> 00:17:34,630 entonces te concatena result 366 00:17:34,630 --> 00:17:35,789 que en este caso es 20 367 00:17:35,789 --> 00:17:38,269 con lo que tú le digas 368 00:17:38,269 --> 00:17:40,269 y ahora, ¿dónde te lo asigna? 369 00:17:40,549 --> 00:17:42,710 te lo asigna a la variable 370 00:17:42,710 --> 00:17:44,769 que esté puesta aquí 371 00:17:44,769 --> 00:17:46,089 entonces 372 00:17:46,089 --> 00:17:48,630 esto es lo mismo, claro, esto es lo mismo 373 00:17:48,630 --> 00:17:50,470 que hacer result igual 374 00:17:50,470 --> 00:17:51,710 lo pongo abajo 375 00:17:51,710 --> 00:17:53,750 esta sentencia de arriba 376 00:17:53,750 --> 00:17:55,769 sería lo mismo que hacer esta 377 00:17:55,769 --> 00:17:58,009 result más 378 00:17:58,009 --> 00:18:00,730 1 379 00:18:00,730 --> 00:18:03,890 ¿Vale? Sería lo mismo que esta de aquí 380 00:18:03,890 --> 00:18:08,920 Serían iguales esta sentencia 381 00:18:08,920 --> 00:18:10,420 Al result 382 00:18:10,420 --> 00:18:12,059 Que era 20 383 00:18:12,059 --> 00:18:14,440 Le concatenas en este caso 1 384 00:18:14,440 --> 00:18:16,700 Porque son 1 y que haces con ese 21 385 00:18:16,700 --> 00:18:18,779 Se lo asignas a result 386 00:18:18,779 --> 00:18:20,339 Para que pise el valor que tenía 387 00:18:20,339 --> 00:18:22,039 Y ese ya será lo que tú muestres 388 00:18:22,039 --> 00:18:24,259 Pero lo mostramos al final 389 00:18:24,259 --> 00:18:25,339 Ya del switch case, claro 390 00:18:25,339 --> 00:18:28,380 Vale, entonces me da igual poner esto 391 00:18:28,380 --> 00:18:29,900 Que poner result más igual 1 392 00:18:29,900 --> 00:18:30,900 Es el mismo operador 393 00:18:30,900 --> 00:18:36,240 3, 4, 5 394 00:18:36,240 --> 00:18:42,000 6 395 00:18:42,000 --> 00:18:48,710 7 396 00:18:48,710 --> 00:18:54,210 8 397 00:18:54,210 --> 00:18:59,309 9 398 00:18:59,309 --> 00:19:00,690 y en el caso de que las 399 00:19:00,690 --> 00:19:02,809 unidades no sean 400 00:19:02,809 --> 00:19:04,970 del 1 al 9, sino que sea 0 401 00:19:04,970 --> 00:19:07,109 result debería ser 20 402 00:19:07,109 --> 00:19:08,549 no 20, que se queda un poco feo 403 00:19:08,549 --> 00:19:10,230 pues ese sería el caso del default 404 00:19:10,230 --> 00:19:13,210 el default es si no es ni 1, ni 2, ni 3 405 00:19:13,210 --> 00:19:15,049 Pues en el caso del default 406 00:19:15,049 --> 00:19:17,210 Result igual a 20 407 00:19:17,210 --> 00:19:20,539 Y ya está 408 00:19:20,539 --> 00:19:23,299 Entonces el caso 2 409 00:19:23,299 --> 00:19:24,220 Ya está 410 00:19:24,220 --> 00:19:26,900 El default es 411 00:19:26,900 --> 00:19:28,960 Si no ha entrado en ninguno de los case anteriores 412 00:19:28,960 --> 00:19:30,079 Es porque son 0 413 00:19:30,079 --> 00:19:31,839 Las unidades si son 0 414 00:19:31,839 --> 00:19:33,460 Result será 20 415 00:19:33,460 --> 00:19:36,940 Claro el default es 416 00:19:36,940 --> 00:19:37,779 Como un else 417 00:19:37,779 --> 00:19:40,400 Si no has entrado en ninguna de las anteriores 418 00:19:40,400 --> 00:19:41,380 Entras aquí 419 00:19:41,380 --> 00:19:43,299 Entras ahí 420 00:19:43,299 --> 00:19:49,359 vale, bueno pues entonces 421 00:19:49,359 --> 00:19:51,619 hemos podido hacer este ejercicio 422 00:19:51,619 --> 00:19:52,980 primero recopilando un poco 423 00:19:52,980 --> 00:19:55,519 estamos pudiendo 424 00:19:55,519 --> 00:19:57,140 hacer este ejercicio con switch case 425 00:19:57,140 --> 00:19:59,380 ¿por qué? porque todas las 426 00:19:59,380 --> 00:20:01,259 ramas de actuación dependen 427 00:20:01,259 --> 00:20:02,599 del valor de una variable 428 00:20:02,599 --> 00:20:04,880 en este caso las unidades 429 00:20:04,880 --> 00:20:07,180 o las decenas, entonces cuando todas 430 00:20:07,180 --> 00:20:09,279 las ramas de actuación dependen del valor de una 431 00:20:09,279 --> 00:20:11,319 variable, el switch case 432 00:20:11,319 --> 00:20:13,259 queda muy bien y pega muy bien 433 00:20:13,259 --> 00:20:15,400 eso por un lado 434 00:20:15,400 --> 00:20:17,380 Segunda cosa 435 00:20:17,380 --> 00:20:20,400 Dentro de cada una de mis ramas del switch 436 00:20:20,400 --> 00:20:22,240 Es decir 437 00:20:22,240 --> 00:20:23,440 Dentro de cada case 438 00:20:23,440 --> 00:20:26,240 Yo ahí meto todas las sentencias de código 439 00:20:26,240 --> 00:20:28,019 Que necesite, todas las que quiera 440 00:20:28,019 --> 00:20:29,339 Aquí he necesitado un montón 441 00:20:29,339 --> 00:20:31,599 Estoy en el que he hecho es el 2 442 00:20:31,599 --> 00:20:34,240 El 2 es el que he hecho, pues he necesitado muchas 443 00:20:34,240 --> 00:20:36,339 He necesitado primero 444 00:20:36,339 --> 00:20:42,700 Aquí, perdón 445 00:20:42,700 --> 00:20:43,759 No lo encontraba 446 00:20:43,759 --> 00:20:45,859 En el caso 2 de las decenas 447 00:20:45,859 --> 00:20:48,079 en el caso 2, pues necesito 448 00:20:48,079 --> 00:20:49,819 meter dentro un montón de cosas, primero 449 00:20:49,819 --> 00:20:51,460 darle el prefijo al resultado 450 00:20:51,460 --> 00:20:53,779 y ahora en función 451 00:20:53,779 --> 00:20:54,839 de las unidades 452 00:20:54,839 --> 00:20:58,079 concatenar con lo que toque 453 00:20:58,079 --> 00:21:02,059 si las unidades 454 00:21:02,059 --> 00:21:04,299 no son ni 1, ni 2 455 00:21:04,299 --> 00:21:06,000 ni 3, ni hasta 9 456 00:21:06,000 --> 00:21:07,859 pues entrará aquí que será 20 457 00:21:07,859 --> 00:21:11,710 y ahora esto mismo, tal cual 458 00:21:11,710 --> 00:21:13,809 lo podríamos copiar y pegar 459 00:21:13,809 --> 00:21:15,230 que no lo voy a hacer para que no sea pesado 460 00:21:15,230 --> 00:21:17,410 en el 30, 40, 50, hasta el 90 461 00:21:17,410 --> 00:21:18,730 porque todos funcionan igual 462 00:21:18,730 --> 00:21:21,190 Entonces el 0 y el 1 463 00:21:21,190 --> 00:21:23,150 Pues aquí hay que distinguir más casos 464 00:21:23,150 --> 00:21:23,829 Pero es lo mismo 465 00:21:23,829 --> 00:21:27,490 El caso de que las decenas sean 0 466 00:21:27,490 --> 00:21:29,369 Pues entonces 467 00:21:29,369 --> 00:21:30,890 Si es 1, 1 468 00:21:30,890 --> 00:21:32,490 Si es 2, 2, es que no hay otra 469 00:21:32,490 --> 00:21:35,009 Habría que distinguir de nuevo otras 10 ramas 470 00:21:35,009 --> 00:21:35,849 Con un switch case 471 00:21:35,849 --> 00:21:38,529 Y sería copiar y pegar y simplemente cambiar el 20 472 00:21:38,529 --> 00:21:41,049 Claro, en el resto 473 00:21:41,049 --> 00:21:42,869 Cambiar el 20 por lo que toque y lo demás 474 00:21:42,869 --> 00:21:43,789 Copiar y pegar 475 00:21:43,789 --> 00:21:47,089 Y aquí en este de que las decenas sean 0 476 00:21:47,089 --> 00:21:49,230 Sería copiar y pegar este directamente 477 00:21:49,230 --> 00:21:50,170 Porque en función de las unidades 478 00:21:50,170 --> 00:21:51,769 Es o uno o dos o tres 479 00:21:51,769 --> 00:21:53,470 Copiar y pegar este switch 480 00:21:53,470 --> 00:21:54,589 El result nada 481 00:21:54,589 --> 00:21:58,519 ¿Vale? 482 00:21:59,380 --> 00:22:00,980 En el caso de que sea uno 483 00:22:00,980 --> 00:22:02,599 Aquí 484 00:22:02,599 --> 00:22:04,940 Vamos a 485 00:22:04,940 --> 00:22:06,759 Voy a copiar y pegar el del cero 486 00:22:06,759 --> 00:22:08,099 Porque va a surgir un error 487 00:22:08,099 --> 00:22:09,059 Que quiero que 488 00:22:09,059 --> 00:22:10,559 El del cero 489 00:22:10,559 --> 00:22:11,299 Vamos a hacer ese 490 00:22:11,299 --> 00:22:12,599 Repito 491 00:22:12,599 --> 00:22:13,680 Del tres hacia adelante 492 00:22:13,680 --> 00:22:15,119 Serían calcados como el de arriba 493 00:22:15,119 --> 00:22:17,220 Cambiando el veinte por treinta y 494 00:22:17,220 --> 00:22:18,759 Treinta y uno 495 00:22:18,759 --> 00:22:19,900 Cambiando el cuarenta 496 00:22:19,900 --> 00:22:21,500 Por 40 y vale 497 00:22:21,500 --> 00:22:24,099 Del 3 al 9 serían calcados al 20 498 00:22:24,099 --> 00:22:25,779 Pero cambiando solo 499 00:22:25,779 --> 00:22:27,700 El 20 por 40 y 500 00:22:27,700 --> 00:22:29,200 50 y lo que sea ya está 501 00:22:29,200 --> 00:22:31,819 El 0 y el 1 serían más especiales 502 00:22:31,819 --> 00:22:32,799 El 0 503 00:22:32,799 --> 00:22:35,500 Sería esto de aquí 504 00:22:35,500 --> 00:22:38,079 Simplemente voy a copiar 505 00:22:38,079 --> 00:22:40,099 Y pegar este switch 506 00:22:40,099 --> 00:22:47,380 Vale en el 0 507 00:22:47,380 --> 00:22:49,460 Las decenas son 0 508 00:22:49,460 --> 00:22:51,099 Luego aquí el resultado se basa 509 00:22:51,099 --> 00:22:53,279 En las unidades si es 1 o 1 510 00:22:53,279 --> 00:22:54,240 Si es 2, 2 511 00:22:54,240 --> 00:22:55,740 Si es 3, 3 512 00:22:55,740 --> 00:22:59,680 Contempla el ejercicio que podamos meter el 0 513 00:22:59,680 --> 00:23:01,460 Para que diga 0 514 00:23:01,460 --> 00:23:03,539 Sí, pues entonces 515 00:23:03,539 --> 00:23:04,740 Aquí el default 516 00:23:04,740 --> 00:23:06,799 Es cuando es 0 517 00:23:06,799 --> 00:23:08,900 Y entonces aquí en lugar de 20 tendríamos que poner 0 518 00:23:08,900 --> 00:23:09,180 Claro 519 00:23:09,180 --> 00:23:13,119 Y el número es como el 3 520 00:23:13,119 --> 00:23:13,740 El 15 521 00:23:13,740 --> 00:23:16,200 Ese serían las decenas 1 522 00:23:16,200 --> 00:23:17,480 Que ahora las hacemos 523 00:23:17,480 --> 00:23:19,180 Claro 524 00:23:19,180 --> 00:23:23,200 Vamos al 0 primero porque quería yo provocar 525 00:23:23,200 --> 00:23:25,240 este error, entonces en el caso 526 00:23:25,240 --> 00:23:27,259 de que las decenas sean cero, aquí es un único switch 527 00:23:27,259 --> 00:23:29,119 case en el cual el resultado se basa 528 00:23:29,119 --> 00:23:31,259 en función de las unidades, o es uno o es dos 529 00:23:31,259 --> 00:23:33,180 pero claro, si 530 00:23:33,180 --> 00:23:35,200 hacemos esto, copiamos y pegamos esto 531 00:23:35,200 --> 00:23:36,859 aquí me sale un rojo 532 00:23:36,859 --> 00:23:38,599 de compilación 533 00:23:38,599 --> 00:23:41,119 ¿por qué creéis que me sale este error 534 00:23:41,119 --> 00:23:41,880 de compilación? 535 00:23:43,980 --> 00:23:45,240 claro, porque yo 536 00:23:45,240 --> 00:23:47,019 he copiado y pegado y esta sentencia 537 00:23:47,019 --> 00:23:49,299 que dice tal cual, a lo que tuviera 538 00:23:49,299 --> 00:23:51,180 result, concaténale 539 00:23:51,180 --> 00:23:53,960 uno y eso se lo asignas 540 00:23:53,960 --> 00:23:55,619 a result, entonces 541 00:23:55,619 --> 00:23:57,700 él me dice, ¿y qué tiene result? me voy 542 00:23:57,700 --> 00:23:59,640 arriba, result no tiene nada 543 00:23:59,640 --> 00:24:01,180 entonces él no puede hacer 544 00:24:01,180 --> 00:24:03,880 esa sentencia de asignación 545 00:24:03,880 --> 00:24:04,900 porque para hacerla 546 00:24:04,900 --> 00:24:07,519 result tendría que tener algo, ¿verdad? 547 00:24:08,119 --> 00:24:09,599 porque recordad que esta 548 00:24:09,599 --> 00:24:11,799 sentencia de aquí es igual que esta de abajo 549 00:24:11,799 --> 00:24:13,660 es la misma, entonces para 550 00:24:13,660 --> 00:24:15,759 que la máquina virtual pueda ejecutar 551 00:24:15,759 --> 00:24:18,039 esto, todos los operandos 552 00:24:18,039 --> 00:24:19,460 todos tienen que tener valor 553 00:24:19,460 --> 00:24:21,619 si no lo tiene, el compilador ya me dice 554 00:24:21,619 --> 00:24:23,599 no, no, no, uno de los operandos no tiene valor 555 00:24:23,599 --> 00:24:25,660 lo siento, este lo tiene 556 00:24:25,660 --> 00:24:26,900 porque es la propia cadena 1 557 00:24:26,900 --> 00:24:29,619 y result, pues él se va a mirar hacia 558 00:24:29,619 --> 00:24:31,480 atrás, qué valor tiene 559 00:24:31,480 --> 00:24:33,299 para tomarlo, para hacer la operación 560 00:24:33,299 --> 00:24:34,779 y se da cuenta de que no tiene ninguno 561 00:24:34,779 --> 00:24:37,500 por eso me dice, perdona, pero esta operación 562 00:24:37,500 --> 00:24:38,380 no puedo hacerla 563 00:24:38,380 --> 00:24:42,019 vale, aquí tenemos dos formas de arreglarlo 564 00:24:42,019 --> 00:24:43,359 una, darnos cuenta 565 00:24:43,359 --> 00:24:45,559 de que aquí yo no quiero concatenar lo anterior 566 00:24:45,559 --> 00:24:47,400 por aquí no hay un 20, no hay un 30 567 00:24:47,400 --> 00:24:49,640 No quiero concatenar, aquí yo lo que quiero es asignar 568 00:24:49,640 --> 00:24:51,819 Directamente, entonces le quito el más 569 00:24:51,819 --> 00:24:53,819 ¿Vale? Yo lo que quiero es asignar 570 00:24:53,819 --> 00:24:57,069 Entonces aquí le quitaría 571 00:24:57,069 --> 00:25:01,759 El más y ya está 572 00:25:01,759 --> 00:25:11,170 Pero no pueden poner el string 573 00:25:11,170 --> 00:25:12,109 Por su 574 00:25:12,109 --> 00:25:14,650 Igual comita 575 00:25:14,650 --> 00:25:16,410 Sí, esa era la segunda 576 00:25:16,410 --> 00:25:18,670 Solución que iba a decir, vale 577 00:25:18,670 --> 00:25:21,069 Esto sería una opción, asignarlo 578 00:25:21,069 --> 00:25:21,930 Y ya está, vale 579 00:25:21,930 --> 00:25:24,890 Pero que por alguna razón, vete a saber 580 00:25:24,890 --> 00:25:26,789 Puede ser que este código lo tengamos 581 00:25:26,789 --> 00:25:28,769 en una función aparte, aunque ahora todavía no sabemos 582 00:25:28,769 --> 00:25:30,710 hacerlo, imaginaos que yo 583 00:25:30,710 --> 00:25:32,650 este código por lo que sea no lo puedo 584 00:25:32,650 --> 00:25:34,589 cambiar, esta parte no la puedo 585 00:25:34,589 --> 00:25:36,670 cambiar, porque tiene que ser 586 00:25:36,670 --> 00:25:38,730 igual de esta de aquí abajo, porque se hace 587 00:25:38,730 --> 00:25:40,690 llamando una función aparte y entonces 588 00:25:40,690 --> 00:25:42,349 si se hace llamando una función aparte 589 00:25:42,349 --> 00:25:44,650 esa función tiene el más igual y 590 00:25:44,650 --> 00:25:46,690 no lo puedo tocar, imaginaos 591 00:25:46,690 --> 00:25:48,869 que por la razón que sea yo esto 592 00:25:48,869 --> 00:25:50,170 de aquí no lo puedo tocar 593 00:25:50,170 --> 00:25:52,569 pues como podemos arreglarlo 594 00:25:52,569 --> 00:25:54,430 pues efectivamente lo que decía él 595 00:25:54,430 --> 00:25:56,769 inicializarlo a la 596 00:25:56,769 --> 00:25:58,690 cadena vacía, entonces 597 00:25:58,690 --> 00:26:01,109 si lo inicializamos a la cadena vacía 598 00:26:01,109 --> 00:26:04,549 ahora ya result 599 00:26:04,549 --> 00:26:06,890 más 1 será cadena 600 00:26:06,890 --> 00:26:08,890 vacía más 1, que será 1 601 00:26:08,890 --> 00:26:11,049 y ahora ese 1 ya va a result 602 00:26:11,049 --> 00:26:12,609 otra vez, vale 603 00:26:12,609 --> 00:26:14,829 entonces de nuevo 604 00:26:14,829 --> 00:26:19,099 importante 605 00:26:19,099 --> 00:26:21,339 que sigamos 606 00:26:21,339 --> 00:26:22,279 teniendo claro 607 00:26:22,279 --> 00:26:25,160 que 608 00:26:25,160 --> 00:26:27,119 cuando 609 00:26:27,119 --> 00:26:28,880 ponemos una expresión 610 00:26:28,880 --> 00:26:31,059 para asignarla a una variable 611 00:26:31,059 --> 00:26:33,559 todos los operandos de esa expresión 612 00:26:33,559 --> 00:26:35,319 todos tienen que tener un valor 613 00:26:35,319 --> 00:26:36,380 asignado, todos 614 00:26:36,380 --> 00:26:39,299 la máquina virtual nunca va a tomar uno por defecto 615 00:26:39,299 --> 00:26:41,440 ni nada, nunca, todos tienen que tener un valor 616 00:26:41,440 --> 00:26:43,420 y ya el compilador 617 00:26:43,420 --> 00:26:45,119 se encarga, yendo hacia arriba 618 00:26:45,119 --> 00:26:47,380 de mirar que valor es, a ver si realmente 619 00:26:47,380 --> 00:26:47,859 lo tiene 620 00:26:47,859 --> 00:26:50,700 si ve que no tiene un valor 621 00:26:50,700 --> 00:26:52,000 pues te va a avisar 622 00:26:52,000 --> 00:26:54,880 de que lo siento, no puedes seguir 623 00:26:54,880 --> 00:26:56,740 hay un error de compilación porque 624 00:26:56,740 --> 00:26:58,700 alguno de los operandos no tiene valor 625 00:26:58,700 --> 00:27:02,500 entonces una vez 626 00:27:02,500 --> 00:27:04,259 perdón, una vez que identificamos 627 00:27:04,259 --> 00:27:06,579 de donde viene el error, que es que alguno de los operandos 628 00:27:06,579 --> 00:27:08,099 no tiene valor, lo solucionamos 629 00:27:08,099 --> 00:27:10,319 pues como veamos que tiene coherencia a solucionarlo 630 00:27:10,319 --> 00:27:11,140 ¿vale? 631 00:27:11,940 --> 00:27:13,839 o sea, pero eso solo pasa 632 00:27:13,839 --> 00:27:16,220 si yo declaro la variable 633 00:27:16,220 --> 00:27:16,900 y luego la uso 634 00:27:16,900 --> 00:27:20,599 claro, claro, claro, si yo declaro esta variable 635 00:27:20,599 --> 00:27:22,519 por ejemplo, antes de tener esto 636 00:27:22,519 --> 00:27:24,720 de aquí, antes de tener este código 637 00:27:24,720 --> 00:27:29,220 o sea, si la variable no está usada 638 00:27:29,220 --> 00:27:31,420 en ningún momento, no te va a dar error 639 00:27:31,420 --> 00:27:47,140 claro, pero porque con el if 640 00:27:47,140 --> 00:27:48,819 abres el compilador 641 00:27:48,819 --> 00:27:51,059 no interpreta realmente 642 00:27:51,059 --> 00:27:52,880 un caso real de lo que va a ocurrir 643 00:27:52,880 --> 00:27:55,380 el compilador sirve de unas reglas sintácticas 644 00:27:55,380 --> 00:27:56,519 y él cuando ve un if 645 00:27:56,519 --> 00:27:58,859 él dice, esta rama 646 00:27:58,859 --> 00:28:01,200 puede que se haga, puede que no 647 00:28:01,200 --> 00:28:02,839 a lo mejor tú sabes por tu 648 00:28:02,839 --> 00:28:04,380 programa que siempre se va a hacer 649 00:28:04,380 --> 00:28:06,720 en ciertos casos y siempre se va a inicializar la variable 650 00:28:06,720 --> 00:28:08,359 pero él ve un if y dice 651 00:28:08,359 --> 00:28:10,380 esto yo no cuento con que se haga 652 00:28:10,380 --> 00:28:12,420 entonces como no cuenta con que se haga 653 00:28:12,420 --> 00:28:14,920 no cuenta con que la variable vaya a tener valor siempre 654 00:28:14,920 --> 00:28:16,819 el compilador sigue reglas 655 00:28:16,819 --> 00:28:18,880 sintácticas fijas y aunque tú 656 00:28:18,880 --> 00:28:21,019 sepas que tu programa va a funcionar porque siempre 657 00:28:21,019 --> 00:28:22,519 entra en ese if una primera vez 658 00:28:22,519 --> 00:28:23,880 con lo cual se inicializa la variable 659 00:28:23,880 --> 00:28:26,000 el compilador eso yo no lo tiene en cuenta 660 00:28:26,000 --> 00:28:31,579 Bueno, declararla antes de usarla siempre 661 00:28:31,579 --> 00:28:34,099 O sea, declararla es decidir su nombre 662 00:28:34,099 --> 00:28:35,859 Y su tipo de dato, esto es declararla 663 00:28:35,859 --> 00:28:38,259 Y luego ya inicializarla 664 00:28:38,259 --> 00:28:39,000 Es darle un valor 665 00:28:39,000 --> 00:28:41,500 Siempre habrá que darle un valor 666 00:28:41,500 --> 00:28:43,099 Fuera de todo if 667 00:28:43,099 --> 00:28:45,920 Si en alguna parte de tu código la usas 668 00:28:45,920 --> 00:28:47,920 Aunque luego ese valor se pise 669 00:28:47,920 --> 00:28:49,740 Y no valga para nada 670 00:28:49,740 --> 00:28:51,660 En este caso es que este valor 671 00:28:51,660 --> 00:28:53,539 No lo queremos, pues vacío 672 00:28:53,539 --> 00:28:55,819 Para que la concatenación se concatene sobre el vacío 673 00:28:55,819 --> 00:29:14,099 Bueno, vale, vale, entonces ahora este más igual y ahora el 0, el 0 es más rollo, porque claro, perdón, el 1, el 1, el 0 es el que acabamos de hacer, el 1 es más rollo, ¿vale? 674 00:29:14,099 --> 00:30:26,440 Porque 11, 12, 13, 14, 15 van por libre y luego los otros ya van juntos, entonces esto se podría hacer por libre en el caso de que las decenas de unidades sean 0 y ahora vamos a ver cuantas llevo, en el caso de que las unidades sean 0, 675 00:30:26,440 --> 00:30:29,380 Uno, dos 676 00:30:29,380 --> 00:30:36,730 Tres 677 00:30:36,730 --> 00:30:38,589 Cuatro 678 00:30:38,589 --> 00:30:40,750 Cinco 679 00:30:40,750 --> 00:30:43,289 Seis 680 00:30:43,289 --> 00:30:45,490 Siete, ocho y nueve 681 00:30:45,490 --> 00:30:46,390 Me faltan tres 682 00:30:46,390 --> 00:30:55,470 Nueve, cinco, seis 683 00:30:55,470 --> 00:30:57,490 Siete 684 00:30:57,490 --> 00:30:59,309 Ocho 685 00:30:59,309 --> 00:31:00,849 Y nueve 686 00:31:00,849 --> 00:31:03,730 Vale, en el caso de que sean cero, uno, dos 687 00:31:03,730 --> 00:31:04,630 Esas van por libre 688 00:31:04,630 --> 00:31:06,349 Entonces en este caso 689 00:31:06,349 --> 00:31:09,470 Result será igual a 690 00:31:09,470 --> 00:31:10,289 0 691 00:31:10,289 --> 00:31:19,130 1 692 00:31:19,130 --> 00:31:27,549 Ay, perdón, que estoy en el 693 00:31:27,549 --> 00:31:29,190 Perdón, sí, sí, sí, jolines 694 00:31:29,190 --> 00:31:31,549 Estoy siempre 695 00:31:31,549 --> 00:31:33,289 Ay 696 00:31:33,289 --> 00:31:35,589 11 697 00:31:35,589 --> 00:31:57,849 12, 13 698 00:31:57,849 --> 00:31:59,089 12 699 00:31:59,089 --> 00:32:13,450 Y 15, y ya acabamos con los que van por libre 700 00:32:13,450 --> 00:32:21,609 Vale, entonces 701 00:32:21,609 --> 00:32:23,730 los demás, 16, 17, 18 702 00:32:23,730 --> 00:32:26,049 y 19, eso si sigue en un patrón 703 00:32:26,049 --> 00:32:27,430 que es el 10 704 00:32:27,430 --> 00:32:31,670 ¿vale? entonces 705 00:32:31,670 --> 00:32:35,569 se puede sacar 706 00:32:35,569 --> 00:32:37,509 result a 10 y antes 707 00:32:37,509 --> 00:32:38,690 y luego concatenar 708 00:32:38,690 --> 00:32:41,450 pero la verdad es que teniendo en cuenta que los keys ya los 709 00:32:41,450 --> 00:32:43,230 hemos sacado, o se puede poner directamente 710 00:32:43,230 --> 00:32:45,890 result 16, 17, tampoco ganamos 711 00:32:45,890 --> 00:32:47,089 ¿vale? 712 00:32:51,160 --> 00:32:52,779 entonces, haciéndolo así directamente 713 00:32:52,779 --> 00:32:54,500 a mano, nos quedaría la primera versión 714 00:32:54,500 --> 00:32:55,680 16 715 00:32:55,680 --> 00:32:57,900 Versión que luego 716 00:32:57,900 --> 00:32:59,579 Seguro que se puede retocar 717 00:32:59,579 --> 00:33:01,440 Para compactar a lo mejor alguna otra cosa 718 00:33:01,440 --> 00:33:23,460 Uy 719 00:33:23,460 --> 00:33:34,539 Vale, pues a falta de completar los 720 00:33:34,539 --> 00:33:36,519 30, 40, que eso sí que sería un compi 721 00:33:36,519 --> 00:33:38,140 Y pega, tendríamos la primera versión 722 00:33:38,140 --> 00:33:41,359 Que uno podría hacer unas primeras pruebas 723 00:33:41,359 --> 00:33:42,680 Vamos a hacer alguna prueba 724 00:33:42,680 --> 00:33:44,259 Sin darle números mayor de 20 725 00:33:44,259 --> 00:33:45,740 Porque esos no los hemos puesto 726 00:33:45,740 --> 00:33:54,750 Vale, pues le damos 727 00:33:54,750 --> 00:33:56,789 Uy, el 1 728 00:33:56,789 --> 00:34:01,079 Ah, que no he puesto el mostrar claro 729 00:34:01,079 --> 00:34:02,660 He hecho el result 730 00:34:02,660 --> 00:34:04,859 Pero luego me falta cuando el programa termina 731 00:34:04,859 --> 00:34:05,599 Que termina aquí 732 00:34:05,599 --> 00:34:09,079 Me falta mostrar el resultado 733 00:34:09,079 --> 00:34:10,239 Al final de todo, claro 734 00:34:10,239 --> 00:34:12,599 He construido el resultado, lo he construido 735 00:34:12,599 --> 00:34:14,280 Con todos esos switch case, lo he construido 736 00:34:14,280 --> 00:34:15,559 Pero no he mostrado, efectivamente 737 00:34:15,559 --> 00:34:18,739 Vale, pues le damos el 1 738 00:34:18,739 --> 00:34:19,699 Y el 1 739 00:34:19,699 --> 00:34:23,019 Le damos el 14 740 00:34:23,019 --> 00:34:24,079 Y el 14 741 00:34:24,079 --> 00:34:27,340 Le damos el 27 742 00:34:27,340 --> 00:34:28,440 Y el 27 743 00:34:28,440 --> 00:34:31,900 Le damos el 20 744 00:34:31,900 --> 00:34:32,500 Y el 20 745 00:34:32,500 --> 00:34:34,480 Bueno, funciona 746 00:34:34,480 --> 00:34:37,659 En una primera versión 747 00:34:37,659 --> 00:34:39,340 Efectivamente muy larga 748 00:34:39,340 --> 00:34:41,219 Pero 749 00:34:41,219 --> 00:34:49,699 Pero esto 750 00:34:49,699 --> 00:34:51,019 Podríamos 751 00:34:51,019 --> 00:34:53,679 Ahora que ya más o menos 752 00:34:53,679 --> 00:34:55,199 Tenemos una primera versión 753 00:34:55,199 --> 00:34:56,699 Que ya hemos entendido lo que hay que hacer 754 00:34:56,699 --> 00:34:59,800 Aquí una vez que uno ve todo esto 755 00:34:59,800 --> 00:35:00,239 Aquí 756 00:35:00,239 --> 00:35:03,519 Lo que pasa es que ves todas esas copias y pegas 757 00:35:03,519 --> 00:35:05,760 Estamos viendo 758 00:35:05,760 --> 00:35:07,920 Que los casos 1 759 00:35:07,920 --> 00:35:10,079 De todos los 20 760 00:35:10,079 --> 00:35:12,019 hacia arriba y los casos 761 00:35:12,019 --> 00:35:14,239 2 de todos los 20 hacia arriba 762 00:35:14,239 --> 00:35:16,119 son iguales, que es concatenar 763 00:35:16,119 --> 00:35:17,880 con esto dependiendo de las unidades 764 00:35:17,880 --> 00:35:20,619 entonces, no podríamos reducirlo 765 00:35:20,619 --> 00:35:22,360 haciendo 766 00:35:22,360 --> 00:35:23,800 una segunda variable 767 00:35:23,800 --> 00:35:25,099 result 2 768 00:35:25,099 --> 00:35:27,199 esa segunda variable 769 00:35:27,199 --> 00:35:30,260 darle 1, 2 770 00:35:30,260 --> 00:35:31,320 o 3 en función de las unidades 771 00:35:31,320 --> 00:35:34,280 y ahora a 20 concatenarlo 772 00:35:34,280 --> 00:35:36,079 con lo que tenga esa segunda variable 773 00:35:36,079 --> 00:35:36,940 por ejemplo 774 00:35:36,940 --> 00:35:38,199 ¿no? 775 00:35:39,099 --> 00:35:40,639 no me lo habéis dicho ninguno 776 00:35:40,639 --> 00:35:43,059 según lo íbamos haciendo 777 00:35:43,059 --> 00:35:47,289 lo he hecho como acabo de decir 778 00:35:47,289 --> 00:35:48,849 claro 779 00:35:48,849 --> 00:35:50,909 claro 780 00:35:50,909 --> 00:35:53,630 vale 781 00:35:53,630 --> 00:35:55,750 así 782 00:35:55,750 --> 00:35:58,769 así hemos trabajado 783 00:35:58,769 --> 00:35:59,989 pues hemos 784 00:35:59,989 --> 00:36:02,349 hemos pensado lo que tenemos que hacer 785 00:36:02,349 --> 00:36:03,869 y nos hemos puesto a hacerlo 786 00:36:03,869 --> 00:36:04,730 pipi pipi pipi 787 00:36:04,730 --> 00:36:05,710 lo hemos completado 788 00:36:05,710 --> 00:36:06,329 y ya está 789 00:36:06,329 --> 00:36:07,550 y nuestra versión funciona 790 00:36:07,550 --> 00:36:08,289 y no pasa nada 791 00:36:08,289 --> 00:36:09,969 y tiene un código muy largo pero funciona 792 00:36:09,969 --> 00:36:11,670 pero luego 793 00:36:11,670 --> 00:36:14,050 pues uno puede refinar, ir pensando 794 00:36:14,050 --> 00:36:15,610 y se dando cuenta de las cosas 795 00:36:15,610 --> 00:36:18,150 y aquí en realidad para todos los 796 00:36:18,150 --> 00:36:19,449 casos 2 en adelante 797 00:36:19,449 --> 00:36:22,550 se trata de a 20 concatenarle 798 00:36:22,550 --> 00:36:24,030 la misma variable 799 00:36:24,030 --> 00:36:26,050 en todos los casos dependiendo de 800 00:36:26,050 --> 00:36:27,250 entonces 801 00:36:27,250 --> 00:36:30,469 podemos hacernos un prefijo 802 00:36:30,469 --> 00:36:31,969 y un posfijo, por ejemplo 803 00:36:31,969 --> 00:36:34,369 una variable que sea el prefijo y otra que sea el posfijo 804 00:36:34,369 --> 00:36:36,309 y en función de las decenas 805 00:36:36,309 --> 00:36:38,349 unidades, pues concatenar el prefijo 806 00:36:38,349 --> 00:36:40,230 al posfijo y no tenemos que estar todo el rato 807 00:36:40,230 --> 00:36:41,889 con estos keys de aquí 808 00:36:41,889 --> 00:36:44,289 ¿vale? vamos a 809 00:36:44,289 --> 00:36:45,250 parar un momentito 810 00:36:45,250 --> 00:36:50,809 el resultado 811 00:36:50,809 --> 00:36:54,369 es cuando ya hemos acabado todo 812 00:36:54,369 --> 00:36:55,869 todo enterito, o sea el switch 813 00:36:55,869 --> 00:36:56,969 gordote 814 00:36:56,969 --> 00:37:00,250 cuando este switch 815 00:37:00,250 --> 00:37:02,369 gordote ha terminado, que es aquí 816 00:37:02,369 --> 00:37:05,269 ya el result está 817 00:37:05,269 --> 00:37:11,000 podría no estar inicializada 818 00:37:11,000 --> 00:37:12,400 pues porque 819 00:37:12,400 --> 00:37:14,219 revisa tus ramas 820 00:37:14,219 --> 00:37:17,380 si en todas las ramas 821 00:37:17,380 --> 00:37:18,320 le has dado valor 822 00:37:18,320 --> 00:37:19,400 en todas 823 00:37:19,400 --> 00:37:22,820 pues si uno no tiene valor 824 00:37:22,820 --> 00:37:24,119 tendrás que inicializarlo arriba 825 00:37:24,119 --> 00:37:30,980 claro porque la máquina 826 00:37:30,980 --> 00:37:32,280 el compilador dice 827 00:37:32,280 --> 00:37:34,500 podrías no entrar en alguna rama 828 00:37:34,500 --> 00:37:35,860 entonces si no entras en alguna rama 829 00:37:35,860 --> 00:37:37,320 yo tengo que usar el valor por defecto 830 00:37:37,320 --> 00:37:39,559 vale entonces vamos a 831 00:37:39,559 --> 00:37:40,800 Sí.