1 00:00:00,000 --> 00:00:01,139 Pues venga, 14. 2 00:00:01,540 --> 00:00:03,220 Aquí ya tengo la primera parte. 3 00:00:04,860 --> 00:00:06,620 A ver, lo he hecho para que en lugar de 10 4 00:00:06,620 --> 00:00:09,039 sea una cantidad de tamaño genérica. 5 00:00:09,720 --> 00:00:10,919 Para que no sea exactamente 10, 6 00:00:11,019 --> 00:00:12,039 pero da igual, no cambia nada. 7 00:00:12,839 --> 00:00:14,779 Pide al usuario tamaño del array 8 00:00:14,779 --> 00:00:15,779 con el que va a trabajar. 9 00:00:16,780 --> 00:00:18,039 N, que se mete aquí. 10 00:00:18,039 --> 00:00:22,359 Y lo que hago es reservar un array 11 00:00:22,359 --> 00:00:23,579 con una posición más. 12 00:00:24,000 --> 00:00:25,660 Porque lo que va a hacer el programa 13 00:00:25,660 --> 00:00:27,140 es insertar uno nuevo. 14 00:00:27,859 --> 00:00:29,320 Entonces, al insertar uno nuevo 15 00:00:29,320 --> 00:00:31,699 y desplazar los otros necesita un espacio más 16 00:00:31,699 --> 00:00:33,619 por eso he reservado 17 00:00:33,619 --> 00:00:35,200 un espacio más 18 00:00:35,200 --> 00:00:37,759 que los números que realmente va a meter el usuario 19 00:00:37,759 --> 00:00:38,380 al principio 20 00:00:38,380 --> 00:00:41,140 vale, pues primero rellenamos las 21 00:00:41,140 --> 00:00:43,159 n primeras posiciones 22 00:00:43,159 --> 00:00:45,520 con números aleatorios 23 00:00:45,520 --> 00:00:46,759 para no andar con teclado 24 00:00:46,759 --> 00:00:49,619 aquí simplemente 25 00:00:49,619 --> 00:00:51,479 estoy mostrando el array para ver 26 00:00:51,479 --> 00:00:52,219 lo que ha 27 00:00:52,219 --> 00:00:55,679 lo que ha generado, mostramos el array 28 00:00:55,679 --> 00:00:57,439 y ahora ya 29 00:00:57,439 --> 00:00:59,659 Posición en la que quieres insertar 30 00:00:59,659 --> 00:01:01,420 Y nuevo número a insertar 31 00:01:01,420 --> 00:01:03,259 Vale, a partir de aquí es donde ya empieza 32 00:01:03,259 --> 00:01:04,859 El problema 33 00:01:04,859 --> 00:01:05,739 ¿Vale? 34 00:01:07,019 --> 00:01:09,420 Entonces, esto de nuevo 35 00:01:09,420 --> 00:01:24,700 Pues esto de nuevo 36 00:01:24,700 --> 00:01:29,329 Lo podemos plantear 37 00:01:29,890 --> 00:01:30,590 A ver 38 00:01:30,590 --> 00:01:43,769 Vale, pues yo tengo aquí 39 00:01:43,769 --> 00:01:44,230 Mi 40 00:01:44,230 --> 00:01:49,790 Perdido la práctica con esto 41 00:01:49,790 --> 00:01:52,269 Rápida que era el año pasado 42 00:01:52,269 --> 00:01:53,730 Vale 43 00:01:53,730 --> 00:01:56,650 Vale, tenemos nuestro array 44 00:01:56,650 --> 00:01:57,810 De n posiciones 45 00:01:57,810 --> 00:01:59,129 Y esta última 46 00:01:59,129 --> 00:02:02,489 Vale, esta última de aquí 47 00:02:02,489 --> 00:02:05,069 Es una adicional 48 00:02:05,069 --> 00:02:06,909 Porque como todos se van a mover 49 00:02:06,909 --> 00:02:08,710 Hacia, vale 50 00:02:08,710 --> 00:02:10,110 Aquí tengo mi array 51 00:02:10,110 --> 00:02:12,389 Vale, entonces luego me dicen 52 00:02:12,389 --> 00:02:14,870 Posición en la que vas a 53 00:02:14,870 --> 00:02:17,289 A meter el dato 54 00:02:17,289 --> 00:02:18,789 Pues por ejemplo aquí 55 00:02:18,789 --> 00:02:20,370 Ahí voy a meter el dato 56 00:02:20,370 --> 00:02:22,870 Vale, el nuevo dato que me den 57 00:02:22,870 --> 00:02:24,789 El 3, el 4, el numerito que sea 58 00:02:24,789 --> 00:02:25,750 Lo voy a insertar ahí 59 00:02:25,750 --> 00:02:27,969 Bueno, pues entonces, ¿cuál es mi problema? 60 00:02:28,389 --> 00:02:30,949 La asignación de este nuevo número 61 00:02:30,949 --> 00:02:32,229 A esta posición, está clara 62 00:02:32,229 --> 00:02:34,389 A la posición en la que me han dado 63 00:02:34,389 --> 00:02:36,750 Llamémosla pos 64 00:02:36,750 --> 00:02:37,830 O llamémosla como sea 65 00:02:37,830 --> 00:02:40,530 A la posición en la que me han dado 66 00:02:40,530 --> 00:02:41,270 Esta pos 67 00:02:41,270 --> 00:02:44,330 Pues nada, yo le asigno el 3 68 00:02:44,330 --> 00:02:46,830 Pero claro, antes tengo que haberme preocupado 69 00:02:46,830 --> 00:02:48,389 De mover estos 70 00:02:48,389 --> 00:02:51,590 todos una posición hacia arriba 71 00:02:51,590 --> 00:02:53,150 tengo que haber preocupado de esto 72 00:02:53,150 --> 00:02:55,389 entonces una vez que los he movido todos 73 00:02:55,389 --> 00:02:57,770 una posición hacia arriba, ya puedo asignar 74 00:02:57,770 --> 00:02:59,370 a la posición pos 75 00:02:59,370 --> 00:03:01,090 ya podré asignar 76 00:03:01,090 --> 00:03:03,810 a esta posición ya podré asignar este numerito 77 00:03:03,810 --> 00:03:05,370 entonces 78 00:03:05,370 --> 00:03:07,069 ¿cómo los voy moviendo hacia arriba? 79 00:03:07,310 --> 00:03:08,889 no puedo hacer directamente 80 00:03:08,889 --> 00:03:11,330 a la posición i más 1 81 00:03:11,330 --> 00:03:13,449 asígnale i, y así todo el rato 82 00:03:13,449 --> 00:03:15,550 porque entonces borramos 83 00:03:15,550 --> 00:03:17,710 la i más 1 y cuando haya que copiar 84 00:03:17,710 --> 00:03:18,889 Esta en esta ya la hemos perdido 85 00:03:18,889 --> 00:03:21,650 Entonces tenemos que ir de arriba hacia abajo 86 00:03:21,650 --> 00:03:22,770 Que es 87 00:03:22,770 --> 00:03:24,530 Oye, a esta posición 88 00:03:24,530 --> 00:03:26,689 Copia lo que hay aquí 89 00:03:26,689 --> 00:03:28,430 Ala, muy bien 90 00:03:28,430 --> 00:03:30,009 Este ya se ha movido aquí 91 00:03:30,009 --> 00:03:32,870 Aquí queda el que estaba 92 00:03:32,870 --> 00:03:34,729 Pero ahora ya a esta posición 93 00:03:34,729 --> 00:03:36,110 Copia el que hay aquí 94 00:03:36,110 --> 00:03:38,449 Se queda este duplicado, muy bien 95 00:03:38,449 --> 00:03:40,349 Y ahora, a esta posición 96 00:03:40,349 --> 00:03:41,689 Copia el que hay aquí 97 00:03:41,689 --> 00:03:44,210 Se queda este duplicado, así hasta que lleguemos 98 00:03:44,210 --> 00:03:46,449 A esta posición, copia el que hay aquí 99 00:03:46,449 --> 00:03:49,330 se queda este duplicado, cuando ya hemos terminado 100 00:03:49,330 --> 00:03:51,069 asignamos a esta posición el número 101 00:03:51,069 --> 00:03:52,650 y se acabó 102 00:03:52,650 --> 00:03:54,849 entonces tenemos que hacer un bucle 103 00:03:54,849 --> 00:03:57,310 que va desde la última 104 00:03:57,310 --> 00:03:59,349 hasta la que 105 00:03:59,349 --> 00:04:00,370 tengo que insertar 106 00:04:00,370 --> 00:04:03,050 y en cada una de ellas asigno 107 00:04:03,050 --> 00:04:04,310 a esa posición su anterior 108 00:04:04,310 --> 00:04:06,370 cuando ya he hecho eso 109 00:04:06,370 --> 00:04:08,889 a esta de aquí que se me ha quedado duplicada 110 00:04:08,889 --> 00:04:11,090 le copio el nuevo número y ya está 111 00:04:11,090 --> 00:04:15,740 vale, pues entonces 112 00:04:15,740 --> 00:04:18,259 esto, un for 113 00:04:18,259 --> 00:04:22,500 mientras si 114 00:04:22,500 --> 00:04:24,180 empezando en la última 115 00:04:24,180 --> 00:04:27,139 vale, empezando en la última 116 00:04:27,139 --> 00:04:28,800 mientras si sea 117 00:04:28,800 --> 00:04:29,899 mayor o igual 118 00:04:29,899 --> 00:04:33,040 que la posición en la que tengo que insertarlo 119 00:04:33,040 --> 00:04:35,019 porque voy desde arriba 120 00:04:35,019 --> 00:04:35,560 hacia abajo 121 00:04:35,560 --> 00:04:37,459 y decrementando 122 00:04:37,459 --> 00:04:37,759 y 123 00:04:37,759 --> 00:04:43,829 n es 124 00:04:43,829 --> 00:04:46,930 el tamaño 125 00:04:46,930 --> 00:04:47,350 del array 126 00:04:47,350 --> 00:04:49,430 los números que hay en el array 127 00:04:49,430 --> 00:04:50,810 este es mi array 128 00:04:50,810 --> 00:04:52,209 que tiene 129 00:04:52,209 --> 00:04:55,410 n mayúscula números más 1 130 00:04:55,410 --> 00:04:56,550 que he reservado yo aquí 131 00:04:56,550 --> 00:04:59,610 entonces la posición n es esta 132 00:04:59,610 --> 00:05:03,089 ¿cómo se llama la raíz? 133 00:05:04,410 --> 00:05:05,790 la raíz se llama números 134 00:05:05,790 --> 00:05:08,029 y lo he declarado 135 00:05:08,029 --> 00:05:09,810 de n más 1 136 00:05:09,810 --> 00:05:10,629 posiciones 137 00:05:10,629 --> 00:05:12,410 has puesto el tamaño 138 00:05:12,410 --> 00:05:14,949 claro, para que no sea 10 139 00:05:14,949 --> 00:05:17,850 que sea el tamaño que él me diga 140 00:05:17,850 --> 00:05:19,790 entonces, él me va a decir 141 00:05:19,790 --> 00:05:21,189 voy a meter 7 números 142 00:05:21,189 --> 00:05:24,550 Pues yo lo declaro con una posición más extra 143 00:05:24,550 --> 00:05:25,490 Una más extra 144 00:05:25,490 --> 00:05:28,129 Vale, y ahora ya 145 00:05:28,129 --> 00:05:30,009 Pues desde arriba hacia abajo 146 00:05:30,009 --> 00:05:31,910 ¿Qué voy a hacer? Pues en números 147 00:05:31,910 --> 00:05:33,089 De i 148 00:05:33,089 --> 00:05:35,110 Asignale 149 00:05:35,110 --> 00:05:37,930 La que tiene antes 150 00:05:37,930 --> 00:05:44,730 Asignale la que tiene antes 151 00:05:44,730 --> 00:05:48,389 Y ya está, con este primer for 152 00:05:48,389 --> 00:05:51,089 Con este primer for de aquí 153 00:05:51,089 --> 00:05:53,470 A ver si esto se abre 154 00:05:53,470 --> 00:06:01,980 vale, pues que estamos haciendo aquí 155 00:06:01,980 --> 00:06:07,990 tenemos 156 00:06:07,990 --> 00:06:10,149 este es el array 157 00:06:10,149 --> 00:06:12,129 que yo le he reservado 158 00:06:12,129 --> 00:06:14,230 n más una posiciones 159 00:06:14,230 --> 00:06:16,990 vale, le he reservado 160 00:06:16,990 --> 00:06:18,209 n más una 161 00:06:18,209 --> 00:06:22,040 para que tenga aquí una extra 162 00:06:22,040 --> 00:06:24,060 ya que tiene que hacer el desplazamiento 163 00:06:24,060 --> 00:06:27,100 y esta es la posición 0 164 00:06:27,100 --> 00:06:28,959 la 1, la 2, la 3 165 00:06:28,959 --> 00:06:30,199 así hasta la posición 166 00:06:30,199 --> 00:06:31,740 n 167 00:06:31,740 --> 00:06:33,379 vale 168 00:06:33,379 --> 00:06:36,560 hasta la posición n, perdón, no, esta no es 169 00:06:36,560 --> 00:06:40,410 la posición n 170 00:06:40,410 --> 00:06:41,350 que es esta, ¿vale? 171 00:06:45,439 --> 00:06:47,800 es decir, tiene n más una posiciones 172 00:06:47,800 --> 00:06:49,100 desde la 0 hasta la n 173 00:06:49,100 --> 00:06:51,259 están rellenas estas de aquí 174 00:06:51,259 --> 00:06:52,680 estas son las que están rellenas 175 00:06:52,680 --> 00:06:55,319 esta no la hemos rellenado porque está 176 00:06:55,319 --> 00:06:56,560 extra reservada 177 00:06:56,560 --> 00:06:59,879 simplemente para que se muevan a la derecha 178 00:06:59,879 --> 00:07:01,680 tantos como sean 179 00:07:01,680 --> 00:07:03,000 necesarios hasta dejar uno 180 00:07:03,000 --> 00:07:05,339 bueno, pues entonces imaginamos que queremos meter en esta 181 00:07:05,339 --> 00:07:06,220 posición de aquí 182 00:07:06,220 --> 00:07:08,420 esa es la posición que me han dado 183 00:07:08,420 --> 00:07:11,139 la posición que me han dado es igual a 3 184 00:07:11,139 --> 00:07:13,000 y quiero meter el número que sea 185 00:07:13,000 --> 00:07:15,120 me da lo mismo, el nuevo número que he leído yo por ahí 186 00:07:15,120 --> 00:07:16,199 este nuevo número 187 00:07:16,199 --> 00:07:19,160 vale, pues entonces, ¿qué es lo que estoy haciendo 188 00:07:19,160 --> 00:07:19,860 con este bucle? 189 00:07:20,639 --> 00:07:22,420 pues partiendo desde n 190 00:07:22,420 --> 00:07:24,199 hasta 191 00:07:24,199 --> 00:07:25,860 posición 192 00:07:25,860 --> 00:07:28,819 desde n hasta posición 193 00:07:28,819 --> 00:07:30,620 a esta posición 194 00:07:30,620 --> 00:07:33,120 le asigno el numerito que hay aquí 195 00:07:33,120 --> 00:07:34,980 por ejemplo, si esto tiene 1, 3 196 00:07:34,980 --> 00:07:37,379 5, 4, 0 197 00:07:37,379 --> 00:07:39,360 1, 7 y aquí este 198 00:07:39,360 --> 00:07:41,259 estaría indefinido, pues a esta 199 00:07:41,259 --> 00:07:42,980 posición le asigno lo que hay aquí 200 00:07:42,980 --> 00:07:45,199 a la posición i le asigno 201 00:07:45,199 --> 00:07:47,420 la i-1, el 7 se queda duplicado, muy bien 202 00:07:47,420 --> 00:07:48,660 el 7 ya ha avanzado 203 00:07:48,660 --> 00:07:51,279 ahora, mi bucle 204 00:07:51,279 --> 00:07:52,720 avanza hacia abajo, ahora estoy aquí 205 00:07:52,720 --> 00:07:55,079 a esta quien le asigno lo que tiene la anterior 206 00:07:55,079 --> 00:07:57,379 luego el 7 se ve pisado por el 1 207 00:07:57,379 --> 00:07:59,300 el 1 se ha quedado duplicado 208 00:07:59,300 --> 00:08:01,100 muy bien, ahora sigo bajando 209 00:08:01,100 --> 00:08:03,180 al 1 que le asigno lo que tiene mi anterior 210 00:08:03,180 --> 00:08:05,480 la 0, el 1 desaparece 211 00:08:05,480 --> 00:08:06,500 y se convierte en el 0 212 00:08:06,500 --> 00:08:08,899 no hay problema, el 1 es que ya había viajado 213 00:08:08,899 --> 00:08:10,759 hacia allí, ahora en esta 214 00:08:10,759 --> 00:08:12,939 ¿qué tengo que hacer en esta? pues en esta 215 00:08:12,939 --> 00:08:15,019 le asigno lo que hay en la anterior, que es el 4 216 00:08:15,019 --> 00:08:17,220 el 0 desaparece y se me queda en 4 217 00:08:17,220 --> 00:08:18,579 entonces todos 218 00:08:18,579 --> 00:08:20,939 se van moviendo hacia allá, a cada uno le asigno 219 00:08:20,939 --> 00:08:22,899 la anterior, a este 220 00:08:22,899 --> 00:08:24,939 le asigno su anterior, a este su anterior 221 00:08:24,939 --> 00:08:26,879 cada vez que hago una asignación 222 00:08:26,879 --> 00:08:29,060 piso el que había, pero no hay problema porque lo pise 223 00:08:29,060 --> 00:08:31,060 porque ya previamente lo había llevado arriba 224 00:08:31,060 --> 00:08:32,740 ya previamente lo había llevado aquí 225 00:08:32,740 --> 00:08:34,960 entonces cuando ya he terminado este bucle 226 00:08:34,960 --> 00:08:36,779 todos se han ido hacia allá 227 00:08:36,779 --> 00:08:39,220 al 4 le asigno el anterior 228 00:08:39,220 --> 00:08:41,460 3 y ya ha terminado 229 00:08:41,460 --> 00:08:42,879 entonces 230 00:08:42,879 --> 00:08:44,980 ahora ya en la posición 231 00:08:44,980 --> 00:08:47,299 en la que hay que insertar, este ya se ha quedado 232 00:08:47,299 --> 00:08:49,299 duplicado porque todos han pasado hacia arriba 233 00:08:49,299 --> 00:08:51,419 se ha quedado duplicado, pues a este ya me falta 234 00:08:51,419 --> 00:08:53,059 asignar a esa posición el nuevo 235 00:08:53,059 --> 00:08:54,379 y ya está 236 00:08:54,379 --> 00:08:57,500 entonces el copiar 237 00:08:57,500 --> 00:08:58,759 en cada uno su anterior 238 00:08:58,759 --> 00:09:01,720 lo estoy haciendo de izquierda a derecha 239 00:09:01,720 --> 00:09:03,320 porque si lo hiciera 240 00:09:03,320 --> 00:09:05,120 de derecha a izquierda, estaría borrando 241 00:09:05,120 --> 00:09:05,879 todos los números 242 00:09:05,879 --> 00:09:16,139 si estos fueran mis números, por ejemplo 243 00:09:16,139 --> 00:09:22,139 vale, si yo primero voy a copiar 244 00:09:22,139 --> 00:09:23,240 este 245 00:09:23,240 --> 00:09:26,299 aquí, vale, pues entonces 246 00:09:26,299 --> 00:09:27,559 el 4 se asigna aquí 247 00:09:27,559 --> 00:09:29,919 muy bien, el 4 ya lo he movido 248 00:09:29,919 --> 00:09:31,940 pero es que ahora, aquí tendría que copiar 249 00:09:31,940 --> 00:09:33,659 el que había antes, lo acabo de perder 250 00:09:33,659 --> 00:09:36,080 lo acabo de perder, no puedo mover aquí 251 00:09:36,080 --> 00:09:38,139 el 5 que había antes, porque lo acabo de perder 252 00:09:38,139 --> 00:09:39,960 entonces no puedo hacer las copias 253 00:09:39,960 --> 00:09:42,379 de izquierda a derecha, sino al revés 254 00:09:42,379 --> 00:09:44,120 sale abajo arriba 255 00:09:44,120 --> 00:09:46,559 sino así, vale, voy sacando 256 00:09:46,559 --> 00:09:47,840 este lo copio aquí 257 00:09:47,840 --> 00:09:50,100 se queda duplicado, no hay problema 258 00:09:50,100 --> 00:09:51,980 ahora, este 9 lo llevo aquí 259 00:09:51,980 --> 00:09:54,240 muy bien, se quedan 260 00:09:54,240 --> 00:09:56,340 los dos 9, ahora este se lo he pisado 261 00:09:56,340 --> 00:09:58,259 por el 7, vale 262 00:09:58,259 --> 00:10:00,500 hasta que ya se me quedan duplicados 263 00:10:00,500 --> 00:10:02,240 estos dos, pero es que este es el que ya 264 00:10:02,240 --> 00:10:03,299 se pisa con el nuevo 265 00:10:03,299 --> 00:10:04,639 vale 266 00:10:14,120 --> 00:10:20,799 Bueno, a ver si 267 00:10:20,799 --> 00:10:23,740 Si cambias los índices 268 00:10:23,740 --> 00:10:25,259 Y pones el I más 1 aquí 269 00:10:25,259 --> 00:10:28,220 Pero vamos, que siempre tienes que copiar 270 00:10:28,220 --> 00:10:30,220 Que ir llevándote 271 00:10:30,220 --> 00:10:31,559 En este sentido 272 00:10:31,559 --> 00:10:34,240 Porque si no, si tú lo haces 273 00:10:34,240 --> 00:10:35,039 En el otro sentido 274 00:10:35,039 --> 00:10:38,539 Pisas el siguiente a copiar 275 00:10:38,539 --> 00:10:40,480 Y no puedes pisar el siguiente 276 00:10:40,480 --> 00:10:41,840 A copiar, porque lo has perdido 277 00:10:41,840 --> 00:10:49,820 Claro, lo puse en general 278 00:10:49,820 --> 00:10:51,639 para que no tuviera que ser 10 279 00:10:51,639 --> 00:10:53,059 estrictamente 280 00:10:53,059 --> 00:11:05,080 Es que es un plan complicado 281 00:11:05,080 --> 00:11:18,000 A ver, primero voy a terminar 282 00:11:18,000 --> 00:11:19,919 Lo que todavía me falta, asignar 283 00:11:19,919 --> 00:11:21,779 A la posición nueva 284 00:11:21,779 --> 00:11:23,440 A números de pos 285 00:11:23,440 --> 00:11:26,000 Me falta asignarle la nueva 286 00:11:26,000 --> 00:11:27,080 Nuevo num 287 00:11:27,080 --> 00:11:29,840 Vale, me falta asignarle la nueva 288 00:11:29,840 --> 00:11:30,820 Entonces, con esto 289 00:11:30,820 --> 00:11:34,000 A la n 290 00:11:34,000 --> 00:11:36,100 le asigno lo anterior y así hasta que 291 00:11:36,100 --> 00:11:36,940 llegue a la posición 292 00:11:36,940 --> 00:11:41,100 ¿vale? entonces aquí 293 00:11:41,100 --> 00:11:42,700 mayor que pos 294 00:11:42,700 --> 00:11:46,080 creo que sería mayor 295 00:11:46,080 --> 00:11:48,000 estrictamente ¿no? porque 296 00:11:48,000 --> 00:11:49,840 a que duplico es pos 297 00:11:49,840 --> 00:11:51,620 sería ¿verdad? 298 00:11:52,419 --> 00:11:53,059 sea mayor 299 00:11:53,059 --> 00:11:57,549 vamos a probar así con este 300 00:11:57,549 --> 00:11:59,870 con el límite como lo tenía antes 301 00:11:59,870 --> 00:12:01,509 porque si es un error lo cambiamos y ya está 302 00:12:01,509 --> 00:12:04,250 vale entonces esta sería la idea 303 00:12:04,250 --> 00:12:06,230 ahora vamos a probarlo a ver si en algún 304 00:12:06,230 --> 00:12:08,190 momento del límite hemos copiado 305 00:12:08,190 --> 00:12:10,009 una de más, tenemos que parar antes 306 00:12:10,009 --> 00:12:11,450 ya veremos, pero bueno 307 00:12:11,450 --> 00:12:13,570 voy a mostrar el array 308 00:12:13,570 --> 00:12:18,610 voy a mostrar el array antes y después 309 00:12:18,610 --> 00:12:21,389 a ver si se ha insertado 310 00:12:21,389 --> 00:12:24,509 vale, pues venga 311 00:12:24,509 --> 00:12:25,730 ejecutamos 312 00:12:25,730 --> 00:12:30,460 venga, 10 posiciones 313 00:12:30,460 --> 00:12:32,720 el array 314 00:12:32,720 --> 00:12:34,620 que me ha generado es este 315 00:12:34,620 --> 00:12:36,860 de 10 posiciones, aunque tiene una más 316 00:12:36,860 --> 00:12:38,320 libre, que no he mostrado ahí 317 00:12:38,320 --> 00:12:40,659 ahí no la he mostrado, porque el for 318 00:12:40,659 --> 00:12:41,620 de arriba que muestra 319 00:12:41,620 --> 00:12:44,320 Este primer for que he usado para mostrar 320 00:12:44,320 --> 00:12:46,600 Muestra las n primeras 321 00:12:46,600 --> 00:12:48,879 O sea, la siguiente que he generado 322 00:12:48,879 --> 00:12:50,620 Como está todavía sin rellenar, ni la muestro 323 00:12:50,620 --> 00:12:52,899 Tendría un 0 porque se lo ha dado por defecto 324 00:12:52,899 --> 00:12:54,240 Vale 325 00:12:54,240 --> 00:12:55,980 ¿Dónde estamos? 326 00:12:56,659 --> 00:12:57,179 Aquí 327 00:12:57,179 --> 00:12:59,980 Ahora, introduzca posición insertar 328 00:12:59,980 --> 00:13:01,379 Venga, vamos a insertar en la 2 329 00:13:01,379 --> 00:13:05,019 ¿Qué nuevo número quiere insertar? 330 00:13:05,440 --> 00:13:07,019 El 11 331 00:13:07,019 --> 00:13:07,940 Que no está 332 00:13:07,940 --> 00:13:08,799 Vale 333 00:13:08,799 --> 00:13:12,019 el array es 23, 17 334 00:13:12,019 --> 00:13:13,659 y efectivamente en la 335 00:13:13,659 --> 00:13:16,080 posición 2, 0, 1, 2 336 00:13:16,080 --> 00:13:17,740 en la 2 337 00:13:17,740 --> 00:13:19,980 ha insertado 338 00:13:19,980 --> 00:13:21,960 el 11, 9, 22, 18 339 00:13:21,960 --> 00:13:23,120 y los dos las ha desplazado 340 00:13:23,120 --> 00:13:25,179 pero me falta uno por mostrar 341 00:13:25,179 --> 00:13:26,639 pero eso es un error 342 00:13:26,639 --> 00:13:29,700 de que cuando 343 00:13:29,700 --> 00:13:31,179 he mostrado el último array 344 00:13:31,179 --> 00:13:33,019 el último array 345 00:13:33,019 --> 00:13:34,960 me interesan las n más 1 posiciones 346 00:13:34,960 --> 00:13:39,340 No, tiene N más una 347 00:13:39,340 --> 00:13:40,799 Le he rellenado una más 348 00:13:40,799 --> 00:13:42,299 Porque como se desplazan todas 349 00:13:42,299 --> 00:13:43,779 Necesito un hueco más 350 00:13:43,779 --> 00:13:47,299 Estos son los números que él ha metido 351 00:13:47,299 --> 00:13:49,799 Un 3, ¿dónde? 352 00:13:55,399 --> 00:13:57,440 Estos son los que el usuario va a meter 353 00:13:57,440 --> 00:13:59,559 Pero yo reservo una más 354 00:13:59,559 --> 00:14:01,240 Porque como los voy a desplazar una 355 00:14:01,240 --> 00:14:02,059 ¿Vale? 356 00:14:02,820 --> 00:14:03,580 Entonces vamos 357 00:14:03,580 --> 00:14:04,740 No sé qué he hecho 358 00:14:04,740 --> 00:14:05,919 Vale, pues por ejemplo 359 00:14:05,919 --> 00:14:07,139 8 posiciones 360 00:14:07,139 --> 00:14:10,539 Vamos a insertar el 99 361 00:14:10,539 --> 00:14:12,460 Uy, no, no, esto no 362 00:14:12,460 --> 00:14:14,379 La posición 99 no está 363 00:14:14,379 --> 00:14:16,100 Así que esto fallaría 364 00:14:16,100 --> 00:14:17,240 Lo paro directamente 365 00:14:17,240 --> 00:14:18,840 Vale 366 00:14:18,840 --> 00:14:20,840 Me he equivocado 367 00:14:20,840 --> 00:14:24,159 8, posición, en la posición 3 368 00:14:24,159 --> 00:14:25,340 ¿Qué vamos a insertar? 369 00:14:25,679 --> 00:14:26,759 El 99 370 00:14:26,759 --> 00:14:28,840 Pues ahora ya sí 371 00:14:28,840 --> 00:14:31,179 En la posición 3, que es donde estaba 372 00:14:31,179 --> 00:14:33,120 El 24, 0, 1, 2 y 3 373 00:14:33,120 --> 00:14:34,240 En la posición 3 374 00:14:34,240 --> 00:14:37,259 Ha metido el 99, lo ha colado 375 00:14:37,259 --> 00:14:39,799 Y el 24, 15, 1, 3, 8 376 00:14:39,799 --> 00:14:40,980 Se han ido todos 377 00:14:40,980 --> 00:14:41,899 Hacia allá 378 00:14:41,899 --> 00:14:43,679 ¿Vale? 379 00:14:45,120 --> 00:14:45,559 ¿N? 380 00:14:45,559 --> 00:14:51,840 ¿N es el tamaño de la array? 381 00:14:52,399 --> 00:14:54,799 ¿N es el tamaño de la array? 382 00:14:54,860 --> 00:14:55,840 Que yo le pido al usuario 383 00:14:55,840 --> 00:14:58,000 Entonces, él va a decir 384 00:14:58,000 --> 00:14:59,500 Él va a meter 7 números 385 00:14:59,500 --> 00:15:01,600 Por ejemplo, entonces yo reservo 386 00:15:01,600 --> 00:15:03,700 Una posición más, porque sé que luego 387 00:15:03,700 --> 00:15:05,000 Voy a insertar otro después 388 00:15:05,000 --> 00:15:07,639 Entonces como voy a insertar otro y se van a tener que mover 389 00:15:07,639 --> 00:15:09,340 ¿Vale? 390 00:15:17,240 --> 00:15:17,679 Vale 391 00:15:17,679 --> 00:15:20,700 Vamos a aprovechar 392 00:15:20,700 --> 00:15:22,600 Este código 393 00:15:22,600 --> 00:15:23,620 ¿Qué? 394 00:15:31,340 --> 00:15:31,779 ¿Vale? 395 00:15:32,139 --> 00:15:34,519 Después de leer los datos, lo que es el programa en sí 396 00:15:34,519 --> 00:15:36,039 El que hace la inserción 397 00:15:36,039 --> 00:15:38,080 Es esto, esas líneas de ahí 398 00:15:38,080 --> 00:15:39,340 ¿Vale? 399 00:15:40,240 --> 00:15:42,580 Esas líneas son las que lo mueven todo 400 00:15:42,580 --> 00:15:44,019 Uno a la derecha 401 00:15:44,019 --> 00:15:46,639 Y luego mete en el nuevo 402 00:15:46,639 --> 00:16:01,620 ¿Y está igualico? 403 00:16:10,190 --> 00:16:10,570 ¿Perdón? 404 00:16:11,090 --> 00:16:12,450 ¿Se podría poner ahí otra array? 405 00:16:13,250 --> 00:16:15,009 ¿Aquí? No hombre, aquí no puedes poner otra array 406 00:16:15,009 --> 00:16:16,529 Porque en esta variable cae 407 00:16:16,529 --> 00:16:19,149 Cada una de las posiciones de la array 408 00:16:19,149 --> 00:16:20,690 A ver, si tuvieras una array de arrays 409 00:16:20,690 --> 00:16:23,549 Sí, pero es otra cosa la que nos hemos metido 410 00:16:23,549 --> 00:16:24,990 Es decir, esta variable 411 00:16:24,990 --> 00:16:27,509 Se va cargando con lo que tiene 412 00:16:27,509 --> 00:16:29,049 Cada... a ver 413 00:16:29,049 --> 00:16:31,250 Es decir, sí 414 00:16:31,250 --> 00:16:38,080 la primera diferencia es esa 415 00:16:38,080 --> 00:16:40,960 pero claro, es importante porque luego tiene otra gorda 416 00:16:40,960 --> 00:16:46,620 este bucle 417 00:16:46,620 --> 00:16:48,759 si mi array es este 418 00:16:48,759 --> 00:16:53,639 se ejecuta una vez por iteración 419 00:16:53,639 --> 00:16:55,179 ahí no hay alternativa, ¿vale? 420 00:16:55,360 --> 00:16:56,340 una vez por iteración 421 00:16:56,340 --> 00:16:59,740 y ahora, declaro una variable n local 422 00:16:59,740 --> 00:17:02,019 esta variable es local a este bucle 423 00:17:02,019 --> 00:17:03,059 desaparece 424 00:17:03,059 --> 00:17:04,759 cuando yo llego a este punto 425 00:17:04,759 --> 00:17:06,640 la variable n ya ha desaparecido 426 00:17:06,640 --> 00:17:09,220 la variable n solo tiene uso aquí dentro de este for 427 00:17:09,220 --> 00:17:10,059 solo tiene uso ahí 428 00:17:10,059 --> 00:17:13,000 cuando yo he salido del for ya ha desaparecido esa variable 429 00:17:13,000 --> 00:17:15,380 y ahora esta variable que le va pasando 430 00:17:15,380 --> 00:17:17,279 pues imaginaos 431 00:17:17,279 --> 00:17:18,640 que ahora tengo yo que sé esto 432 00:17:18,640 --> 00:17:21,559 pues en la primera vuelta en la variable n 433 00:17:21,559 --> 00:17:22,180 cae el 3 434 00:17:22,180 --> 00:17:25,420 y ya está y en esa vuelta yo hago lo que sea 435 00:17:25,420 --> 00:17:26,539 en este caso ha sido mostrar 436 00:17:26,539 --> 00:17:29,579 en la siguiente vuelta del for 437 00:17:29,579 --> 00:17:31,579 en la variable n ya desaparece el 3 438 00:17:31,579 --> 00:17:32,440 y cae el 4 439 00:17:32,440 --> 00:17:34,619 y ya hago lo que sea con el 4 440 00:17:34,619 --> 00:17:37,099 en la siguiente vuelta de ese for 441 00:17:37,099 --> 00:17:38,559 en la variable n 442 00:17:38,559 --> 00:17:41,039 desaparece lo que hubiera y cae el 3 443 00:17:41,039 --> 00:17:43,420 luego esta es una variable temporal 444 00:17:43,420 --> 00:17:45,539 que va recogiendo en cada 445 00:17:45,539 --> 00:17:47,680 vuelta o en cada iteración 446 00:17:47,680 --> 00:17:49,640 todos y cada uno de los valores 447 00:17:49,640 --> 00:17:51,480 para que yo haga con ellos 448 00:17:51,480 --> 00:17:53,279 lo que quiero, entonces lo que yo voy a hacer 449 00:17:53,279 --> 00:17:54,799 es consultar, sumar 450 00:17:54,799 --> 00:17:56,839 pues me da igual trabajar con una copia 451 00:17:56,839 --> 00:17:57,700 con el propio valor 452 00:17:57,700 --> 00:18:00,180 pero ojo 453 00:18:00,180 --> 00:18:04,240 cuidado porque si estamos rellenando 454 00:18:04,240 --> 00:18:06,079 una array y yo por ahorrarme tiempo 455 00:18:06,079 --> 00:18:08,099 digo, oye, voy a rellenarlo con un for it 456 00:18:08,099 --> 00:18:09,759 porque como lo voy a recorrer entero 457 00:18:09,759 --> 00:18:12,160 pues ahí ya he liado, por ejemplo 458 00:18:12,160 --> 00:18:14,119 imaginaos que pretendemos rellenar este array 459 00:18:14,119 --> 00:18:16,099 de nuevo con unos 460 00:18:16,099 --> 00:18:17,339 por ejemplo 461 00:18:17,339 --> 00:18:19,799 y yo digo, venga, voy a recorrerlo así 462 00:18:19,799 --> 00:18:20,880 que es más cómodo 463 00:18:20,880 --> 00:18:28,789 imaginaos que uno dice, oye 464 00:18:28,789 --> 00:18:30,970 voy a rellenar 465 00:18:30,970 --> 00:18:33,509 mi array con unos 466 00:18:33,509 --> 00:18:35,009 pues de esta manera 467 00:18:35,009 --> 00:18:36,529 porque es más cómodo de recorrer 468 00:18:36,529 --> 00:18:37,910 que poner ahí el it, vale 469 00:18:37,910 --> 00:18:41,009 pues que estamos haciendo aquí, pues una cagada 470 00:18:41,009 --> 00:18:45,720 ¿qué estaríamos haciendo aquí? 471 00:18:45,779 --> 00:18:47,000 yo tengo mi array números 472 00:18:47,000 --> 00:18:48,680 mi array números 473 00:18:48,680 --> 00:18:51,140 con todas sus posiciones 474 00:18:51,140 --> 00:18:53,339 y tengo mi variable n 475 00:18:53,339 --> 00:18:54,599 que es una variable auxiliar 476 00:18:54,599 --> 00:18:58,160 que está aquí para quedarse con una copia 477 00:18:58,160 --> 00:19:00,240 de cada cosa que yo vaya pasando 478 00:19:00,240 --> 00:19:02,539 entonces ¿qué es lo que hacemos en la primera iteración? 479 00:19:03,099 --> 00:19:03,720 mi variable 480 00:19:03,720 --> 00:19:05,539 imaginaos que el array originalmente 481 00:19:05,539 --> 00:19:06,599 tiene lo que tuviera 482 00:19:06,599 --> 00:19:08,200 esto, yo que sé 483 00:19:08,200 --> 00:19:11,000 primera vuelta del for 484 00:19:11,000 --> 00:19:13,880 lo primero que hace el for each 485 00:19:13,880 --> 00:19:15,119 a mi variable n 486 00:19:15,119 --> 00:19:17,720 le copia el 3 487 00:19:17,720 --> 00:19:20,519 eso es lo primero que hace 488 00:19:20,519 --> 00:19:22,000 y ahora ya que hago yo 489 00:19:22,000 --> 00:19:23,980 asigna n igual a 1 490 00:19:23,980 --> 00:19:25,299 vale muy bien n igual a 1 491 00:19:25,299 --> 00:19:27,640 y ahí se queda el 1, el 1 no está aquí 492 00:19:27,640 --> 00:19:30,519 no he usado el 1 para rellenar el array 493 00:19:30,519 --> 00:19:32,539 no, el 1 se ha quedado 494 00:19:32,539 --> 00:19:34,200 en la variable n que es la copia 495 00:19:34,200 --> 00:19:35,279 se ha quedado aquí el 1 496 00:19:35,279 --> 00:19:38,140 con lo cual no estoy rellenando el array haciendo esto 497 00:19:38,140 --> 00:19:40,259 estoy dando valores a la copia 498 00:19:40,259 --> 00:19:40,819 solamente 499 00:19:40,819 --> 00:19:43,480 cuando la iteración vuelve otra vez 500 00:19:43,480 --> 00:19:45,380 ahora es el 7 501 00:19:45,380 --> 00:19:47,299 el que se copia en la variable 502 00:19:47,299 --> 00:19:49,059 esta temporal, se copia el 7 503 00:19:49,059 --> 00:19:51,000 y ahora yo le vuelvo a dar un 1 504 00:19:51,000 --> 00:19:52,519 vale, le vuelvo a dar un 1 505 00:19:52,519 --> 00:19:55,200 es decir, estoy dando unos todo el rato 506 00:19:55,200 --> 00:19:56,859 a esta variable copia 507 00:19:56,859 --> 00:19:59,079 el array 508 00:19:59,079 --> 00:20:01,140 no se está rellenando de unos 509 00:20:01,140 --> 00:20:02,359 no se está rellenando de unos 510 00:20:02,359 --> 00:20:05,220 luego, este bucle for 511 00:20:05,220 --> 00:20:07,059 con esta sintaxis 512 00:20:07,059 --> 00:20:08,960 este for each, tiene sentido 513 00:20:08,960 --> 00:20:10,380 cuando yo lo único que quiero hacer es 514 00:20:10,380 --> 00:20:12,200 operar con estos números 515 00:20:12,200 --> 00:20:14,440 pero sin cambiarles el valor 516 00:20:14,440 --> 00:20:16,900 para hacer cosas, porque me da igual operar con ellos 517 00:20:16,900 --> 00:20:18,519 que con la copia, ¿vale? 518 00:20:18,559 --> 00:20:20,640 porque con esta sintaxis 519 00:20:20,640 --> 00:20:22,259 es con la copia 520 00:20:22,259 --> 00:20:24,599 con la que opero, pero me da igual 521 00:20:24,599 --> 00:20:26,859 operar con una copia que con el valor original 522 00:20:26,859 --> 00:20:28,759 si voy a operar para obtener 523 00:20:28,759 --> 00:20:30,720 resultados, pero si lo que quiero 524 00:20:30,720 --> 00:20:33,039 es modificar lo que hay aquí, modificarlo 525 00:20:33,039 --> 00:20:35,039 no puedo hacerlo con esto 526 00:20:35,039 --> 00:20:36,460 porque estaré modificando esta 527 00:20:36,460 --> 00:20:38,700 si quiero modificar 528 00:20:38,700 --> 00:20:40,839 para la posición 3 darle 529 00:20:40,839 --> 00:20:45,099 un valor a la posición 4 darle otro si quiero modificar esto y así que tengo 530 00:20:45,099 --> 00:20:51,240 que ir con el for normal que a través del y me lleva ya al valor 531 00:20:51,240 --> 00:20:58,720 vale pues venga vamos a pararlo aquí