Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Clase 14-11-23 - 3 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 14 de noviembre de 2023 por Raquel G.

6 visualizaciones

Descargar la transcripción

Vale, pues venga, ¿este cuál era? Ejercicio 5, ¿no? 00:00:00
Ejercicio 5, ¿vale? 5, pues venga, esto de aquí. 00:00:10
Vale, pues venga, leemos dos arrays de números enteros. Bueno, voy a copiar el escáner y 00:00:40
lo de leer el array de otro ejercicio. Venga, pues declaramos un array de enteros, array 1. 00:00:55
¿De qué tamaño me dice? Ah, de números enteros n. Luego vamos a leer primero, vamos a leer primero 00:01:13
cuántos números va a introducir antes de declararlo. Antes de nada, ¿cuántos números va a tener el array? 00:01:23
Vale, pues entonces números 1 y números 2, pues los dos van a ser dos arrays de n. Números 2 igual a new int de n. 00:01:33
Vale, entonces dos arrays. Y ahora habrá que hacer el array resultado, el array resultado será un array con el doble de posiciones, 2 por n. 00:01:47
Y ahora ya, si yo me planteo hacer, bueno, vamos a leerlos. Leemos el primer array que es números 1 y ahora vamos a leer el segundo también. 00:02:03
Vale, voy a hacer en el mismo, bueno no, dos por separados para que se vea claro que son los dos arrays distintos. 00:02:25
Y ahora rellenamos el segundo. Vale, me falta esta llave. Vale, pues ya tenemos este bucle para rellenar el primer array y este otro bucle para rellenar el segundo array. 00:02:39
Y ahora ya, si hacemos lo que hemos hecho en la pizarra, pues ahora yo voy recorriendo todas y cada una de esas posiciones. 00:02:54
Desde i igual a cero, mientras i sea menor que n mayúscula y que aumentando i. 00:03:00
Y para cada posición relleno la una del array resultado más su siguiente. 00:03:04
Es decir, tendría que hacer, el array resultado de i sería esto. El de i, perdón, la posición 2i viene de la i de uno de los arrays. 00:03:13
Y la posición 2i más 1 viene de la i del otro de los arrays. Ahora escrito a lo mejor se ve más claro. 00:03:32
A ver, la posición 2 por i va a ser igual a números 1 de i. 00:03:37
Y la posición siguiente a esta, la consecutiva, la siguiente a esta, 2 por i más 1, la consecutiva, viene de la misma posición i pero del otro. 00:03:51
Y ya está, ya hemos terminado. Esto es exactamente lo que yo he puesto aquí. 00:04:03
Para cada i rellenamos la 2i y la 2i más 1. La 2i viene de la i del primer array y la consecutiva, la 2i más 1, viene de la i del segundo array. 00:04:12
Para cada i del primero y para cada i del segundo rellenamos la 2i y su consecutiva. 00:04:23
Para i igual a 0 rellenamos la 0 y la 1. Para i igual a 1 rellenamos la 2 y la 3. 00:04:30
Para i igual a 2 rellenamos la 4 y la 5, que es justo lo que queremos. 00:04:38
Para i igual a 3 rellenamos la 6 y la 7, que es justo lo que queremos. 00:04:43
Vamos a comprobarlo por si algo hubiéramos hecho mal. 00:04:49
Mostramos el resultado del segundo array desde i igual a 0. 00:04:54
Ahora vamos a mostrar el segundo array y el resultado punto length. 00:05:01
Vamos a mostrar el resultado de i y concatenado con un espacio para que se vea seguido, i menor. 00:05:06
Esto es para mostrar el array resultado, todas sus posiciones, las que he ido rellenando. 00:05:26
Vamos a ejecutarlo por si acaso algo estuviera mal. Vamos a poner 3 solo. 00:05:36
Ese es el primer array. 1, 2 y 3. 00:05:42
Ahora viene el segundo array. 4, 5 y 6. 00:05:47
Y es el definitivo. 1 y 4, 2 y 5, 3 y 6. Lo ha ido haciendo correctamente. 00:05:52
Esta es la forma más compacta de hacerlo. 00:05:59
Si no la veis clara, dedicais un ratito luego en casa a terminar de... 00:06:04
Antes de irnos, vamos a ponerlo aquí. 00:06:17
Hay otra forma de recorrer arrays diferente al bucle for con el índice que hemos visto. 00:06:31
Se le suele llamar el bucle for each. Se le llama así, aunque no es que aparezca con ese nombre luego. 00:06:46
Esta es una sintaxis de for que hay específica solo para recorrer arrays. 00:06:58
Porque esta sintaxis de for es genérica. 00:07:05
Yo aquí pongo lo que me dé la gana. Aquí pongo lo que quiera. 00:07:09
Aquí pongo lo que quiera y aquí pongo lo que quiera. Esta es genérica. 00:07:13
Y pongo lo que me interesa para lo que yo quiera hacer. 00:07:16
¿Que quiero recorrer un array? Pues si quiero recorrerlo, lo que me interesa es esto. 00:07:19
Pero si quiero hacer cualquier otra cosa, pongo ahí lo que me interese. 00:07:23
Hay una sintaxis de for que es así que es solo para recorrer arrays. 00:07:27
Solo para eso y para nada más. No como esa que es genérica para lo que me dé la gana. 00:07:32
Hay una que es solo para recorrer arrays. Pongo aquí para recorrer arrays. 00:07:36
En general es para recorrer colecciones de datos. Pero como solo conocemos la de arrays, 00:07:40
pues por eso pongo que es solo para recorrer arrays. 00:07:44
Lo pongo ahí. No vale esta sentencia para ninguna otra cosa. No es como un for genérico. 00:07:48
No es un bucle genérico. Es un bucle solo para esto. 00:07:53
No es un bucle genérico como el while, como el for, que lo uso para lo que quiera. 00:08:00
No. Es un bucle solo para recorrer arrays. Vale. ¿Y cuál es su sintaxis? 00:08:04
Pues vamos a recorrer el array resultado en lugar de con este for de índice. 00:08:09
Vamos a recorrerlo con esta otra sintaxis. Vamos a recorrerlo. 00:08:15
Esa sintaxis sería for y ahora entre paréntesis pongo dos cosas. 00:08:19
Separadas por dos puntos. No por punto y coma esta vez. 00:08:28
Separadas por dos puntos. ¿Qué pongo ahí? 00:08:32
Separadas por dos puntos. Primero pongo el tipo de dato del array que voy a recorrer. 00:08:37
Y aquí un nombrecito de variable, el que me dé la gana. El que yo quiera. 00:08:44
X y N, un nombrecito de variable. Y aquí pongo el nombre del array. 00:08:48
El nombre del array que en mi caso el que quiero recorrer es resultado. 00:08:55
Esta es la sintaxis. Y siempre es esta. El tipo de dato del array que voy a recorrer. 00:08:59
El tipo de dato. Si es string, es string. Si es double, es double. 00:09:06
Un nombre de variable el que a mí me dé la gana. 00:09:09
Y aquí el nombre del array que quiero resolver. Recorrer. 00:09:12
Porque esto, repito, es una sintaxis solo para recorrer arrays. 00:09:16
Para ninguna otra cosa. Solo para eso. 00:09:20
¿Qué significa esto? Ahora ya este bucle va haciendo iteraciones. 00:09:22
Y va haciendo una iteración por cada posición del bucle. 00:09:27
Sí o sí. Hace una iteración por cada posición del bucle. 00:09:32
No es como el for genérico. El for genérico, si yo en lugar de resultado.lenc pongo 2, 00:09:36
pues recorro solo hasta 2. Estupendo. 00:09:42
Si pongo 3, recorro solo hasta 3. Estupendo. 00:09:44
Pero este no. Este bucle se ejecuta una vez por cada posición. 00:09:47
Y eso es inamovible. A menos que no ponga un break ahí. 00:09:53
Pero el del break por ahora nos lo hemos olvidado. 00:09:57
Es que ni sabemos que existe, solo para el case. 00:09:59
Vale. Solo lo sabe el mal programador. 00:10:01
Bueno, pues entonces, este bucle se ejecuta una vez por cada iteración. 00:10:06
Perdón, por cada posición de resultado. Si tiene 20, 20. Eso es así. 00:10:12
Y ahora, en cada iteración, esta variable X toma el valor de esa posición. 00:10:16
Es decir, es como esta variable X es una copia como si fuera resultado de Y. 00:10:23
Si Y fuera la posición. 00:10:29
En la primera iteración, X es una copia de resultado de 0. 00:10:31
En la segunda iteración, X es una copia de resultado de 1. 00:10:36
En la siguiente iteración, X es una copia de resultado de 2. 00:10:41
Entonces, para hacer un recorrido que muestre rápidamente, es más rápido escribir esto. 00:10:45
Entonces, si yo hago esto de aquí, vamos a ponerlo aquí. 00:10:49
X es una copia de cada posición del array. 00:10:54
De hecho, si lo mostramos, vamos a ver que efectivamente... 00:11:01
Vamos a poner aquí un system.println para que se vaya a la siguiente línea. 00:11:07
Si lo mostramos, efectivamente... 00:11:14
Si mostramos esto, veremos que también me muestra el array. 00:11:23
Pero ved que solo vale para eso, para mostrar un array. 00:11:27
Y se ejecuta una vez por cada posición sí o sí. 00:11:31
Y X es una copia de cada posición. 00:11:34
En la primera iteración, X es una copia de la primera posición. 00:11:37
Y en la segunda, X es una copia de la segunda posición. 00:11:41
Vamos a ejecutarlo. 00:11:45
¿Cuándo me va a introducir? 3. 00:11:48
Vale, 1, 2, 3, 4, 5 y 6. 00:11:50
¿Veis? Aquí he mostrado el resultado con el bucle for de índice. 00:11:55
Y aquí lo he mostrado con el for each. 00:12:00
Es lo mismo. 00:12:03
Este bucle for es muy práctico porque es muy rápido cuando yo quiero recorrer un array 00:12:10
de arriba a abajo y todas las posiciones. 00:12:14
Y a veces uno tiene muchas tentaciones de usarlo así alegremente para recorrer. 00:12:17
Pero cuidado importantísimo, que la clave está en que X no es la posición del array. 00:12:22
X es una copia. 00:12:29
Con lo cual, si yo intento rellenar un array con el bucle for asignándole cosas a X, 00:12:31
el array no se entera porque se lo estoy asignando a la variable X que es copia, 00:12:38
no al verdadero array. 00:12:43
Es decir, vamos a suponer que ahora yo hago esto. 00:12:45
Voy a cambiar este array resultado, lo voy a cambiar para que tenga... 00:12:50
Perdonadme. 00:12:54
Vale, pues venga, vamos a plantearnos. 00:13:11
Rellenar de nuevo el array resultado de la lobestia con números cualquiera. 00:13:13
A rellenarlo. 00:13:16
Pero en lugar de recorrerlo para rellenar con el for de índice, 00:13:17
vamos a recorrerlo para rellenar con éste. 00:13:20
A ver qué nos saldría. 00:13:22
Venga, pues la sintaxis de éste es que sí o sí es ésta, no cambia. 00:13:24
Y un tipo de dato del array. 00:13:27
Aquí el nombrecito que a mí me dé la gana. 00:13:29
El que yo quiera. 00:13:31
Porque éste es el nombre de la variable que va a ir siendo una copia de cada posición. 00:13:33
Y ahora aquí el nombre del array. 00:13:39
Y ahora yo hago. 00:13:41
Pues a n asígnale 3. 00:13:43
Vale, con esto yo podría creer que estoy realmente asignando el valor 3 00:13:47
a cada posición del array resultado, ¿verdad? 00:13:55
Podría creer que estoy haciendo eso. 00:13:59
Que estoy haciendo lo mismo que esto de aquí. 00:14:01
Porque vamos a rellenarlo con el for normal. 00:14:03
No tengo más n para allá arriba, ¿no? Para que no haya confusión. 00:14:11
Vamos a rellenar resultado con el for normal aquí abajo. 00:14:13
Las i sea menor que resultado.len 00:14:20
Incrementando i. 00:14:29
Resultado de i igual a 3. 00:14:33
Vale, pues repito. 00:14:39
Cuidado porque uno podría pensar que está haciendo lo mismo. 00:14:41
Está recorriendo el array y a cada posición le asigna el 3. 00:14:44
Está recorriendo el array y a cada posición le asigna el 3. 00:14:49
No estamos haciendo lo mismo. 00:14:52
Aquí realmente el resultado de i sí es la posición real del array. 00:14:54
Sí es la posición real. 00:14:58
Allá arriba n es una variable que se ha creado localmente. 00:15:00
Que en cada iteración va cogiendo una copia de lo que hay ahí. 00:15:06
En la primera iteración coge x1. 00:15:09
Si es para mostrar, muestro x1. 00:15:12
Perfecto, estupendo. 00:15:14
En la siguiente iteración ahora ya coge lo que hay aquí. 00:15:16
Si es para mostrar, estupendo. 00:15:19
Es una copia, lo muestra. 00:15:21
En la siguiente iteración coge lo que hay aquí. 00:15:22
Si es para mostrar, muy bien, lo muestro. 00:15:24
Pero ojo, si es para rellenar, lo de arriba no. 00:15:26
Porque a quien le estoy asignando los 3 es a esta copia, no al array. 00:15:29
El array no se está enterando. 00:15:32
Le estoy asignando los 3 es aquí. 00:15:34
Esta variable no vale para nada. 00:15:36
Cuando el for each ha terminado, eso ha desaparecido. 00:15:38
Y el array seguía con lo que tenía. 00:15:41
Vamos, de hecho, a mostrar lo que tiene después de haber esto este for. 00:15:46
Vamos a mostrar lo que tiene. 00:15:50
Vamos a volver a mostrarlo. 00:15:56
Vamos a volver a mostrarlo. 00:16:01
Voy a mostrar lo que tiene el array. 00:16:05
Voy a poner aquí para que no nos liemos de que estamos en la última parte. 00:16:16
Un más, más, más. 00:16:21
Estamos en la última parte. 00:16:22
Ya hemos entrado en la última parte. 00:16:27
En la última parte. 00:16:29
Hacemos esto. 00:16:30
Que uno podría pensar que está rellenando el array con 3 posiciones. 00:16:31
Ahora, vamos a mostrar lo que tiene ese array. 00:16:34
A ver qué tiene. 00:16:37
Y ahora vamos a volver a rellenarlo con 3 es. 00:16:39
Pero ahora con este for de aquí. 00:16:46
Y vamos a volver a mostrar lo que tiene. 00:16:48
Para mostrar, ya hemos dicho que el for each es perfecto. 00:16:50
Vamos a volver a mostrarlo. 00:16:55
Pues venga, vamos a ver qué pasa aquí. 00:16:58
Dos números para que sea más fácil. 00:17:07
Ese es el primer array. 00:17:09
Uno y dos. 00:17:10
Ese es el segundo array. 00:17:12
Tres y cuatro. 00:17:13
Esto es lo de intercalados con un método. 00:17:16
Intercalados con otro. 00:17:19
Y ahora, esto es el resultado del array después de haber hecho esto. 00:17:22
Después de haber hecho esto. 00:17:32
Como veis, el array ni se ha enterado. 00:17:34
El array resultado ni se ha enterado. 00:17:36
Sigue teniendo lo que tenía antes. 00:17:38
Esto de aquí. 00:17:41
Ni se ha enterado. 00:17:42
Claro, porque a lo que le hemos estado dando el 3 es a esta variable n 00:17:43
que va teniendo la copia de cada posición. 00:17:48
Ni se ha enterado. 00:17:50
Pero ahora, cuando yo ya lo relleno así, ahora sí que se ha enterado. 00:17:51
Porque esto ya sí que es la verdadera posición del array. 00:17:54
Ahora ya sí que se ha enterado. 00:17:57
Y por eso cuando lo muestro, ahora ya sí. 00:17:58
Entonces, esta sintaxis es muy cómoda para recorrer arrays. 00:18:02
Muy cómoda. 00:18:06
Pero su uso se limita cuando yo quiero recorrer para mostrar simplemente. 00:18:07
Si es para asignarle valores, no. 00:18:15
Porque entonces estaréis asignando la copia. 00:18:17
Vale. 00:18:20
Bueno. 00:18:24
Pero entonces, ¿para qué usas un for each? 00:18:28
O sea, si tú luego quieres, te tendrás que declararte un i arriba. 00:18:30
Porque en el for each no puedes declararte ningún i. 00:18:34
Entonces, tienes que un i arriba. 00:18:37
Irlo incrementando. 00:18:39
Ir poniendo. 00:18:40
Pero es que todo esto no te vale para nada. 00:18:41
Aparece un for each y ya está. 00:18:43
Claro, ¿a qué? 00:18:44
Entonces, esa es una forma rápida de recorrer un array para mostrarlo. 00:18:47
Pero con la limitación. 00:18:50
Pero que no se olvide que ese es su uso. 00:18:52
Vale. 00:18:55
Venga, pues ya está. 00:18:56
Pues vamos a... 00:18:57
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
6
Fecha:
14 de noviembre de 2023 - 14:23
Visibilidad:
Público
Centro:
IES ROSA CHACEL
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
361.68 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid