20251119 EjerArrays_7 - 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, dime, en el 19, partimos de esa premisa, asumimos que lo va a hacer así, vale, luego lo hacemos si queréis, venga, pues vamos al 9, vale, venga, el 9, que nos dice el 9, nos dice, dos arrays de 12,
00:00:00
A ver, vamos a hacerlo para que en lugar de 12 sean del tamaño que me diga el usuario.
00:00:30
¿De qué tamaño quieres el array?
00:00:36
De este.
00:00:38
¿Vale? Y así no es siempre 12.
00:00:39
Bueno, pues dos arrays del tamaño que me diga el usuario.
00:00:41
Vamos a hacer un tercero que vaya intercalándolos, pero de 3 en 3.
00:00:44
¿Vale?
00:00:49
Sería la versión más complicada del 8.
00:00:50
El 8 los va intercalando de 1 en 1.
00:00:52
El 9 los va intercalando de 3 en 3.
00:00:55
Pues venga, como vamos a pedirle al usuario datos por teclado, pues esto lo necesitamos
00:00:58
Ahora, lo primero que le pedimos
00:01:08
Lo primero que le pedimos es tamaño del array
00:01:16
Para que el ejercicio tenga sentido, como es coger 3 de uno, 3 de otro, 3 de uno, 3 de otro
00:01:21
Para que tenga sentido vamos a decirle que sea múltiplo de 3
00:01:35
porque aquí en el enunciado original
00:01:39
me daban ya un número 12 que es múltiplo de 3
00:01:41
vamos a pedirle que sea múltiplo de 3
00:01:44
¿vale? para que tenga sentido
00:01:46
tamaño del array múltiplo de 3
00:01:48
y ya que estamos tuneando
00:01:51
vamos a hacer una validación
00:01:57
para asegurarnos de que realmente
00:02:00
mete uno múltiplo de 3
00:02:02
bueno, de hecho, aunque es una complejidad
00:02:04
pues bueno, para seguir practicando sobre lo mismo
00:02:08
vamos a validarlo de tal manera
00:02:11
Que no solo validemos que es múltiplo de 3
00:02:13
Sino que además me meta realmente una cifra
00:02:16
Es decir, no me meta hola, ¿qué tal?
00:02:19
Porque entonces me daría un error, ¿verdad?
00:02:22
Entonces vamos a validar la entrada
00:02:24
Validamos la entrada
00:02:26
Para que sea número
00:02:31
Y múltiplo de 3
00:02:35
¿Vale?
00:02:38
Pues entonces, ¿qué significa eso?
00:02:43
Este es el numerito n
00:02:45
que va a ser el tamaño del array que le hemos pedido
00:02:47
este es el numerito n
00:02:51
y lo vamos a estar leyendo todo el rato
00:02:52
mientras
00:02:54
no cumpla la condición de
00:02:55
ser número y múltiplo de 3
00:02:59
entonces esta validación
00:03:03
la podríamos hacer
00:03:05
mientras n
00:03:06
mientras n no sea número
00:03:09
¿cómo ponemos la condición de no ser número?
00:03:13
No es tan fácil
00:03:16
¿Vale?
00:03:18
Entonces vamos a poner aquí un boolean
00:03:19
O sea, no es como múltiplo de 3
00:03:21
Que la podemos poner aquí un boolean
00:03:22
Es número
00:03:23
¿Vale?
00:03:25
Es número
00:03:26
Entonces
00:03:27
Mientras n
00:03:28
Mientras
00:03:30
No sea número
00:03:34
O
00:03:38
Además de no ser número
00:03:39
Espera, vamos a hacer en otro sentido
00:03:42
Es que complico yo mucho la vida con esto
00:03:44
Mientras n
00:03:47
Siendo n
00:03:49
el resultado de haber hecho la lectura
00:03:50
mientras n mayúscula
00:03:52
perdón
00:03:55
siendo n el resultado de haber leído del teclado
00:03:55
scan.nextint
00:03:59
sea
00:04:01
múltiplo
00:04:02
no múltiplo de 3
00:04:04
vale
00:04:06
vale, vale, no es que lo estoy
00:04:07
no, porque para validar que sea número
00:04:12
tengo que leer con nextline
00:04:13
vale, no, no lo puedo hacer en el mismo bucle
00:04:15
vale, porque si lo leo con nextint
00:04:17
y no es número
00:04:20
me va a dar una excepción y separa el programa
00:04:21
que no es lo que quiero, entonces
00:04:23
vamos a leer el numerito, vale
00:04:25
lo tenemos que leer con next line
00:04:28
vale, n igual
00:04:30
a scan punto
00:04:33
next line, vale
00:04:34
lo tenemos que leer así, porque
00:04:37
si él me introduce hola
00:04:39
por las buenas, y yo lo he leído
00:04:40
con next in, el programa
00:04:42
pararía y se detendría, y yo no quiero
00:04:44
que pare y se detenga, yo quiero que
00:04:46
él me pueda introducir cualquier cosa
00:04:48
yo verificar si realmente me ha introducido un número
00:04:50
múltiplo de 3, si me lo ha introducido
00:04:53
sigo haciendo cosas y si no me lo ha introducido
00:04:57
le vuelvo a pedir, vale, pues entonces lo tengo que leer con next line
00:04:59
para que no se detenga, con lo cual esta
00:05:03
declaración es string
00:05:05
el dato leído
00:05:08
vale, entonces
00:05:11
vale, pues ahora
00:05:14
vamos a ver si es número o no es número
00:05:17
Para ver si es número o no es número
00:05:19
Tengo que ir cifra por cifra
00:05:22
Viendo si cada una
00:05:24
De las cifras
00:05:26
Cumple la condición de ser un número
00:05:27
De la tablasti
00:05:29
Entonces eso de nuevo es ver si algo ocurre o no ocurre
00:05:30
Pues boolean
00:05:34
Es número
00:05:35
Yo parto de partida que es igual a true
00:05:36
Que todas son cifras
00:05:39
Y voy a ver ahora si encuentro un contraejemplo
00:05:41
Pues me voy a ir
00:05:43
Por todas las
00:05:45
Posiciones
00:05:47
del string, desde i igual a 0
00:05:49
mientras i sea menor que dato
00:05:51
leído
00:05:53
punto leed
00:05:54
incrementando i
00:05:57
vale, para todos y cada una
00:06:01
si alguno de los
00:06:03
char en esa posición
00:06:06
si alguno de los char
00:06:07
en la posición i
00:06:09
resulta que no cumple
00:06:13
la condición de ser cifra
00:06:16
ya es número y lo puedo poner a falso
00:06:17
y esa condición cual será
00:06:19
la de, tendremos que abrir la tabla ASTI
00:06:20
vale, aquí es 48 y 57
00:06:24
entre 48 y 57, vale, pues la condición sería
00:06:28
si es menor que 48
00:06:32
o es mayor
00:06:37
que 57
00:06:42
o es mayor que
00:06:44
57
00:06:58
pues entonces ya sé que automáticamente
00:07:00
la cifra
00:07:03
en esa posición no es un
00:07:05
número realmente, o sea el carácter
00:07:07
perdón, el carácter de esa posición no es una cifra
00:07:09
con lo cual ya puedo concluir
00:07:11
que es
00:07:13
número
00:07:15
perdón, que es número aquí
00:07:16
vale, que es número
00:07:18
es igual a falso
00:07:23
vale
00:07:25
pero no es lo único que tengo que validar
00:07:26
tengo que validar
00:07:29
que además sea múltiplo de 3
00:07:31
entonces ahora ya sí que puedo arrancar el bucle
00:07:33
entonces, mientras
00:07:35
esto
00:07:37
no sea número
00:07:39
o
00:07:40
o siendo número
00:07:45
¿vale?
00:07:48
o siendo número
00:07:53
no sea múltiplo de 3
00:07:54
¿vale? ¿cómo puedo comprobar si es
00:07:57
múltiplo de 3?
00:07:58
¿vale? pues el dato leído
00:08:00
¿cómo lo puedo convertir a entero?
00:08:03
con el integer parse in, ¿verdad?
00:08:04
Con el par 0.
00:08:07
Pues si el par 0, si no es número,
00:08:09
o siendo número,
00:08:12
aquí pongo el doble or,
00:08:15
para que entre aquí solo si este es true,
00:08:17
o siendo número,
00:08:20
si yo hago el resto de dividirlo entre 3,
00:08:22
resulta que es diferente de 0,
00:08:25
pues entonces,
00:08:29
si esto no ocurre,
00:08:30
Tengo que volver a pedir el número otra vez
00:08:32
Voy aquí
00:08:34
Este mensajito
00:08:36
No, no, no
00:08:37
Esto ha sido por introducir
00:08:42
Una validación por practicar con más cosas
00:08:44
Porque el programa era
00:08:46
12
00:08:48
Yo aquí le voy a pedir el número para que el tamaño
00:08:49
De la raíz sea un número personalizado
00:08:52
Pero voy a validar
00:08:54
Que sea realmente un número
00:08:56
Y múltiplo de 3
00:08:58
Para introducirle eso y así podemos hacer
00:09:00
Hacemos más cosas
00:09:02
Vale, pues entonces
00:09:03
Introduzca número, vale, pues
00:09:05
Si
00:09:08
He entrado en el while
00:09:08
Es porque necesito pedir el número
00:09:10
Otra vez
00:09:14
Pues entonces vuelvo a pedir el número
00:09:14
Y me vuelvo a hacer
00:09:17
La condición
00:09:20
Aquí para
00:09:21
Si es número o no
00:09:23
Entonces todo esto otra vez
00:09:25
Me lo tengo que copiar y pegar
00:09:27
Entonces
00:09:28
Un rollo porque
00:09:30
no sabemos hacer métodos
00:09:34
auxiliares, cuando sepamos hacerlo
00:09:37
estos códigos van a ser infinitamente
00:09:38
más claros
00:09:40
entonces, fijaos, todo lo que he hecho
00:09:42
solo para validar que
00:09:47
esta cadena que
00:09:48
he metido
00:09:50
sea una sucesión
00:09:51
de cifras y además múltiplo de 3
00:09:54
entonces lo primero es
00:09:56
he verificado a ver si es una sucesión de cifras
00:09:59
con este código
00:10:02
este es más fácil de entender
00:10:04
de partida asumo que sí, que es una sucesión
00:10:05
de cifras, ahora voy
00:10:08
una por una, en cuanto alguna de ellas
00:10:10
se convierta en contraejemplo
00:10:12
asumo que esto es falso
00:10:14
y ahora
00:10:15
me meto en el bucle, mientras no sea
00:10:17
número o
00:10:20
siendo número
00:10:21
al convertirlo a entero me de múltiplo de 3
00:10:23
diferente de 0, entras otra vez
00:10:26
y al entrar, ¿qué vas a hacer?
00:10:28
volver a pedir el número
00:10:30
y volver a mirarme
00:10:31
si es número o no
00:10:33
entonces, este código
00:10:34
solo para validar, cuando salga del while
00:10:42
es porque ambas son falsas
00:10:44
es decir
00:10:47
porque
00:10:48
lo que yo acabo de leer aquí en dato leído
00:10:49
ha cumplido que esto es true
00:10:52
luego es un número
00:10:54
y además es múltiplo de 3
00:10:55
cuando las dos sean falsas
00:10:58
es cuando va a salir del while
00:11:00
cuando las dos sean falsas
00:11:02
entonces esto es
00:11:03
un buen ejemplo
00:11:08
de la importancia
00:11:11
de usar
00:11:13
el doble AND
00:11:15
o el simple AND
00:11:17
este es un buen ejemplo estupendo
00:11:18
si yo aquí pongo un simple AND
00:11:20
pongo una simple barrita
00:11:23
él va a evaluar
00:11:26
las dos siempre
00:11:27
entonces imaginaos que esta le ha dado
00:11:28
true, si le ha dado true
00:11:30
significa que eso no es
00:11:33
una sucesión de cifras
00:11:35
porque no es
00:11:37
número, legado a true no es una sucesión
00:11:39
de cifras, entonces como aquí
00:11:40
hay solo una barrita, aunque el or
00:11:42
ya sé que va a ser true sí o sí
00:11:45
porque true, or, lo que sea
00:11:46
es true, ya lo sé, pues al haber
00:11:48
solo una barrita, evalúa la segunda
00:11:51
cláusula igualmente, porque hay solo una
00:11:53
pues al evaluar la segunda cláusula
00:11:55
resulta que el integer
00:11:57
cuando tú le das una cadena
00:11:58
que no es una sucesión de cifras, pum
00:12:00
te peta y te para la aplicación
00:12:02
porque te dice no puedo convertir eso entero
00:12:05
porque me has pasado hola que tal
00:12:06
y eso no puedo
00:12:08
entonces aquí fundamental
00:12:09
aquí si tiene una trascendencia
00:12:13
crítica, poner las dos
00:12:15
barras, porque cuando no es
00:12:17
un número, es decir, cuando esto ya es true
00:12:19
yo no quiero que haga esto jamás
00:12:20
porque si lo hiciera el programa pararía
00:12:22
porque habría una excepción
00:12:24
entonces aquí tengo que poner las dos
00:12:25
para que en el caso de que
00:12:29
esto no sea un número, esto ya ni lo
00:12:31
mire, esto ya ni lo mires
00:12:33
Porque si tratas de mirar
00:12:34
Si hola es múltiplo de 3
00:12:36
Es imposible, te voy a parar el programa
00:12:38
Entonces, si esto es true
00:12:39
Esto ni lo mires
00:12:42
¿Vale?
00:12:43
Luego aquí no tenemos elección
00:12:45
Tenemos que poner doble barra, no hay elección
00:12:46
Esto no es
00:12:48
Esto no es
00:12:50
Mientras no sea múltiplo de 3
00:12:56
No, porque tú sigues pidiéndolo
00:12:58
Mientras no sea número
00:13:04
mientras no sea número
00:13:05
mira si es múltiplo de 3
00:13:07
no, no, no, mientras no sea número
00:13:08
o siendo número
00:13:11
no sea múltiplo de 3, vuelves a entrar
00:13:13
entonces, cuando no sea
00:13:15
número, esto entero
00:13:17
ya es true, entonces al ser
00:13:19
true, la segunda parte ni te la evalúa
00:13:21
porque true or
00:13:23
lo que sea es true, me da
00:13:25
igual que la segunda parte sea falso o true
00:13:27
el or final va a ser true
00:13:29
con lo cual, si esto es true
00:13:31
y esto es el negado
00:13:33
de ser número, es decir, cuando no lo sea
00:13:35
ya no va a entrar
00:13:37
en la segunda parte de Lord
00:13:39
que es lo que queremos, que no entre si no es número
00:13:40
porque cómo va a convertir a entero
00:13:43
algo que no es número, no podría
00:13:45
¿vale?
00:13:46
entonces cuando cualquiera de las dos
00:13:49
se da, cualquiera de las dos
00:13:51
porque podría ser número, con lo cual
00:13:53
esto es falso, porque es un numerito
00:13:55
entonces sí que entraría aquí
00:13:57
porque esta es falsa, luego Lord depende ya de la segunda
00:13:58
parte
00:14:01
convertiría y no habría problema
00:14:02
porque ha sido número, porque de hecho
00:14:05
esto ha sido falso, convertiría
00:14:07
y al no ser múltiplo de 3
00:14:08
pues seguiría siendo falso
00:14:11
la agregada, entraría en el while
00:14:13
a pedir el siguiente, etc
00:14:15
bueno, pues todo esto solo
00:14:16
es para hacer la validación
00:14:19
si esto que yo he leído
00:14:20
es una sucesión de cifras que además
00:14:22
compone un número entero o no
00:14:25
vale, cuando yo
00:14:26
he salido ya del while
00:14:30
Ahora ya sí que sí
00:14:31
Me hago mi tamaño del array
00:14:33
Con el parseador ese maravilloso
00:14:37
¿Cómo lo llamáis?
00:14:40
Con el parsero
00:14:43
Pues ya el parsero
00:14:45
Nos ha convertido
00:14:52
La cadena leída a entero
00:14:54
Y ahora yo ya
00:14:56
Como aquí ya hay un código medio raro
00:14:58
Ya largo, tendría sentido
00:15:01
Hacer unas primeras pruebas
00:15:02
Porque aquí podemos haberla cagado
00:15:04
Vamos a hacer unas primeras pruebas
00:15:06
A ver si realmente el programa
00:15:09
Me está todo el rato pidiendo el número
00:15:10
Mientras no sea
00:15:12
Y no se llega a parar nunca
00:15:13
Vamos a probarlo porque no las tengo todas conmigo
00:15:16
Que no hayamos escrito aquí algo mal
00:15:19
Más, me voy a dar mal
00:15:20
Jolín
00:15:22
A ver
00:15:23
Vamos a ponerle aquí
00:15:24
El tamaño de la raíz
00:15:27
Será
00:15:31
El numerito este
00:15:32
que me han pedido que será múltiplo de 3
00:15:34
venga
00:15:37
lo ejecutamos
00:15:39
tamaño de la raíz, introduzca número 4
00:15:40
me sigue pidiendo
00:15:49
pero no es múltiplo de 3
00:15:51
y me sigue pidiendo
00:15:52
efectivamente yo le he metido algo que es una cadena
00:15:54
y tampoco le gusta
00:15:57
introduzca número
00:15:59
87
00:16:00
pues 87 es múltiplo de 3
00:16:02
vale, con lo cual
00:16:05
ya si que se ha quedado con el 87
00:16:07
Vale, pues esta primera validación parece que funciona
00:16:09
Está así todo el rato mientras yo le meta algo
00:16:12
Que es o cadena o número diferente de múltiplo de 3
00:16:14
Vale, pues ahora ya sí que hacemos el ejercicio sí o sí
00:16:19
Vamos a declararnos los arrays
00:16:23
Los arrays originales de partida
00:16:25
Array 1
00:16:28
Que será new int
00:16:31
De N mayúscula
00:16:33
Array 2
00:16:36
que será
00:16:40
un new int
00:16:43
de n mayúscula
00:16:46
y el resultado
00:16:48
lo pongo aquí abajo
00:16:50
que será
00:16:52
un array
00:16:54
de el doble
00:16:55
vamos cogiendo
00:16:58
3 de cada uno
00:17:00
tendrá el agregado de todos
00:17:02
pues el resultado va a ser
00:17:03
de 2 por n
00:17:06
uy que tontería hago aquí
00:17:08
resultado igual a
00:17:10
new int
00:17:12
de 2 por n
00:17:13
vale
00:17:16
y ahora ya es cuando
00:17:18
podemos pensar
00:17:26
como hacemos esto
00:17:27
vale pues
00:17:29
a ver
00:17:33
si
00:17:34
vale pues como lo habéis
00:17:40
pensado vosotros
00:17:50
imagino que muchos lo habéis hecho ya
00:17:51
Claro, pues
00:17:53
Hay muchas posibilidades
00:17:58
Supongo
00:18:02
3, 4, 5, 6
00:18:03
Aquí tenemos el otro
00:18:08
¿Vale?
00:18:09
Y el
00:18:15
Resultante
00:18:16
Bueno, espera, vamos a poner
00:18:19
La pizarra
00:18:20
Normal
00:18:23
Que ahí no se ve muy bien
00:18:24
Vale, la pizarrita
00:18:26
Bueno
00:18:32
Así más bonito
00:18:32
1, 2, 3, 4, 5, 6
00:18:35
Esta
00:18:39
Y ahora
00:18:44
El resultante que tiene el doble
00:18:48
Bueno, pues como lo habéis
00:18:50
Planteado, que es lo que habéis hecho
00:18:58
Los que lo habéis hecho
00:19:00
Primero
00:19:01
Hay que ir
00:19:03
Haciendo tres posiciones en cada
00:19:04
Claro
00:19:06
A ver
00:19:07
Podríamos, el tema es en el for que hagáis
00:19:17
El for que hagamos
00:19:22
El i del for
00:19:23
Que va a ir recorriendo
00:19:24
Si las posiciones del de abajo
00:19:27
O las posiciones de los de arriba
00:19:29
Y se van generando las de abajo multiplicando
00:19:31
Si va recorriendo las de arriba
00:19:33
Para i igual a 0 tendrá que generar la 0, la 1 y la 2 del de arriba, de la raíz primero
00:19:35
Y para i igual a 1 tiene que generar la 0, la 1 y la 2 de la raíz segunda
00:19:53
para i igual a 0
00:20:05
copia esta y esta
00:20:12
entonces seguimos en i igual a 0
00:20:15
para i igual a 0
00:20:16
tiene que generar
00:20:19
la 0, la 1 y la 2 de la raíz
00:20:20
segunda, copiarlo donde
00:20:23
si, perdón
00:20:25
0, 1 y 2
00:20:26
a la 0, 1 y 2
00:20:29
y la 0, 1 y 2
00:20:31
a la 3, 4
00:20:33
y 5
00:20:35
la 0, 1 y 2
00:20:35
de la raíz de arriba
00:20:39
la 0, 1 y 2 de este
00:20:40
y la 0, 1 y 2 de este
00:20:41
que estos van en paralelo
00:20:44
te generas este multiplicado por 3
00:20:45
y a sus consecutivas
00:20:48
entonces es una posibilidad
00:20:50
ir recorriendo
00:20:52
los a raíz de arriba de 3 en 3
00:20:53
esta
00:20:57
luego ya salta 0, 1, 2
00:20:58
saltas a la 3
00:21:00
luego ya saltas, ahora vas recorriendo de 3 en 3
00:21:01
3, 4, 5, saltas a las 6
00:21:04
vas recorriendo de 3 en 3
00:21:06
vas recorriendo los arrays de arriba
00:21:07
de 3 en 3
00:21:10
y ahora ya, para cada posición en la que te paras
00:21:11
haces 3 copias
00:21:14
y lo que tienes es que
00:21:17
generar donde lo vas copiando
00:21:18
pues vas copiando
00:21:20
en la que es del
00:21:22
de array de arriba
00:21:24
la que estás y del de array de abajo
00:21:25
en el que
00:21:28
estás, pero el de
00:21:30
la raíz de abajo, le sumas 3
00:21:32
más
00:21:35
me he explicado fatal, pero bueno
00:21:35
sabéis a lo que me refiero, aunque me he explicado
00:21:37
de pena, entonces
00:21:41
vamos a intentar hacerlo
00:21:42
más o menos con la idea esa, ir recorriendo
00:21:43
de 3 en 3
00:21:46
y en cada parada
00:21:48
pues tengo que decidir
00:21:49
donde me toca del de abajo
00:21:52
hacer las 6 copias
00:21:54
que tengo que hacer
00:21:56
a ver
00:21:57
Las 6 copias, 3 de cada uno
00:21:59
Bueno
00:22:03
Pues entonces
00:22:09
Mientras i sea menor que n
00:22:12
Que es el tamaño de los de arriba
00:22:18
Ay, perdón
00:22:20
i más igual 3
00:22:21
Vale
00:22:38
Dime
00:22:39
¿De dónde vas a sacar los números?
00:22:43
Los voy a sacar de array 1 y array 2
00:22:48
Y voy a ir copiando el resultado
00:22:50
Ah, vale, vale, que no los he rellenado
00:22:52
Sí, sí, sí, tienes toda la razón
00:22:57
Sí, sí, no los he rellenado, vale
00:22:59
Pues
00:23:01
Los voy a rellenar
00:23:02
En aleatorio para no meterlos
00:23:09
Vale, y aquí sería
00:23:10
Array
00:23:13
Uno de i
00:23:15
Igual a
00:23:17
Vamos a convertir a int
00:23:19
Un número aleatorio
00:23:21
Multiplicado
00:23:24
por 100
00:23:28
por ejemplo
00:23:30
y array 2
00:23:31
lo mismo
00:23:34
array 2, vale, luego
00:23:35
este es el posicionador
00:23:50
de arriba
00:23:53
vale, el posicionador
00:23:55
de arriba, y ahora el posicionador de abajo
00:23:57
y
00:23:58
o sea, y es el índice de los dos
00:24:00
arrays de arriba, que va para
00:24:03
del 0, 3, 6
00:24:04
pero luego necesito otro índice
00:24:06
para indicar donde voy copiando abajo
00:24:08
¿Vale? Entonces ese índice
00:24:10
¿Cómo le podemos llamar?
00:24:13
Pues j, ¿verdad?
00:24:15
j empieza valiendo 0
00:24:16
Entonces
00:24:17
Aquí
00:24:19
Resultado de j
00:24:25
De j más 1 y de j más 2
00:24:27
Sería
00:24:30
Array 1 de
00:24:32
i y más 1
00:24:33
Y más 2, ¿verdad?
00:24:36
Sí, es que es un poco lioso
00:24:41
Ya, ya, ya
00:24:42
Es que es un poco lioso
00:24:44
Vamos a intentar tenerlo claro en la pizarra
00:24:46
Lo que vamos a escribir
00:24:48
Porque si no se queda un poquito lioso
00:24:49
Porque uno se puede poner aquí a escribir
00:24:51
Y el que lo escribe, bueno, sí
00:24:52
En el mejor de los casos lo ve
00:24:54
Pero el otro, pues no lo ve
00:24:56
Vale
00:24:57
A ver
00:24:58
Vamos a intentar
00:25:02
Verlo en la pizarra
00:25:06
Que es como vosotros
00:25:10
En un caso similar tendréis que hacerlo en un examen
00:25:12
Pues, hombre, si no le sale de cabeza fenomenal
00:25:15
Pero normalmente
00:25:17
pues uno tiene que hacerse primero
00:25:18
su composición de lugar en el papel
00:25:21
vale
00:25:23
para
00:25:24
entonces
00:25:25
vale, los arrays originales
00:25:27
estos
00:25:41
el i se va a referir
00:25:45
a la posición que estoy en el
00:25:47
array de arriba y luego tengo
00:25:49
mi array resultado
00:25:51
y con el j me voy a referir
00:25:52
a donde escribo de mi array resultado
00:26:03
con el i me refiero
00:26:06
la posición en la que estoy arriba
00:26:08
y con el J me refiero
00:26:09
a la posición en la que estoy en el de abajo
00:26:12
¿no? vale
00:26:14
entonces en cada iteración
00:26:15
el I de arriba
00:26:18
va de 3 en 3, es una posibilidad
00:26:19
que estamos en sobre la marcha, entonces en la primera
00:26:22
iteración el I se para en la 0
00:26:24
para trabajar con
00:26:26
estos 3 primeros, para trabajar con estos 3
00:26:27
en la siguiente
00:26:30
iteración el I se para
00:26:32
en el 3
00:26:33
para trabajar con y trabajará
00:26:34
con estos tres siguientes, en la siguiente iteración
00:26:38
el i está aquí colocado, en el seis
00:26:43
para trabajar con estos tres siguientes, entonces las iteraciones
00:26:46
del bucle van a ir, primera iteración
00:26:51
tengo estos tres, siguiente iteración tengo estos, siguiente iteración tengo estos
00:26:54
vale, entonces en cada iteración lo que ocurrirá
00:26:59
es que yo estaré escribiendo seis de golpe
00:27:03
Entonces en cada iteración estoy escribiendo 6 de golpe
00:27:06
Luego J, para empezar, en cada vuelta de ese for
00:27:11
Se quedará incrementado 6 posiciones
00:27:17
Porque en cada iteración yo lo estoy escribiendo en 6 sitios
00:27:20
Luego J se va a quedar incrementado en 6 posiciones
00:27:25
Vale, ahora lo que tenemos que ver es que escribimos cada vez
00:27:29
Bueno, pues de cada bloque de cada pack
00:27:32
Puedo hacer mi posición I en la posición J que me toque
00:27:37
La I más 1 en la J más 1
00:27:44
Y la I más 2 en la J más 2
00:27:46
Y luego del otro bloque
00:27:49
La I en la J más 3
00:27:52
La I más 1 del segundo bloque en la J más 4
00:27:55
y la I más 2
00:27:58
del segundo bloque es la J más 5
00:28:02
esa es una posibilidad fácil
00:28:03
entonces cada vuelta del bucle
00:28:07
for de arriba trabaja
00:28:09
con dos packs de 3
00:28:11
cada vuelta trabaja con dos packs de 3
00:28:13
y cada vuelta
00:28:16
me va escribiendo esos packs
00:28:17
en estas posiciones
00:28:18
con lo cual J se va a quedar incrementado
00:28:20
en 6 efectivamente cada vez
00:28:22
entonces bueno
00:28:24
lo podemos plantear así
00:28:27
igual lo habéis hecho de otra manera
00:28:28
yo voy dando vueltas
00:28:29
cada vuelta coge, va de 3 en 3
00:28:31
en cada vuelta
00:28:33
cojo los que están a continuación de ese i
00:28:35
y los escribo donde toquen
00:28:37
el i en el j, el i más 1 en el j más 1
00:28:39
el i más 2 en el j más 2
00:28:42
y el i del otro en el j más 3
00:28:44
este i
00:28:46
este i más 1 del otro en el j más 4
00:28:47
y este i más 2 del otro en el j más 5
00:28:50
por ejemplo
00:28:52
por ejemplo
00:28:54
vale, vamos a intentar ahora
00:28:55
reproducir esto
00:28:58
a ver
00:28:59
a ver si nos acordamos de lo que hemos dicho
00:29:07
mi jota tiene que empezar valiendo 0
00:29:13
si o si, por eso lo he metido aquí
00:29:21
mi jota va valiendo 0
00:29:23
y ahora
00:29:26
resultado de jota
00:29:27
pues el primero
00:29:30
de el array de arriba
00:29:33
array de i
00:29:36
Y J se tiene que quedar incrementado
00:29:38
¿Vale?
00:29:42
J lo dejo incrementado
00:29:44
Porque la siguiente copia
00:29:46
El siguiente elemento lo voy a copiar
00:29:48
En el siguiente de J
00:29:49
Resultado de J
00:29:52
Y se sigue quedando incrementado para la siguiente copia
00:29:53
Array1 de I más 1
00:29:56
Ahora
00:29:59
Array1 de I más 1
00:29:59
Resultado de
00:30:10
J más más
00:30:15
este
00:30:17
y sigo asignándole a la J
00:30:19
pero ahora me toca el array 2
00:30:22
entonces esto mismo
00:30:24
lo pongo aquí
00:30:29
y array 2
00:30:33
vale, entonces lo que hemos
00:30:34
dicho en la pizarra sería esto
00:30:42
voy sucesivamente
00:30:44
al J dejándolo incrementado
00:30:46
con lo cual en total se va a incrementar 6 veces
00:30:48
justo se le hacen 6 copias
00:30:50
en las primeras
00:30:52
3 posiciones copio las 3
00:30:54
que toquen de raíz
00:30:56
y en las siguientes tres posiciones
00:30:57
toco las otras tres que tocan
00:31:00
del otro
00:31:03
e i va de tres en tres
00:31:03
vale
00:31:08
entonces primero vamos a ver si esto funciona
00:31:10
esto lo que pasa es que así queda muy feo
00:31:17
porque claro, yo observo esto, aquí veo un patrón
00:31:20
entonces esto lo podría
00:31:22
meter a su vez en un bucle
00:31:24
lo podría, vale, porque aquí estoy viendo un patrón
00:31:25
pero bueno, vamos a ver si esto funciona
00:31:28
Vale, y ahora vamos a ver el resultado final
00:31:31
Antes que nada
00:31:34
Vamos a mostrar los Arrays
00:31:35
A ver si realmente los ha intercalado
00:31:38
Vamos a mostrar aquí primero el Array 1
00:31:39
Array 1
00:31:42
El Array 1 sería
00:31:46
Para cada numerito en Array 1
00:31:49
Muéstrame el numerito
00:31:53
Salto de línea
00:32:05
Y ahora voy a mostrar el Array 2
00:32:13
y el array dos
00:32:15
lo muestro aquí
00:32:28
vale, aquí estoy mostrando los dos
00:32:29
arrays con los valores que me ha generado aleatoriamente
00:32:34
los que sean, y ahora voy a mostrar
00:32:36
el resultante
00:32:38
a ver el resultante, a ver
00:32:39
que hemos hecho aquí
00:32:42
para cada numerito n en mi
00:32:43
resultado
00:32:48
muéstrame
00:32:48
resultado
00:32:52
muéstrame
00:33:03
n
00:33:05
ala, vamos a ver esta primera
00:33:06
versión, a ver si nos hemos salido
00:33:11
de la RAI en algún sitio o hemos hecho
00:33:13
algo raro, venga
00:33:15
pues vamos a decirle
00:33:22
que 12
00:33:24
vale
00:33:25
si, lo ha hecho bien
00:33:27
primero ha metido este pack
00:33:35
luego ha metido este
00:33:38
otro
00:33:40
luego este otro
00:33:41
luego este otro
00:33:44
bueno
00:33:46
pues si ha funcionado
00:33:48
vale
00:33:49
¿dónde podría incrementarla si no?
00:33:52
es que la incremento
00:34:25
cada vez que hago una asignación
00:34:26
entonces hago
00:34:27
aquí hago una asignación, la tengo que dejar
00:34:30
incrementada porque inmediatamente
00:34:32
después viene otra
00:34:34
entonces hombre, a ver, tendrías esta alternativa
00:34:35
si no la incrementas aquí, es que solo hay una alternativa
00:34:38
que es aquí
00:34:40
no hay otra, tienes que incrementarla
00:34:42
en cualquier caso antes de la siguiente
00:34:44
asignación, antes de la siguiente tienes que hacerlo
00:34:46
Porque si no estás pisando esa
00:34:48
Entonces si no la pones aquí
00:34:49
La tienes que poner aquí abajo
00:34:51
Y bueno, ponerla aquí abajo en cada una
00:34:53
Se me complica mucho el código
00:34:56
Mucho más cómodo si la meto ahí, ¿no?
00:34:57
Más cómodo si la meto ahí
00:35:01
Pero si no la pones ahí
00:35:02
Es que no hay otra, ¿qué es ponerla ahí?
00:35:04
Entonces queda más cómodo, más bonito
00:35:08
Si lo metemos así
00:35:10
Vale, entonces
00:35:11
Bueno, pues es una posibilidad
00:35:17
a lo mejor lo habéis dicho de otra manera
00:35:27
o lo que sea, pero siempre tratad de
00:35:30
primero haceros una idea clara
00:35:32
de lo que queréis hacer
00:35:34
y luego ya plantáis ese código
00:35:35
y ya está
00:35:38
no hace falta que sean revesados
00:35:39
ni nada
00:35:44
¿alguien ha dicho Raquel?
00:35:45
- 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:
- 3
- Fecha:
- 21 de noviembre de 2025 - 13:05
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 35′ 53″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 453.52 MBytes