20241029 ejercicio 2 arrays - 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:
Voy a grabar este ejercicio, por lo tanto, si estáis hablando, me permitís y se autorizáis a que os grabe.
00:00:00
Venga, entonces, nosotros hemos hecho este ejercicio, lo voy a mirar, así lo podéis mirar, ¿vale?
00:00:11
Esto es lo que hemos hecho anteriormente.
00:00:17
Lo quiero modificar un poquito.
00:00:19
Quiero hacer que en vez de estar leyendo una palabra y luego comprobar si esta palabra está ya repetida en mi array o no, lo que quiero hacer es hacerlo en dos pasos.
00:00:21
Primero leo todas las palabras y una vez leídas todas las palabras, pues voy a comprobar si hay o no duplicados.
00:00:35
¿Vale? Entonces, para empezar, en vez de pedirlo las palabras, ¿vale? Me salto esta parte de aquí, la quito y asumo, a ver qué es, palabra.length, ahora miramos, ¿cómo lo hacemos?
00:00:44
Pues asumo que me dan
00:01:09
Un array ya con cinco palabras
00:01:11
¿Vale? Porque ahora esta cosa
00:01:13
Es distinta
00:01:15
O sea, ahora son separadas
00:01:16
¿Vale? Son dos problemas completamente separados
00:01:18
Uno es leer cinco palabras
00:01:20
Y eso ya lo hemos hecho veinte mil veces
00:01:22
¿Vale? Entonces eso ya lo sabéis hacer
00:01:23
Lo que pasa es que al final de la primera parte
00:01:26
Pues lo que tendré
00:01:29
Es tener un array
00:01:35
Con cinco palabras dentro
00:01:37
Que serán la palabra
00:01:38
Sí, sí, pero ¿qué más me da?
00:01:40
Lo hemos visto
00:01:50
Cómo se leen cinco cosas que se ponen aquí
00:01:51
Es muy fácil, luego después si quieres lo hago
00:01:53
Pero eso no es la parte difícil
00:01:55
Lo que pasa es que
00:01:57
Aquí leeré las cinco palabras y cuando paso
00:01:58
De este de aquí, tendré una situación
00:02:01
Idéntica a esta, tengo un array con cinco palabras
00:02:03
Dentro
00:02:05
Que eran las palabras que hemos utilizado antes
00:02:06
¿Vale? Entonces esto
00:02:09
me debería dar que sí hay duplicados, pero lo hago en dos posiciones. Cuando llego aquí,
00:02:14
yo sé que en palabra hay cinco distintas, debería ser palabras, pero bueno, hay cinco
00:02:21
distintas palabras que tengo que comprobar. Entonces, ¿qué hago ahora? Antes yo tenía
00:02:27
ya una palabra y decía, esta palabra la compruebo con todos. Ahora no es exactamente así. Ahora
00:02:36
Ahora tengo que recorrer mi array, pillar la primera palabra y comprobarla con todas
00:02:41
las demás, luego pillar la segunda y comprobarla con todas las demás, luego la tercera y comprobarla
00:02:48
con todas las demás, ¿sí?
00:02:55
Entonces, ¿cómo lo hago?
00:02:58
For int, en la ronda, int, se puede hacer de varias formas,
00:03:00
hagámoslo sencillo, int j es igual a cero,
00:03:16
j menor de palabra punto lengd, ¿vale?
00:03:21
De todas las palabras, j más más,
00:03:25
entonces, este de aquí se hará cinco veces,
00:03:34
cada vez que lo hago
00:03:37
pillaré una palabra distinta
00:03:39
mi palabra actual
00:03:41
será
00:03:42
hola, buenos días
00:03:43
pillo palabra de j
00:03:48
entonces la primera vez me pillará la palabra
00:03:53
en posición 0
00:03:56
la segunda vez la palabra en posición 1
00:03:58
la tercera vez la palabra en posición 3
00:04:00
etc, etc, etc
00:04:02
esto en cada ciclo
00:04:04
de este for exterior
00:04:08
pues me pillará una palabra distinta
00:04:09
Y luego lo que tendré que hacer es con esta palabra comprobar si está duplicada o no
00:04:12
Por lo tanto, desde Y0 y por todas las palabras
00:04:18
Me pregunto si X es igual a la palabra actual otra vez
00:04:23
Si son iguales
00:04:32
Digo que sí y pongo duplicada true
00:04:34
Si no, no
00:04:40
Esto funciona. Si lo lanzo, me dice que hay duplicados, pero si también le pongo que no hay duplicados, también me dirá que hay duplicados.
00:04:41
¿Por qué? Porque estoy haciendo todas con todas, incluida la que estoy considerando, la vuelve a pillar aquí también.
00:05:00
Y entonces, ella misma será siempre igual a ella misma, ¿vale?
00:05:15
Vamos a intentar hacer esto, me pregunto si son iguales, siempre y cuando no sean la misma posición.
00:05:22
Si i no es j, y las dos palabras son iguales, entonces hay un duplicado, ¿se entiende?
00:05:40
Si yo estoy comprobando
00:05:50
Este array de aquí
00:05:53
Con sí mismo
00:05:55
Y pillo la A
00:05:56
Y empiezo desde aquí
00:05:57
Encontraré otra vez la A
00:05:59
Y diré, A es igual a A
00:06:02
Entonces le estoy diciendo
00:06:04
Al if interno
00:06:06
Oye, cuidado, pero que si yo había seleccionado esto
00:06:07
Entonces mi J es 0
00:06:10
¿Cuándo vas a
00:06:12
Pillar I para comprobarlas
00:06:14
Con todas
00:06:16
Si I es igual a esta J
00:06:17
Pues en ese caso no hagas la comparación
00:06:20
Porque estás comparando la misma posición
00:06:23
No me vale la misma posición
00:06:25
Entonces con esto
00:06:27
Ahora ya me dice que no hay duplicado
00:06:30
Porque ya ahora no considera
00:06:33
La misma
00:06:36
Si hay un duplicado
00:06:38
Si que pilla que hay duplicados
00:06:40
O sea que esto ya
00:06:44
Funcionaría
00:06:47
Duda
00:06:49
¿Puedo mejorar esto?
00:06:51
Sí, ¿cómo mejoro esto?
00:06:54
Vale, ¿cómo hago que si ya he encontrado un duplicado salga?
00:07:03
Aquí ya lo estoy haciendo.
00:07:09
¿Arriba qué?
00:07:15
No, porque si lo pongo aquí dentro, por cada ciclo de forra haré esa cosa.
00:07:42
¿Esta es la primera opción?
00:07:46
¿Os gusta?
00:07:47
¿Funciona?
00:07:59
Sí.
00:08:00
Pero si yo tengo, si yo a la segunda palabra, o sea, a la primera palabra,
00:08:01
imagínate que la primera y la segunda se han duplicado.
00:08:05
Ya he pillado que son duplicadas.
00:08:08
Seguiré igualmente haciendo estas cosas varias veces una vez por cada posición de la palabra.
00:08:10
Pero si he encontrado el duplicado, ¿para qué seguir?
00:08:18
O sea, tened en cuenta que antes tenía que seguir hasta el final porque me estaban dando las palabras
00:08:27
y cada palabra que me daban la tenía que buscar.
00:08:32
Entonces tenía que hacerlo cinco veces sí o sí.
00:08:35
Pero ahora las palabras ya me las han dado.
00:08:37
Entonces ya tengo la palabra.
00:08:40
Con que pille un duplicado
00:08:41
Pues ya no tiene sentido
00:08:43
Seguir adelante
00:08:45
Buscando otros duplicados
00:08:46
Lo he encontrado, salvo
00:08:48
Más cositas que podríamos mejorar
00:08:49
Si yo he pillado la primera
00:08:57
Y no hay duplicados
00:09:13
No tiene sentido
00:09:15
Volver a mirar la primera
00:09:17
Con los demás
00:09:19
Porque ya no hay duplicado, lo sé
00:09:19
He comprobado
00:09:21
He mirado si la primera
00:09:22
Era igual a la segunda, tercera, cuarta y quinta
00:09:26
y no he encontrado nunca un duplicado.
00:09:28
Quiere decir que tiene poco sentido cuando miro la segunda
00:09:32
volver a comprobar si la primera es igual.
00:09:35
Ya la he comprobado.
00:09:37
Entonces, cuando voy a comprobar,
00:09:38
las palabras anteriores, o sea, las que están antes de J,
00:09:41
sustancialmente ya están pilladas, ya están comprobadas,
00:09:46
que no hay duplicado o que sí, pero si hay sí, ya he salido.
00:09:50
Y si no, ya hemos comprobado
00:09:54
Ya que las anteriores
00:09:57
Ya están cosas
00:09:58
Y de hecho, ahora puedo quitarme hasta esto
00:09:59
Porque como empiezo siempre
00:10:02
De j más 1
00:10:06
Pues no será nunca igual a j
00:10:07
Esto era de j más 1 al final
00:10:11
Entonces, más optimizado todavía
00:10:14
Aquí me lo pilla que hay duplicados
00:10:20
Si pongo esto
00:10:24
Me debería pillar que no hay duplicados
00:10:25
Si pongo
00:10:27
aquí por ejemplo
00:10:30
dos veces el mismo
00:10:32
me pilla que si hay duplicados
00:10:35
y ahora si mirar
00:10:37
aquí cuantas veces
00:10:39
hago las comprobaciones
00:10:41
vería que las hago menos que antes
00:10:43
¿vale? entonces esto ya es
00:10:45
el nivel de optimización al que podemos
00:10:47
llegar y que consideramos
00:10:49
como optimizado ¿vale?
00:10:51
aquí
00:10:53
la optimización es que en cuanto
00:10:54
encuentro un duplicado
00:10:57
¿Ya se ha acabado?
00:10:58
Y aquí la optimización es que no empiezo siempre
00:11:01
Una vez fijada la palabra que voy a comprobar
00:11:04
No empiezo siempre desde el principio saltándome esa palabra
00:11:09
Empiezo siempre desde la siguiente palabra hasta el fondo
00:11:12
¿Vale?
00:11:15
Porque asumo que en rondas anteriores ya he comprobado que esta no está en ninguna de estas casillas
00:11:17
Entonces tampoco está en esta
00:11:24
Es inútil que cuando miro esta palabra aquí
00:11:26
Vuelva a comprobar que está aquí
00:11:28
¿Se entiende?
00:11:29
Ten en cuenta que como encuentro un duplicado
00:11:35
Ya dejo de hacer el trabajo y salgo
00:11:37
Bonito este ejercicio
00:11:40
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Autor/es:
- Stefano Chiesa
- Subido por:
- Stefano C.
- Licencia:
- Reconocimiento - No comercial
- Visualizaciones:
- 18
- Fecha:
- 29 de octubre de 2024 - 11:06
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 11′ 50″
- Relación de aspecto:
- 16:10 El estándar usado por los portátiles de 15,4" y algunos otros, es ancho como el 16:9.
- Resolución:
- 1152x720 píxeles
- Tamaño:
- 42.96 MBytes