1 00:00:00,000 --> 00:00:02,279 Vale, pues el 15 es muy parecido. 2 00:00:03,180 --> 00:00:04,299 Tenemos un array de 10. 3 00:00:05,240 --> 00:00:09,500 Entonces, vamos a desplazarlos todos hacia abajo. 4 00:00:10,419 --> 00:00:11,960 Los 10 números están rellenos. 5 00:00:12,039 --> 00:00:13,720 Entonces diréis, uy, ¿pero qué pasa con el de abajo? 6 00:00:14,039 --> 00:00:16,480 No lo puedo desplazar abajo porque abajo no hay posición. 7 00:00:16,620 --> 00:00:17,679 Me va a decir array in this bound. 8 00:00:18,199 --> 00:00:19,899 Pues el último en el primero. 9 00:00:20,219 --> 00:00:21,899 Sería el funcionamiento de un array circular, 10 00:00:22,039 --> 00:00:22,960 lo que se llama un array circular. 11 00:00:22,960 --> 00:00:24,559 Lo que va saliendo por abajo. 12 00:00:25,780 --> 00:00:27,440 Vale, entonces vamos a hacer un array circular 13 00:00:27,440 --> 00:00:29,160 desplazando solo una posición. 14 00:00:30,000 --> 00:00:32,859 Todos bajan una y el último se coloca el primero. 15 00:00:34,140 --> 00:00:36,500 La generalización de esto sería el ejercicio 16. 16 00:00:37,119 --> 00:00:39,820 Recibes un array, recibes un valor n y te dice, 17 00:00:39,939 --> 00:00:41,520 desplázalos todos hacia abajo n, 18 00:00:41,679 --> 00:00:43,700 pero los que van saliendo por abajo que entren por arriba. 19 00:00:45,159 --> 00:00:46,060 Venga, pues el 15. 20 00:00:51,939 --> 00:00:52,780 Vale, a ver. 21 00:00:53,780 --> 00:00:56,060 Bueno, pues entonces, a ver. 22 00:00:56,060 --> 00:01:03,299 En realidad, este for, ¿dónde estoy? 23 00:01:03,380 --> 00:01:04,640 Estoy en el, este es el 15, ¿verdad? 24 00:01:04,640 --> 00:01:07,239 Vale, este for de aquí 25 00:01:07,239 --> 00:01:09,000 Es igual que el anterior 26 00:01:09,000 --> 00:01:10,599 Es decir 27 00:01:10,599 --> 00:01:12,079 Estoy partiendo 28 00:01:12,079 --> 00:01:14,560 De el penúltimo 29 00:01:14,560 --> 00:01:16,939 Vale, imaginaos que tengo este array 30 00:01:16,939 --> 00:01:18,760 Imaginaos que tengo este array 31 00:01:18,760 --> 00:01:20,379 Entonces, ¿qué estoy haciendo? 32 00:01:20,920 --> 00:01:22,500 Estoy partiendo del penúltimo 33 00:01:22,500 --> 00:01:23,920 Este lo copio aquí 34 00:01:23,920 --> 00:01:25,980 Este lo copio aquí 35 00:01:25,980 --> 00:01:27,680 Este lo copio aquí 36 00:01:27,680 --> 00:01:29,299 Y este lo copio aquí 37 00:01:29,299 --> 00:01:32,379 Es decir, estoy haciendo lo mismo que antes 38 00:01:32,379 --> 00:01:34,200 Ahora es como si pos 39 00:01:34,200 --> 00:01:36,019 Fuera de esta posición, la 1 40 00:01:36,019 --> 00:01:37,159 Pero el bucle es el mismo 41 00:01:37,159 --> 00:01:39,299 Entonces 42 00:01:39,299 --> 00:01:42,060 Estoy copiando 43 00:01:42,060 --> 00:01:43,700 Este en este 44 00:01:43,700 --> 00:01:45,640 Este en este 45 00:01:45,640 --> 00:01:46,760 Este en este 46 00:01:46,760 --> 00:01:49,299 Con lo cual estoy empezando desde la penúltima 47 00:01:49,299 --> 00:01:50,959 Por eso mi for va 48 00:01:50,959 --> 00:01:53,319 Desde aquí, desde números less 49 00:01:53,319 --> 00:01:54,180 Menos 2 50 00:01:54,180 --> 00:01:56,560 Porque estoy en la penúltima 51 00:01:56,560 --> 00:01:59,280 Este for empieza en la penúltima y se copia aquí 52 00:01:59,280 --> 00:02:01,599 Luego en esta y se copia aquí 53 00:02:01,599 --> 00:02:03,400 Así hasta la 2, empieza en la penúltima 54 00:02:03,400 --> 00:02:06,260 mientras sea mayor o igual que cero, decrementando 55 00:02:06,260 --> 00:02:08,280 ¿qué ha ocurrido? 56 00:02:08,340 --> 00:02:09,680 que lo que me va a faltar es 57 00:02:09,680 --> 00:02:11,300 el que estaba a la última 58 00:02:11,300 --> 00:02:13,219 ha pasado a la primero 59 00:02:13,219 --> 00:02:15,280 pero claro, lo hemos perdido 60 00:02:15,280 --> 00:02:17,659 porque al hacer este for lo hemos perdido 61 00:02:17,659 --> 00:02:19,199 pero ah, es que antes del for 62 00:02:19,199 --> 00:02:21,819 yo lo guardo en una variable adicional 63 00:02:21,819 --> 00:02:23,560 ¿vale? 64 00:02:27,099 --> 00:02:28,259 están buscando piso 65 00:02:28,259 --> 00:02:30,020 y se dirán esos pringados de informática 66 00:02:30,020 --> 00:02:31,659 que están ahí dando clase 67 00:02:31,659 --> 00:02:33,840 eso, vosotros salís y decís 68 00:02:33,840 --> 00:02:36,000 los pringados sois vosotros, ¿qué estáis haciendo gilipollas? 69 00:02:36,060 --> 00:02:42,620 vale, entonces 70 00:02:42,620 --> 00:02:44,659 ¿qué ocurre con este for? 71 00:02:45,479 --> 00:02:47,000 este for, muy bien 72 00:02:47,000 --> 00:02:48,180 me los desplaza todos 73 00:02:48,180 --> 00:02:51,360 pero el 12 lo ha tirado a la basura 74 00:02:51,360 --> 00:02:52,340 porque al copiar 75 00:02:52,340 --> 00:02:55,639 el 3 en el 12, el 5 en el 3 76 00:02:55,639 --> 00:02:57,280 los ha desplazado, pero el 12 lo ha tirado 77 00:02:57,280 --> 00:02:59,219 entonces yo ya no puedo asignar 78 00:02:59,219 --> 00:03:01,060 el 12 que tenía aquí al primero 79 00:03:01,060 --> 00:03:03,460 ah, pero es que antes del for 80 00:03:03,460 --> 00:03:04,740 me he preocupado de guardarlo 81 00:03:04,740 --> 00:03:07,099 en una variable auxiliar he guardado el ultimito 82 00:03:07,099 --> 00:03:08,740 el que se queda pisado ahí 83 00:03:08,740 --> 00:03:10,599 entonces lo guardo en una variable auxiliar 84 00:03:10,599 --> 00:03:12,539 ahora ya hago el desplazamiento 85 00:03:12,539 --> 00:03:14,340 y cuando ya he hecho el desplazamiento 86 00:03:14,340 --> 00:03:16,939 el 4 ha pasado aquí, el 6 ha pasado aquí 87 00:03:16,939 --> 00:03:18,900 etcétera, etcétera, cuando ya he hecho el desplazamiento 88 00:03:18,900 --> 00:03:21,020 me falta ya 89 00:03:21,020 --> 00:03:23,319 solamente en la posición 0 90 00:03:23,319 --> 00:03:24,340 guardar el último 91 00:03:24,340 --> 00:03:27,099 que había yo sobrescrito 92 00:03:27,099 --> 00:03:28,960 vale, entonces son 93 00:03:28,960 --> 00:03:29,479 estas tres 94 00:03:29,479 --> 00:03:32,020 guardo el último 95 00:03:32,020 --> 00:03:34,800 porque lo voy a pisar al desplazar 96 00:03:34,800 --> 00:03:36,560 todos los anteriores, lo guardo 97 00:03:36,560 --> 00:03:37,659 para que se quede ahí guardado 98 00:03:37,659 --> 00:03:40,240 ahora hago todo el desplazamiento 99 00:03:40,240 --> 00:03:42,780 empezando desde el penúltimo y acabando aquí 100 00:03:42,780 --> 00:03:44,580 el 4 se quedará 101 00:03:44,580 --> 00:03:46,319 replicado, el 4 se queda 102 00:03:46,319 --> 00:03:48,680 tanto aquí como aquí, claro pero es que 103 00:03:48,680 --> 00:03:50,479 ahora ya me falta el que salió 104 00:03:50,479 --> 00:03:51,460 por la derecha 105 00:03:51,460 --> 00:03:53,960 el 12 que yo guardé aquí 106 00:03:53,960 --> 00:03:55,800 que pise ya el primero 107 00:03:55,800 --> 00:03:58,159 y ya está 108 00:03:58,159 --> 00:04:04,240 entonces este código nos hace 109 00:04:04,240 --> 00:04:06,460 un desplazamiento del array 110 00:04:06,460 --> 00:04:07,860 una posición solo 111 00:04:07,860 --> 00:04:10,360 entonces bueno, si 112 00:04:10,360 --> 00:04:12,599 lo probamos con este 113 00:04:12,599 --> 00:04:13,460 array de aquí 114 00:04:13,460 --> 00:04:19,250 pues efectivamente lo ha movido todo 115 00:04:19,250 --> 00:04:21,689 y el 12 que estaba el último 116 00:04:21,689 --> 00:04:22,670 lo ha metido el primero 117 00:04:22,670 --> 00:04:25,569 vale, era este 118 00:04:25,569 --> 00:04:26,970 los ha desplazado todos 119 00:04:26,970 --> 00:04:28,970 4, 6, 1, 5, 3 120 00:04:28,970 --> 00:04:30,709 y el 12 lo ha metido aquí 121 00:04:30,709 --> 00:04:32,170 ¿no está subiendo el array? 122 00:04:33,209 --> 00:04:34,829 sí, sí, sí 123 00:04:34,829 --> 00:04:37,129 Sí, ayer subí los que teníamos hechos hasta ayer 124 00:04:37,129 --> 00:04:38,129 ¿Vale? 125 00:04:39,550 --> 00:04:41,589 Sí, es que hasta ayer por la tarde no los subí 126 00:04:41,589 --> 00:04:46,829 Esto es para mostrar solo 127 00:04:46,829 --> 00:04:49,689 Esto de aquí es para mostrar el array 128 00:04:49,689 --> 00:04:59,110 He puesto menos menos 129 00:04:59,110 --> 00:05:01,009 Hombre, claro, es que estoy yendo de 130 00:05:01,009 --> 00:05:02,509 Atrás para adelante 131 00:05:02,509 --> 00:05:04,069 Entonces 132 00:05:04,069 --> 00:05:05,610 el siguiente 133 00:05:05,610 --> 00:05:08,550 sería lo mismo pero hacerlo 134 00:05:08,550 --> 00:05:09,189 n veces 135 00:05:09,189 --> 00:05:12,750 entonces claro, vamos a reutilizar 136 00:05:12,750 --> 00:05:14,589 código, la ventaja de la programación 137 00:05:14,589 --> 00:05:15,930 es que puedes reutilizar código 138 00:05:15,930 --> 00:05:18,389 si todo este código que he hecho aquí 139 00:05:18,389 --> 00:05:20,449 todo esto, es para desplazar 140 00:05:20,449 --> 00:05:22,449 una posición, pues si meto 141 00:05:22,449 --> 00:05:24,350 esto, todo eso, lo meto en un for 142 00:05:24,350 --> 00:05:26,569 que se ejecute 7 veces, entonces estaré 143 00:05:26,569 --> 00:05:28,050 desplazando 7 posiciones 144 00:05:28,050 --> 00:05:30,430 ¿vale? por eso la programación es modular 145 00:05:30,430 --> 00:05:32,670 tú tienes un código y lo reutilizas 146 00:05:32,670 --> 00:05:35,389 para que forme parte de otro más grande. 147 00:05:36,490 --> 00:05:37,009 Voy. 148 00:05:37,509 --> 00:05:39,569 Venga, pues vamos a...