1 00:00:00,000 --> 00:00:02,500 Venga, pues ejercicio 7. 2 00:00:03,859 --> 00:00:04,960 ¿Vamos a corregirlo? 3 00:00:05,120 --> 00:00:05,580 Sí, ¿eh? 4 00:00:07,080 --> 00:00:08,500 No, pero ¿queréis corregirlo? 5 00:00:08,539 --> 00:00:11,099 Como veo que más o menos os es... 6 00:00:11,099 --> 00:00:13,259 Lo habéis hecho más o menos sin mayor dificultad. 7 00:00:14,480 --> 00:00:15,199 Vale, pues a ver. 8 00:00:16,980 --> 00:00:17,399 7. 9 00:00:17,760 --> 00:00:19,559 Vamos a leer 5 palabras. 10 00:00:20,980 --> 00:00:24,960 Bueno, pues como vamos a leer 5 palabras, 11 00:00:25,399 --> 00:00:27,059 vamos a hacer un array de string, 12 00:00:27,059 --> 00:00:29,260 porque cada palabra es una cadena de texto. 13 00:00:30,000 --> 00:00:38,320 es un string. El array antes de usarlo tengo que crearlo de esta manera y tengo que decir 14 00:00:38,320 --> 00:00:43,460 una cantidad. Me han dicho 5, pues 5. Si en el futuro cambia, pues me vengo aquí y cambio 15 00:00:43,460 --> 00:00:49,759 la cantidad. Vale, vamos primero a leer las palabras que me han pedido. Bueno, como vamos 16 00:00:49,759 --> 00:00:51,579 Vamos a tener que leer del teclado. 17 00:00:54,710 --> 00:00:55,909 Pues esto de aquí. 18 00:00:59,329 --> 00:01:02,369 Y ahora. 19 00:01:03,649 --> 00:01:04,469 Esto era. 20 00:01:08,530 --> 00:01:09,370 Ahora ya. 21 00:01:09,750 --> 00:01:13,030 Vamos primero a recorrer el array para leer. 22 00:01:13,370 --> 00:01:14,790 Primero un for para recorrer. 23 00:01:15,510 --> 00:01:17,090 Así nos vamos aclarando la cabeza. 24 00:01:17,989 --> 00:01:19,150 Bueno, pues lo más cómodo. 25 00:01:19,150 --> 00:01:22,230 Como las posiciones del array irán entre 0 y 4. 26 00:01:22,230 --> 00:01:24,870 pues un bucle for donde ya hay una variable interna 27 00:01:24,870 --> 00:01:27,829 que me puede servir como posición 28 00:01:27,829 --> 00:01:31,290 aquí podría poner 5 29 00:01:31,290 --> 00:01:33,129 pero mucho mejor si pongo 30 00:01:33,129 --> 00:01:38,099 palabras.length 31 00:01:38,099 --> 00:01:39,700 mucho mejor si pongo esto 32 00:01:39,700 --> 00:01:44,000 porque si pongo esto, este va a seguir siempre a este número 33 00:01:44,000 --> 00:01:45,760 si este le cambio, este le cambio 34 00:01:45,760 --> 00:01:51,359 entonces mejor poner palabras.length que poner 5 35 00:01:51,359 --> 00:01:53,579 vale, ahora 36 00:01:53,579 --> 00:01:55,439 ¿qué hacemos ahí? pues nada, leerla 37 00:01:55,439 --> 00:02:05,140 porque es 38 00:02:05,140 --> 00:02:07,560 la forma en la que 39 00:02:07,560 --> 00:02:09,419 tiene un array de devolverte, como un array 40 00:02:09,419 --> 00:02:11,400 es un objeto, pues lo que contamos 41 00:02:11,400 --> 00:02:13,479 el miércoles, como un array es un objeto puede llamar 42 00:02:13,479 --> 00:02:14,800 a cosas, no solo tener valor 43 00:02:14,800 --> 00:02:17,539 una de las cosas que puede llamar es length que le da 44 00:02:17,539 --> 00:02:19,479 el número de posiciones que tiene 45 00:02:19,479 --> 00:02:24,710 palabras.length 46 00:02:24,710 --> 00:02:26,370 te dice lo que tú hayas puesto aquí 47 00:02:26,370 --> 00:02:28,449 que tengan 48 00:02:28,449 --> 00:02:30,469 cosas o no tengan esas posiciones es lo de menos 49 00:02:30,469 --> 00:02:37,520 Pues claro, desde i igual a cero 50 00:02:37,520 --> 00:02:39,699 Mientras sea menor que esta 51 00:02:39,699 --> 00:02:41,580 Incrementando i, se va a meter primero en la cero 52 00:02:41,580 --> 00:02:42,240 Luego en la uno 53 00:02:42,240 --> 00:02:46,219 Claro, estoy empezando en la cero 54 00:02:46,219 --> 00:02:47,259 Entonces va a ir una por una 55 00:02:47,259 --> 00:02:50,000 Vale, entonces introduzca 56 00:02:50,000 --> 00:02:51,800 Palabras, pues palabras 57 00:02:51,800 --> 00:02:52,780 De i 58 00:02:52,780 --> 00:02:55,740 Igual a scan 59 00:02:55,740 --> 00:02:56,300 Next line 60 00:02:56,300 --> 00:02:59,560 Y esa palabra puede ser cualquier 61 00:02:59,560 --> 00:03:01,120 Sucesión de caracteres 62 00:03:01,120 --> 00:03:04,699 pero vamos a 63 00:03:04,699 --> 00:03:05,879 primero hacer la versión 64 00:03:05,879 --> 00:03:08,500 que solo nos importan los números positivos 65 00:03:08,500 --> 00:03:10,560 o sea que si empieza con el guión 66 00:03:10,560 --> 00:03:11,560 no es número 67 00:03:11,560 --> 00:03:13,400 dime 68 00:03:13,400 --> 00:03:16,960 el escáner está visualizado como stream 69 00:03:16,960 --> 00:03:19,000 ¿cómo que escáner 70 00:03:19,000 --> 00:03:19,699 está como stream? 71 00:03:19,960 --> 00:03:21,719 ah perdón, el array perdón 72 00:03:21,719 --> 00:03:24,860 si ponemos por ejemplo dos letras 73 00:03:24,860 --> 00:03:25,719 o cuatro que queramos 74 00:03:25,719 --> 00:03:29,020 ¿se haría eso las cinco veces? 75 00:03:31,120 --> 00:03:33,199 No entiendo bien cómo funciona, porque... 76 00:03:33,199 --> 00:03:34,840 A ver, palabras.led 77 00:03:34,840 --> 00:03:37,500 te da directamente 78 00:03:37,500 --> 00:03:38,580 este numerito. 79 00:03:39,879 --> 00:03:41,180 Claro, entonces, esto 80 00:03:41,180 --> 00:03:43,199 es lo mismo que poner 5. 81 00:03:43,539 --> 00:03:45,280 Es lo mismo. Lo que pasa es que si yo pongo 82 00:03:45,280 --> 00:03:47,180 5 y ahora mi código cambia 83 00:03:47,180 --> 00:03:48,800 y me dicen, oye, hazme la versión para 15. 84 00:03:49,500 --> 00:03:51,319 Pues lo tengo que ir aquí y me tendría 85 00:03:51,319 --> 00:03:52,840 que ir aquí, que es un rollo. 86 00:03:53,900 --> 00:03:55,719 Entonces pongo palabras.led 87 00:03:55,719 --> 00:03:58,710 porque 88 00:03:58,710 --> 00:04:00,849 palabras.led es la forma 89 00:04:00,849 --> 00:04:02,150 que tiene el objeto palabras 90 00:04:02,150 --> 00:04:05,030 de recuperar el tamaño 91 00:04:05,030 --> 00:04:07,110 que tiene, que va a ser el que yo he puesto 92 00:04:07,110 --> 00:04:08,530 aquí, va a ser el que yo he puesto ahí 93 00:04:08,530 --> 00:04:11,150 vale, pues este bucle ha rellenado 94 00:04:11,150 --> 00:04:13,129 las palabras, ya está, ya las 95 00:04:13,129 --> 00:04:13,909 tenemos, ahora 96 00:04:13,909 --> 00:04:16,430 ¿qué es lo que me pide el programa? 97 00:04:17,209 --> 00:04:18,069 pues me dice 98 00:04:18,069 --> 00:04:19,730 a ver si 99 00:04:19,730 --> 00:04:25,180 indicar si 100 00:04:25,180 --> 00:04:27,339 alguna es un número 101 00:04:27,339 --> 00:04:28,459 vale 102 00:04:28,459 --> 00:04:30,100 pues entonces 103 00:04:30,100 --> 00:04:33,139 este es un ejemplo de programa que tiene que 104 00:04:33,139 --> 00:04:35,000 resolver si algo pasa o no pasa 105 00:04:35,000 --> 00:04:36,879 entonces yo de partida 106 00:04:36,879 --> 00:04:38,519 voy a asumir una cosa 107 00:04:38,519 --> 00:04:40,920 y luego ya me pongo a recorrer las palabras 108 00:04:40,920 --> 00:04:43,019 a ver si alguna me sirve como contraejemplo 109 00:04:43,019 --> 00:04:44,259 que me vaya a cambiar de opinión 110 00:04:44,259 --> 00:04:46,819 entonces de partida voy a 111 00:04:46,819 --> 00:04:48,300 asumir que 112 00:04:48,300 --> 00:04:50,160 ninguna es un número 113 00:04:50,160 --> 00:04:52,879 y luego ya me pongo a comprobar 114 00:04:52,879 --> 00:04:54,639 todas las palabras, si alguna lo es 115 00:04:54,639 --> 00:04:56,800 ese es el contraejemplo que esperaba 116 00:04:56,800 --> 00:04:58,459 cambio mi suposición inicial 117 00:04:58,459 --> 00:05:00,879 vale, pues este boolean 118 00:05:00,879 --> 00:05:03,000 no hay número, igual a 119 00:05:03,000 --> 00:05:05,620 De partida, ninguna es un número 120 00:05:05,620 --> 00:05:07,620 Vale, y ahora me voy a poner a explorar 121 00:05:07,620 --> 00:05:09,720 A ver si hay alguna de todo ese array 122 00:05:09,720 --> 00:05:10,879 Que me haga cambiar de opinión 123 00:05:10,879 --> 00:05:13,879 Bueno, vámonos a poner a explorar 124 00:05:13,879 --> 00:05:15,740 Pues de nuevo para explorar 125 00:05:15,740 --> 00:05:17,319 Tendremos que recorrer el array 126 00:05:17,319 --> 00:05:23,870 Vale 127 00:05:23,870 --> 00:05:24,930 Ahora 128 00:05:24,930 --> 00:05:28,230 ¿Qué tenemos que hacer con cada palabra de i? 129 00:05:28,370 --> 00:05:29,930 Aquí tenemos, en cada iteración 130 00:05:29,930 --> 00:05:30,509 Tenemos 131 00:05:30,509 --> 00:05:33,730 Palabras de i 132 00:05:33,730 --> 00:05:35,730 ¿Qué tenemos que hacer 133 00:05:35,730 --> 00:05:36,730 Con cada una de ellas? 134 00:05:37,129 --> 00:05:38,550 Ver si es número o no. 135 00:05:39,670 --> 00:05:41,430 Porque si es número, 136 00:05:41,709 --> 00:05:44,509 automáticamente cambio mi suposición de partida 137 00:05:44,509 --> 00:05:46,069 y la paso a falso. 138 00:05:46,930 --> 00:05:48,670 Porque ya he encontrado alguna que es número. 139 00:05:49,129 --> 00:05:51,670 Con lo cual ya una vez que haya salido del for, 140 00:05:52,410 --> 00:05:54,810 este bucle, perdón, este programa, ¿cómo acabará? 141 00:05:55,949 --> 00:05:57,430 Si no hay número, 142 00:05:59,930 --> 00:06:01,050 este programa va a acabar así. 143 00:06:01,050 --> 00:06:03,709 Si no hay número, pues yo pondré 144 00:06:03,709 --> 00:06:07,610 ninguna palabra 145 00:06:07,610 --> 00:06:09,870 es 146 00:06:09,870 --> 00:06:10,490 número 147 00:06:10,490 --> 00:06:13,009 pero en el else 148 00:06:13,009 --> 00:06:14,850 pues pondré 149 00:06:14,850 --> 00:06:16,689 alguna palabra es número 150 00:06:16,689 --> 00:06:21,410 que es lo que me dice el programa 151 00:06:21,410 --> 00:06:23,430 si alguna es número o ninguna 152 00:06:23,430 --> 00:06:29,250 bueno pues esta es la estructura de mi programa 153 00:06:29,250 --> 00:06:30,189 vale 154 00:06:30,189 --> 00:06:33,089 me tiene que decir si algo pasa o no pasa 155 00:06:33,089 --> 00:06:35,290 pues eso lo guardo en un boolean 156 00:06:35,290 --> 00:06:37,569 de partida asumo que ninguna es número 157 00:06:37,569 --> 00:06:39,250 y ahora tendré que hacer este 158 00:06:39,250 --> 00:06:41,350 for tendré que construirlo, que está aquí en blanco 159 00:06:41,350 --> 00:06:42,129 en agujero negro 160 00:06:42,129 --> 00:06:45,230 ir recibiendo las palabras a ver si 161 00:06:45,230 --> 00:06:46,430 alguna me hace cambiar de idea 162 00:06:46,430 --> 00:06:49,230 cuando ya este for ha terminado, ya podré 163 00:06:49,230 --> 00:06:50,949 concluir mi programa 164 00:06:50,949 --> 00:06:53,089 en función de ese boolean, pues si 165 00:06:53,089 --> 00:06:54,769 esto ha pasado, esto no ha pasado 166 00:06:54,769 --> 00:06:57,129 vale, pero 167 00:06:57,129 --> 00:06:58,509 primero tengo que tener claras 168 00:06:58,509 --> 00:07:01,050 tengo que tener claro el diseño, como lo voy a hacer 169 00:07:01,050 --> 00:07:03,069 tenemos ya varios patrones 170 00:07:03,069 --> 00:07:04,889 en la cabeza, que nos han servido 171 00:07:04,889 --> 00:07:06,949 para resolver ejercicios, pues sumar 172 00:07:06,949 --> 00:07:09,089 contar, pues tenemos que 173 00:07:09,089 --> 00:07:10,689 reutilizar todo eso 174 00:07:10,689 --> 00:07:12,410 para construir códigos 175 00:07:12,410 --> 00:07:15,389 que sean algoritmos cada vez un poco más complejos 176 00:07:15,389 --> 00:07:17,370 vale, pues aquí me falta 177 00:07:17,370 --> 00:07:18,990 este agujero negro 178 00:07:18,990 --> 00:07:21,449 que es, para cada palabra de i 179 00:07:21,449 --> 00:07:22,610 tendremos que mirar 180 00:07:22,610 --> 00:07:25,410 para cada una de estas 181 00:07:25,410 --> 00:07:26,350 palabras de i 182 00:07:26,350 --> 00:07:29,490 hay que mirar 183 00:07:29,490 --> 00:07:31,629 si es 184 00:07:31,629 --> 00:07:33,310 sucesión de cifras 185 00:07:33,310 --> 00:07:35,670 o no, eso es lo que tenemos que mirar 186 00:07:35,670 --> 00:07:37,569 si es sucesión 187 00:07:37,569 --> 00:07:39,069 de cifras o no 188 00:07:39,069 --> 00:07:43,470 Esto es lo que hay que mirar, porque si es sucesión de cifras, me codifica un número. 189 00:07:44,050 --> 00:07:45,910 Si no es sucesión de cifras, no. 190 00:07:46,529 --> 00:07:47,610 Eso es lo que tenemos que mirar. 191 00:07:48,850 --> 00:07:51,250 Vale, pues, ¿cómo miro yo si es sucesión de cifras? 192 00:07:52,990 --> 00:07:55,149 Pues, palabras de i es un string. 193 00:07:55,930 --> 00:08:00,050 Pues, yo puedo hacer un for que vaya carácter por carácter. 194 00:08:01,810 --> 00:08:03,470 Y de nuevo tengo el mismo problema. 195 00:08:03,470 --> 00:08:05,769 yo puedo asumir 196 00:08:05,769 --> 00:08:07,670 para ver si este número, perdón 197 00:08:07,670 --> 00:08:09,589 si esta palabra es de y codifica un número o no 198 00:08:09,589 --> 00:08:12,639 codificará un número 199 00:08:12,639 --> 00:08:14,120 si todas son cifras 200 00:08:14,120 --> 00:08:16,839 y no lo codificará solo con que 201 00:08:16,839 --> 00:08:18,259 alguna de ellas no sea cifra 202 00:08:18,259 --> 00:08:21,139 vale, pues de nuevo es el mismo problema 203 00:08:21,139 --> 00:08:23,259 un mismo problema que yo puedo resolver con un boolean 204 00:08:23,259 --> 00:08:23,939 que es 205 00:08:23,939 --> 00:08:27,879 todas cifras 206 00:08:27,879 --> 00:08:30,480 yo asumo que todas cifras de partida 207 00:08:30,480 --> 00:08:32,779 se cumple, y ahora voy a ir 208 00:08:32,779 --> 00:08:34,820 cifra por cifra. En cuanto alguna 209 00:08:34,820 --> 00:08:36,899 no sea cifra, he cambiado de idea. 210 00:08:39,639 --> 00:08:40,980 No hay número en ninguna 211 00:08:40,980 --> 00:08:43,059 de las palabras. Vale, pues 212 00:08:43,059 --> 00:08:44,080 ahora estoy ya 213 00:08:44,080 --> 00:08:46,840 en un ámbito más pequeñito. Ahora ya estoy en 214 00:08:46,840 --> 00:08:49,159 mi palabras de y es otro problema el que tengo que resolver. 215 00:08:49,779 --> 00:08:50,940 Ahora tengo que resolver este problema. 216 00:08:51,659 --> 00:08:53,139 Para cada palabra, mirar 217 00:08:53,139 --> 00:08:54,720 si es sucesión de cifras o no. 218 00:08:54,940 --> 00:08:56,940 De nuevo, si algo pasa, no pasa. Otra vez 219 00:08:56,940 --> 00:08:58,860 lo mismo, pero ahora en otro ámbito más pequeño. 220 00:08:59,600 --> 00:09:00,960 Bueno, pues voy a asumir que todas son 221 00:09:00,960 --> 00:09:02,320 cifras. Y ahora voy a ir 222 00:09:02,320 --> 00:09:04,440 carácter por carácter 223 00:09:04,440 --> 00:09:06,519 a ver si alguna me permite cambiar de opinión 224 00:09:06,519 --> 00:09:07,500 porque no es cifra 225 00:09:07,500 --> 00:09:09,360 pues vamos a ver 226 00:09:09,360 --> 00:09:12,759 ¿cómo recorro yo todos y cada uno de los caracteres de mi string? 227 00:09:13,519 --> 00:09:14,299 pues un bucle for 228 00:09:14,299 --> 00:09:16,139 un bucle for 229 00:09:16,139 --> 00:09:18,200 no puedo reutilizar la i 230 00:09:18,200 --> 00:09:20,379 porque la i ya es la que 231 00:09:20,379 --> 00:09:22,960 está para decirme en qué palabra estoy 232 00:09:22,960 --> 00:09:24,879 pues desde j 233 00:09:24,879 --> 00:09:25,779 igual a cero 234 00:09:25,779 --> 00:09:28,519 la j recorre las posiciones de la palabra 235 00:09:28,519 --> 00:09:30,179 la i recorre las palabras 236 00:09:30,179 --> 00:09:31,980 la j las posiciones de la palabra 237 00:09:31,980 --> 00:09:34,019 para j igual a 0 238 00:09:34,019 --> 00:09:35,500 mientras j sea menor que qué 239 00:09:35,500 --> 00:09:37,720 que el tamaño de la palabra 240 00:09:37,720 --> 00:09:40,000 que es palabras punto length 241 00:09:40,000 --> 00:09:43,639 perdón, palabras de i 242 00:09:43,639 --> 00:09:44,679 punto length 243 00:09:44,679 --> 00:09:50,769 palabras de i 244 00:09:50,769 --> 00:09:53,549 palabras de i es un string, es una cadena 245 00:09:53,549 --> 00:09:55,830 no es como palabras, palabras es un array 246 00:09:55,830 --> 00:09:57,570 y el tamaño de un array 247 00:09:57,570 --> 00:09:59,429 es palabras de length sin paréntesis 248 00:09:59,429 --> 00:10:01,850 palabras de i es una cadena 249 00:10:01,850 --> 00:10:03,950 un string, el tamaño de un string 250 00:10:03,950 --> 00:10:06,169 es un length pero con paréntesis 251 00:10:06,169 --> 00:10:07,350 pero son dos cosas distintas 252 00:10:07,350 --> 00:10:10,009 esto es un array y esto es un string 253 00:10:10,009 --> 00:10:11,250 vale 254 00:10:11,250 --> 00:10:14,110 pues para cada posición debe ser empezando en 0 255 00:10:14,110 --> 00:10:15,870 mientras sea menor que el total 256 00:10:15,870 --> 00:10:17,070 de caracteres que tiene 257 00:10:17,070 --> 00:10:18,870 incrementando j 258 00:10:18,870 --> 00:10:21,830 ¿qué tenemos que ver? pues si el 259 00:10:21,830 --> 00:10:22,490 carácter 260 00:10:22,490 --> 00:10:24,389 que tenemos 261 00:10:24,389 --> 00:10:27,409 en esa posición 262 00:10:27,409 --> 00:10:29,570 palabras 263 00:10:29,570 --> 00:10:31,070 de i 264 00:10:31,070 --> 00:10:33,309 que es la palabra que estoy comprobando 265 00:10:33,309 --> 00:10:35,470 punto char at j 266 00:10:35,470 --> 00:10:37,789 tengo que ver 267 00:10:37,789 --> 00:10:39,889 si esto es una 268 00:10:39,889 --> 00:10:41,830 cifra 269 00:10:41,830 --> 00:10:42,750 o no lo es 270 00:10:42,750 --> 00:10:49,019 ¿vale? entonces 271 00:10:49,019 --> 00:10:50,759 ¿cómo lo podemos hacer? 272 00:10:50,899 --> 00:10:52,460 pues vamos a ver si 273 00:10:52,460 --> 00:10:54,720 la tabla ASTI, las cifras 274 00:10:54,720 --> 00:10:56,740 0 y 9, bueno vamos a abrirlo 275 00:10:56,740 --> 00:10:57,799 para que quede más claro 276 00:10:57,799 --> 00:11:03,929 tabla ASTI, vale 277 00:11:03,929 --> 00:11:05,090 entonces 278 00:11:05,090 --> 00:11:09,919 las cifras 279 00:11:09,919 --> 00:11:11,600 están entre 280 00:11:11,600 --> 00:11:13,960 ¿dónde están? que no las veo 281 00:11:13,960 --> 00:11:16,039 aquí, no, están entre 48 282 00:11:16,039 --> 00:11:16,840 y 57 283 00:11:16,840 --> 00:11:19,740 claro, entonces 284 00:11:19,740 --> 00:11:22,080 si ese char es 285 00:11:22,080 --> 00:11:24,379 menor que 48 286 00:11:24,379 --> 00:11:26,600 o mayor de 57 287 00:11:26,600 --> 00:11:27,799 una de las dos 288 00:11:27,799 --> 00:11:30,200 no es cifra, pues entonces ya he encontrado 289 00:11:30,200 --> 00:11:32,179 el contraejemplo a cifra y puedo cambiar 290 00:11:32,179 --> 00:11:33,200 el todas cifras true 291 00:11:33,200 --> 00:11:35,639 bueno, pues entonces 292 00:11:35,639 --> 00:11:38,000 si palabras de i char at j 293 00:11:38,000 --> 00:11:40,240 es menor que 48 294 00:11:40,240 --> 00:11:41,580 o 295 00:11:41,580 --> 00:11:44,159 palabras de 296 00:11:44,159 --> 00:11:44,799 y charad j 297 00:11:44,799 --> 00:11:52,679 es mayor que 298 00:11:52,679 --> 00:11:53,179 ¿cuál era? 299 00:11:54,279 --> 00:11:54,840 57 300 00:11:54,840 --> 00:11:58,940 automáticamente acabo de encontrar un contraejemplo 301 00:11:58,940 --> 00:12:00,519 a lo de que todas las cifras 302 00:12:00,519 --> 00:12:02,139 de esta palabras de y se atrue 303 00:12:02,139 --> 00:12:03,480 acabo de encontrarlo 304 00:12:03,480 --> 00:12:06,700 luego ya automáticamente todas cifras 305 00:12:06,700 --> 00:12:08,639 igual a falsa 306 00:12:08,639 --> 00:12:12,750 voy a poner aunque no hiciera 307 00:12:12,750 --> 00:12:14,570 falta llaves en este for para que quede 308 00:12:14,570 --> 00:12:15,909 claro que ya me voy del for 309 00:12:15,909 --> 00:12:20,059 vale, pues este trocito de código de aquí 310 00:12:20,059 --> 00:12:22,100 es un trozo de código 311 00:12:22,100 --> 00:12:23,820 para ver si 312 00:12:23,820 --> 00:12:26,039 palabras de i tiene todas cifras o no 313 00:12:26,039 --> 00:12:30,080 yo asumo de partida que todas son cifras 314 00:12:30,080 --> 00:12:31,480 y ahora me pongo a recorrer 315 00:12:31,480 --> 00:12:34,159 todas sus cifras una por una, todas sus caracteres 316 00:12:34,159 --> 00:12:35,740 perdón, me pongo a recorrer 317 00:12:35,740 --> 00:12:38,299 todos sus caracteres, si alguno 318 00:12:38,299 --> 00:12:39,860 no es cifra 319 00:12:39,860 --> 00:12:42,139 contra ejemplo, cambio de idea 320 00:12:42,139 --> 00:12:42,740 al respecto 321 00:12:42,740 --> 00:12:46,279 pues cuando este fuera terminado 322 00:12:46,279 --> 00:12:48,580 ya tengo toda la información 323 00:12:48,580 --> 00:12:50,600 necesaria para ver 324 00:12:50,600 --> 00:12:52,480 si esta palabra es 325 00:12:52,480 --> 00:12:54,360 un contraejemplo del no hay número 326 00:12:54,360 --> 00:12:55,659 o si, porque 327 00:12:55,659 --> 00:12:56,820 si 328 00:12:56,820 --> 00:12:59,340 todas cifras 329 00:12:59,340 --> 00:13:04,350 acabo de encontrar un contraejemplo 330 00:13:04,350 --> 00:13:06,470 para no hay número, acabas de encontrarlo 331 00:13:06,470 --> 00:13:07,710 pues si todas son cifras 332 00:13:07,710 --> 00:13:09,889 entonces no hay número 333 00:13:09,889 --> 00:13:11,769 igual a 334 00:13:11,769 --> 00:13:14,509 falso, porque claro que lo hay, acabo de encontrar uno 335 00:13:14,509 --> 00:13:17,590 y ya está, ya ha terminado el programa 336 00:13:17,590 --> 00:13:23,779 lo he ido adaptando 337 00:13:23,779 --> 00:13:26,299 a los algoritmos 338 00:13:26,299 --> 00:13:27,059 que vamos haciendo 339 00:13:27,059 --> 00:13:29,419 pero bueno, esto lo podéis saber 340 00:13:29,419 --> 00:13:31,720 lo podéis luego compactar, podéis reorganizar 341 00:13:31,720 --> 00:13:32,759 el código de otra manera 342 00:13:32,759 --> 00:13:36,259 yo lo he ido como haciendo por ladrillos 343 00:13:36,259 --> 00:13:40,240 claro, porque con cada palabra 344 00:13:40,240 --> 00:13:41,259 tengo que empezar de nuevo 345 00:13:41,259 --> 00:13:43,759 con cada palabra tengo que empezar de nuevo 346 00:13:43,759 --> 00:13:44,700 a ver si esa palabra 347 00:13:44,700 --> 00:13:46,419 es número o no lo es. 348 00:13:48,419 --> 00:13:49,259 Sí, pero por eso 349 00:13:49,259 --> 00:13:50,820 hemos dicho que vamos a hacer la versión ahora mismo 350 00:13:50,820 --> 00:13:52,080 solo positivo, ¿vale? 351 00:13:53,440 --> 00:13:55,039 Claro que esta se reinicia, porque 352 00:13:55,039 --> 00:13:57,000 en cada bucle del for empiezo 353 00:13:57,000 --> 00:13:58,360 de nuevo con una palabra nueva, 354 00:13:58,860 --> 00:14:00,179 para ver si es todas cifras o no. 355 00:14:03,580 --> 00:14:04,539 Claro, en cuanto 356 00:14:04,539 --> 00:14:06,659 una de estos strings me haya dado 357 00:14:06,659 --> 00:14:08,980 todas cifras, esto ya lo puedo 358 00:14:08,980 --> 00:14:09,860 convertir a falsa. 359 00:14:10,799 --> 00:14:13,139 ¿Vale? Y va a seguir comprobando 360 00:14:13,139 --> 00:14:15,080 la siguiente, que ya nos daría 361 00:14:15,080 --> 00:14:17,080 igual, porque con este ya se ha puesto 362 00:14:17,080 --> 00:14:18,240 a falso, ya nos da igual 363 00:14:18,240 --> 00:14:21,120 entonces si queremos ya rizar el rizo 364 00:14:21,120 --> 00:14:23,100 podemos aquí, en este ad 365 00:14:23,100 --> 00:14:25,059 pero bueno, no lo voy a poner porque ya hay mucho código 366 00:14:25,059 --> 00:14:26,840 poner, mientras no haya llegado a longitud 367 00:14:26,840 --> 00:14:29,200 y no haya número, siga siendo 368 00:14:29,200 --> 00:14:30,980 true, porque cuando sea falso ya no falta 369 00:14:30,980 --> 00:14:32,620 que entre más, ¿vale? 370 00:14:34,840 --> 00:14:35,960 sí, vamos a ver 371 00:14:35,960 --> 00:14:48,059 vale, pues introduzca, palabra 372 00:14:48,059 --> 00:14:50,559 esta, esta 373 00:14:50,559 --> 00:14:54,899 Y 45 374 00:14:54,899 --> 00:14:56,919 Vale, alguna ha sido un número 375 00:14:56,919 --> 00:14:58,340 Efectivamente alguna ha sido 376 00:14:58,340 --> 00:15:00,679 Vamos a no poner ninguna 377 00:15:00,679 --> 00:15:08,149 Ninguna ha sido un número 378 00:15:08,149 --> 00:15:08,870 Vale, hombre 379 00:15:08,870 --> 00:15:11,970 Podríamos ir haciendo casos de prueba más retorcidos 380 00:15:11,970 --> 00:15:12,710 A ver, pero bueno 381 00:15:12,710 --> 00:15:14,429 Funciona 382 00:15:14,429 --> 00:15:18,330 Yo pensaba que era poner 383 00:15:18,330 --> 00:15:19,870 Literalmente poner dos 384 00:15:19,870 --> 00:15:21,789 La palabra dos 385 00:15:21,789 --> 00:15:23,289 Pues entonces sí que es complicado 386 00:15:23,289 --> 00:15:27,370 Pues entonces no me extraña que te volvieran loco 387 00:15:27,370 --> 00:15:29,649 No hombre, eso es muy complicado 388 00:15:29,649 --> 00:15:30,870 Porque tienes que ir 389 00:15:30,870 --> 00:15:32,610 Haciendo sub-stream 390 00:15:32,610 --> 00:15:34,629 A ver si algún sub-stream es 2, 200 391 00:15:34,629 --> 00:15:36,269 No es que sea imposible 392 00:15:36,269 --> 00:15:37,309 Pero es muy complicado 393 00:15:37,309 --> 00:15:42,549 No, es una locura 394 00:15:42,549 --> 00:15:43,809 Claro 395 00:15:43,809 --> 00:15:45,990 De hecho, vamos a preguntarle 396 00:15:45,990 --> 00:15:50,830 Al esclavo 397 00:15:50,830 --> 00:15:52,169 No en un array 398 00:15:52,169 --> 00:15:53,669 en una palabra solo 399 00:15:53,669 --> 00:15:56,710 dame método 400 00:15:56,710 --> 00:15:57,529 java 401 00:15:57,529 --> 00:16:00,450 para dado un 402 00:16:00,450 --> 00:16:01,029 string 403 00:16:01,029 --> 00:16:06,019 decirme 404 00:16:06,019 --> 00:16:10,980 si describe 405 00:16:10,980 --> 00:16:11,720 un número 406 00:16:11,720 --> 00:16:14,879 o sea, esto es complicadísimo 407 00:16:14,879 --> 00:16:17,000 un número 408 00:16:17,000 --> 00:16:20,120 por ejemplo 409 00:16:20,120 --> 00:16:26,070 213 410 00:16:26,070 --> 00:16:27,350 es que esto es una locura 411 00:16:27,350 --> 00:16:30,970 Por ejemplo, 213 412 00:16:30,970 --> 00:16:38,559 El enfoque es 413 00:16:38,559 --> 00:16:40,159 Separarlo en tokens válidos 414 00:16:40,159 --> 00:16:43,139 Verificar que todos los tokens pertenecen al vocabulario numérico español 415 00:16:43,139 --> 00:16:44,919 Intentar convertirlo 416 00:16:44,919 --> 00:16:55,350 Convertir a positivo 417 00:16:55,350 --> 00:16:57,210 Texto, una compuesta 418 00:16:57,210 --> 00:16:58,409 Contiene la clave 419 00:16:58,409 --> 00:17:00,809 Esto es una movida de método 420 00:17:00,809 --> 00:17:03,129 Es muy complicado 421 00:17:03,129 --> 00:17:04,309 ¿Vale? 422 00:17:07,369 --> 00:17:09,069 no era lo que pedía, lógicamente 423 00:17:09,069 --> 00:17:11,690 esto es una movida, tienes que ir efectivamente 424 00:17:11,690 --> 00:17:13,589 separando las partes, meterlo en una estructura 425 00:17:13,589 --> 00:17:15,589 de datos útil, como es un 426 00:17:15,589 --> 00:17:17,329 diccionario, como lo está usando él, un map 427 00:17:17,329 --> 00:17:19,430 porque si no es inmanejable, si no lo metes en un map 428 00:17:19,430 --> 00:17:21,730 es una locura, no era eso lo que pedía 429 00:17:21,730 --> 00:17:22,309 lógicamente 430 00:17:22,309 --> 00:17:23,829 claro 431 00:17:23,829 --> 00:17:27,250 no entendía nada de lo que te decía 432 00:17:27,250 --> 00:17:29,769 claro, me extrañaba que estuvieras tan desconcertado 433 00:17:29,769 --> 00:17:31,430 pero, pues no te he entendido 434 00:17:31,430 --> 00:17:33,150 no he entendido que tu problema era ese 435 00:17:33,150 --> 00:17:34,589 vale 436 00:17:34,589 --> 00:17:37,599 a ver 437 00:17:37,599 --> 00:17:40,819 ¿Algún otro que queramos que corrijamos? 438 00:17:45,819 --> 00:17:47,400 Te van a odiar tus compañeros 439 00:17:47,400 --> 00:17:49,240 Que tus compañeros te van a odiar 440 00:17:49,240 --> 00:17:50,539 Pero sí, pero un segundito 441 00:17:50,539 --> 00:17:51,759 ¿Este código querías? 442 00:17:53,000 --> 00:17:53,279 Dime 443 00:17:53,279 --> 00:17:55,819 Ah, vale 444 00:17:55,819 --> 00:18:06,980 Claro, un bucle que vas restando 445 00:18:06,980 --> 00:18:10,259 O sea, primero vas restando miles hasta que sea menor que mil 446 00:18:10,259 --> 00:18:11,680 Y ahí vas concatenando las M 447 00:18:11,680 --> 00:18:14,000 Con la que te queda otro bucle 448 00:18:14,000 --> 00:18:15,960 Que vas restando cienes 449 00:18:15,960 --> 00:18:17,200 Hasta que te quede menor de cien 450 00:18:17,200 --> 00:18:18,799 Y cada resta concatenas las C 451 00:18:18,799 --> 00:18:20,619 Y luego, claro 452 00:18:20,619 --> 00:18:27,519 No, yo 453 00:18:27,519 --> 00:18:29,720 Vas restando 454 00:18:29,720 --> 00:18:31,480 Mil quinientos 455 00:18:31,480 --> 00:18:33,799 Porque las cifras romanas son mil quinientos cien 456 00:18:33,799 --> 00:18:35,160 Cincuenta 457 00:18:35,160 --> 00:18:36,539 Diez 458 00:18:36,539 --> 00:18:39,019 Cinco y uno 459 00:18:39,019 --> 00:18:41,480 pues ir restando esas cantidades 460 00:18:41,480 --> 00:18:42,240 una tras otra 461 00:18:42,240 --> 00:18:46,519 yo lo haría con un bucle 462 00:18:46,519 --> 00:18:50,180 y hasta aquí 463 00:18:50,180 --> 00:18:51,859 e iría acumulando 464 00:18:51,859 --> 00:18:53,279 e iría concatenando las M 465 00:18:53,279 --> 00:18:55,420 en cada iteración, luego habría otro bucle 466 00:18:55,420 --> 00:18:56,460 que iría concatenando las C 467 00:18:56,460 --> 00:18:58,559 el switch no sé a dónde te refieres 468 00:18:58,559 --> 00:19:21,099 en función de lo que te haya dado 469 00:19:21,099 --> 00:19:22,799 en el bucle, las restas 470 00:19:22,799 --> 00:19:24,940 ah, sí, también, claro 471 00:19:24,940 --> 00:19:30,339 Bueno, es que a ver, el largo 472 00:19:30,339 --> 00:19:32,380 Porque tienes que ir haciendo los bucles de restas 473 00:19:32,380 --> 00:19:33,299 Los tienes que hacer 474 00:19:33,299 --> 00:19:35,099 Sí o sí 475 00:19:35,099 --> 00:19:46,839 Bueno 476 00:19:46,839 --> 00:19:51,059 Pues nada 477 00:19:51,059 --> 00:19:53,299 Si queréis nos vamos 478 00:19:53,299 --> 00:19:54,140 Y si no también 479 00:19:54,140 --> 00:19:57,799 Dime, que ponga que 480 00:19:57,799 --> 00:20:03,099 Que lo haga más pequeño 481 00:20:03,099 --> 00:20:05,099 Vale, lo voy a subir 482 00:20:05,099 --> 00:20:06,960 De todas maneras a la carpeta de ejercicios 483 00:20:06,960 --> 00:20:09,460 Si, estarán proyectos 484 00:20:09,460 --> 00:20:10,099 Hechos en clase 485 00:20:10,099 --> 00:20:28,529 Gracias.