20251117 EjerArrays_3 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Pues ahora sí, vamos a corregirlo.
00:00:01
Vale, el problema parte de dos arrays con números que ya rellenaremos.
00:00:18
Este array de aquí lo inicializo a la vez que lo declaro, no pasa nada.
00:00:30
Este otro array de aquí que lo inicializo a la vez que lo declaro, no pasa nada.
00:00:38
y este array de aquí, que como este array tiene que tener
00:00:42
los elementos de los otros dos, tendrá que tener el doble de posiciones
00:00:46
lógicamente, entonces este ejercicio está hecho para 5, 5 y 10
00:00:50
pero podría estar hecho para un array con N mayúscula
00:00:55
siendo N lo que sea, que yo he leído por teclado
00:00:59
otro array con N mayúscula siendo N lo que sea, y entonces este tendría que ser
00:01:02
2 por N, ¿vale? lo podríamos generalizar así
00:01:06
leyendo n por teclado y ya está
00:01:11
nos da lo mismo
00:01:13
vale, pues entonces
00:01:15
una vez rellenos los dos arrays
00:01:17
números 1 y números 2
00:01:21
que tienen las posiciones
00:01:23
que sean cada uno
00:01:30
5 en este caso
00:01:31
hay que construir el que tiene el doble de posiciones
00:01:33
pero claro
00:01:36
a la posición 0
00:01:41
¿cuál va?
00:01:43
la 0 de esta
00:01:45
pero a la 1 va a la 0 de esta otra.
00:01:46
A la posición 1, la posición 1 de esta va a la 2
00:01:51
y la posición 1 de esta va a la 3.
00:01:55
Entonces, primero tenemos que entender dónde va cada una, ¿no?
00:02:00
Se van a intercalar.
00:02:02
Entonces, ahora ya que entendemos lo que va pasando, pues lo vamos pensando.
00:02:03
Bueno, pues aquí yo de nuevo veo, así a simple vista,
00:02:07
estoy viendo de nuevo
00:02:12
una sucesión de pares y de impares
00:02:13
es decir
00:02:17
el array de arriba
00:02:18
sus elementos
00:02:20
van cayendo
00:02:22
en la 0
00:02:23
en la 0, en la 2
00:02:25
en la 4
00:02:31
en la 6, en la 0, 2
00:02:32
4 y 6 van cayendo
00:02:35
los elementos de la de arriba
00:02:37
y sin embargo
00:02:39
los elementos de la de abajo
00:02:41
Van cayendo
00:02:43
En la 1
00:02:45
En la 3
00:02:46
En la 5
00:02:48
¿Vale? Eso es lo que voy observando
00:02:50
Según voy analizando el problema
00:02:53
Entonces yo analizo el problema
00:02:55
Lo describo
00:02:57
Voy viendo un poquito cómo funciona
00:02:58
Y ya empiezo a ver a partir de ahí
00:03:00
Patrones, referencias
00:03:02
A cosas que ya sé, que ya he manejado
00:03:04
Empiezo a ver esas pequeñas
00:03:06
Referencias
00:03:09
A situaciones en las que ya
00:03:10
he lidio alguna vez
00:03:12
hombre, pues aquí estoy viendo que
00:03:13
las posiciones a donde van a caer
00:03:16
los números de la
00:03:19
de la raya de arriba
00:03:20
son una sucesión de pares
00:03:22
0, 2, 4, 6
00:03:23
sin embargo, las posiciones
00:03:25
a donde van a caer los números de abajo
00:03:28
es una sucesión de impares
00:03:30
1, 3, 5, 7
00:03:32
entonces ya sabemos como generar
00:03:33
una sucesión de pares
00:03:36
y una sucesión de impares
00:03:38
en particular la de impares ya la hemos generado a veces
00:03:39
Si yo quiero generar la sucesión de números impares, pues 2 por el generador que sea más 1.
00:03:41
Cuando x es igual a 0, ¿qué más se ve el azul?
00:03:50
Si yo tengo 2 por y o por x, me da igual más 1.
00:03:56
Entonces ya sabemos que esta función matemática, esta expresión matemática me va generando todos los impares para igual a 0, 1, 2, 3, ¿verdad?
00:04:07
Cuando y es igual a 0 me genera el 1, pero cuando y es igual a 1 me genera el 3, ¿verdad? Esto ya lo hemos manejado otras veces, me genera el 1.
00:04:19
pero cuando i es igual a 1 me genera el 3
00:04:28
y cuando i es igual a 2 me genera el 5
00:04:30
entonces esta función ya la hemos usado a veces
00:04:33
cuando necesitábamos generar una sucesión de impares
00:04:36
¿vale?
00:04:40
pues la sucesión de pares ¿cómo será?
00:04:41
pues en lugar de 2 por i más 1
00:04:44
2 por i
00:04:45
2 por i será la sucesión de pares
00:04:46
cuando i es igual a 0 me genera el 0
00:04:49
pero cuando i es igual a 1 me genera el 2
00:04:52
y cuando y es igual a 2 me genera el 4
00:04:56
entonces
00:04:59
estas dos expresiones
00:05:00
pues las tenemos ya
00:05:03
archivadas en nuestra cabeza, como tantas
00:05:05
cosas tenemos ya archivadas
00:05:06
con las que hemos trabajado
00:05:08
para yo identificarlas rápidamente cuando veo un problema
00:05:10
ya voy identificando y digo, ah vale
00:05:13
pues yo voy recorriendo
00:05:14
puedo hacerlo como
00:05:17
voy recorriendo estos arrays
00:05:18
para la posición 0, para la 1
00:05:20
para la 2, para la 3
00:05:23
y voy generando para cada posición
00:05:24
la 0, la 1, la 2, la 3
00:05:28
pues para cada una de ellas
00:05:30
voy generando el par y el impar
00:05:32
los dos
00:05:35
en el impar colocaré en la raíz de arriba
00:05:36
y en el par colocaré el de abajo
00:05:40
entonces se tratará de
00:05:42
a partir de las posiciones que hay aquí
00:05:44
la 0, la 1, la 2, la 3, la 4
00:05:46
a partir de estas posiciones
00:05:48
generar la sucesión de los pares
00:05:50
y la sucesión de los impares
00:05:53
esas sucesiones
00:05:56
me van a decir donde voy colocando
00:05:58
cada elemento
00:06:00
y ya está
00:06:01
más o menos con eso ya puedo tener una primera idea
00:06:03
de por donde tirar, como arrancar
00:06:06
entonces ahora ya pues
00:06:08
empiezo a dar forma, la empiezo a programar
00:06:09
y empiezo a afinar, a ver si lo completo
00:06:11
vale
00:06:14
pero identificar siempre pues todos los
00:06:15
cuando uno analiza un problema
00:06:18
va analizando patrones
00:06:19
que ya le recuerdan
00:06:22
le hacen traer
00:06:23
cosas con las que ya ha trabajado
00:06:25
¿vale? tenemos que apoyarnos siempre
00:06:29
en lo que ya sabemos, por eso es tan importante
00:06:31
la memoria para programar
00:06:33
¿vale? la memoria
00:06:35
lo más importante
00:06:37
lo segundo más importante
00:06:39
pegadito justo detrás de la memoria
00:06:42
el razonamiento lógico
00:06:43
claro, lo tercero
00:06:45
muy pegadito a lo anterior
00:06:48
la práctica, la práctica, la práctica
00:06:49
en la práctica, ¿vale?
00:06:51
Bueno, pues entonces, si ahora ya
00:06:54
con esta idea
00:06:56
intentamos hacerlo
00:06:56
pues
00:06:59
nos queda
00:07:01
esto, ¿vale?
00:07:03
Pues vamos a ir recorriendo
00:07:11
los arrays
00:07:12
números.length
00:07:15
números1, perdón, .length
00:07:25
vale, pues a ver
00:07:28
Y va variando entre 0, 1, 2, 3 y 4
00:07:31
Porque es 5, si fuera otro número, lo que fuera, y va variando
00:07:37
Pues con 2 por i, yo voy generando
00:07:40
Con 2 por i sé que voy generando los pares
00:07:44
Con esta expresión, 2 por i, iré generando
00:07:46
0, 2, 4, 6, que es justo
00:07:49
A la posición de mi array resultado que tengo arriba
00:07:53
A esta posición, que es justo
00:07:57
Donde quiero que vaya
00:08:00
Este
00:08:02
Es justo donde quiero que vaya este
00:08:03
¿Vale?
00:08:08
Cada
00:08:11
Todos y cada uno de las posiciones
00:08:12
Del primer array
00:08:14
Del de arriba
00:08:16
Van a ir ¿Dónde? A la 0
00:08:17
A la 2, a la 4
00:08:20
Si, no se lo asigno, ahora se lo
00:08:21
No lo relleno, ahora lo relleno, ¿Vale?
00:08:26
Si, estaba pensando en esto
00:08:27
Y ahora, 2 por i más 1
00:08:28
2 por i más 1
00:08:31
¿Qué me va generando?
00:08:35
Me va generando
00:08:37
1, 3, 5, 7
00:08:38
Que son justo las posiciones del array resultado
00:08:41
A donde van a ir
00:08:43
Las posiciones del segundo array
00:08:44
Son justo
00:08:47
Pues entonces son justo
00:08:48
Las posiciones
00:08:51
A donde van a ir los del otro array
00:08:52
¿Vale?
00:09:03
Entonces
00:09:05
La 0, 1, 2, 3 de cada uno de ellos
00:09:05
va a ir a la sucesión
00:09:09
de posiciones pares
00:09:10
y a la sucesión
00:09:12
de posición impares
00:09:15
a las de pares irá número 1
00:09:16
y a las de impares irá número 2
00:09:19
efectivamente no lo he rellenado
00:09:20
voy a rellenarlo
00:09:23
para no tener que meterlo por teclado
00:09:25
con números aleatorios
00:09:27
y así no tengo que cuando lo ejecute meterlo por teclado
00:09:29
todo el rato
00:09:31
entonces vamos a recorrer
00:09:32
y ahora
00:09:34
ah uy
00:09:43
Números 1 de i
00:09:45
Lo vamos a rellenar con
00:09:55
El resultado de generar un número aleatorio
00:09:57
Entre 0 y 100
00:10:01
Pero como esto me lo da en decimal
00:10:05
Me lo da en decimal
00:10:09
Pues le voy a hacer el casting entero
00:10:10
Y el otro array, números de 2 también
00:10:13
Números aleatorios para no andar ahí
00:10:21
Números 2
00:10:24
Vale
00:10:28
antes de hacer la mezcla
00:10:32
vamos a mostrarlos
00:10:34
para luego poder comprobar que realmente
00:10:36
se han intercalado bien
00:10:39
pues vamos a mostrar
00:10:40
otro array para mostrar
00:10:44
y luego introducimos
00:10:46
aquí vamos a mostrar
00:10:51
números
00:11:04
uno de i
00:11:10
y luego voy a mostrar el segundo
00:11:11
bueno voy a mostrar las posiciones
00:11:17
así
00:11:20
Números 2 de i
00:11:20
Vale, esto es solamente para mostrar
00:11:27
Todas y cada una de las posiciones de los dos arrays
00:11:29
La primera posición del primero
00:11:31
La primera posición del segundo
00:11:34
La segunda del primero
00:11:36
La segunda del segundo
00:11:37
Para luego comprobar si realmente se ha intercalado bien
00:11:38
Y ahora vamos a mostrar
00:11:41
El resultado
00:11:43
Vamos a mostrar el resultado
00:11:45
A ver si lo he intercalado correctamente
00:11:58
Vale
00:12:05
Pues esta sería nuestra primera versión del código
00:12:06
Una vez revisado
00:12:09
Vale, no tiene errores de compilación
00:12:12
Le veo sentido
00:12:14
Empezamos a hacer pruebas
00:12:15
Empezamos a hacer pruebas
00:12:17
A ver si esto funciona
00:12:19
Tiene errores
00:12:22
Vale, pues estos son los dos arrays
00:12:23
Y efectivamente
00:12:29
Los ha ido intercalando
00:12:32
36, 44
00:12:33
88, 12
00:12:36
39, 37
00:12:38
Pues sí, ha rellenado dos arrays con números aleatorios y luego ha generado uno con diez posiciones, que es este, donde he ido intercalando los demás, ¿vale?
00:12:40
Subir es esto, ¿vale? Pues esta sería la primera aproximación de esa otra manera, recorriendo la array grande.
00:13:07
Si estoy en posición par, lo relleno con el de arriba y si estoy en posición impar, lo relleno con el de abajo.
00:13:22
primera aproximación
00:13:28
pero claro, no, ya se ponía a pensar
00:13:30
y si hiciera las pruebas
00:13:33
ya vería que no me funciona
00:13:35
pero si se ponía a pensar lo diría, claro
00:13:36
en la posición 0
00:13:39
cuando ires la 0 yo quiero la 0
00:13:41
cuando i avanzado
00:13:42
y estoy en la 1
00:13:45
genial, estaré poniendo la 1
00:13:46
ahora i a vuelto a avanzar, estoy en la 2
00:13:48
¿qué números no tengo que poner?
00:13:51
según esto estaré poniendo la posición 2
00:13:55
de número 1, no, no, no
00:13:57
No, la posición 2 no, te está saltando 1, ¿vale?
00:13:58
Es decir, con esto que estamos haciendo aquí, estaríamos haciendo lo siguiente.
00:14:01
Con esto que estamos haciendo aquí, tengo el array de arriba, números 1.
00:14:15
El array de abajo, números 2.
00:14:23
Y luego tengo el resultado, con el doble de posiciones.
00:14:28
Resultado
00:14:32
Para la posición 0
00:14:37
Esto no cambia de colorcito solo
00:14:39
Para la posición 0
00:14:45
Como es par
00:14:49
Estupendo
00:14:50
En la posición 0 irá este
00:14:51
El 1, muy bien va el 1
00:14:54
Ahora salto a la posición 1
00:14:56
Que es esta, muy bien
00:14:58
La 0, la 1, la 0, la 1
00:14:59
Salto a la 1
00:15:01
En la 1, como es impar
00:15:02
Oye, dame la posición 1 de este
00:15:05
Primer problema
00:15:08
Imaginaos que aquí hay un 2 y un 3
00:15:09
Primer problema, no, es que en la 1 no quiero la posición 1 de este
00:15:12
No quiero la misma, quiero la primera
00:15:17
El problema es que en este for yo voy recorriendo la 0, la 1, la 2 y la 3
00:15:19
Pero las tengo que ir rellenando con las posiciones equivalentes del otro
00:15:26
Es decir, la 1 no va con la 1 de este, sino con la 0
00:15:30
Y la 3, 0, 1, la 3 no va con la 3 de este, sino con la 1, ¿vale?
00:15:34
O sea, el problema está claro, porque no nos funcionaría.
00:15:42
Otra cosa es cómo lo arreglamos, ¿vale?
00:15:44
Pero entendéis que este haría a la 0 de este, la 0, muy bien.
00:15:47
A la 1, la 1, fatal, quiero la 0.
00:15:51
A la 2, la 2 de este, no, no, no, perdona, te ha saltado esta.
00:15:55
A la 3, la 3 de este, no, no, perdón, quiero esta.
00:15:59
¿vale? entendéis que los índices
00:16:02
no van a la par
00:16:04
en el recorrido del de abajo
00:16:06
no van a la par con los de arriba
00:16:08
entonces el problema está claro
00:16:10
¿no?
00:16:12
¿por qué no funcionaría?
00:16:16
¿está más o menos claro?
00:16:19
porque esta asignación
00:16:20
esta posición
00:16:21
y esta posición no son la misma
00:16:23
a la cero
00:16:26
sí que va a la cero, pero a la uno
00:16:27
no va a la uno de estas, sino a la cero
00:16:30
de estas
00:16:32
y a la 1 de esta
00:16:32
no va la
00:16:35
y a la 2
00:16:35
no va la 2 de esta, sino la 1
00:16:37
y a la 3 de aquí
00:16:40
no va la 3 de esta, sino la 1
00:16:42
es decir, van por
00:16:44
van por libre
00:16:46
entonces estas posiciones
00:16:47
nos las tenemos que ir ingeniando
00:16:49
para que no sigan la secuencia
00:16:52
de las de arriba, estas posiciones en la
00:16:54
primera iteración
00:16:56
¿vale? esta posición tiene que ser
00:16:57
cero, y en la siguiente
00:17:00
iteración no tiene que
00:17:02
haber cambiado, y ya en la
00:17:04
siguiente tiene que haber cambiado, entonces este
00:17:06
índice tiene que ser otro
00:17:08
este índice tiene que ser otro, que vaya por libre
00:17:09
llamémosle x
00:17:12
y este tiene que ser otro
00:17:13
llamémosle y, que empiezan valiendo
00:17:15
cero, y se incrementan
00:17:18
solo cuando usamos
00:17:20
su valor, solo, pero
00:17:22
son dos índices que van por libre, empiezan valiendo
00:17:24
cero, eso sí, y se incrementan
00:17:26
solo cuando usamos su valor
00:17:28
Entonces, esto pues lo podríamos hacer así
00:17:30
Por ejemplo, pues, ¿vale?
00:17:38
Aquí, por ejemplo
00:17:48
Yo aquí he aprovechado ya, he metido tres variables
00:17:49
¿Vale?
00:17:58
He metido tres variables
00:18:01
He metido tres
00:18:02
Este va a ser el indicador de la posición en la que estoy
00:18:07
del array grande, el indicador de la posición del array
00:18:12
números 1 y el indicador de la posición del array números 2, entonces
00:18:16
para la primera posición del array que es par
00:18:20
pues le asigno la primera de x y ya x
00:18:24
lo dejo incrementado, ya x lo dejo incrementado
00:18:28
para que la siguiente vez que asigne una posición de números 1 sea
00:18:31
la siguiente y aquí no le asigno
00:18:36
la i, le asigno su posicionador
00:18:41
que es el i, y lo dejo incrementado
00:18:42
para que la siguiente vez que lo use
00:18:45
asigne la siguiente
00:18:47
entonces estas posiciones empiezan en 0
00:18:48
también las dos empiezan en 0
00:18:51
pero se van incrementando
00:18:52
solo cuando se usan
00:18:56
no en cada iteración del bucle, no en cada iteración
00:18:58
solo cuando se usan
00:19:00
cuando i es igual a 0
00:19:02
como es par, estoy usando la posición 0
00:19:04
y se queda incrementado a 1
00:19:06
cuando i es igual a 1
00:19:07
vengo por aquí
00:19:10
asigno y que es igual a 0 y la dejo
00:19:12
incrementada a 1, pero la x sigue
00:19:14
siendo 1, la de antes
00:19:16
vale, o sea estas son
00:19:18
las posiciones que yo voy cogiendo
00:19:20
de esos dos a raíz, las voy
00:19:23
cogiendo según las necesito
00:19:24
para la 0, cojo la 0
00:19:26
y la dejo incrementada
00:19:28
para la 1, cojo la 0
00:19:30
y la dejo incrementada
00:19:32
para la 2, cojo la 1, que era como se había
00:19:33
quedado antes y la dejo incrementada
00:19:36
para la 3, cojo
00:19:39
la 1, que era como si había que la 2, perdón
00:19:41
cojo la 1 y la dejo incrementada
00:19:43
este es el indicador
00:19:44
de la posición de números
00:19:47
1 y números 2 en el que estoy
00:19:49
entonces no tendría sentido que
00:19:50
aquí yo dijera
00:19:56
ah bueno, lo voy a poner aquí
00:19:58
los incrementos los voy a poner ahí
00:19:59
no, no hay no, porque entonces se incrementaría
00:20:02
en cada vuelta, no, en cada vuelta
00:20:04
no, este se incrementa solo
00:20:06
cuando lo uso, solo cuando lo uso
00:20:08
cuando he entrado en el else, ese
00:20:10
no se incrementa, ese no se toca
00:20:12
y este se incrementa solo cuando lo uso
00:20:14
para apuntar al siguiente
00:20:17
para apuntar al siguiente, no en cada vuelta
00:20:18
en el if no
00:20:20
se incrementan solo en la iteración en la que
00:20:21
entramos, cuando se usa
00:20:25
no siempre, por eso no lo pondría aquí
00:20:26
esto
00:20:28
no lo pondría ahí, vale
00:20:29
pues vamos a ver si se han
00:20:35
intercalado bien de esta otra manera
00:20:40
a ver si lo hemos hecho bien
00:20:43
vale
00:20:49
a ver
00:20:55
15, 1, 51, 45
00:20:57
15, 1, 51, 45, sí
00:20:59
Se han intercalado exactamente igual
00:21:01
Que de la otra manera
00:21:04
Se ha hecho bien
00:21:05
¿Vale?
00:21:07
Bueno, otra forma de hacerlo
00:21:16
Que entiendo que es por la que tú
00:21:17
Querías hacerlo, ¿no?
00:21:19
¿Y cuál era tu problema?
00:21:22
Pues a lo último
00:21:23
Que en vez de ponerlo
00:21:24
El x más más
00:21:26
En el y
00:21:28
Lo hacía en cien
00:21:30
Claro, entonces te ibas saltando
00:21:32
Posiciones que no se llegaban a asignar
00:21:35
Nunca porque te las estabas saltando
00:21:37
Vale
00:21:39
Y de hecho te saldría en algún momento
00:21:41
Una rain desbound exception
00:21:44
Porque llegaría el momento en que la X se sale del 5
00:21:46
Claro
00:21:49
Llega hasta 10 de hecho
00:21:50
Bueno, más o menos, ¿entendido?
00:21:52
Más o menos
00:21:57
Vale, pues
00:21:58
Siguiente
00:22:02
¿Qué vais y vamos a hacer?
00:22:07
¿Tenéis alguna petición o elijo?
00:22:10
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 2
- Fecha:
- 17 de noviembre de 2025 - 18:26
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 22′ 15″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 600.24 MBytes