1 00:00:00,000 --> 00:00:03,480 La ratio de suspensos 2 00:00:03,480 --> 00:00:04,620 Pues habréis hecho un contador 3 00:00:04,620 --> 00:00:06,120 Ya está, punto pelota, un contador 4 00:00:06,120 --> 00:00:09,300 Un contador que empieza valiendo 0 5 00:00:09,300 --> 00:00:10,800 Como todos los contadores 6 00:00:10,800 --> 00:00:13,580 Y ahora, ese contador que va a contar 7 00:00:13,580 --> 00:00:15,199 Posiciones del array 8 00:00:15,199 --> 00:00:17,820 Luego desde 0 hasta pos solamente 9 00:00:17,820 --> 00:00:18,719 Que son las que nos cuentan 10 00:00:18,719 --> 00:00:21,120 Posiciones del array que sean menores que 5 11 00:00:21,120 --> 00:00:22,539 Ya está, es lo único que va a contar 12 00:00:22,539 --> 00:00:25,179 Y ahora una vez que las tiene contadas 13 00:00:25,179 --> 00:00:27,219 La ratio de suspensos 14 00:00:27,219 --> 00:00:28,579 Será ese número entre el total 15 00:00:28,579 --> 00:00:31,679 y listo, una vez que se acabó la cuenta 16 00:00:31,679 --> 00:00:33,399 el número dentro del total y se acabó 17 00:00:33,399 --> 00:00:35,640 y la media 18 00:00:35,640 --> 00:00:37,719 pues lo mismo pero en lugar de 19 00:00:37,719 --> 00:00:39,859 contar notas menores que 5 20 00:00:39,859 --> 00:00:40,920 en lugar de contar 21 00:00:40,920 --> 00:00:43,740 sumarlas, una suma acumulativa 22 00:00:43,740 --> 00:00:45,640 empezamos siendo 0, vamos sumando 23 00:00:45,640 --> 00:00:48,299 lo sumando son todas las notas 24 00:00:48,299 --> 00:00:52,060 para todo el array y la nota media 25 00:00:52,060 --> 00:00:54,200 la suma 26 00:00:54,200 --> 00:00:55,579 que nos ha salido 27 00:00:55,579 --> 00:00:57,060 entre el total de alumnos 28 00:00:57,060 --> 00:00:58,000 y ya está 29 00:00:58,000 --> 00:01:10,060 Bueno, pues esta aplicación 30 00:01:10,060 --> 00:01:12,299 Ya estaría en su versión 1 31 00:01:12,299 --> 00:01:15,700 Vamos a hacer la versión más bonita 32 00:01:15,700 --> 00:01:17,739 Puedo poner el 6 33 00:01:17,739 --> 00:01:18,140 Esto 34 00:01:18,140 --> 00:01:32,689 Vale 35 00:01:32,689 --> 00:01:43,250 Bueno, está claro 36 00:01:43,250 --> 00:01:45,790 Hemos hecho lo de siempre, contar y sumar 37 00:01:45,790 --> 00:01:48,170 Lo que pasa es que ahora lo que estamos contando 38 00:01:48,170 --> 00:01:49,849 y sumando, nos va llegando 39 00:01:49,849 --> 00:01:52,189 de posiciones de un array, nos va llegando 40 00:01:52,189 --> 00:01:54,409 de ahí, en lugar de llegarnos pues del teclado 41 00:01:54,409 --> 00:01:56,469 donde sea, nos va llegando de ahí, pero son los ejercicios 42 00:01:56,469 --> 00:01:57,109 del principio 43 00:01:57,109 --> 00:01:59,450 vale 44 00:01:59,450 --> 00:02:02,230 bueno, pues esta aplicación nos gusta 45 00:02:02,230 --> 00:02:04,049 está muy bien, mete las notas 46 00:02:04,049 --> 00:02:05,969 hace las medias, podemos poner una nota 47 00:02:05,969 --> 00:02:08,090 eliminar un alumno, mostrar un listado, etc 48 00:02:08,090 --> 00:02:10,509 pero 49 00:02:10,509 --> 00:02:11,990 pero 50 00:02:11,990 --> 00:02:14,330 es un poco 51 00:02:14,330 --> 00:02:16,289 feilla, por lo que ya hemos 52 00:02:16,289 --> 00:02:18,370 dicho antes, que hemos tenido 53 00:02:18,370 --> 00:02:20,270 que decir, mira, vamos a asumir 54 00:02:20,270 --> 00:02:22,349 que como mucho hay 100 55 00:02:22,349 --> 00:02:24,229 entonces ya hemos tenido 56 00:02:24,229 --> 00:02:26,430 que hacer ya esa restricción de partida 57 00:02:26,430 --> 00:02:28,229 y al igual 58 00:02:28,229 --> 00:02:29,689 que hemos dicho antes, si me dicen, oye, cuidado 59 00:02:29,689 --> 00:02:32,129 que a lo mejor esta misma aplicación la voy a 60 00:02:32,129 --> 00:02:34,150 reutilizar en lugar de en mi academia, la voy a 61 00:02:34,150 --> 00:02:36,270 reutilizar ahí en mi instituto de no sé 62 00:02:36,270 --> 00:02:38,189 qué, y ahí puedo tener hasta mil alumnos 63 00:02:38,189 --> 00:02:40,229 pues hay que entrar en el código 64 00:02:40,229 --> 00:02:41,729 cambiar el código 65 00:02:41,729 --> 00:02:44,650 y volver a ejecutarla 66 00:02:44,650 --> 00:02:47,449 no es la idea, esta aplicación entonces 67 00:02:47,449 --> 00:02:49,389 no es reutilizable de forma 68 00:02:49,389 --> 00:02:51,449 sencilla, tengo que cambiar el código 69 00:02:51,449 --> 00:02:53,370 si la quiero reutilizar en un escenario 70 00:02:53,370 --> 00:02:54,870 distinto de muchos más alumnos 71 00:02:54,870 --> 00:02:57,610 eso por un lado, primera pega que la hace fea 72 00:02:57,610 --> 00:02:59,389 segunda 73 00:02:59,389 --> 00:03:01,169 pega, quejolines 74 00:03:01,169 --> 00:03:03,430 yo tengo ahí un array de mil 75 00:03:03,430 --> 00:03:05,229 o de diez mil o de los que quiera, porque 76 00:03:05,229 --> 00:03:07,210 podría decir, oye, para que sea reutilizable 77 00:03:07,210 --> 00:03:09,310 incluso ahí en los confines del 78 00:03:09,310 --> 00:03:11,069 universo, no pasa nada 79 00:03:11,069 --> 00:03:13,270 yo me voy a hacer un array que quepan hasta 80 00:03:13,270 --> 00:03:15,250 200.000 y luego tú ya 81 00:03:15,250 --> 00:03:17,370 no, funciona 82 00:03:17,370 --> 00:03:18,729 pero tengo ahí 83 00:03:18,729 --> 00:03:21,110 200.000 espacios en memoria 84 00:03:21,110 --> 00:03:23,330 habilitados ocupando la memoria RAM 85 00:03:23,330 --> 00:03:25,590 cuando la mayoría 86 00:03:25,590 --> 00:03:27,509 de las veces a lo mejor solo estoy usando 10 87 00:03:27,509 --> 00:03:29,509 o 12, no es una solución 88 00:03:29,509 --> 00:03:31,270 tampoco, entonces 89 00:03:31,270 --> 00:03:32,830 ¿cuál sería la solución bonita? 90 00:03:33,849 --> 00:03:35,210 es decir, pues vamos a hacernos 91 00:03:35,210 --> 00:03:37,550 un array en principio 92 00:03:37,550 --> 00:03:39,409 de 0 posiciones 93 00:03:39,409 --> 00:03:41,509 y según vayan llegando y saliendo 94 00:03:41,509 --> 00:03:43,189 lo voy estirando y lo voy encogiendo 95 00:03:43,189 --> 00:03:45,650 Efectivamente 96 00:03:45,650 --> 00:03:48,110 Entonces vamos a hacer la versión 2 97 00:03:48,110 --> 00:03:50,110 Que será una pequeña modificación de esta 98 00:03:50,110 --> 00:03:51,729 Pero un poquito más bonita 99 00:03:51,729 --> 00:03:53,349 A ver 100 00:03:53,349 --> 00:03:55,330 Ejera raíz, donde está 101 00:03:55,330 --> 00:03:57,289 Este ejercicio 102 00:03:57,289 --> 00:03:59,430 Lo hemos llamado ejercicio 28 103 00:03:59,430 --> 00:04:00,750 Pero ejercicio 28 tuneado 104 00:04:00,750 --> 00:04:02,629 Porque no es exactamente el ejercicio 28 105 00:04:02,629 --> 00:04:05,069 Entonces vamos a cambiarle de nombre 106 00:04:05,069 --> 00:04:08,979 Eso, voy a poner ejercicio 28 107 00:04:08,979 --> 00:04:11,479 Con un poco de tuning 108 00:04:11,479 --> 00:04:15,280 tuning en mi época 109 00:04:15,280 --> 00:04:16,920 era cuando sintonizabas la radio 110 00:04:16,920 --> 00:04:17,720 ahora ya no, ¿verdad? 111 00:04:18,899 --> 00:04:21,639 ya no se sintonizan 112 00:04:21,639 --> 00:04:22,480 ya pasan radios 113 00:04:22,480 --> 00:04:24,620 con una tele y un palillo 114 00:04:24,620 --> 00:04:27,259 ¿con una tele y un palillo? 115 00:04:27,699 --> 00:04:28,360 eso no me lo sé 116 00:04:28,360 --> 00:04:32,579 cuando se jodía la tele 117 00:04:32,579 --> 00:04:34,220 las ruedas 118 00:04:34,220 --> 00:04:36,899 ah, las ruedas de las teles viejas 119 00:04:36,899 --> 00:04:40,420 esas teles no las conozco 120 00:04:40,420 --> 00:04:43,079 Son teles del 60 para abajo 121 00:04:43,079 --> 00:04:44,540 No hombre, pero entonces él no las conocería 122 00:04:44,540 --> 00:04:49,800 Con una tele y un palillo 123 00:04:49,800 --> 00:04:53,139 En mi casa debían estar muy modernizados 124 00:04:53,139 --> 00:05:01,019 Ya que hemos juntado las batallitas 125 00:05:01,019 --> 00:05:02,120 De ancianos 126 00:05:02,120 --> 00:05:07,819 A ver, venga 127 00:05:07,819 --> 00:05:11,360 Bueno, pues este es el tuneado 128 00:05:11,360 --> 00:05:13,199 Ahora vamos a hacer 129 00:05:13,199 --> 00:05:14,639 El 28 tuneado 130 00:05:14,639 --> 00:05:16,360 Pero una versión más bonita 131 00:05:16,360 --> 00:05:18,420 En que la RAI no tiene necesariamente 132 00:05:18,420 --> 00:05:19,920 100, 200 133 00:05:19,920 --> 00:05:22,779 Sino que se adapta a los alumnos que yo tengo en cada momento 134 00:05:22,779 --> 00:05:25,660 Pues venga, ejercicio 28 135 00:05:25,660 --> 00:05:36,019 Se quedaba el pelo así 136 00:05:36,019 --> 00:05:37,680 Ah, y en las de ahora no pasa 137 00:05:37,680 --> 00:05:40,240 Ah, claro, porque no tiene el tubo de rayos catódicos 138 00:05:40,240 --> 00:05:41,379 Este, si no se pega el pelo 139 00:05:41,379 --> 00:05:42,959 Ah, pues mira, eso no lo había comprobado nunca 140 00:05:42,959 --> 00:05:44,860 Tiene sentido 141 00:05:44,860 --> 00:05:47,759 Es verdad 142 00:05:47,759 --> 00:05:51,480 Qué tiempos más bonitos 143 00:05:51,480 --> 00:05:56,120 Sí 144 00:05:56,120 --> 00:05:57,860 Claro, el otro día 145 00:05:57,860 --> 00:06:02,660 Bueno, me llegan 200.000 chorradas 146 00:06:02,660 --> 00:06:04,339 Por Instagram 147 00:06:04,339 --> 00:06:04,939 Claro 148 00:06:04,939 --> 00:06:09,899 Vale, versión 2 149 00:06:09,899 --> 00:06:12,160 y me llegó 150 00:06:12,160 --> 00:06:14,000 algunas cosas 151 00:06:14,000 --> 00:06:15,500 venga, versión 2 152 00:06:15,500 --> 00:06:16,620 vale 153 00:06:16,620 --> 00:06:20,680 vale, he copiado 154 00:06:20,680 --> 00:06:25,199 venga, a ver 155 00:06:25,199 --> 00:06:27,899 he copiado 156 00:06:27,899 --> 00:06:30,399 este ejercicio tal cual 157 00:06:30,399 --> 00:06:31,399 en otra clase 158 00:06:31,399 --> 00:06:34,160 lo he copiado tal cual en otra clase 159 00:06:34,160 --> 00:06:35,920 y ahora vamos a hacer una modificación 160 00:06:35,920 --> 00:06:38,060 para poder hacer lo siguiente 161 00:06:38,060 --> 00:06:39,480 oye, vamos a cambiar 162 00:06:39,480 --> 00:06:41,279 mi array de partida 163 00:06:41,279 --> 00:06:42,399 no voy a asumir 164 00:06:42,399 --> 00:06:45,079 un tamaño, no voy a asumir un tamaño porque 165 00:06:45,079 --> 00:06:47,220 si yo asumo ahí un tamaño, ese array ya se 166 00:06:47,220 --> 00:06:49,300 queda así siempre y es una pena 167 00:06:49,300 --> 00:06:51,259 que a lo mejor a veces esté usando 3 168 00:06:51,259 --> 00:06:53,019 a veces 4 y siempre va a tener 100 169 00:06:53,019 --> 00:06:55,040 lleno de nada, de nul, de nul, de nul 170 00:06:55,040 --> 00:06:56,980 vale, pues de partida así 171 00:06:56,980 --> 00:06:59,079 de 0, dirijo un array 172 00:06:59,079 --> 00:07:00,899 de 0 posiciones, ¿se puede declararlo? 173 00:07:01,339 --> 00:07:02,100 si se puede 174 00:07:02,100 --> 00:07:05,040 es decir, yo puedo hacer esto 175 00:07:05,040 --> 00:07:07,100 ¿cuál es la diferencia entre un array de 0 176 00:07:07,100 --> 00:07:09,000 posiciones y no haberlo 177 00:07:09,000 --> 00:07:11,019 declarado, es decir, 178 00:07:11,100 --> 00:07:13,060 me podríais decir, bueno, ¿qué diferencia hay 179 00:07:13,060 --> 00:07:15,199 entre 180 00:07:15,199 --> 00:07:17,279 hacerlo 181 00:07:17,279 --> 00:07:18,680 de arriba y hacerlo de abajo? 182 00:07:22,180 --> 00:07:23,100 Sí que hay. 183 00:07:23,420 --> 00:07:24,240 En este caso, 184 00:07:24,959 --> 00:07:26,839 el objeto array, este es un 185 00:07:26,839 --> 00:07:27,680 objeto... 186 00:07:27,680 --> 00:07:29,379 ¿Qué pasa? 187 00:07:31,959 --> 00:07:32,480 Ah, 188 00:07:32,800 --> 00:07:34,040 pensaba que no había bajado eso. 189 00:07:37,959 --> 00:07:38,699 Vale, o sea, 190 00:07:38,699 --> 00:07:40,660 me diréis, ¿y qué diferencia hay 191 00:07:40,660 --> 00:07:42,220 entre hacer lo de arriba y lo de abajo 192 00:07:42,220 --> 00:07:44,360 pues hay una diferencia enorme 193 00:07:44,360 --> 00:07:46,560 en lo de arriba yo he declarado 194 00:07:46,560 --> 00:07:48,379 el objeto alumnos, recordéis que 195 00:07:48,379 --> 00:07:50,740 los arrays son un objeto, pero todavía 196 00:07:50,740 --> 00:07:51,660 no he creado 197 00:07:51,660 --> 00:07:54,620 el objeto en sí, lo único que estoy 198 00:07:54,620 --> 00:07:56,579 diciendo es alumnos es la dirección de 199 00:07:56,579 --> 00:07:58,180 memoria que apuntará al array 200 00:07:58,180 --> 00:08:00,620 pero todavía no está creado 201 00:08:00,620 --> 00:08:02,660 con lo cual aquí alumnos es un null que no 202 00:08:02,660 --> 00:08:04,540 veas, y si yo aquí hiciera 203 00:08:04,540 --> 00:08:08,939 por ejemplo esto, si yo 204 00:08:08,939 --> 00:08:13,459 hago esto, alumnos 205 00:08:13,459 --> 00:08:14,300 punto length 206 00:08:14,300 --> 00:08:16,579 si yo hiciera esto de arriba 207 00:08:16,579 --> 00:08:19,000 string alumnos y alumnos.length 208 00:08:19,000 --> 00:08:20,420 si yo lo intento ejecutar 209 00:08:20,420 --> 00:08:23,300 me va a decir aquí null pointer exception 210 00:08:23,300 --> 00:08:25,300 ¿vale? 211 00:08:25,560 --> 00:08:26,939 me va a decir null pointer exception 212 00:08:26,939 --> 00:08:28,540 porque alumnos 213 00:08:28,540 --> 00:08:30,319 efectivamente no está 214 00:08:30,319 --> 00:08:32,759 creada, bueno de hecho es que 215 00:08:32,759 --> 00:08:34,720 ni siquiera me deja ahora mismo sacar 216 00:08:34,720 --> 00:08:36,840 la esta porque ya 217 00:08:36,840 --> 00:08:38,179 tiene justo arriba ¿vale? 218 00:08:38,360 --> 00:08:40,320 no puedo, entonces 219 00:08:40,320 --> 00:08:45,169 sin embargo esto de aquí 220 00:08:45,169 --> 00:08:47,490 abajo es otra cosa distinta 221 00:08:47,490 --> 00:08:49,230 aquí sí he creado 222 00:08:49,230 --> 00:08:50,909 el objeto, aquí sí lo he creado 223 00:08:50,909 --> 00:08:53,149 el objeto array, pero tiene cero 224 00:08:53,149 --> 00:08:55,230 es decir, no cabe ningún 225 00:08:55,230 --> 00:08:57,409 elemento, entonces yo aquí sí que podría hacer esto 226 00:08:57,409 --> 00:08:59,110 aquí sí que podríamos 227 00:08:59,110 --> 00:09:00,350 hacer si quisiéramos 228 00:09:00,350 --> 00:09:04,570 alumnos.length 229 00:09:04,570 --> 00:09:07,230 podría, y me devolvería 230 00:09:07,230 --> 00:09:09,350 cero, tienes cero posiciones 231 00:09:09,350 --> 00:09:11,409 en ese array, pero el objeto existe 232 00:09:11,409 --> 00:09:13,009 lo que pasa es que sin posiciones 233 00:09:13,009 --> 00:09:15,149 vale, pues entonces 234 00:09:15,149 --> 00:09:17,110 ya teniendo claro que hay una diferencia 235 00:09:17,110 --> 00:09:19,450 entre declararlo sin crearlo 236 00:09:19,450 --> 00:09:21,590 y crearlo con cero posiciones 237 00:09:21,590 --> 00:09:23,909 pues ahora ya vamos a hacer 238 00:09:23,909 --> 00:09:25,590 esta versión nuestra 239 00:09:25,590 --> 00:09:26,590 en el que decimos 240 00:09:26,590 --> 00:09:27,509 oye, vamos a ver 241 00:09:27,509 --> 00:09:30,250 mi array de alumnos 242 00:09:30,250 --> 00:09:31,889 inicialmente tiene cero 243 00:09:31,889 --> 00:09:34,629 con lo cual me voy a olvidar de post 244 00:09:34,629 --> 00:09:35,590 y me voy a olvidar de todo 245 00:09:35,590 --> 00:09:38,889 y ahora cada vez que me tallo un alumno 246 00:09:38,889 --> 00:09:40,870 pues me crearé un array 247 00:09:40,870 --> 00:09:42,970 con una posición más que el que tenía 248 00:09:42,970 --> 00:09:44,970 copio el original 249 00:09:44,970 --> 00:09:46,149 en el nuevo 250 00:09:46,149 --> 00:09:48,029 y en la posición extra 251 00:09:48,029 --> 00:09:49,809 copio el alumno adicional 252 00:09:49,809 --> 00:09:52,110 y luego sustituyo 253 00:09:52,110 --> 00:09:54,370 ¿vale? esa sería la situación 254 00:09:54,370 --> 00:09:56,350 ideal, pues venga, vamos a modificar 255 00:09:56,350 --> 00:09:58,570 esas opciones, ¿vale? entonces repito 256 00:09:58,570 --> 00:10:00,289 de partida mi array tiene cero posiciones 257 00:10:00,289 --> 00:10:02,370 tiene cero, y ahora, vámonos a la opción 258 00:10:02,370 --> 00:10:03,570 insertar alumno 259 00:10:03,570 --> 00:10:06,389 opción insertar alumno, la vamos a borrar 260 00:10:06,389 --> 00:10:08,190 enterita, bueno, lo de 261 00:10:08,190 --> 00:10:10,110 introduzca nombre y poner el nombre lo dejamos 262 00:10:10,110 --> 00:10:11,070 por eso lo vamos a utilizar 263 00:10:11,070 --> 00:10:13,889 vale, lo que vamos a borrar es esto 264 00:10:13,889 --> 00:10:15,450 ¿vale? 265 00:10:16,049 --> 00:10:18,090 Venga, ¿ahora qué tenemos que hacer para insertar el alumno? 266 00:10:18,490 --> 00:10:22,009 Vamos a crear una array auxiliar con una posición más 267 00:10:22,009 --> 00:10:24,289 que el que tiene en ese momento en la array alumnos, 268 00:10:24,350 --> 00:10:24,830 la que tenga. 269 00:10:25,529 --> 00:10:28,149 Pues venga, vamos a crearnos, claro, 270 00:10:28,149 --> 00:10:34,029 una array de string aux, por ejemplo, aux alumnos, 271 00:10:34,470 --> 00:10:38,710 con una posición más, 272 00:10:39,190 --> 00:10:44,250 una posición más que el que tenga el de alumnos en ese momento. 273 00:10:44,250 --> 00:10:46,590 justo que tiene 274 00:10:46,590 --> 00:10:49,029 alumnos en ese momento, alumnos.led 275 00:10:49,029 --> 00:10:50,750 pues este es el primer paso 276 00:10:50,750 --> 00:10:52,769 un auxiliar con una 277 00:10:52,769 --> 00:10:54,870 posición más para albergar ese extra 278 00:10:54,870 --> 00:10:56,470 ahora, siguiente paso 279 00:10:56,470 --> 00:10:58,570 copiamos alumnos 280 00:10:58,570 --> 00:11:00,409 en aux alumnos 281 00:11:00,409 --> 00:11:03,090 vale, un for que recorre 282 00:11:03,090 --> 00:11:04,649 todo el array alumnos para 283 00:11:04,649 --> 00:11:05,850 copiar ese en el otro 284 00:11:05,850 --> 00:11:08,509 y luego la posición adicional 285 00:11:08,509 --> 00:11:10,629 extra del aux con el nombre 286 00:11:10,629 --> 00:11:12,429 nuevo y luego ya 287 00:11:12,429 --> 00:11:13,690 sustituimos uno en el otro 288 00:11:13,690 --> 00:11:15,889 entonces, ahora 289 00:11:15,889 --> 00:11:18,710 vamos a recorrer 290 00:11:18,710 --> 00:11:19,330 alumnos 291 00:11:19,330 --> 00:11:25,000 vamos a recorrer alumnos 292 00:11:25,000 --> 00:11:27,980 vale, ¿qué hacemos con alumnos? 293 00:11:28,080 --> 00:11:29,899 copiarlo en auxalumnos 294 00:11:29,899 --> 00:11:33,360 auxalumnos de i 295 00:11:33,360 --> 00:11:35,500 igual a 296 00:11:35,500 --> 00:11:37,580 alumnos de i 297 00:11:37,580 --> 00:11:39,639 ala, ya están 298 00:11:39,639 --> 00:11:41,500 copiadas, auxalumnos 299 00:11:41,500 --> 00:11:43,259 todavía le sobra uno, porque le hemos hecho 300 00:11:43,259 --> 00:11:44,899 con una posición más, todavía le sobra uno 301 00:11:44,899 --> 00:11:46,919 vale, ahora ya que están copiados 302 00:11:46,919 --> 00:11:48,840 la posición que le sobra 303 00:11:48,840 --> 00:11:51,259 a auxalumnos, porque tiene una más 304 00:11:51,259 --> 00:11:53,519 tiene una más 305 00:11:53,519 --> 00:11:54,840 porque lo hemos creado de tamaño 306 00:11:54,840 --> 00:11:56,100 una más que alumnos 307 00:11:56,100 --> 00:11:58,200 pues la última que le sobra 308 00:11:58,200 --> 00:12:00,480 la última que le sobra, claro 309 00:12:00,480 --> 00:12:03,059 que esa será la última posición 310 00:12:03,059 --> 00:12:04,480 de una raíz cualquiera, ¿cuál es? 311 00:12:04,899 --> 00:12:07,059 siempre es la última posición de una raíz cualquiera 312 00:12:07,059 --> 00:12:08,779 es su tamaño menos uno, ¿verdad? 313 00:12:10,519 --> 00:12:12,840 esta es la última posición de una raíz cualquiera 314 00:12:12,840 --> 00:12:16,639 bueno, pues su última posición 315 00:12:16,639 --> 00:12:19,940 con nombre. 316 00:12:21,879 --> 00:12:22,399 ¿Vale? Entonces ya 317 00:12:22,399 --> 00:12:24,879 auxalumnos ya es el array definitivo. 318 00:12:25,840 --> 00:12:26,320 Claro. 319 00:12:26,600 --> 00:12:28,519 Donde tiene los nombres 320 00:12:28,519 --> 00:12:30,620 de alumnos que estaban alumnos copiados en él 321 00:12:30,620 --> 00:12:32,399 y en la posición extra 322 00:12:32,399 --> 00:12:34,019 que le hemos creado, el nuevo. 323 00:12:34,320 --> 00:12:36,639 La posición extra es la última, que siempre 324 00:12:36,639 --> 00:12:38,159 es el tamaño del array menos uno. 325 00:12:39,019 --> 00:12:40,519 Y ahora, una vez que ya hemos 326 00:12:40,519 --> 00:12:42,580 hecho esto, decimos, oye, el array original 327 00:12:42,580 --> 00:12:44,240 sustituyelo 328 00:12:44,240 --> 00:12:46,460 por auxalumnos. 329 00:12:48,570 --> 00:12:49,049 Sustituido. 330 00:12:51,090 --> 00:12:53,490 Y auxalumnos, como es local al switch, 331 00:12:53,629 --> 00:12:56,269 pues este array auxalumnos ya va a desaparecer. 332 00:12:57,909 --> 00:13:00,110 No nos importa, es un array local que está ahí, 333 00:13:00,970 --> 00:13:04,110 que lo estamos usando cada vez que entramos en case 1. 334 00:13:04,230 --> 00:13:09,269 Cada vez que entramos aquí, lo creamos y lo eliminamos. 335 00:13:09,789 --> 00:13:12,509 En cada iteración, se crea, se elimina, se crea, se elimina. 336 00:13:14,629 --> 00:13:15,830 Vale, un segundito. 337 00:13:16,230 --> 00:13:18,570 Pero claro, con las notas lo mismo. 338 00:13:18,570 --> 00:13:21,590 Recordad que alumnos y notas van en paralelo 339 00:13:21,590 --> 00:13:23,190 Luego con notas 340 00:13:23,190 --> 00:13:24,690 ¿Qué tendremos que hacer? 341 00:13:25,169 --> 00:13:28,009 Lo mismo, crear un array con una posición más 342 00:13:28,009 --> 00:13:29,929 Copiar el original de notas 343 00:13:29,929 --> 00:13:31,210 En el auxiliar de notas 344 00:13:31,210 --> 00:13:33,029 Y ahora en la extra 345 00:13:33,029 --> 00:13:34,850 En este caso ponerle un cero 346 00:13:34,850 --> 00:13:36,629 Porque hemos dicho que cuando insertamos un alumno 347 00:13:36,629 --> 00:13:37,610 Le ponemos nota cero 348 00:13:37,610 --> 00:13:40,070 Entonces vamos a hacer lo mismo pero con notas 349 00:13:40,070 --> 00:13:46,700 Pues lo mismo con array de notas 350 00:13:46,700 --> 00:13:49,039 Sería un array de 351 00:13:49,039 --> 00:13:50,820 Enteros 352 00:13:50,820 --> 00:13:58,730 auxnotas que va a tener 353 00:13:58,730 --> 00:14:02,629 cuánto 354 00:14:02,629 --> 00:14:04,230 cuántas posiciones 355 00:14:04,230 --> 00:14:06,470 pues las mismas de notas más uno 356 00:14:06,470 --> 00:14:07,250 vale 357 00:14:07,250 --> 00:14:09,009 y 358 00:14:09,009 --> 00:14:12,409 aquí en notas lo mismo, perdón 359 00:14:12,409 --> 00:14:14,210 que cuando he hecho, vale 360 00:14:14,210 --> 00:14:15,889 cuando he creado el array de notas aquí 361 00:14:15,889 --> 00:14:18,590 de cero posiciones también, como el de string 362 00:14:18,590 --> 00:14:19,929 vale 363 00:14:19,929 --> 00:14:22,250 pues volvemos aquí abajo 364 00:14:22,250 --> 00:14:28,340 un auxiliar con una 365 00:14:28,340 --> 00:14:29,419 posición más 366 00:14:29,419 --> 00:14:32,799 Que el que tiene actualmente la raíz de notas 367 00:14:32,799 --> 00:14:34,100 Ahora lo mismo 368 00:14:34,100 --> 00:14:35,220 Copiamos 369 00:14:35,220 --> 00:14:37,379 El original 370 00:14:37,379 --> 00:14:45,710 Copiamos el original 371 00:14:45,710 --> 00:14:47,129 En el nuevo 372 00:14:47,129 --> 00:14:51,519 Aux de notas 373 00:14:51,519 --> 00:14:52,299 De i 374 00:14:52,299 --> 00:14:55,960 Igual a notas de i 375 00:14:55,960 --> 00:14:58,019 Cuando este fuera terminado 376 00:14:58,019 --> 00:14:58,960 Que es en ese punto 377 00:14:58,960 --> 00:15:02,000 En el auxiliar tenemos las mismas notas 378 00:15:02,000 --> 00:15:03,220 Que teníamos en el original 379 00:15:03,220 --> 00:15:05,220 Y hay una posición libre 380 00:15:05,220 --> 00:15:06,840 Que es la última 381 00:15:06,840 --> 00:15:08,559 En esa posición libre 382 00:15:08,559 --> 00:15:11,779 Que viene dada por aux de notas 383 00:15:11,779 --> 00:15:13,519 Punto len 384 00:15:13,519 --> 00:15:15,740 Menos uno, esa es la última 385 00:15:15,740 --> 00:15:17,600 Pues le ponemos cero 386 00:15:17,600 --> 00:15:19,620 Que es la nota que ponemos al que insertamos siempre 387 00:15:19,620 --> 00:15:21,179 Y ahora sustituimos 388 00:15:21,179 --> 00:15:23,840 Notas que se quede pisado 389 00:15:23,840 --> 00:15:25,759 Con este auxiliar que es el definitivo 390 00:15:25,759 --> 00:15:30,090 ¿Vale? 391 00:15:36,259 --> 00:15:38,019 ¿Qué más cambia de esta aplicación? 392 00:15:38,080 --> 00:15:38,840 En el caso dos 393 00:15:38,840 --> 00:15:41,320 Lo que cambia ahora se nos queda todo más fácil 394 00:15:41,320 --> 00:15:43,000 porque ya de pos pasamos 395 00:15:43,000 --> 00:15:45,200 el caso 2 que es 396 00:15:45,200 --> 00:15:47,360 bueno, que es el de eliminar 397 00:15:47,360 --> 00:15:48,519 vale, vamos a el de eliminar 398 00:15:48,519 --> 00:15:51,460 vamos a borrarlo enterito menos el nombre 399 00:15:51,460 --> 00:15:52,159 de la... 400 00:15:52,159 --> 00:15:55,659 claro, en el caso 401 00:15:55,659 --> 00:15:57,500 de eliminar va a quedar más sencillo porque 402 00:15:57,500 --> 00:15:59,460 tú creas uno con una posición menos 403 00:15:59,460 --> 00:16:01,779 y copias el original en el nuevo 404 00:16:01,779 --> 00:16:03,659 saltándote la que 405 00:16:03,659 --> 00:16:05,720 hay que eliminar, se queda más sencillo en este caso 406 00:16:05,720 --> 00:16:07,320 entonces el caso 2 que es eliminar 407 00:16:07,320 --> 00:16:09,779 vamos a borrarlo todo 408 00:16:09,779 --> 00:16:14,620 salvo el nombre del alumno a eliminar. 409 00:16:16,000 --> 00:16:16,399 ¿Vale? 410 00:16:16,440 --> 00:16:18,200 El caso 2 era el nombre del alumno a eliminar. 411 00:16:19,299 --> 00:16:20,679 A ver, ¿qué te desespera? 412 00:16:25,279 --> 00:16:25,960 ¿De aquí? 413 00:16:26,139 --> 00:16:26,539 ¿Estas? 414 00:16:31,059 --> 00:16:32,279 Bueno, porque cuando insertas 415 00:16:32,279 --> 00:16:34,019 un alumno hemos dicho que la nota que le ponemos 416 00:16:34,019 --> 00:16:35,220 es cero en el momento de insertarle. 417 00:16:38,379 --> 00:16:39,879 Vale, venga, eliminar alumno. 418 00:16:40,000 --> 00:16:42,299 Esto es muy fácil. Eliminar alumno va a resultar 419 00:16:42,299 --> 00:16:44,679 en un array de una posición menos. 420 00:16:45,720 --> 00:16:45,820 ¿Vale? 421 00:16:47,779 --> 00:16:50,639 Luego eliminar alumno 422 00:16:50,639 --> 00:16:56,840 Vamos a hacer el array auxiliar de alumnos 423 00:16:56,840 --> 00:17:02,659 El array auxiliar ahora va a ser 424 00:17:02,659 --> 00:17:05,299 El ausalumnos va a ser 425 00:17:05,299 --> 00:17:07,519 Del tamaño de alumnos 426 00:17:07,519 --> 00:17:08,779 Menos una posición 427 00:17:08,779 --> 00:17:11,460 El array auxiliar ahora va a tener 428 00:17:11,460 --> 00:17:13,500 Una posición menos que el original 429 00:17:13,500 --> 00:17:14,779 ¿Vale? 430 00:17:14,779 --> 00:17:15,799 Porque vamos a sacar uno 431 00:17:15,799 --> 00:17:17,119 Va a tener una posición menos 432 00:17:17,119 --> 00:17:20,000 ¿Y ahora qué tenemos que hacer? 433 00:17:20,000 --> 00:17:32,940 Pues más fácil, copiar el alumnos original en el nuevo, en el auxiliar, saltándonos el alumno cuyo nombre coincide con este. 434 00:17:36,069 --> 00:17:37,789 Pero ¿por qué suspiras tanto? 435 00:17:41,009 --> 00:17:44,049 Ya, pero es todo el rato lo mismo en realidad, es todo el rato lo mismo. 436 00:17:44,250 --> 00:17:45,769 Es poner en práctica todo el rato lo mismo. 437 00:17:46,650 --> 00:17:47,990 Vale, vamos a recorrer alumnos. 438 00:17:49,009 --> 00:17:50,109 Alumnos.led. 439 00:17:50,990 --> 00:17:51,970 Recorremos alumnos. 440 00:17:51,970 --> 00:18:21,980 Y ahora, mientras i menor que alumnos.le, vale, ya hemos creado el array auxiliar con una posición menos, vale, ahora vamos a recorrer nuestro array alumnos que hay que mover al otro, ¿qué hacemos con ese array alumnos?, bueno, pues si alumnos de i resulta que no es igual al que hay que eliminar, que el que hay que eliminar se llama nombre, 441 00:18:21,980 --> 00:18:24,259 si no es igual 442 00:18:24,259 --> 00:18:26,279 es decir, si no es igual 443 00:18:26,279 --> 00:18:29,839 no es igual, entonces 444 00:18:29,839 --> 00:18:31,799 alumnos de i lo tendré que asignar 445 00:18:31,799 --> 00:18:33,119 a algún sitio 446 00:18:33,119 --> 00:18:37,369 ¿vale? es decir, si alumnos 447 00:18:37,369 --> 00:18:39,150 de i, estoy recorriendo la raíz de alumnos 448 00:18:39,150 --> 00:18:42,390 si alumnos de i 449 00:18:42,390 --> 00:18:44,549 no es igual al nombre que 450 00:18:44,549 --> 00:18:46,609 tengo que eliminar, pues alumnos 451 00:18:46,609 --> 00:18:48,890 de i se va a la posición 452 00:18:48,890 --> 00:18:50,089 de auxalumnos 453 00:18:50,089 --> 00:18:51,890 pero ¿a cuál? 454 00:18:52,349 --> 00:18:53,170 a la que te cree 455 00:18:53,170 --> 00:18:55,990 tienes que crear otro contador 456 00:18:55,990 --> 00:18:57,009 Claro, ¿a cuál? 457 00:18:58,349 --> 00:19:03,809 Bueno, pues aquí tengo que crear efectivamente un contador para ese array que inicialmente es cero. 458 00:19:04,069 --> 00:19:06,829 Y cada vez que le asignemos uno, se incrementa. 459 00:19:06,910 --> 00:19:08,730 Esto ya lo hemos hecho también en otro ejercicio. 460 00:19:10,289 --> 00:19:11,609 Vale, pues nos creamos aquí. 461 00:19:16,160 --> 00:19:17,960 Vamos a poner un nombre largo para que se entienda. 462 00:19:18,180 --> 00:19:19,000 Inicialmente es cero. 463 00:19:19,799 --> 00:19:26,940 Entonces, el primero que copiamos, lo copiamos en post, aux, alumnos. 464 00:19:26,940 --> 00:19:28,819 Y aprovechamos y lo dejamos incrementar. 465 00:19:29,539 --> 00:19:29,960 Y ya está. 466 00:19:30,660 --> 00:19:31,619 Y se acabó la copia. 467 00:19:32,700 --> 00:19:33,180 ¿Vale? 468 00:19:33,680 --> 00:19:35,220 Entonces recorremos alumnos. 469 00:19:35,759 --> 00:19:37,940 Si no coincide con el nombre, 470 00:19:38,200 --> 00:19:39,099 si no coincide, 471 00:19:39,880 --> 00:19:41,279 lo copiamos, pero ¿dónde? 472 00:19:41,400 --> 00:19:42,140 En la que toque. 473 00:19:43,160 --> 00:19:44,259 Inicialmente tocará en la cero 474 00:19:44,259 --> 00:19:45,799 y lo dejamos incrementado en la que toque. 475 00:19:46,660 --> 00:19:47,900 Cada vez que hacemos una copia, 476 00:19:48,740 --> 00:19:49,740 cada vez que hacemos una copia 477 00:19:49,740 --> 00:19:50,779 lo dejamos incrementado ahí. 478 00:19:52,380 --> 00:19:52,859 ¿Vale? 479 00:19:54,140 --> 00:19:56,319 Ahora, cuando este for ya ha terminado, 480 00:19:56,819 --> 00:19:58,480 que habrá terminado aquí, 481 00:19:58,480 --> 00:19:59,640 Porque he hecho una llave 482 00:19:59,640 --> 00:20:03,680 Cuando ese for ya ha terminado 483 00:20:03,680 --> 00:20:05,960 Esta llave 484 00:20:05,960 --> 00:20:07,099 Aquí está un poco de sobra 485 00:20:07,099 --> 00:20:09,559 Sí, esta llave creo que está de sobra 486 00:20:09,559 --> 00:20:12,099 Cuando ese for ya ha terminado, sustituyo 487 00:20:12,099 --> 00:20:13,900 Alumnos 488 00:20:13,900 --> 00:20:15,160 Se queda pisado 489 00:20:15,160 --> 00:20:17,819 Por aux alumnos 490 00:20:17,819 --> 00:20:19,980 Ahí se queda pisado 491 00:20:19,980 --> 00:20:32,289 Claro, es que 492 00:20:32,289 --> 00:20:33,450 Es la idea 493 00:20:33,450 --> 00:20:36,930 El array aux alumnos se ha quedado ahí en esa dirección 494 00:20:36,930 --> 00:20:38,609 Y este otro saca en esta dirección 495 00:20:38,609 --> 00:20:40,869 Lo que tienes que hacer es a este puntero 496 00:20:40,869 --> 00:20:42,369 Que empiece a apuntar a este 497 00:20:42,369 --> 00:20:44,630 O sea, le cambias la dirección para que empiece a apuntar al otro 498 00:20:44,630 --> 00:20:47,170 Este se ha quedado sin nadie que le apunte 499 00:20:47,170 --> 00:20:49,170 Lo tirará a la basura, al recolector de basura 500 00:20:49,170 --> 00:20:50,869 Entonces, efectivamente 501 00:20:50,869 --> 00:20:52,910 Estas variables 502 00:20:52,910 --> 00:20:53,849 Que estamos creando 503 00:20:53,849 --> 00:20:55,809 Son variables para guardar direcciones 504 00:20:55,809 --> 00:20:57,349 Que lo que hacemos es estarlas cambiando 505 00:20:57,349 --> 00:20:58,549 Ahora apunta aquí, ahora apunta allí 506 00:20:58,549 --> 00:21:01,789 Claro, cada vez que hacemos esto, lo que hacemos es cambiar 507 00:21:01,789 --> 00:21:03,869 Una dirección que lleve de un lado a otro 508 00:21:03,869 --> 00:21:05,130 Efectivamente 509 00:21:05,130 --> 00:21:14,039 Sí, de hecho en C 510 00:21:14,039 --> 00:21:16,220 hay una sentencia específica 511 00:21:16,220 --> 00:21:17,980 para eliminar 512 00:21:17,980 --> 00:21:19,559 tienes la 513 00:21:19,559 --> 00:21:22,319 tienes una asignación de memoria 514 00:21:22,319 --> 00:21:24,579 tienes que crear, con más yo creo que era 515 00:21:24,579 --> 00:21:26,039 crear el espacio 516 00:21:26,039 --> 00:21:27,319 y asociarlo al puntero 517 00:21:27,319 --> 00:21:30,579 y luego tienes una específica para eliminar ese espacio 518 00:21:30,579 --> 00:21:32,779 claro, ¿cuál es la ventaja? 519 00:21:32,779 --> 00:21:34,079 que tienes mucho más control 520 00:21:34,079 --> 00:21:36,200 a bajo nivel, con C 521 00:21:36,200 --> 00:21:38,539 Obviamente tienes muchísimo más control a bajo nivel 522 00:21:38,539 --> 00:21:39,700 Que tienes con un lenguaje de estos 523 00:21:39,700 --> 00:21:41,859 Pero hacer una aplicación con C es una locura 524 00:21:41,859 --> 00:21:43,660 Haces un sistema operativo, haces esas cosas 525 00:21:43,660 --> 00:21:45,380 Pero no una aplicación de usuario 526 00:21:45,380 --> 00:21:47,779 Vale, pero esto mismo 527 00:21:47,779 --> 00:21:49,599 Que hemos hecho de los alumnos 528 00:21:49,599 --> 00:21:50,859 Que hemos eliminado al alumno 529 00:21:50,859 --> 00:21:52,759 Hay que eliminar su nota también 530 00:21:52,759 --> 00:21:54,380 O sea, lo mismo con notas 531 00:21:54,380 --> 00:21:55,920 Notas igual 532 00:21:55,920 --> 00:21:57,920 Un array notas auxiliar 533 00:21:57,920 --> 00:22:00,460 Se copia el original saltándote 534 00:22:00,460 --> 00:22:03,700 Pues venga, haces lo mismo con notas 535 00:22:03,700 --> 00:22:04,880 Aquí debajo 536 00:22:04,880 --> 00:22:08,460 Y así os aseguráis 537 00:22:08,460 --> 00:22:10,000 De que lo que hemos hecho 538 00:22:10,000 --> 00:22:11,599 En esta funcionalidad 2 539 00:22:11,599 --> 00:22:12,759 De eliminar está claro 540 00:22:12,759 --> 00:22:15,059 ¿Vale? 541 00:22:18,089 --> 00:22:18,769 Eliminamos 542 00:22:18,769 --> 00:22:20,390 Su nota 543 00:22:20,390 --> 00:22:25,119 A ver, sí 544 00:22:25,119 --> 00:22:27,980 Sí, sí, sí, no tienes razón 545 00:22:27,980 --> 00:22:29,420 Claro, sí 546 00:22:29,420 --> 00:22:32,160 Eliminar su nota 547 00:22:32,160 --> 00:22:33,779 Tienes 548 00:22:33,779 --> 00:22:35,539 Tenemos que marcar 549 00:22:35,539 --> 00:22:38,220 ¿Cuál es esta posición? Vamos a tener que marcarla 550 00:22:38,220 --> 00:22:40,799 Claro, vale 551 00:22:40,799 --> 00:22:42,220 A ver, para eliminar la nota 552 00:22:42,220 --> 00:22:44,640 No es un for idéntico, porque claro 553 00:22:44,640 --> 00:22:46,640 ¿Qué nota tenemos que eliminar? 554 00:22:47,259 --> 00:22:49,140 No, aquí teníamos claro 555 00:22:49,140 --> 00:22:50,640 ¿Qué nombre teníamos que eliminar? 556 00:22:51,299 --> 00:22:52,960 El alumno, pero nota 557 00:22:52,960 --> 00:22:55,079 Entonces aquí lo que tenemos es que usar 558 00:22:55,079 --> 00:22:57,019 Este for para quedarnos con 559 00:22:57,019 --> 00:22:58,559 La posición a eliminar 560 00:22:58,559 --> 00:23:01,440 Y ahora ya esa posición en la array de notas 561 00:23:01,440 --> 00:23:03,400 Entonces ya podemos poner aquí 562 00:23:03,400 --> 00:23:04,660 Por ejemplo 563 00:23:04,660 --> 00:23:10,619 poseliminar 564 00:23:10,619 --> 00:23:12,839 igual a menos uno por ejemplo 565 00:23:12,839 --> 00:23:15,380 y ahora, si en cuanto lo encontremos 566 00:23:15,380 --> 00:23:16,839 en cuanto lo encontremos 567 00:23:16,839 --> 00:23:20,599 no, un else no, en cuanto lo encontremos 568 00:23:20,599 --> 00:23:21,519 aprovechamos 569 00:23:21,519 --> 00:23:24,240 y esa posición y 570 00:23:24,240 --> 00:23:27,000 que se pase a la posición 571 00:23:27,000 --> 00:23:28,480 a eliminar 572 00:23:28,480 --> 00:23:31,980 ahí 573 00:23:31,980 --> 00:23:34,039 uy, perdón 574 00:23:34,039 --> 00:23:38,660 Y ya está, ya la tendremos 575 00:23:38,660 --> 00:23:41,599 Ah, perdón, perdón, perdón 576 00:23:41,599 --> 00:23:42,440 Sí, sí, se me está 577 00:23:42,440 --> 00:23:44,880 Se me está yendo la pinza 578 00:23:44,880 --> 00:23:45,579 Entonces 579 00:23:45,579 --> 00:23:54,279 Sí, si no es el nombre 580 00:23:54,279 --> 00:23:55,660 Esa es la que toca eliminar 581 00:23:55,660 --> 00:23:58,220 Efectivamente, que sí, que sí, que se me está yendo la cabeza 582 00:23:58,220 --> 00:24:05,789 Vale 583 00:24:05,789 --> 00:24:07,710 Efectivamente 584 00:24:07,710 --> 00:24:12,980 vale, entonces este array 585 00:24:12,980 --> 00:24:15,039 lo estamos aprovechando, aparte 586 00:24:15,039 --> 00:24:15,880 de para ir haciendo 587 00:24:15,880 --> 00:24:18,859 copia, este no es el de eliminar 588 00:24:18,859 --> 00:24:20,480 lo copio, este no es el de eliminar, lo copio 589 00:24:20,480 --> 00:24:22,799 este no es el de eliminar, lo copio, uy, este es el de eliminar 590 00:24:22,799 --> 00:24:24,900 pues me quedo con su posición 591 00:24:24,900 --> 00:24:26,839 para luego cuando 592 00:24:26,839 --> 00:24:28,500 haga el recorrido 593 00:24:28,500 --> 00:24:30,779 del array de notas, saber que posición 594 00:24:30,779 --> 00:24:32,680 no tengo que copiar, pues venga 595 00:24:32,680 --> 00:24:35,079 ahora sí, ya teniendo esta variable 596 00:24:35,079 --> 00:24:36,920 que ya sabemos, esta variable 597 00:24:36,920 --> 00:24:39,200 que va a tener la posición de la raíz de notas 598 00:24:39,200 --> 00:24:40,440 a eliminar 599 00:24:40,440 --> 00:24:43,599 pues ahora os hacéis un auxiliar con una posición menos 600 00:24:43,599 --> 00:24:45,059 y vais copiando 601 00:24:45,059 --> 00:24:47,039 original en auxiliar, original en auxiliar 602 00:24:47,039 --> 00:24:48,799 salvo la posición a eliminar 603 00:24:48,799 --> 00:24:50,480 salvo la posición, esa no 604 00:24:50,480 --> 00:24:54,349 pues venga