20241104 ProgrEstruct-Arrays-ejercicios_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:
No se ha grabado el reconocimiento a Kalil
00:00:00
Me funciona
00:00:03
Venga, a ver, ahora
00:00:04
Vamos a ver, este código ya está
00:00:06
Ya lo hemos comprobado y estupendo
00:00:09
No, ya lo has cambiado
00:00:11
No, no lo he cambiado todavía
00:00:12
Vale, ponemos 4
00:00:14
Venga, XX
00:00:17
Y ZZ y XX
00:00:18
Vale
00:00:21
Entonces uno diría, voy a
00:00:22
Cambiar, a lo mejor uno, este mismo código
00:00:25
Me da igual hacer
00:00:27
palabra sí igual a aux de j
00:00:29
que hacer aux de j igual a
00:00:31
palabra sí, ¿no? A mí se me ha ocurrido
00:00:33
hacerlo así
00:00:35
y se me ha ocurrido hacerlo así
00:00:35
pero uno pensaría, bueno, ¿qué más me da
00:00:38
poner x igual a y
00:00:41
que poner y igual a x? Es la misma expresión, ¿no?
00:00:42
Pues vamos a cambiarla.
00:00:45
¡Qué listillos sois!
00:00:48
Y qué rápidos.
00:00:54
Sí, vale, pero está vacío
00:00:56
en el otro sentido también.
00:00:59
lo que quiero es que identifiquemos bien bien el problema
00:01:01
pero serio, vale, entonces en principio
00:01:03
esto sería lo mismo, ¿verdad?
00:01:05
esto es para comprobar
00:01:07
si esta palabra es igual
00:01:09
que esta otra, me da igual hacer
00:01:11
palabras de i equals aus de j
00:01:13
que aus de j equals
00:01:15
palabras de i
00:01:17
sí pero no
00:01:18
ahí estás cambiando j
00:01:21
no estoy cambiando j
00:01:22
no estoy incrementando j
00:01:23
lo único que he hecho
00:01:27
cambié el orden, es como si una
00:01:28
condición pones x doble igual a y
00:01:31
o pones y doble igual a x.
00:01:33
A ver, se ve raro, pero porque ya os
00:01:36
imagináis que es raro porque yo lo he puesto
00:01:38
así. Pero no es que se vea
00:01:40
raro. O sea, si tú comparas un string con otro
00:01:43
siempre es un string
00:01:45
punto igual.
00:01:46
Como el por ese lo que estás recorriendo es
00:01:47
desde j hasta el aus len.
00:01:49
Ya, pero ¿y por qué se ve
00:01:52
raro? Pues aus j no se ve raro.
00:01:53
No se ve nada raro.
00:01:56
La posición, yo voy recorriendo aus
00:01:57
para todas las posiciones.
00:01:59
Pues, ¿vale?
00:02:01
La posición J esima es igual a palabras de Y,
00:02:02
que no es igual.
00:02:07
Paso a la siguiente, la J igual a 1.
00:02:10
La posición 1 esima es igual a Y.
00:02:12
No, o sea, raro no se ve,
00:02:15
porque esto es una sentencia de igualdad.
00:02:16
X igual a Y o es igual a X, es lo mismo.
00:02:18
Entonces, uno podría haber escrito esto
00:02:21
sin haber hecho nada raro.
00:02:23
Tiene todo el sentido del mundo.
00:02:25
Entonces, ahora ejecutamos este código otra vez.
00:02:26
¿cuántas palabras vamos a introducir?
00:02:28
pues 5, venga
00:02:32
xx y i
00:02:33
hh
00:02:35
xx y gg
00:02:37
vale
00:02:39
gg y me sale
00:02:40
null pointer exception
00:02:43
amai
00:02:45
null pointer exception
00:02:47
no
00:02:48
puntero nulo
00:02:50
estás accediendo a una dirección de memoria
00:02:52
nula
00:02:55
Vamos a ver dónde nos lleva
00:02:56
Uy, qué casualidad
00:02:58
A la que hemos cambiado
00:02:59
Vale, ¿qué está pasando aquí?
00:03:01
Claro, ¿qué está pasando aquí?
00:03:05
AUX
00:03:08
Cuando lo hemos creado aquí
00:03:08
Hemos hecho un array de n posiciones
00:03:09
Y este array
00:03:12
Que
00:03:16
Este array que hemos creado
00:03:18
De n posiciones
00:03:21
Al yo no meterle nada
00:03:23
que hemos dicho que cuando un array
00:03:25
es de números, por defecto
00:03:27
se le ponen ceros, pero si es de objeto
00:03:29
por defecto se le pone null
00:03:31
y los strings son objetos
00:03:32
entonces este array recién creado tiene null
00:03:34
en todas partes
00:03:37
entonces un objeto null no puede llamar
00:03:38
a ningún método, no puede
00:03:41
no puede porque es null
00:03:43
si hacemos que un objeto null llame a un método
00:03:45
me sale null pointer exception
00:03:47
claro, entonces que pasa
00:03:48
que aquí la igualdad
00:03:51
aquí la igualdad
00:03:52
hay que hacerla obligatoriamente
00:03:54
entre objetos, la igualdad entre objetos
00:03:56
se hace obligatoriamente llamando a equals
00:03:57
claro, entonces
00:03:59
aux de j es null
00:04:02
la primera vez es null
00:04:04
entonces null no puede llamar
00:04:06
a ningún método, no puede, porque un objeto null
00:04:08
no puede
00:04:10
entonces
00:04:10
me sale null pointer exception
00:04:12
pero si yo cambio el orden no hay problema
00:04:15
porque palabras de i no es null
00:04:17
puede llamar al método
00:04:19
pero sí se puede hacer la igualdad con un nul
00:04:20
¿es igual al objeto nul?
00:04:23
no, entonces si cambio el orden
00:04:25
imaginaos que quisierais seguir este orden
00:04:28
cambiando el orden está claro que no hay problema
00:04:30
palabras de ahí sí tiene algo
00:04:34
¿ese algo es igual a nul?
00:04:35
no, no es igual, o sí, sí es igual
00:04:37
no va a ser, claro
00:04:39
pero podríais hacer
00:04:40
que queréis mantener
00:04:44
que queremos mantener este orden
00:04:47
pues podemos hacer esto
00:04:49
si aux de j
00:04:51
es diferente
00:04:53
de null
00:04:57
y
00:04:58
siendo diferente de null, además
00:04:59
su contenido es igual a palabras
00:05:03
de i, si hacemos esto
00:05:05
ya lo arreglamos.
00:05:07
¿Vale? Si hacemos esto ya lo arreglamos.
00:05:09
Porque estamos diciendo,
00:05:12
a ver, voy a comprobar con cada
00:05:13
palabra j. Si esa palabra
00:05:15
es null, es que ya sé que es distinta
00:05:17
a la palabra original, es que es distinta.
00:05:19
no tengo ni que entrar
00:05:21
y si esa palabra no es null
00:05:22
entonces ahora ya
00:05:25
miro si es igual a la que estoy comprobando
00:05:26
entonces si queremos mantener este orden
00:05:29
por la razón que sea
00:05:31
añadimos esto antes
00:05:32
y listo y solucionado
00:05:34
o esto o cambiamos el orden
00:05:36
entonces si lo hacemos así
00:05:39
ahora ya si 4
00:05:43
XX
00:05:48
Y VV
00:05:50
XX
00:05:52
Vale, ahora ya se ha eliminado el duplicado XX
00:05:52
Vale, pues venga, un mini descansito
00:05:56
- 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:
- 11 de noviembre de 2024 - 12:06
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 06′ 04″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 28.83 MBytes