1 00:00:01,330 --> 00:00:03,930 Vale, pues 2 00:00:03,930 --> 00:00:05,889 Eliminar persona 3 00:00:05,889 --> 00:00:10,080 Sería 4 00:00:10,080 --> 00:00:15,640 Lo mismo 5 00:00:15,640 --> 00:00:18,300 Un boi porque el efecto del método 6 00:00:18,300 --> 00:00:20,320 Se queda registrado aquí 7 00:00:20,320 --> 00:00:22,160 Se queda registrado ahí 8 00:00:22,160 --> 00:00:22,699 Ya está 9 00:00:22,699 --> 00:00:28,350 Eliminar persona 10 00:00:28,350 --> 00:00:33,450 Necesita este método 11 00:00:33,450 --> 00:00:35,149 Que se le pase algo como parámetro 12 00:00:35,149 --> 00:00:37,770 Necesita que se le pase algo como parámetro 13 00:00:37,770 --> 00:00:38,890 ¿Eh? 14 00:00:40,890 --> 00:00:41,770 ¿Sí o no? 15 00:00:41,770 --> 00:00:44,310 ¿Cómo que no? 16 00:00:46,109 --> 00:00:47,509 Habrá que pasarle 17 00:00:47,509 --> 00:00:49,270 Aquí entra 18 00:00:49,270 --> 00:00:50,770 El concepto de 19 00:00:50,770 --> 00:00:53,869 No nos olvidemos 20 00:00:53,869 --> 00:00:55,770 De ligar esto con las bases de datos 21 00:00:55,770 --> 00:00:56,890 Sí 22 00:00:56,890 --> 00:00:59,590 Porque las aplicaciones trabajan con 23 00:00:59,590 --> 00:01:01,570 Datos que normalmente están en bases de datos 24 00:01:01,570 --> 00:01:04,250 Entonces aquí entra el concepto 25 00:01:04,250 --> 00:01:05,390 Clave primaria 26 00:01:05,390 --> 00:01:07,129 ¿Os suena eso? 27 00:01:07,129 --> 00:01:09,250 Claro, ¿qué es clave primaria? 28 00:01:09,950 --> 00:01:11,430 Ese campo de una tabla 29 00:01:11,430 --> 00:01:14,709 que identifica de forma unívoca a cada registro. 30 00:01:15,950 --> 00:01:17,870 Pues en los objetos pasa igual. 31 00:01:18,010 --> 00:01:19,709 Si uno ha hecho un buen diseño de clases, 32 00:01:20,810 --> 00:01:22,689 alguno de los campos de la clase 33 00:01:22,689 --> 00:01:26,769 tiene que servir para identificar de forma única a cada objeto. 34 00:01:27,250 --> 00:01:31,310 De forma que si tú quieres eliminar a un objeto del array, 35 00:01:31,310 --> 00:01:33,310 le pasas esa propiedad 36 00:01:33,870 --> 00:01:37,790 y buscas el que tenga esa propiedad. 37 00:01:37,790 --> 00:01:43,390 Entonces, aquí nuestra persona, si esta clase está bien diseñada, 38 00:01:44,209 --> 00:01:51,109 alguno de estos campos debería servir para identificar de forma única a cada persona. 39 00:01:52,030 --> 00:01:55,430 Porque si no hay un campo que identifique de forma única a cada persona, 40 00:01:56,030 --> 00:01:59,209 luego esa aplicación seguro que va a tener efectos secundarios muy raros. 41 00:01:59,730 --> 00:02:05,870 Porque si hay objetos que pueden tener el mismo conjunto de propiedades, 42 00:02:05,870 --> 00:02:07,549 los mismos valores en sus propiedades, 43 00:02:07,790 --> 00:02:09,129 ¿Qué aplicación tan extraña? 44 00:02:09,229 --> 00:02:11,770 ¿Cómo puedo saber yo que son personas distintas 45 00:02:11,770 --> 00:02:14,370 si se llaman igual a direcciones y variedad en la misma? 46 00:02:14,509 --> 00:02:16,110 ¿Cómo lo puedo saber a través de la dirección de memoria? 47 00:02:16,490 --> 00:02:19,270 La dirección de memoria es absolutamente transparente para el usuario. 48 00:02:19,430 --> 00:02:20,310 No pinta nada. 49 00:02:20,409 --> 00:02:22,270 Las aplicaciones tienen un significado real. 50 00:02:23,409 --> 00:02:26,569 Entonces, una clase estará bien pensada 51 00:02:26,569 --> 00:02:29,909 si alguna de las propiedades, al menos una, 52 00:02:30,370 --> 00:02:32,370 identifica de forma única los objetos. 53 00:02:32,810 --> 00:02:35,009 De forma que si mi aplicación tiene varias personas, 54 00:02:35,009 --> 00:02:36,650 pueda distinguir unas de otras. 55 00:02:37,789 --> 00:02:44,750 Bueno, pues aquí el campo que le pega como clave primaria es el campo nombre, ¿verdad? 56 00:02:45,569 --> 00:02:51,090 Esto no implica ningún tipo de codificación, no es que se ponga aquí nada para indicar que es clave primaria, no. 57 00:02:51,710 --> 00:02:53,830 Es un tema de diseño, uno lo tiene que tener en mente. 58 00:02:54,710 --> 00:03:01,349 Vale, pues entonces, si hemos decidido nosotros, porque lo hemos decidido, porque lo hemos hablado y lo hemos acordado, 59 00:03:01,349 --> 00:03:04,469 que el campo nombre identifique de forma única 60 00:03:04,469 --> 00:03:05,129 la persona 61 00:03:05,129 --> 00:03:07,270 pues entonces mi método 62 00:03:07,270 --> 00:03:10,050 eliminar persona que tiene sentido que reciba 63 00:03:10,050 --> 00:03:12,409 el nombre de la persona a eliminar 64 00:03:12,409 --> 00:03:14,530 lo que viene siendo la clave primaria 65 00:03:14,530 --> 00:03:19,060 es que ya va en el pack 66 00:03:19,060 --> 00:03:22,080 tú dices, elimíname la persona que se llame Pepito 67 00:03:22,080 --> 00:03:23,719 pues te eliminará el objeto entero 68 00:03:23,719 --> 00:03:24,939 cuyo nombre es Pepito 69 00:03:24,939 --> 00:03:26,699 y con eso te eliminará todo 70 00:03:26,699 --> 00:03:32,080 claro, porque nombre 71 00:03:32,080 --> 00:03:34,080 es que esto no está bien diseñado. 72 00:03:34,560 --> 00:03:36,439 Lo ideal sería que hubiera una cuarta propiedad 73 00:03:36,439 --> 00:03:38,319 que fuera eso, el NIP, porque eso ya sí 74 00:03:38,319 --> 00:03:39,479 que lo iba a identificar de forma única. 75 00:03:41,020 --> 00:03:42,139 Pero como no lo tenemos, 76 00:03:42,300 --> 00:03:44,180 asumimos que el nombre es lo que 77 00:03:44,180 --> 00:03:46,580 identifica de forma única al... 78 00:03:46,580 --> 00:03:48,319 Vale, pues ahora este método... 79 00:03:48,319 --> 00:03:50,319 Nombre. Vale, pues 80 00:03:50,319 --> 00:03:52,520 este método, ¿qué tendrá que hacer? Lo de siempre. 81 00:03:52,719 --> 00:03:53,740 Una raya auxiliar 82 00:03:53,740 --> 00:03:59,490 con una posición menos. 83 00:04:00,110 --> 00:04:01,849 A ver, estamos dando por sentado 84 00:04:01,849 --> 00:04:03,870 que la persona existe. 85 00:04:03,870 --> 00:04:06,409 si no, bueno, devolvemos el mismo que había 86 00:04:06,409 --> 00:04:08,030 y ya está, o sea, no lo tocamos y se acabó 87 00:04:08,030 --> 00:04:10,050 entonces 88 00:04:10,050 --> 00:04:11,250 este 89 00:04:11,250 --> 00:04:15,180 va a tener como longitud 90 00:04:15,180 --> 00:04:17,980 contactos o dis.contactos 91 00:04:17,980 --> 00:04:19,300 me da igual, .length 92 00:04:19,300 --> 00:04:21,899 menos uno, vale 93 00:04:21,899 --> 00:04:23,839 entonces de nuevo estamos 94 00:04:23,839 --> 00:04:25,920 asumiendo que solo hay una persona que se 95 00:04:25,920 --> 00:04:27,699 llama así, pero claro 96 00:04:27,699 --> 00:04:30,139 la aplicación tiene que tener una coherencia, un diseño 97 00:04:30,139 --> 00:04:32,100 entonces si alguien lo ha diseñado así 98 00:04:32,100 --> 00:04:33,720 es porque 99 00:04:33,720 --> 00:04:35,699 en su contexto, hablando con el cliente 100 00:04:35,699 --> 00:04:37,379 que le ha pedido la aplicación, le ha dicho, sí, sí, 101 00:04:38,220 --> 00:04:39,639 no va a haber personajes que se llamen igual. 102 00:04:40,279 --> 00:04:41,579 Porque si el que le ha 103 00:04:41,579 --> 00:04:43,740 contado las necesidades que tiene 104 00:04:43,740 --> 00:04:45,800 de su aplicación, le ha dicho, puede haber 105 00:04:45,800 --> 00:04:47,680 personajes que se llaman igual. Entonces, tú, 106 00:04:47,899 --> 00:04:49,819 como buen diseñador, habrás dicho, ah, pues voy 107 00:04:49,819 --> 00:04:50,920 a meter un campo adicional. 108 00:04:51,620 --> 00:04:53,920 Y de NIV lo que sea. Que lo identifique 109 00:04:53,920 --> 00:04:56,060 de forma, porque si no, la aplicación lo va a ser un pitote. 110 00:04:56,220 --> 00:04:58,040 Si todas las personas se pueden llamar igual, 111 00:04:58,180 --> 00:04:59,879 misma dirección. Bueno, 112 00:04:59,899 --> 00:05:02,079 en nuestro caso, como partimos 113 00:05:02,079 --> 00:05:04,199 de la base, porque ya lo hemos hablado y acordado 114 00:05:04,199 --> 00:05:05,920 que cada persona tiene 115 00:05:05,920 --> 00:05:07,519 nombre único, 116 00:05:08,899 --> 00:05:10,100 pues eliminar la 117 00:05:10,100 --> 00:05:11,879 persona de este nombre será quitar 118 00:05:11,879 --> 00:05:13,839 una posición solo, que será quitar una. 119 00:05:14,720 --> 00:05:16,040 Por eso el auxiliar tiene 120 00:05:16,040 --> 00:05:17,540 solo menos una, la que quitamos. 121 00:05:17,920 --> 00:05:20,100 Tiene solo menos una. Y ahora ya 122 00:05:20,100 --> 00:05:22,379 lo de siempre, esto ya es automático, 123 00:05:22,459 --> 00:05:23,339 lo que hacemos siempre. 124 00:05:24,040 --> 00:05:26,199 Esta va a ser la posición donde vayamos 125 00:05:26,199 --> 00:05:28,000 copiando del viejo en el nuevo, 126 00:05:28,759 --> 00:05:29,579 saltándonos 127 00:05:29,579 --> 00:05:31,620 el que hay que eliminar, pues se acabó. 128 00:05:32,079 --> 00:05:34,959 ahora ya recorremos 129 00:05:34,959 --> 00:05:37,040 el array contactos 130 00:05:37,040 --> 00:05:40,860 mientras 131 00:05:40,860 --> 00:05:43,019 i sea menor que 132 00:05:43,019 --> 00:05:45,240 contactos 133 00:05:45,240 --> 00:05:47,040 punto length incrementando 134 00:05:47,040 --> 00:05:49,019 i, pues que tenemos que hacer 135 00:05:49,019 --> 00:05:50,839 aquí, si la 136 00:05:50,839 --> 00:05:52,819 persona del array 137 00:05:52,819 --> 00:05:54,819 original contactos no es la que tengo que 138 00:05:54,819 --> 00:05:56,920 eliminar, aux a la posición 139 00:05:56,920 --> 00:05:57,480 que toque 140 00:05:57,480 --> 00:06:00,259 si contactos 141 00:06:00,259 --> 00:06:01,720 de i 142 00:06:01,720 --> 00:06:04,800 Punto get nombre 143 00:06:04,800 --> 00:06:06,839 Con el get, no puedo hacer a la propia 144 00:06:06,839 --> 00:06:08,060 Directamente con punto nombre 145 00:06:08,060 --> 00:06:10,519 Punto equals, porque es un string 146 00:06:10,519 --> 00:06:12,399 Los strings se comparan con equals 147 00:06:12,399 --> 00:06:13,579 No con doble igual 148 00:06:13,579 --> 00:06:16,639 Nombre 149 00:06:16,639 --> 00:06:20,420 Pues si esto no es así 150 00:06:20,420 --> 00:06:22,100 O sea, un no delante 151 00:06:22,100 --> 00:06:30,149 Y aquí 152 00:06:30,149 --> 00:06:36,319 Me sobra, me falta algo 153 00:06:36,319 --> 00:06:38,699 Pues si la persona 154 00:06:38,699 --> 00:06:39,759 De posición y 155 00:06:39,759 --> 00:06:42,139 su nombre no es el que me han pasado 156 00:06:42,139 --> 00:06:44,040 copiarla en aux 157 00:06:44,040 --> 00:06:45,899 pero en la posición que toque 158 00:06:45,899 --> 00:06:47,220 y dejarla incrementada 159 00:06:47,220 --> 00:06:49,480 inicialmente tocará la 0 160 00:06:49,480 --> 00:06:51,319 pero vale, entonces 161 00:06:51,319 --> 00:06:53,500 esto lo estamos haciendo 162 00:06:53,500 --> 00:06:55,259 todo el rato 163 00:06:55,259 --> 00:06:58,139 si copiarais en i 164 00:06:58,139 --> 00:06:59,000 directamente 165 00:06:59,000 --> 00:07:02,639 estaríais dejando una en medio sin rellenar 166 00:07:02,639 --> 00:07:04,639 esto mismo lo hicisteis en el examen 167 00:07:04,639 --> 00:07:06,759 y lo hacemos ya automáticamente 168 00:07:06,759 --> 00:07:08,579 entonces esto, copiar una raíz en otro 169 00:07:08,579 --> 00:07:09,920 saltándote posiciones 170 00:07:09,920 --> 00:07:12,540 no copiando posición por 171 00:07:12,540 --> 00:07:13,699 posición clavada 172 00:07:13,699 --> 00:07:15,819 sino saltándote posiciones 173 00:07:15,819 --> 00:07:18,759 pues tenemos que hacerlo así 174 00:07:18,759 --> 00:07:22,120 y es el índice del primer array 175 00:07:22,120 --> 00:07:24,439 y pos el del segundo 176 00:07:24,439 --> 00:07:26,860 avanzo el del segundo 177 00:07:26,860 --> 00:07:28,420 solo cuando copio 178 00:07:28,420 --> 00:07:29,199 ¿vale? 179 00:07:29,199 --> 00:07:31,519 y aquí 180 00:07:31,519 --> 00:07:35,439 aux pos 181 00:07:35,439 --> 00:07:37,220 más más igual a contactos 182 00:07:37,220 --> 00:07:38,860 Ahí, claro, obviamente 183 00:07:38,860 --> 00:07:44,790 Vale, pues esto 184 00:07:44,790 --> 00:07:47,110 Claro, no hagáis aquí 185 00:07:47,110 --> 00:07:49,269 Lo de pongo un i, porque estáis repitiendo 186 00:07:49,269 --> 00:07:50,790 El error de siempre 187 00:07:50,790 --> 00:07:52,970 Que hemos hecho mil veces 188 00:07:52,970 --> 00:07:57,709 Vale, pues el arrao y auxiliar 189 00:07:57,709 --> 00:08:03,189 Ya tiene 190 00:08:03,189 --> 00:08:05,490 El arrao y auxiliar 191 00:08:05,490 --> 00:08:06,509 Es el que tenemos que devolver 192 00:08:06,509 --> 00:08:11,769 Vale 193 00:08:11,769 --> 00:08:14,810 Si es distinto 194 00:08:14,810 --> 00:08:24,790 Es una condición 195 00:08:24,790 --> 00:08:27,730 A ver, si el nombre que me han pasado 196 00:08:27,730 --> 00:08:31,709 No es igual al nombre de la posición 197 00:08:31,709 --> 00:08:33,669 Pues cópialo 198 00:08:33,669 --> 00:08:36,370 O sea, la condición es 199 00:08:36,370 --> 00:08:37,789 Es un no delante 200 00:08:37,789 --> 00:08:38,649 No igual 201 00:08:38,649 --> 00:08:40,750 Esta es la condición de 202 00:08:40,750 --> 00:08:44,110 Nombre de contactos de Y es igual a nombre 203 00:08:44,110 --> 00:08:46,389 Pero tú quieres no ser igual 204 00:08:46,389 --> 00:08:47,870 Pues tienes que ponerle un no delante 205 00:08:47,870 --> 00:08:49,889 Es el operador not, ¿vale? 206 00:08:51,649 --> 00:08:52,250 Vale 207 00:08:52,250 --> 00:08:54,490 Aquí lo único es que podemos 208 00:08:54,490 --> 00:08:56,549 Prever ya una situación fea 209 00:08:56,549 --> 00:08:57,309 Que puede ocurrir 210 00:08:57,309 --> 00:09:00,289 ¿Qué ocurre si no hay en el array? 211 00:09:00,710 --> 00:09:01,710 A ver, pregunta 212 00:09:01,710 --> 00:09:03,529 Muy interesante 213 00:09:03,529 --> 00:09:05,529 Para que me hagáis caso 214 00:09:05,529 --> 00:09:07,190 Tiene que haber un menos uno 215 00:09:07,190 --> 00:09:09,990 No, pregunto, espera 216 00:09:09,990 --> 00:09:10,490 Pregunta 217 00:09:10,490 --> 00:09:13,529 ¿Qué ocurre si no hay ninguna persona 218 00:09:13,529 --> 00:09:16,269 con ese nombre, yo le doy a eliminar 219 00:09:16,269 --> 00:09:17,429 persona, mi libreta 220 00:09:17,429 --> 00:09:20,149 Pepito, y en libreta 221 00:09:20,149 --> 00:09:21,230 no existe Pepito 222 00:09:21,230 --> 00:09:22,950 ¿qué ocurriría? 223 00:09:24,129 --> 00:09:25,850 ¿qué tipo de error saldría? 224 00:09:26,909 --> 00:09:28,230 claro, saldría 225 00:09:28,230 --> 00:09:30,210 rain de sauronbaos porque este 226 00:09:30,210 --> 00:09:31,809 post incrementaría 227 00:09:31,809 --> 00:09:33,990 y se saldría del menos uno 228 00:09:33,990 --> 00:09:35,610 llegaría a la siguiente 229 00:09:35,610 --> 00:09:37,929 ¿vale? porque nunca hemos 230 00:09:37,929 --> 00:09:40,490 nunca hemos 231 00:09:40,490 --> 00:09:42,169 o sea, estamos todo el rato 232 00:09:42,169 --> 00:09:44,289 entrando aquí, porque esto nunca se da 233 00:09:44,289 --> 00:09:46,350 estamos todo el rato entrando, todo el rato entrando 234 00:09:46,350 --> 00:09:47,409 estos irían que me entrando 235 00:09:47,409 --> 00:09:50,450 y trataríamos de escribir 236 00:09:50,450 --> 00:09:52,250 en la siguiente a la última 237 00:09:52,250 --> 00:09:54,029 reservada, en la siguiente a la última 238 00:09:54,029 --> 00:09:56,389 entonces saldría una write in desbound exception 239 00:09:56,389 --> 00:09:58,330 luego de alguna manera 240 00:09:58,330 --> 00:10:00,429 hombre, tenemos que proteger 241 00:10:00,429 --> 00:10:02,149 de que el usuario me meta un nombre 242 00:10:02,149 --> 00:10:02,789 que no existe 243 00:10:02,789 --> 00:10:04,230 ¿vale? 244 00:10:05,769 --> 00:10:07,110 claro, pues entonces 245 00:10:07,110 --> 00:10:10,009 bueno, o le damos una hostia directamente 246 00:10:10,009 --> 00:10:12,090 pero, claro 247 00:10:12,090 --> 00:10:14,509 Claro, podemos regularlo de muchas maneras 248 00:10:14,509 --> 00:10:17,029 Pero haciéndolo a través de POS 249 00:10:17,029 --> 00:10:18,669 Efectivamente, y detectando 250 00:10:18,669 --> 00:10:20,649 Si POS ha llegado a la última 251 00:10:20,649 --> 00:10:22,730 Pues ya está, por ejemplo, podemos hacer aquí 252 00:10:22,730 --> 00:10:23,769 Yo que sé 253 00:10:23,769 --> 00:10:26,730 Si la posición 254 00:10:26,730 --> 00:10:28,870 Después de hacer el incremento 255 00:10:28,870 --> 00:10:29,909 Se ha quedado ya 256 00:10:29,909 --> 00:10:32,029 Resulta que es igual ya 257 00:10:32,029 --> 00:10:35,190 Que con tantos punto Lens 258 00:10:35,190 --> 00:10:37,009 Menos uno 259 00:10:37,009 --> 00:10:42,230 ¿Vale? 260 00:10:43,029 --> 00:10:44,909 Bueno, lo que pasa es que hemos llegado ya 261 00:10:44,909 --> 00:10:47,129 Hemos guardado ya en la última 262 00:10:47,129 --> 00:10:49,230 Eso significaría 263 00:10:49,230 --> 00:10:52,090 Que hemos llegado al final sin haber encontrado 264 00:10:52,090 --> 00:10:53,549 Que hemos llegado al final sin haber encontrado 265 00:10:53,549 --> 00:10:55,169 Entonces aquí podemos 266 00:10:55,169 --> 00:11:02,419 Encontrado 267 00:11:02,419 --> 00:11:04,340 Igual a true 268 00:11:04,340 --> 00:11:07,000 Y aquí le ponemos 269 00:11:07,000 --> 00:11:08,340 Pues lo siento pero 270 00:11:08,340 --> 00:11:09,960 Encontrado 271 00:11:09,960 --> 00:11:13,139 Bueno, la verdad es que esto está muy mal programado 272 00:11:13,139 --> 00:11:14,740 Sería mucho más fácil 273 00:11:14,740 --> 00:11:17,379 Al revés, poner el encontrado 274 00:11:17,379 --> 00:11:18,980 Aquí, bueno, pero bueno 275 00:11:18,980 --> 00:11:22,419 Podéis cambiar este código para que quede más bonito 276 00:11:22,419 --> 00:11:27,700 Y ahora ya aquí simplemente 277 00:11:27,700 --> 00:11:30,200 Si no lo hemos encontrado 278 00:11:30,200 --> 00:11:33,700 Pues le decimos 279 00:11:33,700 --> 00:11:37,639 Pues no existe la persona de ese nombre 280 00:11:37,639 --> 00:11:47,610 Y vamos a hacerle un else 281 00:11:47,610 --> 00:11:48,330 Ya que estamos 282 00:11:48,330 --> 00:11:51,070 Que sea persona eliminada 283 00:11:51,070 --> 00:12:12,909 Hombre, ya que estamos teniendo la aplicación amigable 284 00:12:12,909 --> 00:12:14,570 Pues en el de agregar persona 285 00:12:14,570 --> 00:12:16,129 Estaría bien hacer un system out 286 00:12:16,129 --> 00:12:17,090 Persona agregada 287 00:12:17,090 --> 00:12:19,070 Porque si no, no sabemos ni lo que ha hecho ni nada 288 00:12:19,070 --> 00:12:37,850 Vale 289 00:12:37,850 --> 00:12:39,929 Vale 290 00:12:39,929 --> 00:12:41,450 Y a ver, gente despierta 291 00:12:41,450 --> 00:12:42,610 ¿Qué me falta en este método? 292 00:12:43,230 --> 00:12:44,450 Para terminarlo 293 00:12:44,450 --> 00:12:48,909 Eso 294 00:12:48,909 --> 00:12:52,769 Mira, parecías dormida 295 00:12:52,769 --> 00:12:56,389 Y no 296 00:12:56,389 --> 00:13:00,090 Parte de tu cerebro estaba despierto 297 00:13:00,090 --> 00:13:04,529 Vale, contactos igual a aux 298 00:13:04,529 --> 00:13:06,690 ¿Funcionará esto? 299 00:13:06,870 --> 00:13:07,950 Pues Dios lo quiera 300 00:13:07,950 --> 00:13:08,610 Vamos a ver 301 00:13:08,610 --> 00:13:10,389 Caso 3 302 00:13:10,389 --> 00:13:20,169 Contactos igual a aux 303 00:13:20,169 --> 00:13:25,889 Vale, pues aquí lo único que hay que pedirle 304 00:13:25,889 --> 00:13:27,889 Para la opción 3 es pedirle el nombre 305 00:13:27,889 --> 00:13:28,429 Y ya está 306 00:13:28,429 --> 00:13:36,759 Le pedimos el nombre 307 00:13:36,759 --> 00:13:39,240 Y ahora llamamos a la libreta 308 00:13:39,240 --> 00:13:41,320 Punto 309 00:13:41,320 --> 00:13:43,019 Eliminar persona 310 00:13:43,019 --> 00:13:45,899 Y ya directamente le pasamos el 311 00:13:45,899 --> 00:13:47,860 Nombre leído con el next line 312 00:13:47,860 --> 00:13:49,659 Y así ni hago variable ni hago nada 313 00:13:49,659 --> 00:13:52,360 Aunque bueno 314 00:13:52,360 --> 00:13:56,399 Esto hace un poco 315 00:13:56,399 --> 00:13:57,539 Más confuso el código 316 00:13:57,539 --> 00:14:00,419 No poner una variable aparte lo hace más confuso 317 00:14:00,419 --> 00:14:02,360 Pero bueno como es un código cortito 318 00:14:02,360 --> 00:14:03,279 Y nos entendemos 319 00:14:03,279 --> 00:14:12,059 Y pongo la opción que no la había puesto 320 00:14:12,059 --> 00:14:21,909 Eliminar 321 00:14:22,710 --> 00:14:23,909 Persona 322 00:14:33,820 --> 00:14:34,580 Vamos a ver 323 00:14:34,580 --> 00:14:35,899 Vamos a agregar a una 324 00:14:35,899 --> 00:14:37,019 Venga 325 00:14:37,019 --> 00:14:42,330 Persona agregada 326 00:14:42,330 --> 00:14:43,690 Efectivamente aquí está 327 00:14:43,690 --> 00:14:46,389 Vamos a agregar a otra más 328 00:14:46,389 --> 00:14:52,710 Vamos a ver si esta también está 329 00:14:52,710 --> 00:14:53,750 Si ahora tenemos dos 330 00:14:53,750 --> 00:14:55,870 Vale 331 00:14:55,870 --> 00:14:58,629 Vamos a eliminar a la primera de ellas 332 00:14:58,629 --> 00:15:04,490 La persona no existe en la libreta 333 00:15:04,490 --> 00:15:05,809 ¿Vale? 334 00:15:05,809 --> 00:15:08,710 Se borra 335 00:15:08,710 --> 00:15:11,529 Con lo cual algo hemos hecho mal en el live 336 00:15:11,529 --> 00:15:12,450 Es porque estamos volviendo al auxiliar 337 00:15:12,450 --> 00:15:13,789 Y el auxiliar se copió hasta la mitad 338 00:15:13,789 --> 00:15:15,110 O sea, copió hasta el último 339 00:15:15,110 --> 00:15:17,809 Ah, claro, que solo tengo que devolver el aux en el 340 00:15:17,809 --> 00:15:18,370 Vale, vale, vale 341 00:15:18,370 --> 00:15:20,809 Muy bien, muy bien, estás muy despierta 342 00:15:20,809 --> 00:15:23,990 Claro, claro, o sea, contactos.aux 343 00:15:23,990 --> 00:15:25,149 Control 344 00:15:25,149 --> 00:15:27,490 X, lo tengo que meter 345 00:15:27,490 --> 00:15:28,090 Solo aquí 346 00:15:28,090 --> 00:15:31,049 Solo cuando la persona está eliminada 347 00:15:31,049 --> 00:15:35,970 Claro, vale 348 00:15:35,970 --> 00:15:36,970 Muy bien 349 00:15:36,970 --> 00:15:41,980 No, a ver 350 00:15:41,980 --> 00:15:43,419 No ha sido un error de no poner las llaves 351 00:15:43,419 --> 00:15:45,419 Es que no me da, que no, que lo he hecho mal 352 00:15:45,419 --> 00:15:51,059 Podría decir, ah, no han sido las llaves 353 00:15:51,059 --> 00:15:52,720 No, es que lo he hecho mal 354 00:15:52,720 --> 00:15:56,669 Hay que reconocer los errores 355 00:15:56,669 --> 00:15:59,470 Vale 356 00:15:59,470 --> 00:16:06,929 Vale, persona agregada 357 00:16:06,929 --> 00:16:10,669 Agregamos otra 358 00:16:10,669 --> 00:16:17,019 Vale 359 00:16:17,019 --> 00:16:19,360 Eliminamos la primera 360 00:16:19,360 --> 00:16:20,759 De ellas 361 00:16:20,759 --> 00:16:26,580 A ver, vamos a ver 362 00:16:26,580 --> 00:16:27,620 Tres 363 00:16:27,620 --> 00:16:29,100 Digo dos 364 00:16:30,559 --> 00:16:32,899 vale, no, pues ahora lo que ha fallado es 365 00:16:32,899 --> 00:16:35,000 eliminar, la persona no existe, no la he encontrado 366 00:16:35,000 --> 00:16:36,860 por nombre, luego tenemos otro error aquí 367 00:16:36,860 --> 00:16:37,759 muy interesante 368 00:16:37,759 --> 00:16:39,460 no he buscado 369 00:16:39,460 --> 00:16:42,639 nos viene genial, venga, a ver 370 00:16:42,639 --> 00:16:45,179 ¿dónde está ese error? 371 00:16:45,460 --> 00:16:46,960 vamos a ver, introduzca 372 00:16:46,960 --> 00:16:48,639 nombre, lo leemos aquí 373 00:16:48,639 --> 00:16:53,320 libreta de direcciones 374 00:16:53,320 --> 00:16:56,700 eliminar persona 375 00:16:56,700 --> 00:16:57,500 vale 376 00:16:57,500 --> 00:17:06,240 Bueno, no, pero da igual 377 00:17:06,240 --> 00:17:06,680 Porque 378 00:17:06,680 --> 00:17:09,819 No, porque da lo mismo 379 00:17:09,819 --> 00:17:10,960 Este for se va a hacer 380 00:17:10,960 --> 00:17:14,000 Y es solo en la última iteración 381 00:17:14,000 --> 00:17:16,319 En la última iteración 382 00:17:16,319 --> 00:17:18,099 Es cuando ya entra aquí 383 00:17:18,099 --> 00:17:20,359 Y en esa es la última ya 384 00:17:20,359 --> 00:17:22,839 Porque ya será cuando contactos de i 385 00:17:22,839 --> 00:17:24,160 Cuando 386 00:17:24,160 --> 00:17:27,359 Y pos es igual a 387 00:17:27,359 --> 00:17:29,319 Pos se queda incrementada 388 00:17:29,319 --> 00:17:30,359 Vale 389 00:17:30,359 --> 00:17:36,319 Contactos igual a 390 00:17:36,319 --> 00:17:37,359 A ver qué falla aquí 391 00:17:37,359 --> 00:17:37,920 Venga, a ver 392 00:17:37,920 --> 00:17:38,519 ¿Quién lo encuentra? 393 00:17:38,880 --> 00:17:39,160 Trofe 394 00:17:39,160 --> 00:17:41,319 Antes cuando tenía fuera 395 00:17:41,319 --> 00:17:41,859 El contacto 396 00:17:41,859 --> 00:17:42,960 Y fue igual a 397 00:17:42,960 --> 00:17:43,700 Sí, me salía 398 00:17:43,700 --> 00:17:45,480 Y ahora cuando le estoy poniendo 399 00:17:45,480 --> 00:17:45,859 Me sale 400 00:17:45,859 --> 00:17:46,819 No sé si 401 00:17:46,819 --> 00:17:49,700 Bueno, pero 402 00:17:49,700 --> 00:17:51,059 Dependería del caso de prueba 403 00:17:51,059 --> 00:17:51,559 Pero a ver 404 00:17:51,559 --> 00:17:52,640 Aquí solamente 405 00:17:52,640 --> 00:17:53,259 Este 406 00:17:53,259 --> 00:17:54,500 Array 407 00:17:54,500 --> 00:17:55,460 Solo es válido 408 00:17:55,460 --> 00:17:56,460 Cuando has eliminado 409 00:17:56,460 --> 00:17:56,980 Una persona 410 00:17:56,980 --> 00:17:58,079 Si la persona no existe 411 00:17:58,079 --> 00:17:59,299 No tienes que tocar al array 412 00:17:59,299 --> 00:18:00,359 No tienes que tocar 413 00:18:00,359 --> 00:18:01,039 O sea que no es cuestión 414 00:18:01,039 --> 00:18:01,859 De prueba y error 415 00:18:01,859 --> 00:18:03,019 Sino hacerlo bien 416 00:18:03,019 --> 00:18:04,240 Entonces 417 00:18:04,240 --> 00:18:08,740 A ver 418 00:18:08,740 --> 00:18:11,059 Aquí los boolean, los hemos puesto al revés 419 00:18:11,059 --> 00:18:12,480 O algo, vamos a ver 420 00:18:12,480 --> 00:18:16,660 A ver si esta condición está bien 421 00:18:16,660 --> 00:18:17,319 ¿No? ¿Está bien? 422 00:18:18,339 --> 00:18:19,859 A ver si esta condición está 423 00:18:19,859 --> 00:18:20,980 Sí 424 00:18:20,980 --> 00:18:26,059 Yo creo que puede que el problema esté aquí 425 00:18:26,059 --> 00:18:27,579 No, ¿no? Porque 426 00:18:27,579 --> 00:18:29,119 Hemos 427 00:18:29,119 --> 00:18:33,259 Pues lo dejamos incrementado 428 00:18:33,259 --> 00:18:35,339 Ah, no, no, no, espera 429 00:18:35,339 --> 00:18:37,279 Es que pues se queda incrementado 430 00:18:37,279 --> 00:18:39,180 Entonces sería aquí, sería la siguiente, ¿verdad? 431 00:18:42,569 --> 00:18:44,289 O sea que cuando hemos copiado la última 432 00:18:44,289 --> 00:18:45,750 POS se queda incrementado 433 00:18:45,750 --> 00:18:47,569 Entonces POS ya se queda con contactos 434 00:18:47,569 --> 00:18:49,809 Vale, vale, vale, claro, es que nos falta a veces menos uno 435 00:18:49,809 --> 00:18:50,710 Vale 436 00:18:50,710 --> 00:18:52,650 Vamos a ver a probarlo 437 00:18:52,650 --> 00:18:55,130 Introduzca nombre 438 00:18:55,130 --> 00:18:56,150 PP 439 00:18:56,150 --> 00:18:58,589 Vale 440 00:18:58,589 --> 00:19:01,009 Agregamos otro 441 00:19:01,009 --> 00:19:05,740 Ahora 442 00:19:05,740 --> 00:19:08,480 Vamos a eliminar a la personita 443 00:19:08,480 --> 00:19:10,740 Esta de aquí, persona eliminada 444 00:19:10,740 --> 00:19:11,400 Que no está 445 00:19:11,400 --> 00:19:13,960 Casos de prueba raros 446 00:19:13,960 --> 00:19:15,900 Cuando como consecuencia de eliminar 447 00:19:15,900 --> 00:19:17,779 Me he quedado sin nadie en el array 448 00:19:17,779 --> 00:19:18,880 Porque pueden salir 449 00:19:18,880 --> 00:19:21,980 Siempre hay que hacer los casos de prueba límite 450 00:19:21,980 --> 00:19:24,019 Vamos a eliminar 451 00:19:24,019 --> 00:19:25,160 Para dejarlo vacío 452 00:19:25,160 --> 00:19:26,380 Eliminar persona 453 00:19:26,380 --> 00:19:27,019 Venga 454 00:19:27,019 --> 00:19:29,960 Introducimos nombre 455 00:19:29,960 --> 00:19:32,319 Persona eliminada 456 00:19:32,319 --> 00:19:33,599 Y aquí no hay nadie 457 00:19:33,599 --> 00:19:34,759 Vamos ahora a agregar 458 00:19:34,759 --> 00:19:37,319 Porque a lo mejor he dejado el array null y no 459 00:19:37,319 --> 00:19:40,700 Que no lo habré dejado null 460 00:19:40,700 --> 00:19:43,039 Porque la hora deja cero, pero siempre hay que hacer casos de prueba 461 00:19:43,039 --> 00:19:44,380 Por si acaso 462 00:19:44,380 --> 00:19:51,619 Parece que sí 463 00:19:51,619 --> 00:19:53,839 Entonces, bueno, más o menos 464 00:19:53,839 --> 00:19:55,980 Con los casos de prueba a límites que hemos probado 465 00:19:55,980 --> 00:19:57,000 Está todo 466 00:19:57,000 --> 00:20:00,799 Ah, no, eso no lo he probado 467 00:20:00,799 --> 00:20:03,460 Venga, vamos a eliminar 468 00:20:03,460 --> 00:20:05,180 Esta 469 00:20:05,180 --> 00:20:06,900 Ah, mira, qué bien 470 00:20:06,900 --> 00:20:09,000 Qué caso de prueba también puesto 471 00:20:09,000 --> 00:20:11,940 Muy bien, muy bien, muy bien 472 00:20:11,940 --> 00:20:12,500 Claro 473 00:20:12,500 --> 00:20:15,900 claro, efectivamente 474 00:20:15,900 --> 00:20:17,579 muy bien, estáis 475 00:20:17,579 --> 00:20:19,799 muy listos y muy despiertos 476 00:20:19,799 --> 00:20:21,940 y estoy muy muy muy orgullosa de vosotros 477 00:20:21,940 --> 00:20:23,539 yo por eso no la estaba terminando de hacer, estaba mirando 478 00:20:23,539 --> 00:20:25,200 claro, estoy muy orgullosa, efectivamente 479 00:20:25,200 --> 00:20:28,039 claro, es que aquí habrá que 480 00:20:28,039 --> 00:20:29,980 poner un ant, claro, es decir 481 00:20:29,980 --> 00:20:32,220 cuando ya POSA queda incrementado 482 00:20:32,220 --> 00:20:33,500 claro, el ant de cosas 483 00:20:33,500 --> 00:20:34,619 el ant de cosas 484 00:20:34,619 --> 00:20:36,900 muy bien 485 00:20:36,900 --> 00:20:39,279 vale, claro 486 00:20:39,279 --> 00:20:41,019 vale, entonces 487 00:20:41,019 --> 00:20:43,019 sí, a ver, uno se va aquí 488 00:20:43,019 --> 00:20:45,220 cuando le sale el error, aquí lo natural es que uno 489 00:20:45,220 --> 00:20:47,180 hace, uy, ¿qué pasa? te vas 490 00:20:47,180 --> 00:20:49,119 aquí y tal cual te dices, coño 491 00:20:49,119 --> 00:20:49,420 claro 492 00:20:49,420 --> 00:20:52,900 pero es muy importante 493 00:20:52,900 --> 00:20:55,180 a ver, cuando 494 00:20:55,180 --> 00:20:56,980 uno ve esto y ya lo ve clarísimo, está claro 495 00:20:56,980 --> 00:20:58,559 pero si no, es fundamental 496 00:20:58,559 --> 00:21:00,119 que se vaya uno 497 00:21:00,119 --> 00:21:02,740 a la primera línea de tu código 498 00:21:02,740 --> 00:21:04,539 y ya aquí lo ves 499 00:21:04,539 --> 00:21:07,059 rápidamente lo ves, entonces, ah, efectivamente 500 00:21:07,059 --> 00:21:09,059 lo he dejado incrementado, con lo cual 501 00:21:09,059 --> 00:21:11,000 En la siguiente iteración 502 00:21:11,000 --> 00:21:12,680 Aquí me sale un pedazo a Reinders Bound 503 00:21:12,680 --> 00:21:14,140 Entonces no quiero entrar 504 00:21:14,140 --> 00:21:17,140 Si encontrado 505 00:21:17,140 --> 00:21:18,539 Es igual a falso 506 00:21:18,539 --> 00:21:21,920 Si no encontrado 507 00:21:21,920 --> 00:21:23,940 ¿Vale? 508 00:21:25,119 --> 00:21:27,559 Mientras no lo hayas encontrado 509 00:21:27,559 --> 00:21:28,400 Sigue 510 00:21:28,400 --> 00:21:29,000 No, no, no, no 511 00:21:29,000 --> 00:21:32,539 Mientras encontrado sea truco 512 00:21:32,539 --> 00:21:33,799 No, a ver, cuando encontrado 513 00:21:33,799 --> 00:21:37,079 Sí, a ver, cuando encontrado sea falso 514 00:21:37,079 --> 00:21:37,900 Ya no quieres entrar 515 00:21:37,900 --> 00:21:40,660 Entonces, y encontrado 516 00:21:40,660 --> 00:21:42,500 Entonces, cuando encontrado sea falso 517 00:21:42,500 --> 00:21:43,259 Ya no entras 518 00:21:43,259 --> 00:21:45,640 Eso, vale 519 00:21:45,640 --> 00:21:51,039 Venga 520 00:21:51,039 --> 00:21:54,680 Ay, de verdad, qué cansancio me producís 521 00:21:54,680 --> 00:21:57,019 Teníamos que haber parado 522 00:21:57,019 --> 00:21:58,839 No, que está muy bien, me parece fenomenal 523 00:21:58,839 --> 00:21:59,799 Que estéis tan avispados 524 00:21:59,799 --> 00:22:02,759 Vale, vamos a eliminar 525 00:22:02,759 --> 00:22:03,359 A... 526 00:22:03,359 --> 00:22:04,680 ¿O? 527 00:22:06,720 --> 00:22:07,859 No, el mismo 528 00:22:07,859 --> 00:22:10,420 Algo no hemos cambiado bien 529 00:22:10,420 --> 00:22:12,559 Aquí tienes que entrar 530 00:22:12,559 --> 00:22:13,279 Mientras 531 00:22:13,279 --> 00:22:14,960 Igualmente 532 00:22:14,960 --> 00:22:18,539 Se aumenta el post más más 533 00:22:18,539 --> 00:22:19,880 No, pero a ver, yo aquí 534 00:22:19,880 --> 00:22:22,339 En cuanto encontrado es igual a falso 535 00:22:22,339 --> 00:22:23,420 Ya no quiero 536 00:22:23,420 --> 00:22:25,940 Pero el post ya vale 537 00:22:25,940 --> 00:22:28,200 O sea, es que ya no llega 538 00:22:28,200 --> 00:22:29,700 Nunca llega a ser falso 539 00:22:29,700 --> 00:22:31,980 Porque ya iba a ser menor 540 00:22:31,980 --> 00:22:33,599 Vale, o sea, es que ya no 541 00:22:33,599 --> 00:22:34,880 O sea, que no va a entrar nunca 542 00:22:34,880 --> 00:22:37,180 Aquí cuando hayamos pasado el post 543 00:22:37,180 --> 00:22:45,039 Vale, entonces, esto lo que hay que hacer es ponerlo antes y ponerle el menos uno. 544 00:22:45,339 --> 00:23:00,359 Entonces, a ver, si postcontactos.led, si ya me he pasado, entonces, con llaves para que no nos estresemos. 545 00:23:01,619 --> 00:23:02,039 Así. 546 00:23:02,039 --> 00:23:11,289 Y si no, vale, ya estaría. 547 00:23:11,950 --> 00:23:12,490 Espera, espera, espera. 548 00:23:12,930 --> 00:23:13,269 Espera. 549 00:23:14,390 --> 00:23:14,970 Ya estaría. 550 00:23:15,049 --> 00:23:15,490 Vamos a ver. 551 00:23:16,029 --> 00:23:23,250 Si pos ya sea contactos, la última posición de la raíz será contactos.led-1. 552 00:23:24,569 --> 00:23:28,430 Entonces, si pos es contactos.led-1. 553 00:23:28,490 --> 00:23:29,289 Aquí sí que va el menos uno. 554 00:23:29,470 --> 00:23:29,609 Vale. 555 00:23:30,329 --> 00:23:39,750 Entonces, si la posición ya es la siguiente a la última de aux, no lo he encontrado y no tengo que. 556 00:23:39,750 --> 00:23:41,730 y si no lo es, pues entonces 557 00:23:41,730 --> 00:23:43,789 sigo copiando. Aquí es donde ya me 558 00:23:43,789 --> 00:23:45,569 salgo. Cuando pos igual a 559 00:23:45,569 --> 00:23:46,690 contactos led menos uno. 560 00:23:48,190 --> 00:23:48,670 Porque 561 00:23:48,670 --> 00:23:51,809 la array aus tiene este tamaño 562 00:23:51,809 --> 00:23:53,789 con lo cual la posición menos uno 563 00:23:53,789 --> 00:23:55,549 es ya la primera no válida. 564 00:23:55,990 --> 00:23:57,069 Es ya la primera no válida. 565 00:23:57,609 --> 00:23:59,789 Entonces si pos ha llegado a ser la primera 566 00:23:59,789 --> 00:24:01,829 no válida, si hemos llegado a este punto 567 00:24:01,829 --> 00:24:03,269 de ser la primera no válida 568 00:24:03,269 --> 00:24:05,150 es porque no la hemos encontrado. 569 00:24:05,589 --> 00:24:06,509 Y no hay que guardar nada. 570 00:24:07,650 --> 00:24:09,589 Y si no ha llegado a ser la primera 571 00:24:09,589 --> 00:24:11,250 no válida, pues sigue, tú sigue 572 00:24:11,250 --> 00:24:13,190 ¿qué? 573 00:24:13,789 --> 00:24:15,170 a mí me da un error de 574 00:24:15,170 --> 00:24:17,009 que tiene documento negativo 575 00:24:17,009 --> 00:24:19,150 bueno, a ver, vamos a 576 00:24:19,150 --> 00:24:21,269 y ahora ya 577 00:24:21,269 --> 00:24:22,210 este 578 00:24:22,210 --> 00:24:25,509 en el foro yo creo que no hace falta ponerlo porque si hemos llegado 579 00:24:25,509 --> 00:24:27,329 a esta situación es porque 580 00:24:27,329 --> 00:24:28,869 ya el foro ya va a terminar 581 00:24:28,869 --> 00:24:29,549 ¿no? 582 00:24:30,849 --> 00:24:32,450 el foro ya va a terminar igualmente 583 00:24:32,450 --> 00:24:39,289 o sea, si hemos llegado a que post 584 00:24:39,289 --> 00:24:40,309 valga esto 585 00:24:40,309 --> 00:24:44,109 encontrado igual false 586 00:24:44,109 --> 00:24:47,230 y eso significa que 587 00:24:47,230 --> 00:24:51,170 si mi duda es 588 00:24:51,170 --> 00:24:52,150 que ya no hace falta 589 00:24:52,150 --> 00:24:57,089 que yo creo que ya no hace falta ponerlo aquí porque no entraría 590 00:24:57,089 --> 00:24:58,769 en una siguiente, no, entraría en una más 591 00:24:58,769 --> 00:25:02,269 si porque si van a la par 592 00:25:02,269 --> 00:25:04,210 si entraría una más 593 00:25:04,210 --> 00:25:05,410 entonces 594 00:25:05,410 --> 00:25:11,289 claro, sí, es que hay que ponerlo 595 00:25:11,289 --> 00:25:12,529 porque si no te entra una más 596 00:25:12,529 --> 00:25:13,549 y entonces 597 00:25:13,549 --> 00:25:17,009 pero POS no se ha incrementado, entonces no hace falta 598 00:25:17,009 --> 00:25:17,930 yo creo que no hace falta porque 599 00:25:17,930 --> 00:25:20,890 si ya has llegado a la última, no se incrementa 600 00:25:20,890 --> 00:25:23,329 con lo cual, podrías entrar una más 601 00:25:23,329 --> 00:25:25,210 podrías entrar una más y no molestaría 602 00:25:25,210 --> 00:25:26,390 porque 603 00:25:26,390 --> 00:25:28,930 POS seguiría siendo esto, o sea, haríamos 604 00:25:28,930 --> 00:25:30,769 dos veces este if, es una pérdida de tiempo 605 00:25:30,769 --> 00:25:32,250 pero bueno, a ver 606 00:25:32,250 --> 00:25:38,119 bueno, está ya arreglado 607 00:25:38,119 --> 00:25:41,519 no, que cuando ya hemos llegado a la última 608 00:25:41,519 --> 00:25:43,940 aunque este for entre otra más 609 00:25:43,940 --> 00:25:45,740 el post no se ha quedado incrementado 610 00:25:45,740 --> 00:25:47,839 entonces, no, en realidad no para 611 00:25:47,839 --> 00:25:49,500 porque entras una más 612 00:25:49,500 --> 00:25:51,740 claro, pero vuelve a hacer 613 00:25:51,740 --> 00:25:53,779 otra vez esto, porque el post se ha quedado en su sitio 614 00:25:53,779 --> 00:25:54,759 vuelve a hacerlo otra vez 615 00:25:54,759 --> 00:25:56,480 va a entrar una vez más 616 00:25:56,480 --> 00:26:00,000 eso, nanosegundos 617 00:26:00,000 --> 00:26:01,859 vale, pues entonces 618 00:26:01,859 --> 00:26:03,779 todo este epifostio era 619 00:26:03,779 --> 00:26:04,839 para 620 00:26:04,839 --> 00:26:07,940 que si el nombre no existe 621 00:26:07,940 --> 00:26:10,240 pos no crezca más allá 622 00:26:10,240 --> 00:26:12,339 del tamaño que puede crecer 623 00:26:12,339 --> 00:26:14,220 porque cuando ha llegado aquí 624 00:26:14,220 --> 00:26:16,319 eso significa 625 00:26:16,319 --> 00:26:18,099 que ya se ha rellenado completo y esa 626 00:26:18,099 --> 00:26:19,579 posición ya no se puede rellenar 627 00:26:19,579 --> 00:26:24,220 espera, vamos a ejecutar a ver si esta versión 628 00:26:24,220 --> 00:26:26,019 está bien, yo creo que sí, ¿no? 629 00:26:26,180 --> 00:26:28,180 vamos a ver, vamos a probar 630 00:26:28,180 --> 00:26:30,220 vale, pues 631 00:26:31,039 --> 00:26:36,299 venga, agregamos 632 00:26:36,299 --> 00:26:40,410 una, vale 633 00:26:40,410 --> 00:26:42,410 el caso de prueba que había fallado 634 00:26:42,410 --> 00:26:44,630 que es el que estábamos arreglando 635 00:26:44,630 --> 00:26:46,210 es cuando metemos una que no existe 636 00:26:46,210 --> 00:26:48,470 la persona no existe 637 00:26:48,470 --> 00:26:50,589 vale, vamos a ver 638 00:26:50,589 --> 00:26:52,529 si sigue estando la otra, no se la ha 639 00:26:52,529 --> 00:26:53,470 cargado, efectivamente 640 00:26:53,470 --> 00:26:56,650 ¿algún otro caso de prueba que se os ocurra 641 00:26:56,650 --> 00:26:58,069 que podamos no haber contemplado? 642 00:26:59,509 --> 00:27:00,569 se pone el 643 00:27:00,569 --> 00:27:05,640 el que? 644 00:27:05,880 --> 00:27:07,019 que elimine a Pepe 645 00:27:07,019 --> 00:27:09,140 que elimine a Pepe 646 00:27:09,140 --> 00:27:14,079 A ver 647 00:27:14,079 --> 00:27:18,740 Elimino a Pepito 648 00:27:18,740 --> 00:27:21,519 Pepe 649 00:27:21,519 --> 00:27:24,079 Persona eliminada, mostrar información 650 00:27:24,079 --> 00:27:30,359 No sabemos 651 00:27:35,160 --> 00:27:36,880 A ver, también me gusta el error 652 00:27:36,880 --> 00:27:38,859 De que si no hay nadie en la libreta 653 00:27:38,859 --> 00:27:40,160 Quieres eliminar a alguien 654 00:27:40,160 --> 00:27:45,079 Muy bien, pues eso hay que arreglarlo también 655 00:27:45,079 --> 00:27:46,339 ¿Vas a ser un tester? 656 00:27:47,500 --> 00:27:48,900 ¿Vas a ser? ¡Claro! 657 00:27:49,460 --> 00:27:51,200 Mira, ¿tú sabes lo que cobran los testers? 658 00:27:51,619 --> 00:27:53,440 Vas a ser de un equipo de pruebas 659 00:27:53,440 --> 00:27:55,200 maravilloso, que cobran un huevo 660 00:27:55,200 --> 00:27:56,579 El equipo de testing 661 00:27:56,579 --> 00:27:59,619 que es el que pasa las pruebas de las aplicaciones 662 00:27:59,619 --> 00:28:01,339 porque uno siempre se cree 663 00:28:01,339 --> 00:28:02,640 que su aplicación está estupenda 664 00:28:02,640 --> 00:28:04,900 y siempre va a tener errores, siempre 665 00:28:04,900 --> 00:28:06,980 Entonces, el equipo de testing es el que tiene que tener 666 00:28:06,980 --> 00:28:08,799 la clarividencia 667 00:28:08,799 --> 00:28:12,619 De decir, mira, seguro que se lo has contemplado 668 00:28:12,619 --> 00:28:13,559 ¿Vale? 669 00:28:16,839 --> 00:28:18,279 Vale, vamos a ver aquí 670 00:28:18,279 --> 00:28:20,019 Nuestro tester 671 00:28:20,019 --> 00:28:21,680 ¿Qué ha hecho? 672 00:28:23,319 --> 00:28:23,799 Pepe 673 00:28:23,799 --> 00:28:26,599 Que vive aquí 674 00:28:26,599 --> 00:28:27,839 Y que tiene 23 675 00:28:27,839 --> 00:28:30,660 ¿Vale? ¿Qué caso de prueba es el que no va a funcionar? 676 00:28:31,440 --> 00:28:32,859 Ahora le elimino 677 00:28:32,859 --> 00:28:34,279 A este, para que se quede vacía 678 00:28:34,279 --> 00:28:36,259 Bueno, hay uno, pero lo quito 679 00:28:36,259 --> 00:28:37,859 Vale 680 00:28:37,859 --> 00:28:39,599 quito a Pepe, ahora 681 00:28:39,599 --> 00:28:41,220 no hay nadie 682 00:28:41,220 --> 00:28:44,160 ahora trato de eliminar, claro 683 00:28:44,160 --> 00:28:46,460 vale, sí, pero este va a ser más fácil de arreglar 684 00:28:46,460 --> 00:28:48,099 vale, entonces ahora 685 00:28:48,099 --> 00:28:50,700 claro, esto se trata de distinguir 686 00:28:50,700 --> 00:28:52,779 simplemente, vale, este es más fácil 687 00:28:52,779 --> 00:28:53,759 de arreglar, claro 688 00:28:53,759 --> 00:28:56,359 este es más fácil de arreglar, este es 689 00:28:56,359 --> 00:28:58,640 a ver, métete en el fregado de eliminar 690 00:28:58,640 --> 00:29:00,779 solo si personas 691 00:29:00,779 --> 00:29:01,339 punto 692 00:29:01,339 --> 00:29:04,240 contactos punto lens es mayor 693 00:29:04,240 --> 00:29:06,180 que cero, si no, no 694 00:29:06,180 --> 00:29:08,380 Entonces, este es más fácil de arreglar que es 695 00:29:08,380 --> 00:29:09,700 Oye, cuidado 696 00:29:09,700 --> 00:29:11,960 Si no tienes a nadie en el array 697 00:29:11,960 --> 00:29:13,539 No te pongas aquí a recorrerlo 698 00:29:13,539 --> 00:29:15,960 Porque si no, efectivamente te va a dar aquí 699 00:29:15,960 --> 00:29:18,220 Un contactos.length null pointer exception 700 00:29:18,220 --> 00:29:20,160 Bueno, aquí no, porque no es null 701 00:29:20,160 --> 00:29:21,839 Te va a dar aquí 702 00:29:21,839 --> 00:29:24,019 Cuando trates de acceder a la posición 0 703 00:29:24,019 --> 00:29:25,579 Entonces, si 704 00:29:25,579 --> 00:29:27,960 Contactos.length 705 00:29:30,059 --> 00:29:31,740 Es 706 00:29:31,740 --> 00:29:33,599 No, esto no 707 00:29:33,599 --> 00:29:35,960 Si contactos 708 00:29:36,180 --> 00:29:38,759 Punto length 709 00:29:38,759 --> 00:29:40,859 Es igual a cero 710 00:29:40,859 --> 00:29:42,480 Entonces 711 00:29:42,480 --> 00:29:43,839 ¿Qué queremos hacer en ese caso? 712 00:29:44,740 --> 00:29:46,000 Pues decimos 713 00:29:46,000 --> 00:29:48,579 La libreta está vacía 714 00:29:48,579 --> 00:29:49,079 Y 715 00:29:49,079 --> 00:29:57,400 Aquí podríamos meter esto en un else 716 00:29:57,400 --> 00:29:58,960 Todo lo demás 717 00:29:58,960 --> 00:30:01,519 Pero es que vamos a tener que empezar a formatear a la derecha 718 00:30:01,519 --> 00:30:03,279 Y queda horrible y muy feo 719 00:30:03,279 --> 00:30:04,160 ¿Para qué? 720 00:30:04,740 --> 00:30:07,720 ¿Para qué sirve este maravilloso retun? 721 00:30:08,380 --> 00:30:09,460 Este maravilloso retun 722 00:30:09,460 --> 00:30:10,759 Ya lo hemos mencionado con funciones 723 00:30:10,759 --> 00:30:12,880 te sale del método en el que estés 724 00:30:12,880 --> 00:30:15,059 como este tiene void 725 00:30:15,059 --> 00:30:16,279 no hay que devolver nada 726 00:30:16,279 --> 00:30:19,079 si no tuviera void, tuviera un int, tuviera lo que fuera 727 00:30:19,079 --> 00:30:20,480 pues tendría que devolver lo que fuera 728 00:30:20,480 --> 00:30:22,779 pero como es void, no devuelvo nada 729 00:30:22,779 --> 00:30:27,420 entonces 730 00:30:27,420 --> 00:30:29,700 ahora ya vamos a eliminar una persona 731 00:30:29,700 --> 00:30:31,359 libreta vacía, ya está 732 00:30:31,359 --> 00:30:32,079 venga, más 733 00:30:32,079 --> 00:30:34,980 ¿qué más pegas tienes que ponerle? 734 00:30:43,410 --> 00:30:43,809 vale 735 00:30:43,809 --> 00:30:47,470 bueno, pues muy bonita 736 00:30:47,470 --> 00:30:49,670 nos ha permitido sacar un montón 737 00:30:49,670 --> 00:30:51,829 de cosas y este método de eliminar 738 00:30:51,829 --> 00:30:53,809 nos ha tocado programar en él 739 00:30:53,809 --> 00:30:55,109 que es lo que se hace todo el rato 740 00:30:55,109 --> 00:30:57,529 uno hace una aplicación y lo que acaba haciendo 741 00:30:57,529 --> 00:30:59,170 es programar, lo que acaba haciendo son 742 00:30:59,170 --> 00:31:00,869 wildships, es lo que acaba haciendo 743 00:31:00,869 --> 00:31:03,710 y es lo que hemos hecho aquí, que nos hemos encontrado errores 744 00:31:03,710 --> 00:31:05,710 hemos tenido que arreglar, entonces por eso es por lo que 745 00:31:05,710 --> 00:31:07,609 uno tiene que tener muy claras las bases 746 00:31:07,609 --> 00:31:09,089 de la programación, clarísimas 747 00:31:09,089 --> 00:31:11,769 y con el hábito pues ir encontrando los errores 748 00:31:11,769 --> 00:31:12,690 lo que sea, dígame 749 00:31:12,690 --> 00:31:14,690 vaya por dios 750 00:31:14,690 --> 00:31:16,009 a ver