20241029 ProgrEstruct-Arrays_1 - 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:
Venga, pues vamos a continuar
00:00:00
porque estáis así a medias
00:00:04
nos falta un montón de cosas
00:00:07
concentración
00:00:10
bueno, pues entonces
00:00:13
tenemos clarísimo que nuestras aplicaciones
00:00:17
trabajan con datos, eso está claro
00:00:20
trabajan con datos
00:00:22
entonces, nosotros
00:00:23
hemos tenido que decidir cuando hemos arrancado
00:00:28
nuestros programas y nuestras aplicaciones
00:00:30
esos datos a donde
00:00:33
iban a ir
00:00:34
entonces en nuestro caso iban a
00:00:35
variables
00:00:38
primitivas
00:00:39
iban pues a lo mejor a una
00:00:42
variable n o a lo mejor a 2
00:00:44
si teníamos una cadena de texto
00:00:47
pues conocíamos un tipo que era
00:00:50
un pelín más sofisticado que los tipos
00:00:52
primitivos que era el string
00:00:54
para guardar una cadena de texto
00:00:56
pero eso es lo único
00:00:59
que conocemos para guardar datos
00:01:01
variables sueltas
00:01:03
de los tipos de datos primitivos
00:01:05
variables sueltas
00:01:07
o variables string
00:01:08
y en todo caso son variables sueltas
00:01:10
entonces si una aplicación
00:01:12
tiene que conservar
00:01:15
mil datos
00:01:17
pues tenemos que declararnos
00:01:18
mil de estos
00:01:20
con lo que conocemos hasta ahora
00:01:21
lógicamente
00:01:24
eso no es operativo y no es lo que vamos a hacer
00:01:25
entonces
00:01:28
hay situaciones en las cuales va a ser
00:01:30
necesario guardar muchísimo de algo
00:01:32
¿no? muchísimo
00:01:34
por ejemplo
00:01:35
¿recordáis
00:01:37
la... el ejercicio
00:01:39
que hicimos el otro día
00:01:42
de sacar cifras decimales
00:01:43
hicimos un ejercicio de sacar cifras decimales
00:01:45
en el que íbamos haciendo
00:01:48
un bucle de este estilo
00:01:50
mientras el
00:01:51
cociente sea mayor
00:01:54
que cero.
00:01:55
Hacíamos
00:02:01
muéstrame
00:02:01
esta cifra decimal
00:02:05
y ahora ya
00:02:10
x igual a x entre
00:02:13
10.
00:02:15
Este era el programita para mostrar
00:02:17
las cifras decimales de x, ¿verdad?
00:02:19
Entonces, primero nos mostraba
00:02:22
las unidades, luego ya
00:02:24
nos quedábamos
00:02:27
con el cociente, volvíamos
00:02:29
arriba y al hacer el resto
00:02:30
de nuevo de ese cociente
00:02:32
nos mostraba las decenas
00:02:34
nos quedábamos con el cociente
00:02:36
al volver a hacer el resto
00:02:38
con 10, nos mostraba las centenas
00:02:40
es el ejercicio que hicimos, ¿no?
00:02:42
¿sí o no?
00:02:44
entonces, vale, estaba bien, lo que pasa es que
00:02:46
bueno, que si x era
00:02:48
315
00:02:51
pues no había tutía, esto funcionaba
00:02:54
primero me muestra el 5
00:02:57
luego ya cociente 31
00:02:58
resto de dividir 31
00:03:00
pues el 1, cociente 3
00:03:02
resto de dividir 3
00:03:05
el 3, cociente ya 0
00:03:06
no volvía a entrar, así funcionaba
00:03:08
nos sacaba 5, 1, 3
00:03:10
entonces si hubiéramos querido cambiar este programa
00:03:11
para que me mostrara
00:03:15
primero el 3, luego 1, luego el 5
00:03:16
pues no podíamos
00:03:18
porque no podemos adivinar el futuro
00:03:20
yo las iba mostrando según me iban llegando
00:03:21
¿verdad? según me iban llegando
00:03:24
las iba mostrando
00:03:26
entonces hombre, podríais decir
00:03:27
hombre, no pasa nada, tú habilítate
00:03:29
tres variables
00:03:31
n1, n2 y n3
00:03:32
y en lugar de mostrarlo
00:03:35
pues ve guardando
00:03:37
si estoy en la primera iteración, guarda en n1
00:03:39
pero si estás en la segunda
00:03:41
iteración, guarda en n2
00:03:43
si estás en la tercera, guarda en n3
00:03:45
menudo rollo
00:03:47
menudo rollo
00:03:48
primero, porque tengo aquí
00:03:51
que distinguir en qué iteración estoy
00:03:53
para decidir si guardo en N1 este numerito
00:03:55
o lo guardo en N2 o lo guardo en N3
00:03:57
eso primero, que es un pollo
00:03:59
y segundo, ¿cómo generalizo esto
00:04:01
a cualquier tamaño?
00:04:03
no lo puedo generalizar a cualquier tamaño
00:04:05
es imposible
00:04:07
entonces con lo que sabemos hasta ahora
00:04:08
no podríamos hacer este programa
00:04:11
de mostrar las cifras decimales
00:04:13
pero en orden inverso al que me van llegando
00:04:15
bueno, pues
00:04:17
si tuviéramos una especie de caja
00:04:19
en la que
00:04:21
pudiéramos irlas guardando, según me llegan,
00:04:23
es decir, en lugar de mostrarla, yo la guardo.
00:04:25
Vale.
00:04:28
Ahora esta, en lugar de mostrarla, yo la guardo.
00:04:29
Ahora esta, en lugar de
00:04:32
mostrarla, yo la guardo.
00:04:33
¿Vale? Y así las que me van llegando.
00:04:36
Una caja de un tamaño muy grandote.
00:04:37
Pues si yo pudiera irlo guardando
00:04:40
en una caja, con casillas,
00:04:41
¿no? En una tablita,
00:04:44
pues cuando ya este bucle ha terminado,
00:04:46
lo que hago es, como las tengo todas
00:04:47
aquí guardadas,
00:04:49
pues las voy sacando
00:04:50
de la caja al revés, empiezo
00:04:54
en lugar de empezar desde aquí, empiezo desde aquí
00:04:55
como están todas guardadas
00:04:57
bueno, pues este es un ejemplo
00:04:58
entonces
00:05:01
el array es esto
00:05:03
esto es un array
00:05:05
¿vale? ¿qué es un array?
00:05:07
un array es una estructura
00:05:11
una variable, un array es una variable
00:05:13
en realidad, es una variable, pero ¿qué me permite
00:05:15
esa variable? guardar muchos
00:05:17
datos del mismo tipo
00:05:19
por ejemplo, en este caso me vendría estupendo
00:05:20
una variable que me permite
00:05:23
guardar muchos datos
00:05:25
numéricos
00:05:27
yo los voy metiendo ahí y ya está
00:05:28
pues esto es un array
00:05:32
luego es un tipo nuevo de dato
00:05:41
ya tenemos
00:05:43
ya
00:05:44
tenéis el cambio de clase, el recreo para hablar
00:05:47
ya
00:05:51
vale
00:05:52
he estado pensando en una forma
00:05:53
yo creo que se podría hacer
00:05:57
y por demostrarlo al revés
00:05:58
yo creo que se podría hacer también
00:06:01
en vez de
00:06:02
o sea, hacer las operaciones de otra manera
00:06:06
claro, para que sea al revés
00:06:09
sí, lo que pasa es que
00:06:11
para cualquier tipo de edad, para cualquier longitud
00:06:12
yo creo que sí
00:06:15
hombre, a ver, tendrías que contar las cifras
00:06:19
sí, por un lado
00:06:21
Entonces, una vez que cuentas las cifras, como ya sabes
00:06:22
la cantidad de veces que tienes que hacerlo, puedes
00:06:24
hacer un follow. O sea, puedes hacer, sí.
00:06:26
Como si tienes
00:06:29
siete cifras, tienes que hacerlo siete veces.
00:06:30
Lo vas sacando y lo vas haciendo.
00:06:32
Ya, pero bueno.
00:06:34
La idea es otra, ¿no?
00:06:36
La idea es enseñar.
00:06:37
Efectivamente. Esto es una motivación
00:06:40
para decir que hay situaciones
00:06:42
en las cuales nos viene bien
00:06:44
poder guardar a la vez muchos datos
00:06:46
del mismo tipo. ¿Vale?
00:06:47
Muchos. 50, 100,
00:06:50
200, hasta ahora
00:06:51
guardar 50, 100, 200
00:06:53
exige que yo haga
00:06:55
50 variables
00:06:57
100 variables, no es operativo
00:06:59
bueno, pues un array ¿qué es?
00:07:02
un array es un nuevo tipo de datos
00:07:04
¿vale? entonces ya conocemos
00:07:05
los 8 tipos de datos primitivos
00:07:08
by, short, in, long, etc, etc
00:07:09
y el state, conocemos esos
00:07:12
y ahora vamos a conocer un nuevo tipo
00:07:14
de datos, bueno pues este tipo
00:07:16
de datos me permite
00:07:18
guardar un montón de valores
00:07:19
a la vez del mismo tipo
00:07:22
luego es un tipo de dato complejo
00:07:24
¿Vale? Luego es una caja
00:07:28
donde puedo guardar yo un montón
00:07:55
de elementos, un montón de elementos
00:07:57
del mismo tipo
00:07:59
¿Vale? ¿Qué ventaja tiene? Que la caja
00:08:00
recibe un único nombre, es decir
00:08:03
es una única variable, la caja entera es una única
00:08:05
variable con su nombre
00:08:07
y a partir de ese nombre ya veremos cómo yo puedo
00:08:08
ir sacando todos y cada uno de los elementos
00:08:11
según la posición
00:08:13
luego el array físicamente
00:08:15
es esto
00:08:18
recibe un nombre, un único nombre, el que a mí me dé la gana
00:08:19
pues números, por ejemplo
00:08:25
y ahora, bajo este
00:08:27
nombre, números, se esconde
00:08:30
todo este conjunto de elementos
00:08:32
y yo podré acceder
00:08:34
a ellos por separado
00:08:36
por suposición
00:08:38
luego los tengo todos juntos, bajo un único
00:08:39
nombre
00:08:43
que si yo los declaro así por
00:08:43
separado es un rollo, claro, n1, n2
00:08:46
cada uno tiene su nombre
00:08:48
pero podría estos tres números
00:08:50
meterlos en un único array de tres
00:08:52
ese array
00:08:55
recibe un único nombre
00:08:57
luego solo tengo una variable con un nombrecito
00:08:58
y ahora
00:09:00
por posición ya puedo
00:09:01
decidir cuál saco, si el primero, el segundo
00:09:04
luego el array es una
00:09:06
estructura que tiene orden
00:09:08
es decir, tiene posiciones
00:09:10
la primera sería la cero
00:09:12
la uno, la dos
00:09:15
así hasta la última que yo haya decidido que tengo
00:09:16
luego esto es físicamente
00:09:19
se le da un nombre
00:09:22
tiene posiciones
00:09:24
empezando desde la cero
00:09:25
y lo que va adentro
00:09:27
son los elementos
00:09:29
el elemento que a mí me dé la gana
00:09:30
del tipo de dato
00:09:32
que he decidido para el array
00:09:34
entonces situaciones en las que identifique
00:09:35
que me viene bien tener un montón de datos guardados
00:09:38
del mismo tipo a la vez
00:09:41
pues pongo un array
00:09:42
aquí por ejemplo podría haber venido bien
00:09:43
oye, pues en lugar de irlos mostrando
00:09:46
ve guardándolos
00:09:49
en posiciones consecutivas de un array
00:09:50
este en lugar de mostrarlo a la 0
00:09:52
este en lugar de mostrarlo
00:09:54
a la 1, este siguiente
00:09:57
en lugar de mostrarlo a la 2, ve guardándolos
00:09:58
en lugar de mostrarlos
00:10:00
y ahora ya, cuando ya he terminado el bucle
00:10:01
muestro ese array al revés y listo
00:10:04
y ya tendría las cifras
00:10:06
desde esta hasta esta porque estoy mostrando al revés
00:10:08
por ejemplo
00:10:10
bueno, pues entonces ya sabiendo lo que es
00:10:11
y para que es interesante
00:10:15
vamos a ver cómo se declara
00:10:17
cómo se declara para utilizarlo en mi programa
00:10:19
vale, pues primero
00:10:21
tenemos que decidir qué tipo de
00:10:30
dato va a ir dentro
00:10:32
porque todos tienen que ser iguales, o son todos números
00:10:33
o son todos
00:10:37
cadenas, o son todos double
00:10:38
pero lo que hay dentro, todos los
00:10:40
elementos tienen que ser del mismo tipo, todos
00:10:42
del mismo, vale
00:10:44
luego con lo de la herencia y con todo eso
00:10:46
ya esto se puede matizar, pero ahora mismo
00:10:48
con lo que sabemos, todos del mismo tipo
00:10:50
bueno, pues por ejemplo, vamos a crear
00:10:52
un array
00:10:54
de números enteros
00:10:55
pues entonces
00:10:57
ponemos int
00:10:59
vale, pero para
00:11:02
he decidido el nombre, pues venga, voy a meter
00:11:04
ahí números, pues números
00:11:06
vale, ahora para indicar que
00:11:07
esto es un array, no
00:11:12
una variable número suelta
00:11:14
una única variable suelta, para indicar
00:11:17
que es un array, tenemos que
00:11:18
poner estos corchetes abriendo
00:11:20
y cerrando.
00:11:22
Acabáramos.
00:11:25
Entonces, con estos corchetes abriendo y cerrando,
00:11:26
esto ya es
00:11:29
un array de números enteros.
00:11:30
¿Vale?
00:11:33
Luego, esto
00:11:34
es una
00:11:36
única variable entera,
00:11:38
n, una variable entera,
00:11:40
que se llama n para guardar solo un
00:11:42
entero, y sin embargo
00:11:44
números es otra cosa.
00:11:46
números es otra cosa
00:11:48
vamos a ver qué es números
00:11:50
cómo se construye
00:11:54
porque efectivamente diríais, vale, pero ¿cuántos puedo meter?
00:11:55
bueno, pues con esta declaración
00:11:59
de aquí, con ir números
00:12:01
hacia paloseco
00:12:02
lo único que
00:12:03
hemos hecho
00:12:06
es declarar esta variable
00:12:07
números
00:12:10
que en lo que realmente
00:12:10
tiene dentro es una dirección
00:12:13
de memoria que va
00:12:16
apuntar a la verdadera
00:12:18
tablita
00:12:20
con las posiciones
00:12:20
pero números como tal
00:12:23
es la dirección de memoria sin más
00:12:25
luego un array es un objeto exactamente
00:12:27
igual que era un string, cuando declarábamos
00:12:29
un string ya dijimos en su momento
00:12:32
aunque lo estamos usando igual que cualquier
00:12:34
tipo, que sepamos
00:12:36
que ese en realidad
00:12:38
es una dirección de memoria
00:12:39
que nos lleva
00:12:42
a la parte
00:12:43
de la memoria RAM donde estén los datos
00:12:46
la cadena
00:12:48
físicamente es esto
00:12:49
aunque para nosotros a ese
00:12:52
le podíamos agregar
00:12:54
inicializar con hola tranquilamente
00:12:55
como si fuera un dato
00:12:58
un tipo de dato normal
00:12:59
primitivo
00:13:01
pero string dijimos cuidado que string
00:13:02
aunque ahora mismo para el uso que hacemos
00:13:05
no tiene implicaciones
00:13:08
esto es un tipo de dato objeto
00:13:09
lo que realmente tiene dentro es la dirección
00:13:11
que lleva a donde está
00:13:14
realmente el contenido, que en este
00:13:16
caso son un montón de caracteres.
00:13:18
Bueno, pues el array
00:13:21
igual. El array es un objeto
00:13:22
también. Luego, al ser
00:13:24
un objeto, números,
00:13:26
lo que realmente es
00:13:28
es
00:13:30
una dirección de memoria
00:13:32
que me lleva al espacio
00:13:33
ya de memoria donde van a estar
00:13:36
esos elementos.
00:13:38
Bueno, pues cuando yo lo declaraba así
00:13:41
sin hacer nada, ¿a qué espacio me lleva
00:13:42
y qué tamaño tiene
00:13:44
y que me lleva a la nada
00:13:45
porque todavía no he creado ese espacio
00:13:47
me lleva a la nada
00:13:49
si yo intento usar este array
00:13:52
para meter cosas en él
00:13:54
me va a decir
00:13:55
nada, error
00:13:57
porque todavía no está creado el espacio
00:13:58
en ese momento
00:14:02
a donde estará apuntando es a una cosa que se llama null
00:14:03
¿vale?
00:14:06
null es una palabra
00:14:08
que ya la podemos incorporar
00:14:09
es una palabra reservada de Java
00:14:11
que significa espacio de memoria
00:14:13
que no está habilitado, en el que no hay nada
00:14:16
espacio de memoria en el que no hay nada
00:14:18
con lo cual este array números
00:14:20
recién declarado así tal cual
00:14:22
me está llevando a la nada
00:14:24
a lo que Java llama null
00:14:25
entonces si intentáramos usarlo
00:14:27
para guardar algo, tal y como se usa
00:14:30
nos saldría
00:14:32
en letras rojas
00:14:34
esta excepción
00:14:35
null pointer
00:14:36
exception
00:14:40
Que diría, oye, ojo
00:14:42
Estás intentando acceder a la nada
00:14:44
En la nada no puedes guardar cosas
00:14:47
No puedes hacer nada
00:14:49
Te diría eso, null pointer exception
00:14:50
Vale, entonces
00:14:53
Lo que tenemos que hacer para poder usar ya realmente
00:14:55
Este array números
00:14:59
El siguiente paso
00:15:01
Es crear físicamente el espacio en memoria
00:15:02
Crearlo
00:15:05
Para que esto deje de apuntar a null
00:15:05
Y empiece a apuntar de algún sitio
00:15:09
Vale, ¿cómo se crea el espacio en memoria?
00:15:11
pues con el operador new
00:15:14
como se crean los objetos
00:15:19
porque esto es un objeto, se crean con new
00:15:24
aunque ahora mismo
00:15:26
entonces
00:15:27
igual que scanner se creaba con new
00:15:30
porque era un objeto, pues el array también
00:15:33
porque es un objeto, new
00:15:34
el tipo primitivo, el tipo del que
00:15:36
pertenece y aquí
00:15:38
la cantidad de posiciones
00:15:40
que queremos darle, ahí es donde
00:15:42
decidimos cuantas posiciones
00:15:44
quiero que tenga
00:15:46
10, pues ahí tenemos
00:15:48
por el 10, eso no se puede quedar vacío
00:15:50
tiene que tener
00:15:52
las 90 posiciones que queremos, no se puede quedar vacío
00:15:54
entonces cuando
00:15:56
ya hemos instanciado
00:15:58
esto, new in 10
00:15:59
pues ahora ya aparece automáticamente
00:16:02
aquí
00:16:04
la tablita
00:16:05
con 10 posiciones
00:16:13
¿no se puede poner algo con infinito o algo así?
00:16:15
no
00:16:21
¿cómo vas a crear una de infinitas posiciones?
00:16:22
¿qué ordenador tiene una RAM infinita?
00:16:25
lo que podrías
00:16:26
es decir
00:16:29
lo que uno diría, a ver
00:16:30
lo dejo por definir
00:16:32
y luego según voy usándolo
00:16:34
que se vaya agrandando
00:16:36
pero eso lo tendrías
00:16:38
que programar
00:16:40
y eso son ya otra cosa
00:16:41
es el array
00:16:44
esto es lo que hay
00:16:46
esto es lo único que hay para guardar
00:16:49
varios del mismo tipo, lo que viene de serie
00:16:50
cualquier otra cosa hay que programarla
00:16:52
¿vale?
00:16:55
ya vienen programadas algunas estructuras
00:16:56
que ya veremos para facilitar
00:17:00
el uso, pero esto
00:17:01
es una estructura de datos
00:17:04
que es estática
00:17:06
desde el momento en que tú le has dado el tamaño
00:17:07
y se lo tienes que dar, no hay alternativa
00:17:10
se lo tienes que dar
00:17:12
esta tabla se queda valiendo 10
00:17:13
y se va a quedar valiendo 10 para siempre jamás
00:17:15
no puede
00:17:18
cambiar de tamaño
00:17:20
a ver, que tú en un momento dado haces esto
00:17:21
Números igual a new int 3
00:17:24
Pues entonces, ¿qué ocurre?
00:17:30
Que esta desaparece
00:17:33
Esta desaparece
00:17:35
La que tenías antes desaparece
00:17:37
Se crea una nueva con 3
00:17:39
Y ahora números empieza a apuntar a esta
00:17:41
Pero esta la has tirado a la basura con todos sus datos
00:17:45
Con todos los valores dentro
00:17:49
No, no, no, no, no es que se acorde y se quede con los tres primeros
00:17:49
esta se fue a la basura
00:17:54
porque la hemos sobrescrito
00:17:55
con esta otra que se queda limpia de nuevas
00:17:58
claro
00:18:00
o sea
00:18:02
esta la he puesto como si fuera encima de esta
00:18:04
en realidad no es que la haya pisado
00:18:06
es que he creado otra nueva
00:18:08
números, empieza a apuntar
00:18:09
a esta dirección
00:18:13
y a esta pobre que le ha pasado
00:18:14
que se ha quedado sin nadie que le apunte
00:18:16
pero sigue ahí en memoria
00:18:18
Nando Guerra, sigue ahí en memoria
00:18:20
pero ¿qué ocurre? que nadie la está apuntando
00:18:22
con lo cual es imposible
00:18:25
ir a ella, es imposible
00:18:27
porque no hay ninguna variable que la apunte
00:18:29
entonces diríais
00:18:31
pues se va llenando la memoria RAM
00:18:33
de cosas que se han quedado ahí
00:18:36
pues sí, se va llenando
00:18:37
pero afortunadamente la máquina virtual
00:18:39
de Java tiene un proceso
00:18:41
que es el recolector de basura
00:18:42
tiene un proceso que está continuamente
00:18:44
despertándose
00:18:55
e identificando qué estructuras
00:18:56
se han quedado sin nadie que les apunte
00:18:58
porque las que se han quedado sin nadie
00:19:00
que les apunte, es imposible
00:19:02
recuperarlas, no se puede recuperar
00:19:04
esa memoria otra vez, o sea, esa dirección
00:19:06
porque ya no hay ninguna variable que la tenga
00:19:08
pues el recolector de basura
00:19:10
periódicamente, todas esas variables
00:19:12
que se han quedado sin nadie
00:19:14
que les apunte, a la basura
00:19:16
por ejemplo, un segundito
00:19:17
un segundito y ahora
00:19:20
el recolector de basura también
00:19:21
actuaría, imaginaos que
00:19:24
hacemos esto, tenemos aquí
00:19:26
una cadena
00:19:30
igual a ola, por ejemplo
00:19:31
y ahora
00:19:34
yo hago cad
00:19:36
esto para nosotros
00:19:37
y no nos preocupa
00:19:43
como lo hace por dentro, para nosotros es que cadena
00:19:45
pasa de tener este texto
00:19:47
a tener este y ya está y trabajamos con eso
00:19:49
y lo que pase por debajo nos da igual
00:19:51
pero físicamente ¿qué está pasando?
00:19:53
pues que cad era
00:19:55
la dirección de memoria
00:19:57
de una porción de memoria
00:19:59
donde ponía hola
00:20:01
si ahora hacemos esto
00:20:02
ahora otra porción de memoria
00:20:04
donde pone adiós se habilita
00:20:07
y Kat empieza a apuntar a ella
00:20:08
y esta pobre porción de memoria
00:20:10
en la que ponía hola se ha quedado vacía
00:20:13
sin que nadie la referencie
00:20:15
con lo cual
00:20:16
es imposible recuperar
00:20:18
esta porción de memoria porque nadie la referencia
00:20:21
es imposible por código acceder a ella
00:20:23
luego el recolector de basura
00:20:25
está todo el rato borrando cosas
00:20:27
cada vez que un objeto
00:20:28
y ahora mismo tenemos ejemplos solamente
00:20:30
de dos tipos de objetos, los string
00:20:33
y los arrays, cada vez que
00:20:35
sobrescribimos un objeto
00:20:37
como aquí, lo estamos sobrescribiendo
00:20:39
con otro valor, o como aquí
00:20:41
lo estamos escribiendo con otro
00:20:43
el objeto antiguo se queda ahí suelto
00:20:44
y la referencia esta
00:20:47
empieza a apuntar al nuevo
00:20:49
no hay manera
00:20:50
entonces el recolector de basura va eliminando
00:20:52
Para todo eso que se va quedando sin referencia
00:20:55
Si supieras la memoria
00:20:57
Real de eso
00:20:59
No podrías recuperarla
00:21:02
Es que no la sabes
00:21:03
Tú no puedes
00:21:05
Es decir, tú podrías
00:21:06
Claro, antes de haber hecho esto
00:21:09
Haber guardado esto en un auxiliar
00:21:11
Pero si lo has guardado en un auxiliar
00:21:13
Ya está apuntado con una variable
00:21:14
Entonces el recolector de basura no lo elimina
00:21:16
Elimina solo la memoria que se ha quedado
00:21:19
Sin apuntar
00:21:21
Por nadie
00:21:23
Un segundito, tú ibas a preguntar algo
00:21:24
Imagínate si en vez de poner el número 10
00:21:26
Pusiera, o sea, si me ganara una variable
00:21:29
In, le pongo el nombre que sea
00:21:32
También, también
00:21:33
O sea, sí, lo que importa es que aquí
00:21:34
En última instancia hay un número entero
00:21:37
Me da igual que lo pongas a capón o que sea un número
00:21:38
O que pongas una variable
00:21:41
Que tiene un número entero dentro, da igual
00:21:43
Con que haya aquí un número entero es suficiente
00:21:44
Si lo cambias a flow, a método
00:21:46
¿Te acepta un decimario?
00:21:49
a ver, pero si lo cambias
00:21:51
a float todo, tienes que declararla
00:21:54
de nuevas
00:21:56
o sea, esta tal y como está declarada
00:21:57
solo puede guardar enteros
00:22:00
si tú quieres un array de float
00:22:02
pues entonces
00:22:04
tendrás que hacer
00:22:06
esto, claro
00:22:07
float
00:22:10
esto y aquí el nombrecito
00:22:12
que sea
00:22:14
y ya tienes un array para guardar float
00:22:15
vale
00:22:18
claro, new flow app
00:22:19
el tamaño que quieras
00:22:23
entonces declarar una array siempre es
00:22:24
aquí pones el tipo al que tú quieres
00:22:26
que pertenezcan los elementos que van dentro
00:22:29
todo es el mismo, van a ser
00:22:31
los cochetes
00:22:33
claro, y aquí el nombre
00:22:35
que tú le quieres dar a esa variable
00:22:37
como de costumbre, el nombre lo más explicativo posible
00:22:38
y ahora, para que se cree
00:22:41
el espacio de verdad, porque si no el espacio
00:22:43
no se crea, para que se cree
00:22:45
hay que hacer new el mismo tipo de dato
00:22:47
de la declaración
00:22:50
y el tamaño que sea
00:22:51
esto un número entero siempre porque es el número de posiciones
00:22:53
¿vale? esto tiene que ser
00:22:56
el número de posiciones del array
00:22:57
¿vale? entonces esto lo podemos
00:22:59
poner pues aquí seguido a la vez que
00:23:09
lo creamos y inicializamos
00:23:11
y ya está
00:23:12
son 10 pasos pero empiezan del 0 al 9
00:23:14
entonces, claro, la posición
00:23:17
es del 0 al 9
00:23:19
ahora cuando lo recorramos veremos como luego el contenido
00:23:21
el que sea, el que uno meta
00:23:24
inicialmente el array
00:23:25
no tiene nada, pero es imposible no tener nada
00:23:27
entonces por defecto la máquina virtual
00:23:29
lo va a poner a cero
00:23:31
pero luego la aplicación no cuenta con ello
00:23:32
la aplicación nos diría
00:23:35
está sin inicializar
00:23:37
se puede meter en guays
00:23:38
es una variable más, puedes hacer con ella lo que quieras
00:23:40
entonces puedo hacer infinitos
00:23:43
números
00:23:45
yo creo que se puede hacer infinito
00:23:46
con esto
00:23:49
el infinito no existe
00:23:50
desde ya siento defraudarte
00:23:53
pero no existe
00:23:55
bueno a ver
00:23:56
tienes razón que existe
00:24:02
el infinito y se
00:24:05
trabaja en topología
00:24:07
obviamente y de los límites
00:24:09
las derivadas, todo eso
00:24:11
pero estamos hablando en el mundo matemático
00:24:12
que es un constructo axiomático
00:24:14
entonces ahí sí
00:24:16
pero es que en las matemáticas sigue sus reglas
00:24:18
entonces en las reglas de la física
00:24:21
que es las nuestras
00:24:23
el infinito no existe
00:24:24
lo siento mucho
00:24:26
ni en el universo
00:24:27
si quieren
00:24:29
se supone que es finito
00:24:30
ya han medido hasta el tamaño y todo
00:24:36
hay como un límite
00:24:38
que es lo máximo que podemos llegar a medir
00:24:40
pero no significa que no haya más
00:24:43
simplemente que es el máximo que podemos llegar a medir
00:24:44
porque la luz que ha llegado desde ahí
00:24:47
es un limbo
00:24:49
Ya, ya, ya, pero ¿qué te hace pensar
00:24:52
que eso se extienda hasta el infinito?
00:24:54
¿Cómo decir que te hace pensar que existe Dios?
00:24:56
Es lo mismo, tú puedes creer en el infinito
00:24:58
y no creer, pero no hay señales de eso.
00:24:59
En vez de creer en alguien
00:25:02
si es creer en el infinito, no creer en el infinito.
00:25:04
Claro que...
00:25:06
¿Y si el infinito es nuestro Dios?
00:25:07
El infinito es nuestro Dios.
00:25:11
Ah, yo lo he gustado mucho.
00:25:12
¿Puede ser?
00:25:13
Bueno, en programación no existe.
00:25:16
Ok.
00:25:18
¿Y cuando llamas a esa variable?
00:25:18
¿Tú puedes especificarle
00:25:22
qué es lo que quieres
00:25:24
que utilice?
00:25:27
¿Cómo que es lo que quieres que utilice?
00:25:29
Tú cuando llamas a esa variable
00:25:30
para acceder
00:25:33
a los datos.
00:25:35
¿Tú les puedes especificar la posición
00:25:36
que quieres que utilice?
00:25:39
Claro, es que si no, no nos valdría para nada.
00:25:40
La idea es poder usar las posiciones
00:25:43
independientes.
00:25:45
Cuando yo quiera acceder a esta o esta
00:25:46
vamos a ver ahora ya cómo acceder al array
00:25:48
Para darle valores, para recuperarlo
00:25:51
¿Vale?
00:25:52
Entonces, con esto, dime
00:25:54
Ya por preguntar
00:25:56
Al lado de los cachetes de lindos
00:25:59
¿No puedes especificar ahí las posiciones que quieres?
00:26:00
No
00:26:02
Ahí se pone lo que hay
00:26:03
Nada, nada, así, tal cual
00:26:06
No puedes poner nada, no debes poner nada
00:26:08
Y el otro
00:26:10
Aquí tienes que poner algo
00:26:12
Obligatorio, no lo puedes dejar vacío
00:26:14
Obligatorio, vale
00:26:16
También se admite como sintaxis
00:26:17
poner los corchetes después del nombre
00:26:20
de la variable
00:26:23
también se admite como sintaxis
00:26:24
esto, porque así se hacía
00:26:27
antiguamente en C
00:26:29
pero a mí esta
00:26:30
esta sintaxis
00:26:33
que también se admite, me parece
00:26:34
muy fea, para mí
00:26:36
es como si el nombre de la variable tuviera corchetes
00:26:38
no me gusta esta sintaxis, aunque se admite
00:26:41
me gusta más decir
00:26:42
la variable se llama números
00:26:44
¿y de qué tipo es?
00:26:46
de este, de Array
00:26:48
me parece mucho más claro
00:26:50
y es la genuina
00:26:52
de Java, pero se admite la otra
00:26:54
bueno, por tradición del pasado
00:26:56
pero para qué
00:26:57
para qué me lo quieres hacer raro
00:27:00
si me lo puedes hacer bien, no lo entiendo
00:27:02
y si soy raro, ¿qué pasa?
00:27:04
pues te vas
00:27:06
pues si eres raro te normalizamos en un repás
00:27:07
no pasa nada
00:27:09
cosas más raras hemos hecho
00:27:11
¿como cuáles?
00:27:13
cuenta propio, cuenta
00:27:16
que no, que luego os asustáis rápido
00:27:17
anécdota, anécdota del año pasado
00:27:21
bueno, el año pasado
00:27:23
si estaban aquí los del año pasado
00:27:25
de años
00:27:26
el pasado queda en el pasado
00:27:27
que no, vamos a centrarnos en esto
00:27:31
venga
00:27:35
buen intento pero no
00:27:36
¿cuánto es el máximo que puedes poner
00:27:39
de número de tamaño de la cuenta?
00:27:42
no está limitado
00:27:45
a ver, tanto como te quepa
00:27:46
en una variable
00:27:49
porque si no te va a desbordar
00:27:50
pero si pones dos variables
00:27:52
bueno, claro
00:27:54
aquí hay que pasarlo en un número entero
00:27:55
si tú le pasas este número entero
00:27:58
y te pasas de lo que cabe
00:28:01
te va a decir, oye, que no me cabe tanto en un número entero
00:28:03
ya, ya, ya
00:28:05
bueno, en el array, es que como no vas a poder declarar
00:28:06
no va a poder existir
00:28:13
El máximo value de lint
00:28:15
caben 10 máximos values.
00:28:17
Ah, sí, sí, sí.
00:28:19
A ver, dime.
00:28:22
¿Cómo era para escoger el elemento justo?
00:28:22
Ahora, ahora, que no lo hemos hecho todavía.
00:28:25
Porque no tengo que preguntar.
00:28:27
Es que no nos ha dado tiempo.
00:28:29
Una pregunta. A ver, tú metes un
00:28:30
máximo.
00:28:32
Y vas metiendo cifras
00:28:35
en ese máximo.
00:28:37
¿Cómo que metes un máximo?
00:28:38
Tú metes 10.
00:28:39
Y metes 10
00:28:43
si tú ahora lo haces 5
00:28:45
esos valores
00:28:47
desaparecen
00:28:48
se borran
00:28:50
cuando estabas pensando en otra cosa
00:28:53
es cuando lo hemos dicho
00:28:56
en fin
00:28:58
bueno, pues como declararlo y crearlo
00:29:03
ya está, ¿no?
00:29:06
vale, pues después de declararlo
00:29:13
tenemos esta cosa tan mona
00:29:15
¿Habéis visto qué bonito?
00:29:18
Lo único mono que vamos a ver en la matita
00:29:25
Oye, haz el favor, ¿eh?
00:29:27
Todo es bonito
00:29:30
Venga, a ver
00:29:31
Ahora ya podemos usarla para guardar cosas
00:29:37
Que es para la que la hemos declarado
00:29:40
Si no, ¿pa' qué cojones nos sirve?
00:29:42
bueno, pues cada
00:29:45
posición tiene asociada
00:29:53
una posición, efectivamente
00:29:55
entonces, las podemos
00:29:57
usar por libre, por separado
00:29:59
que yo quiero guardar en la primera posición
00:30:01
el 7
00:30:03
pues así
00:30:05
el número de la RAI
00:30:07
el nombre de la RAI, perdón
00:30:09
si yo pongo
00:30:11
el nombre del array y entre corchetes
00:30:19
una posición
00:30:21
por ejemplo esta
00:30:23
me estoy refiriendo
00:30:25
a esta
00:30:27
y esto ya es como si fuera una variable más
00:30:28
bueno pues por ejemplo que hago esto
00:30:31
pues ya está
00:30:33
a la posición 3 del array números
00:30:35
le asigno el 7
00:30:37
bueno pues ya está
00:30:38
que ahora hago esto otro
00:30:40
números 0
00:30:43
Igual a números 3
00:30:49
Esto ya es como variables sueltas
00:30:54
En realidad
00:30:56
Si pones los cortetes solos
00:30:57
Igual a tal, te lo añade al siguiente
00:30:58
Que haya, al siguiente hueco libre
00:31:00
¿Cómo?
00:31:02
Si pusiera números, en vez de indicarle posición
00:31:04
Te dejas vacío
00:31:06
No puedes dejarlo vacío
00:31:07
Y no puedes hacer que te vayan añadiendo a la array
00:31:09
Uno tras otro
00:31:11
Por programa sí, o sea, esto no puedes dejarlo vacío
00:31:13
Entonces ahora ya lo que tú quieras hacer
00:31:16
Ya lo podemos hacer con bucles, lo que sea
00:31:18
Ahora mismo simplemente lo que estamos
00:31:19
indicando es que ahora ya cada
00:31:21
posición en realidad es como
00:31:23
si fuera una variable independiente unas de otras
00:31:25
y sus nombres son, esta será
00:31:27
números 0, números
00:31:29
1, números 2
00:31:32
¿vale? entonces operamos
00:31:33
lo que queramos, lo de arriba pues sería
00:31:36
meter el 7 aquí
00:31:38
esta sería a la variable
00:31:39
número 0 que es esta
00:31:42
asígnale números 3
00:31:43
que tiene 7, pues estaríamos
00:31:46
haciendo esto y ya está y lo podemos
00:31:48
trabajar así. Bueno, pues
00:31:49
¿qué hemos ganado respecto a hacer n1
00:31:51
n2, n3? Pues que
00:31:54
ahora las variables
00:31:55
su nombre se diferencia por el numerito
00:31:57
entero que pongamos aquí. Pues si
00:31:59
ponemos un contador que se
00:32:01
vaya incrementando, por ejemplo
00:32:03
podemos hacer un barrido por
00:32:05
todo el array, cosa que no podríamos
00:32:07
hacer si las variables están sueltas
00:32:10
n1, n2, n3
00:32:11
pero ahora son n0, n1
00:32:13
n2, entonces
00:32:16
por ejemplo
00:32:17
Vamos a asignar un 1
00:32:18
A todos los valores del array
00:32:22
Obviamente podríamos hacer esto
00:32:24
Pero que es un rollo, ¿no?
00:32:27
¿Puedo hacer un array de arrays?
00:32:27
Sí, sí, sí
00:32:30
Ahora ya lo...
00:32:30
Un array de millones de arrays
00:32:32
Vale, a ver
00:32:35
Vamos a poner a 1
00:32:40
Todas las posiciones del array
00:32:41
Podríamos hacerlo así, ¿verdad?
00:32:43
Y una por una
00:32:45
Podríamos ir una por una
00:32:46
n0, n1, n2
00:32:48
pero entonces sí que no hemos ganado nada
00:32:50
no hemos ganado nada respecto a usarlo
00:32:51
como variables sueltas
00:32:54
no habríamos ganado nada
00:32:56
luego es una tontería hacer un array
00:33:02
para luego trabajar con él igual que
00:33:03
trabajamos con variables sueltas, es una tontería
00:33:06
luego no lo haríamos así
00:33:08
nos aprovechamos de
00:33:09
esto de aquí dentro
00:33:11
nos aprovechamos de esto de aquí dentro
00:33:13
y ahora ya
00:33:15
el bucle que más se adapta
00:33:17
para trabajar con for
00:33:20
perdón, para trabajar con a raíz es el for
00:33:21
porque tiene dentro una variable
00:33:24
índice que yo puedo poner
00:33:26
entonces
00:33:27
esto mismo
00:33:31
sería mucho mejor hacerlo así
00:33:33
claro
00:33:35
entonces este for se ejecuta
00:33:47
para igual a 0, para igual a 1
00:33:49
para igual a 2, pues yo me aprovecho
00:33:51
y está ahí que vaya siendo
00:33:53
los sucesivos índices
00:33:55
las sucesivas posiciones, me aprovecho de eso
00:33:57
y ahora ya
00:34:00
solamente con una única
00:34:03
sentencia for, estoy haciendo
00:34:06
n0 igual a 1, n0 igual a 2
00:34:08
n0 igual a 3
00:34:10
en este tema nos quedaremos un ratito
00:34:10
porque quiero decir, esto tiene chicha
00:34:12
bueno, claro, ahora ahí se pueden hacer
00:34:15
ya muchísimas cosas y claro, tenemos un listado
00:34:16
de nuestros ejercicios para practicar
00:34:18
no digo que
00:34:20
nos dejes un tiempo
00:34:22
a asimilarlo
00:34:24
Que sí, hombre, que sí, que sí, que sí.
00:34:25
No os asustéis. Tranquilos.
00:34:27
Vale.
00:34:30
Pero realmente
00:34:34
esto es todo.
00:34:35
Lo que pasa es que ahora hay que
00:34:37
saber programar para hacer
00:34:39
los algoritmos con los clientes.
00:34:41
Ya sabemos todo y ya sabemos programar.
00:34:44
Pues de programación estructurada lo sabéis
00:34:45
todo.
00:34:47
Lo sabéis estructurado.
00:34:48
Lo que pasa es que estamos en...
00:34:50
Nos falta programación.
00:34:52
Vamos a trabajar.
00:34:53
No, hablamos de estructurada
00:34:54
Pero orientada a objetos
00:34:57
Bueno, te falta mucha información
00:34:57
Vale, pues esto es
00:34:59
El for es el bucle
00:35:03
El bucle ideal
00:35:06
Para recorrer las posiciones de un array
00:35:09
Porque este mismo i
00:35:12
Que solemos poner dentro
00:35:13
Lo usamos para ir barriendo
00:35:15
Bueno, puesto n debería haber puesto números
00:35:17
Debería haber puesto números, ¿no?
00:35:19
Que es el nombre del array
00:35:20
para que no quede tan feo
00:35:21
vamos a ponerlo así
00:35:23
y así no parece que me he equivocado
00:35:25
que no parezca
00:35:28
que me he equivocado
00:35:32
así
00:35:33
¿vale?
00:35:34
entonces ya está, respondiendo a tu pregunta
00:35:37
pues a las posiciones sueltas
00:35:39
tú accedes con el índice
00:35:41
¿que estás accediendo todas en fin una tras otra?
00:35:42
sí, imaginaos que queremos
00:35:45
acceder solamente a las pares
00:35:47
pues hombre, pongamos aquí
00:35:49
y más igual 2, por ejemplo
00:35:51
ponemos y más igual 2
00:35:54
y estamos haciendo solo las pares
00:35:56
a 0, a 2, a 4
00:35:57
ya uno juega con esto y hace lo que quiera
00:35:59
dime
00:36:02
en este ejemplo estoy poniendo
00:36:02
uno en todas, pero cada uno
00:36:08
hace lo que le da la gana, lo que necesite
00:36:10
a lo mejor puedes saber
00:36:12
introduzca valor, lo lees
00:36:14
y se lo asignas a esa
00:36:16
entonces cada posición del array tendrá la que
00:36:17
se haya metido por teclado
00:36:20
lo que sea que te hayan dicho
00:36:21
entonces los arrays es una forma cómoda
00:36:23
de manejar un montón de variables
00:36:25
del mismo tipo, porque tú te declaras
00:36:27
una única variable array con el
00:36:29
tamaño que te dé la gana
00:36:31
y luego recorrerla para
00:36:32
hacer cosas, para
00:36:35
rellenarla, para ver los valores
00:36:36
que tiene, pues es mucho
00:36:39
más sencillo, con variables sueltas
00:36:41
sería una locura
00:36:43
¿vale? aquí lo único
00:36:44
claro, cuidado, si uno
00:36:51
trata de acceder a una posición del array
00:36:53
para lo cual no hay valor, imaginaos que
00:36:55
hacemos n de 10
00:36:57
igual a 7
00:37:00
por ejemplo, la máquina
00:37:02
virtual, claro, se va a la posición 10
00:37:03
y ya no la tiene, porque tiene
00:37:06
de la acera la 9, pues automáticamente
00:37:07
saldría una excepción
00:37:10
a raíz
00:37:11
y de
00:37:14
¿Puedes darle a la raíz n
00:37:15
el tamaño i?
00:37:18
¿Eh?
00:37:23
¿Eh?
00:37:24
Vale, entonces
00:37:26
un segundito
00:37:27
id quedándoos con los nombres de las excepciones
00:37:30
si de repente vuestro programa
00:37:32
se ha parado y ha salido en rojo
00:37:34
y os dice
00:37:36
Array in the sound of monosception, ¿qué os está diciendo?
00:37:37
vete corriendo donde hayas recorrido
00:37:41
un array, porque en algún momento
00:37:42
le has dado una posición que no existe
00:37:44
entonces tú dices
00:37:46
ah, este error va por ahí, te vas
00:37:48
como cuando nos salía el string
00:37:49
out of monosception
00:37:52
uy, cuidado, se ha hecho un charar
00:37:53
de una posición que no está
00:37:55
vale, pues lo mismo
00:37:57
si puedes crear, por ejemplo
00:37:59
la n la creas dentro del port
00:38:01
y le das
00:38:03
tamaño y
00:38:04
pero entonces estarías creando muchos arrays
00:38:06
o sea, te lo estaría volando cada vez
00:38:08
claro, a ver, con esto estarías creando
00:38:10
si tú puedes hacer esto siempre
00:38:13
que quieras, el tema es que quieres
00:38:15
aquí estarías creando uno de cero posiciones
00:38:17
que puedes, un array de cero se puede
00:38:19
otro de uno, pero arrays distintos
00:38:21
y cada vez sobre escribiendo
00:38:23
la anterior, cae sobre escribiendo
00:38:25
la anterior. Yo quería que
00:38:27
me guardase tantas posiciones como recorriese
00:38:28
ahí, en el mismo array, pero
00:38:31
sabiendo, sin saber la cantidad
00:38:33
de posiciones que va a recorrer ahí.
00:38:35
O sea, siempre se tiene que saber
00:38:38
qué cantidad va a usar toda la cantidad. Cuando tú declaras un array
00:38:39
tienes que, de partida, decirle
00:38:41
el tamaño, y ese ya se
00:38:43
queda para siempre.
00:38:45
Tú puedes crearte otro nuevo
00:38:47
pisando el que había, pero pisas los datos también,
00:38:49
lo pisas todo.
00:38:51
O sea, el tamaño nunca puede ser
00:38:53
Sí, lo puedes meter por escáner
00:38:54
Guardar una variable y ponerlo aquí
00:39:00
Pero ahora ya se va a quedar para ese valor siempre
00:39:02
El array se va a quedar para ese valor siempre
00:39:04
Si vuelves a hacer un newIn
00:39:06
Con otro valor
00:39:10
Este array desaparece y se crea uno nuevo limpio
00:39:11
¿Y si editas el valor que ya estaba?
00:39:14
¿Cómo que si editas?
00:39:16
Lo has puesto en un principio en newIn 10
00:39:17
Ahora, en vez de poner 10
00:39:20
Te confundes por lo que se haya
00:39:22
un dato 2 y poner 12
00:39:24
en ese mismo
00:39:26
yoing poner 12
00:39:28
bueno, pues será 12
00:39:30
pero se caerían los datos juntos
00:39:31
se quitarían los datos, no me imagino
00:39:33
sí, seguro
00:39:36
o sea, crearía uno nuevo con 12
00:39:37
y el otro a la basura
00:39:40
o sea, que no te puedes arrepentir
00:39:42
bueno, pero tienes que hacer las cosas bien
00:39:43
es que yo he de hacerlas bien
00:39:46
entonces, esto es una estructura estática
00:39:47
que se llama
00:39:50
estática porque no se puede mover
00:39:51
pero nosotros la vamos a hacer dinámica
00:39:53
para moverse
00:39:57
ya
00:39:58
porque lo podemos hacer con lo que sabemos
00:39:59
sabemos hacer prácticamente todo
00:40:02
imaginaos
00:40:04
que hemos cambiado de idea
00:40:06
y digo, ay, que ahora el usuario
00:40:07
me dice que quiere un numerito más
00:40:10
pues uno podría
00:40:12
crear un array con una posición
00:40:14
más de las que tiene esto
00:40:16
copiar este en el antiguo
00:40:17
y luego sobre escribirlo, o sea, todo
00:40:20
podemos hacer todo lo que queramos
00:40:22
todo, ¿vale? Lo iremos incorporando
00:40:23
en los ejercicios.
00:40:26
Vale, antes de parar, un segundo.
00:40:27
Sí.
00:40:30
Por favor.
00:40:31
Por favor.
00:40:32
¿Tiene una cavitaria?
00:40:34
Porque le hemos dicho a los dos.
00:40:39
Yo veo
00:40:41
hay mucha sincronización.
00:40:42
Bueno.
00:40:44
Venga, venga, venga.
00:40:48
Vamos a irnos más tarde
00:40:50
por vuestra culpa.
00:40:52
si accedéis a una posición que no existe
00:40:52
va a salir esto de aquí
00:41:02
luego es típico
00:41:03
que uno ponga aquí un numerito
00:41:05
y a lo mejor no lo haya mirado bien
00:41:07
y no sea el que ha puesto aquí
00:41:09
entonces si el que has puesto aquí es mayor
00:41:11
que el que has puesto aquí
00:41:14
cuando el force salga por abajo
00:41:15
te va a decir el de la urban exception
00:41:17
para el programa no sé qué
00:41:19
entonces, ¿qué ocurre?
00:41:20
yo he dicho que esto es un objeto
00:41:23
entonces los objetos
00:41:25
pueden llamar a cosas
00:41:28
igual que una cadena
00:41:29
stream podría llamar
00:41:31
a len
00:41:33
y esto nos decía
00:41:34
cuántos caracteres tenía
00:41:37
pues el array
00:41:39
por ser un objeto, con el operador punto
00:41:41
también puede llamar a cosas, esa suerte tenemos
00:41:43
bueno, pues en particular
00:41:45
este array n
00:41:47
puede llamar a una cosa
00:41:48
que se llama length
00:41:51
que te dice el tamaño
00:41:52
con el que tú lo has declarado
00:41:56
claro, claro
00:41:57
en teoría ya lo sabes
00:41:58
hombre
00:41:59
sí, a ver
00:42:00
pero si te vas a mirar mil líneas más arriba
00:42:04
vale
00:42:07
y aparte
00:42:09
si te lo han pasado por parámetro
00:42:10
entonces cada vez usamos un programa
00:42:12
pero si te han pasado la raíz por parámetro
00:42:14
es imposible, puedes saber, porque lo ha declarado
00:42:16
otro programa, entonces ahí es imprescindible
00:42:18
que se puede declarar desde otra clase y usarlo
00:42:20
exacto, entonces ahí es imprescindible
00:42:22
ahora mismo como lo tenemos todo en el mismo código
00:42:24
con mirar arriba y ya está
00:42:26
¿vale? un segundito, entonces
00:42:28
lo ideal, pero este es sin paréntesis
00:42:30
el de sin es con paréntesis
00:42:32
y este es sin, el de los arrays es sin
00:42:34
entonces ponemos esto aquí
00:42:36
y mucho más seguro
00:42:38
nos evita más problemas, dime
00:42:40
hay una forma de leer absolutamente
00:42:42
todos los números que ha puesto cada vez
00:42:44
con un for
00:42:45
con un for y pones el system out
00:42:48
o el numerito i
00:42:50
vale, pues venga, paramos aquí
00:42:51
un ratico
00:42:54
- 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:
- 23
- Fecha:
- 30 de octubre de 2024 - 17:04
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 43′ 01″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 1.46