Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 10-11-23 - 2 - 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:
Vale, pues vamos con el siguiente.
00:00:00
Números hasta que te resulta negativo.
00:00:05
Por lo de siempre un bucle, vale, número, número, número, negativo.
00:00:08
¿Y ahora qué tiene que hacer?
00:00:11
Mostrar cuantas de algo, pues un contador.
00:00:13
Un bucle, le número, cuenta lo que sea, le número, cuenta lo que sea,
00:00:15
un contador, empieza a cero, bucle, voy leyendo, cuento, voy leyendo, cuento.
00:00:19
Cuando acabo el bucle, muestro la cuenta.
00:00:22
¿Vale? Es el ejercicio.
00:00:24
Ahora lo que hay que meter dentro es cuando incremento el contador.
00:00:26
Entonces incrementar el contador cuando me encuentro una cifra cero.
00:00:31
¿Vale?
00:00:35
Pero la estructura del programa es esa.
00:00:37
Entonces...
00:00:39
Vale, pues entonces, como vamos a leer del teclado, pues venga,
00:00:57
ponemos lo de siempre.
00:01:01
Uy, de verdad, estoy hoy...
00:01:17
A ver...
00:01:21
Esto...
00:01:24
Vale, pues ya está, hemos dicho.
00:01:35
Vamos a contar.
00:01:37
Pues venga, ya avanzamos.
00:01:39
Ponemos ya el contador.
00:01:42
Y ahora bucle, que está todo el rato.
00:01:44
Leo, cuento, leo, cuento, leo, cuento.
00:01:46
Cuando termino, muestro la cuenta y ya está.
00:01:48
Pues venga, un bucle que está todo el rato.
00:01:50
¿Qué está haciendo este bucle todo el rato?
00:01:52
Pues este bucle está todo el rato pidiendo un número.
00:01:55
Leyendo el número.
00:02:07
Leyendo el número.
00:02:14
Y ahora ya sí.
00:02:16
Si pasa algo con este número,
00:02:18
pues incrementa la cuenta.
00:02:20
Ahora ya viene la parte
00:02:22
que hay que programar,
00:02:24
que es, pues esta ya.
00:02:26
Cont, hay que incrementarlo.
00:02:29
Se incrementa.
00:02:31
Con cada cifra de n,
00:02:41
que es cero.
00:02:44
¿Vale?
00:02:46
Esa es la parte que hay que hacer aquí.
00:02:48
Incrementar cont con cada cifra de n
00:02:50
que sea cero.
00:02:52
Y así todo el rato, así todo el rato, así todo el rato.
00:02:54
¿Así hasta cuándo?
00:02:56
Mientras el numerito n
00:02:58
sea mayor o igual que cero.
00:03:00
Porque esto acaba cuando n es negativo, ¿verdad?
00:03:02
Pues mientras n es mayor o igual que cero,
00:03:06
leo número, cuento sus cifras, cero.
00:03:08
Leo número, cuento sus cifras, cero.
00:03:10
Aquí de nuevo me doy cuenta.
00:03:12
Uy, claro, si yo voy a usar n aquí,
00:03:14
no puedo declararlo aquí dentro,
00:03:16
tengo que declararlo antes.
00:03:18
Lo de siempre, pues venga, tendremos que declararlo antes.
00:03:20
Otra vez lo de siempre.
00:03:22
Uy, pero me necesita que esté inicializado.
00:03:24
Vale, pues inicializo algo
00:03:26
para asegurarme que va a entrar
00:03:28
la primera vez seguro.
00:03:30
Con cero va a entrar.
00:03:32
Bueno, pues entonces,
00:03:34
cuando este bucle termine,
00:03:36
ahora ya podemos mostrar el resultado.
00:03:38
Las cifras decimales,
00:03:42
las cifras cero, perdón,
00:03:44
las cifras cero son
00:03:46
y las mostramos.
00:03:48
¿Vale? Este sería el ejercicio.
00:03:52
A falta de hacer esta parte.
00:03:54
Claro, que es la complicada,
00:03:56
pero la estructura es la de siempre.
00:03:58
Bucle que está, lee número, opera con él.
00:04:00
Mientras el número sea mayor o igual que cero.
00:04:02
Cuando ya has terminado, muestra el resultado.
00:04:04
Pues en este caso,
00:04:06
el resultado es una cuenta.
00:04:08
Pues entonces, ¿qué tenemos que hacer aquí dentro?
00:04:10
Mirar todas las cifras
00:04:14
de n
00:04:16
y cada cifra que encontremos que sea cero,
00:04:18
incrementar count en una unidad.
00:04:20
Hacer un count más más.
00:04:22
Vale, por eso se puede hacer de muchas maneras.
00:04:24
Nosotros ya hicimos
00:04:26
un ejercicio en el cual vimos
00:04:28
cómo recorrer las cifras
00:04:30
decimales de un número.
00:04:32
Con sucesivas divisiones entre 10, ¿verdad?
00:04:34
Entonces podemos reproducir
00:04:36
eso mismo
00:04:38
y cada cifra decimal
00:04:40
que yo me encuentre que es cero,
00:04:42
la utilizo para incrementar count.
00:04:44
Esa es una manera de hacerlo.
00:04:46
Otra manera, pues que si alguien
00:04:48
se acuerda del charad, pues dice,
00:04:50
anda, pues convierto eso a string,
00:04:52
lo recorro con charad y cada
00:04:54
carácter igual al cero lo incremento.
00:04:56
Es más fácil, bastante más fácil.
00:04:58
Pero seguramente lo hayáis hecho
00:05:00
sacando las cifras decimales.
00:05:02
Porque lo hicimos
00:05:04
un par de ejercicios en clase.
00:05:06
Pues venga, ¿cómo sacábamos
00:05:08
las cifras decimales?
00:05:10
¿Vale? ¿Cómo sacábamos
00:05:12
las cifras decimales?
00:05:14
¿Cómo resolvíamos esto de sacar cifras decimales?
00:05:16
Pues decíamos,
00:05:18
vamos haciendo sucesivas
00:05:20
divisiones entre 10, ¿vale? Ya lo explicamos
00:05:22
allá en su momento.
00:05:24
Cada cifra decimal es los restos que voy obteniendo.
00:05:26
Los restos que voy obteniendo.
00:05:28
Y así voy operando mientras el
00:05:30
cociente de esas divisiones sea mayor que cero.
00:05:32
Ese ejercicio que ya hicimos
00:05:34
su resultado
00:05:36
era algo así. Vamos a suponer que nos quedamos con él.
00:05:38
Lo voy a hacer muy detallado
00:05:40
aunque no hacen falta
00:05:42
tantas variables.
00:05:44
Pero para que lo recordéis.
00:05:46
El cociente inicial
00:05:48
es el propio numerito.
00:05:50
Y ahora int es el resto.
00:05:52
Que van a ser las cifras decimales.
00:05:54
Las sucesivas cifras decimales.
00:05:56
¿Vale? ¿Esto cómo lo hacíamos?
00:05:58
Mientras el cociente
00:06:00
sea mayor que cero.
00:06:04
¿Qué hacíamos?
00:06:06
Dividir.
00:06:08
Primero sacar la cifra decimal.
00:06:10
Que era
00:06:12
el resto y dividirlo entre 10.
00:06:14
Esta es una cifra decimal, el primer resto.
00:06:16
Sacamos el resto.
00:06:18
Y aquí ya teníamos
00:06:20
la primera cifra decimal.
00:06:22
Ahora hacemos
00:06:24
lo del contador.
00:06:26
Y ahora actualizamos el cociente.
00:06:28
Cociente
00:06:30
igual a cociente
00:06:32
entre 10.
00:06:34
¿Vale? Este es el ejercicio de sacar las cifras decimales
00:06:36
que está en la hoja que hicimos el otro día.
00:06:38
Era esto mismo.
00:06:40
¿Vale? Pues este ejercicio
00:06:42
iba sacando las sucesivas cifras decimales.
00:06:44
La primera que saca
00:06:46
son las unidades, luego saca las decenas
00:06:48
así hasta las centenas.
00:06:50
¿Vale? Pero en el ejercicio que hicimos
00:06:52
lo que hacía con estas cifras decimales
00:06:54
era mostrarlas por pantalla. ¿Verdad?
00:06:56
En este caso no queremos mostrarlas por pantalla.
00:06:58
En este caso lo que queremos es contarlas si son 0.
00:07:00
Es lo que queremos.
00:07:02
Contarlas si son 0. Pues vamos a contarlas.
00:07:04
Si resto
00:07:08
igual a 0 con más más.
00:07:10
¿Vale? Y ya está.
00:07:14
Ya hemos terminado el ejercicio.
00:07:16
¿Vale? Leemos el número.
00:07:18
Sacamos sus cifras decimales
00:07:20
como vimos que se sacaban.
00:07:22
Cuando me encuentro una cifra que es 0
00:07:24
incremento el contador.
00:07:26
En lugar de mostrarla por consola que era lo que hacíamos el otro día.
00:07:28
Entonces yo aquí he puesto
00:07:36
muchas variables, pero en realidad
00:07:38
no haría falta tantos.
00:07:40
Puedo partir directamente de N, porque
00:07:42
yo no lo uso luego ya más.
00:07:44
Meter aquí directamente esto
00:07:46
en vez de ponerlo con una variable adicional.
00:07:48
¿Vale? O sea una versión más
00:07:52
corta. Voy a volver a hacer
00:07:54
lo mismo de arriba pero con menos variables.
00:07:56
Más cortito.
00:07:58
Más cortito.
00:08:04
Lo mismo de arriba sería
00:08:10
mientras N sea mayor que 0.
00:08:14
¿Qué hacemos?
00:08:16
¿Qué hacemos?
00:08:18
Si
00:08:20
N
00:08:24
por 110
00:08:26
es igual a 0
00:08:28
cont
00:08:30
más más. Y ahora actualizo N.
00:08:32
N entre igual
00:08:34
10.
00:08:36
Lo de arriba y lo de abajo es lo mismo.
00:08:38
Aquí usando menos variables intermedias.
00:08:40
Pero es lo mismo.
00:08:42
El mismo N es el que
00:08:44
voy sacando de él las cifras decimales.
00:08:46
Si la cifra decimal es 0
00:08:48
la cuento. Y ahora actualizo
00:08:50
N para sacar el siguiente cociente.
00:08:52
Y así mientras N sea mayor que 0.
00:08:54
¿Vale? Aquí esto está más resumido con menos variables
00:08:56
que lo de arriba.
00:08:58
Pero es el ejercicio de sacar cifras decimales.
00:09:00
Entonces es ejercicio.
00:09:02
Con la diferencia de que
00:09:04
ahora las cifras decimales las cuento.
00:09:06
Vale. Bueno, lo pongo esto aquí
00:09:10
en comentario para que
00:09:12
para no hacer dos veces lo mismo
00:09:16
en el programa cuando lo probemos.
00:09:18
¿Vale?
00:09:20
Pues ahora ya, ya está. Ya las muestro
00:09:22
y las cifras son 0.
00:09:24
¿Vale? Pues ese bucle es el ejercicio.
00:09:26
Aquí en versión más larga abajo
00:09:28
sería más corta.
00:09:30
Pero me da igual.
00:09:32
¿Vale? Este era el de sacar cifras decimales.
00:09:34
Era ese. Lo que pasa es que
00:09:36
aplicado a contarlas, vamos a hacerlas por consola.
00:09:38
Nada más. Aplicado a contarlas
00:09:40
en vez de vamos a hacerlas por consola.
00:09:42
Las cifras decimales.
00:09:44
Vale. Entonces ahora haciendo
00:09:50
alguna prueba igual nos damos cuenta de que
00:09:52
algo hemos hecho mal.
00:09:54
Vamos a
00:09:56
probar.
00:09:58
A ver si ejecuto este ejercicio.
00:10:02
Introduzca
00:10:06
número 200.
00:10:08
Introduzca número 23.
00:10:10
Introduzca número 10.
00:10:12
Introduzca número 701.
00:10:14
Llevo
00:10:16
2, 3, 4 cifras decimales.
00:10:18
Y ahora voy a poner
00:10:20
un negativo para salir ya.
00:10:22
Esta prueba me la he hecho bien.
00:10:24
Pues sí. Han sido 0, 4.
00:10:26
A ver, en un caso real
00:10:28
que necesitáramos, pues haríamos
00:10:30
pruebas con combinaciones más
00:10:32
extrañas a ver si nos sale algo raro.
00:10:34
Pero bueno.
00:10:36
Como un programa de tan pocas líneas, pues con esta prueba
00:10:38
podemos concluir que sí.
00:10:40
Vale. Pues ya está.
00:10:46
Estos eran los tres ejercicios.
00:10:48
El anterior, ya le he puesto
00:10:50
los next line que faltarían
00:10:52
para que funcionara bien.
00:10:54
Después de leer el número,
00:10:56
un next line en esta opción, para que cuando
00:10:58
vuelva arriba a leerlo,
00:11:00
no se chupe el salto de línea.
00:11:02
Y aquí igual, en el caso B,
00:11:04
después del next in, un next line
00:11:06
que vuelva arriba.
00:11:08
Vale.
00:11:14
Vamos a hacer,
00:11:16
por si alguno lo habéis hecho,
00:11:18
que yo imagino que no,
00:11:20
que habréis tirado por aquí, porque como este ejercicio
00:11:22
lo tenemos hecho, sacar cifras decimales.
00:11:24
Ya dijimos eso, ya sabemos cómo hacerlo.
00:11:26
Ahora lo reutilizamos siempre que queramos.
00:11:28
Pues aquí lo reutilizamos para contar.
00:11:30
Yo imagino que habréis tirado por aquí.
00:11:32
Pero si alguien ha tirado
00:11:34
porque le gustan los streams
00:11:36
o lo recuerda del año pasado,
00:11:38
o si ya está el año pasado en el programa en algún sitio,
00:11:40
lo que sea, si alguien ha tirado por stream,
00:11:42
pues vamos a hacer esta versión
00:11:44
de otra manera.
00:11:46
Dios, que sustos me llevo.
00:11:48
Vamos a hacer esta versión
00:11:50
ejercicio 3B,
00:11:52
con stream, para que vayamos cogiendo...
00:11:54
3B, venga.
00:11:56
Venga, voy a copiar y pegar lo de dentro,
00:12:10
pero voy a hacer la versión
00:12:12
otra forma de hacerlo, pero con cadenas.
00:12:16
Quedándose con...
00:12:18
Vale.
00:12:20
Entonces,
00:12:22
el número
00:12:24
lo leemos igual, el contador igual,
00:12:26
todo igual. Ahora lo que cambia es
00:12:28
cómo contamos las cifras decimales.
00:12:30
Esto es lo que cambia.
00:12:32
El programa es el mismo.
00:12:34
Cambia cómo las cuento.
00:12:36
A lo mejor a uno, ya digo,
00:12:38
se le ha ocurrido
00:12:40
a lo mejor hacerlo de esta manera.
00:12:42
Decir, a ver,
00:12:44
ese numerito n,
00:12:46
si yo lo convierto a stream,
00:12:48
a cadena, si yo lo convierto a stream,
00:12:50
lo que puedo hacer es recorrer
00:12:52
sus posiciones, y cada
00:12:54
posición que tenga el char
00:12:56
número cero, la cuento.
00:12:58
A uno se le podría haber ocurrido a lo mejor
00:13:00
hacer esto. Entonces,
00:13:02
¿cómo convertíamos
00:13:08
un número a una
00:13:10
cadena?
00:13:12
Esto es lo que es raro que se
00:13:14
os haya ocurrido si no habéis
00:13:16
contado con ello, porque lo hemos usado dos veces solo.
00:13:18
Dos o tres en dos ejercicios.
00:13:20
Pero dijimos, la forma más sencilla
00:13:22
es concatenar
00:13:24
con una cadena.
00:13:26
Porque recordad que la concatenación,
00:13:28
cuando uno concatena cadenas y números,
00:13:30
pesa la cadena, se concatena en cadena.
00:13:32
¿Vale? ¿Lo recordáis?
00:13:34
Entonces, esto es
00:13:36
la cadena
00:13:38
que contiene el numerito
00:13:40
este. Si es 301, será el stream
00:13:42
301.
00:13:44
¿Vale?
00:13:46
Y ahora ya recorrer una cadena
00:13:48
y contamos los caracteres que son cero.
00:13:50
Bueno, esto lo hicimos
00:13:52
el día anterior y luego otro día,
00:13:54
hacía una semana.
00:13:56
Desde igual a cero, mientras i sea
00:13:58
menor que
00:14:00
nunca.length
00:14:02
incrementando i
00:14:06
¿qué tenemos que hacer?
00:14:08
Pues sí.
00:14:10
El carácter
00:14:12
en la posición
00:14:16
iésima resulta
00:14:18
que es igual al
00:14:20
carácter cero
00:14:22
pues cont++
00:14:24
¿Vale? Otra forma de hacerlo, pero que no
00:14:28
espero que
00:14:30
lo hayáis hecho así.
00:14:32
Porque con cadenas hemos trabajado menos.
00:14:34
Pero bueno, para que tengáis
00:14:36
lo convierto a cadena,
00:14:38
recorro todos y cada uno de los caracteres
00:14:40
de la cadena, según voy
00:14:42
encontrando caracteres que son el numerito
00:14:44
cero, incremento
00:14:46
el contador.
00:14:48
¿Vale?
00:15:10
Vale, pues ya está.
00:15:18
Pues este...
00:15:20
A ver, dudas
00:15:22
o preguntas.
00:15:24
Nada, ¿alguien ha
00:15:32
hecho algo de otra manera y tiene
00:15:34
dudas o alguien o yo qué sé?
00:15:36
Cualquier comentario.
00:15:38
Bueno,
00:15:42
pues nada, dejamos aquí la corrección
00:15:44
entonces.
00:15:46
Sí, sí, sí, esto lo subo a la ola virtual.
00:15:48
Ah, sí, sí, sí.
00:15:54
Vale, entonces.
00:15:56
Lo pusimos solo en este
00:15:58
para que no os volvíáis locos en todos.
00:16:00
Pero sacar a funciones y a uno
00:16:02
leer cómo lo hacía. Entonces,
00:16:04
si alguno para aumentar
00:16:06
la legibilidad del código, efectivamente,
00:16:08
pues lo sacaba a una
00:16:10
función, eso
00:16:12
da ese cero cinco, ¿vale? Entonces
00:16:14
aquí, por ejemplo, el ejercicio tres, que era
00:16:16
el que lo habíamos aplicado para que los demás no os volvíáis
00:16:18
locos ahí sacando a funciones todo.
00:16:20
Vale, pues en este.
00:16:22
Recordad que sacar a funciones
00:16:24
sobre todo tenía utilidad
00:16:26
a la hora de hacer más legible el código cuando teníamos
00:16:28
un bucle dentro de otro, pero cuando tenemos un
00:16:30
bucle dentro de otro, ya
00:16:32
la cosa se empezaba a complicar, ¿verdad?
00:16:34
Que era esta situación.
00:16:36
Entonces aquí, tengo un bucle
00:16:38
que me lee números, y aquí otro bucle
00:16:40
para contar cifras decimales.
00:16:42
Pues decimos, oye, pues voy a sacar esto a una función
00:16:44
y que me haga una función
00:16:46
que me cuente las cifras decimales de un
00:16:48
número. Pues tengo una función
00:16:50
que me cuenta las cifras decimales de un número y me lo devuelve,
00:16:52
llama a la función y ya está. ¿Vale? Que es lo que hemos
00:16:54
estado haciendo. Pues venga, vamos a hacer
00:16:56
una función aquí fuera
00:16:58
que
00:17:00
me devuelve
00:17:02
como valor de retorno las cifras
00:17:04
decimales de un numerito
00:17:06
que yo le paso.
00:17:08
¿Vale? ¿Qué le vamos a pasar?
00:17:12
Un numerito n. ¿Qué va
00:17:14
a hacer esta función? Devolverme con
00:17:16
el return el número de cifras decimales.
00:17:18
Pues venga, o sea,
00:17:20
esto vamos a copiar y pegar
00:17:22
y luego llamamos a la función.
00:17:24
¿Vale? Entonces
00:17:26
el numerito n
00:17:28
saca
00:17:30
sus cifras decimales y las guarda en cont
00:17:32
que aquí me falta
00:17:34
declararlo porque
00:17:36
y ahora ya devuelvo cont.
00:17:38
Fuera del while.
00:17:42
Esto es del while
00:17:46
y ahora aquí
00:17:48
return cont.
00:17:50
¡Hala!
00:17:52
Pues esta función
00:17:56
me ha sacado aparte lo de
00:17:58
coger un número entero n
00:18:00
contar sus cifras decimales
00:18:02
este compilador
00:18:10
como este compilador no me
00:18:12
dice que cont no esté inicializado.
00:18:14
¿Vale? A ver, no me lo dice
00:18:22
porque como está en un while
00:18:24
podrían ejecutarse nunca. Entonces ¿quién se activa?
00:18:26
Sona, que es otro plugin de Eclipse
00:18:28
que lo que me dice es, cuidado, esto no es un error de compilación
00:18:30
no te puedo
00:18:32
decir que es un error de compilación
00:18:34
porque yo no sé si vas a entrar en el while alguna vez o no.
00:18:36
Entonces lo digo
00:18:38
con información, no es una cosa tan duro que sea.
00:18:40
Y te dice como
00:18:42
si no entras nunca me da igual que cont esté
00:18:44
inicializado o que no lo esté.
00:18:46
Entonces el compilador es muy
00:18:48
problemático y dice, a ver, bucle
00:18:50
a lo mejor no entras nunca. Si no entras nunca
00:18:52
me da igual que cont no esté inicializado
00:18:54
porque no lo va a necesitar.
00:18:56
Entonces no se atreve a dar error de compilación
00:18:58
pero te saca un error de sonar que es otra historia rara.
00:19:00
¿Vale? En fin,
00:19:02
en nuestro caso, pasemos de eso
00:19:04
nosotros
00:19:06
queremos inicializarlo a cero
00:19:08
porque hombre, aquí va a entrar
00:19:10
aquí va a entrar para contar las cifras
00:19:12
decimales
00:19:14
porque si yo meto un número, ese número como poco
00:19:16
va a entrar una cifra decimal.
00:19:18
¿Vale? Solo no entraría
00:19:20
si el numerito fuera cero.
00:19:22
Pero es que si el numerito fuera cero no entraría
00:19:24
pero yo quiero que entonces me devuelva
00:19:26
lo que
00:19:28
el usuario diga.
00:19:30
¿Vale? Entonces lo digo porque
00:19:32
no me sale el error de compilación y podríais
00:19:34
decir, ostras, pero como
00:19:36
no te dice que inicializa me cont
00:19:38
como yo voy a empezar a sumar
00:19:40
vale, no te sale el error de compilación
00:19:42
pero como veis se ha activado esto
00:19:44
que es otra especie de vigilante
00:19:46
que tiene ahí Eclipse, tiene varios vigilantes
00:19:48
pero vamos, yo sé que lo tengo que inicializar
00:19:54
porque si no esto no me va a funcionar
00:19:56
¿Vale? Pues entonces
00:19:58
lo saco aparte el código, lo saco aparte
00:20:00
este código me va contando
00:20:02
todas las cifras de este numerito
00:20:04
N que yo le paso entero
00:20:06
que son cero y cuando ya las
00:20:08
tenga todas las devuelve.
00:20:10
¿Vale? Y ahora ya que hago
00:20:12
¿Llamo a la función?
00:20:14
Llamo a la función
00:20:16
Entonces vamos a hacerlo aquí
00:20:18
vamos a poner aquí, llamando a la función
00:20:20
¿Cómo sería?
00:20:22
Llamando a la función
00:20:26
sería
00:20:28
pues mucho más fácil
00:20:30
porque a cont le incremento
00:20:32
con el resultado de llamar a la función
00:20:36
Bueno, vamos a hacerlo con variables
00:20:40
adicionales
00:20:42
para que no os liéis
00:20:44
No un cifras, no un cifras va a ser
00:20:46
igual a cuánto, al resultado de llamar a la función
00:20:48
¿Para qué numerito?
00:20:54
Para el numerito N que he leído
00:20:56
para el numerito N que he leído
00:20:58
¿Vale? Pues entonces
00:21:00
aquí en lugar de todo este bucle, repito
00:21:02
en lugar de todo este bucle lo tengo mucho más fácil
00:21:04
Llamo a la función pasándole
00:21:06
el numerito N leído
00:21:08
Llamo a la función
00:21:10
y ya me da las cifras decimales
00:21:12
Actualizo cont y se acabó
00:21:14
cont más
00:21:16
igual, no un cifras
00:21:18
no un cifras cero
00:21:20
perdón, estoy
00:21:24
así, no un cifras cero
00:21:26
son las que estoy contando, ¿verdad?
00:21:28
Bueno, pues esto me sustituiría
00:21:30
a todo esto
00:21:32
¿Vale?
00:21:34
Todo esto de aquí
00:21:37
si lo hago con una función adicional
00:21:39
se me queda en esto
00:21:41
Cuento las cifras decimales
00:21:43
del numerito N llamando a la función
00:21:45
las guardo aquí
00:21:47
e incremento cont con esas cifras decimales
00:21:49
¿Vale?
00:21:53
Y esta función le pasa un numerito
00:21:58
trabaja con él
00:22:00
cuenta las cifras que son cero
00:22:02
y las devuelve
00:22:04
y en alguna de estas me he comido la llave
00:22:06
que me falta aquí
00:22:08
Vale
00:22:12
Vale, pues ahora sí que
00:22:30
está todo
00:22:35
Vale, pues nada, ya subimos
00:22:50
esto a la hora virtual
00:22:52
¿Más cosas?
00:22:54
No hay preguntas
00:23:00
ni nada, bueno
00:23:02
Vale, pues nada
00:23:04
pues
00:23:06
vamos a seguir
00:23:08
Vale
00:23:32
Vale
00:23:48
Borrador
00:23:50
¿Dónde está?
00:23:52
Vale
00:24:02
Bueno, pues
00:24:22
seguimos todavía
00:24:24
pero ya es lo último
00:24:26
antes de entrar en clases y objetos
00:24:28
con programación estructurada
00:24:30
con conceptos de la programación estructurada de toda la vida
00:24:32
¿Vale?
00:24:34
Y la programación estructurada de toda la vida
00:24:36
es la que se basa en la construcción de programas
00:24:38
que es
00:24:40
una línea tras otra
00:24:42
una línea tras otra, una línea tras otra
00:24:44
o sea una secuencia de instrucciones
00:24:46
y esas instrucciones
00:24:48
solamente es necesario utilizar
00:24:52
declaraciones de variables
00:24:54
y asignaciones, por supuesto
00:24:56
no está en ningún sitio
00:24:58
decisiones y bucles
00:25:00
y ya está
00:25:02
combinando esas sentencias
00:25:04
declaración de variables con asignaciones
00:25:06
bucles y decisiones
00:25:08
se puede construir cualquier
00:25:10
algoritmo
00:25:12
para resolver cualquier problema que tengamos
00:25:14
Vale, entonces
00:25:16
a esa estructura
00:25:18
hemos incorporado una pequeña ruptura
00:25:20
porque es lo que se hace de toda la vida en programación
00:25:22
que es cuando el código es muy muy muy muy largo
00:25:24
puedo sacar parte
00:25:26
a lo que tradicionalmente se ha llamado función
00:25:28
puedo sacar parte a lo que se ha llamado función
00:25:30
y entonces en este código
00:25:32
cuando quiera hacer esto, llamo ahí
00:25:34
se hace y volvemos otra vez
00:25:36
una vez que ha terminado
00:25:38
Entonces ese concepto de función
00:25:40
que es este trozo de código
00:25:42
lo saco aparte, le pongo un nombre
00:25:44
y ahora desde el programa lo llamo con su nombre
00:25:46
cuando ha terminado vuelvo
00:25:48
ese es un concepto también que se ha usado
00:25:50
toda la vida en programación estructurada
00:25:52
y en esa función va a lo que uno quiera
00:25:54
obviamente cualquier trozo de código
00:25:56
que haga lo que necesitamos nosotros
00:25:58
Bueno, pues hay otro concepto
00:26:02
que se ha usado en programación estructurada siempre
00:26:04
porque es que
00:26:06
a la hora de trabajar ya
00:26:08
con un volumen de datos
00:26:10
es imprescindible
00:26:12
no podemos trabajar con variables
00:26:14
sueltas como hemos venido trabajando hasta ahora
00:26:16
Entonces
00:26:18
hasta ahora hemos venido trabajando
00:26:20
con variables sueltas por ahí
00:26:22
¿Que yo necesitaba números enteros?
00:26:24
Pues me declaraba una variable suelta
00:26:26
para cada entero
00:26:28
¿Que necesitaba dos números n1 y n2?
00:26:30
Pues ala, me declaraba dos variables sueltas
00:26:32
¿Que ahora necesitaba una variable cadena
00:26:34
para guardar un nombre?
00:26:36
Pues venga, me declaraba una variable
00:26:38
cadena o stream
00:26:40
para un nombre
00:26:42
y así hemos trabajado, con variables
00:26:44
que yo he ido declarando de los tipos que conocemos
00:26:46
los ocho primitivos
00:26:48
byte, short, int, long
00:26:50
float, double, char y boolean
00:26:52
más este
00:26:54
que es medio rarito, porque es objeto
00:26:56
pero bueno, ya iremos viendo sus particularidades
00:26:58
y así hemos hecho, declarando las variables sueltas
00:27:02
y así hemos tirado
00:27:04
Claro, pero que pasa si llega un programa
00:27:06
y me dice, programa que
00:27:08
recorra
00:27:12
que genere
00:27:14
o que recorra mil números enteros
00:27:16
para ver
00:27:18
la media de esos números, por ejemplo
00:27:20
programa que lea los nombres
00:27:22
de los alumnos de un instituto
00:27:24
y los alumnos de un instituto son 300
00:27:26
entonces que hacemos
00:27:28
300 variables de estas
00:27:30
o programa que tiene que trabajar
00:27:32
con mil números enteros, porque son
00:27:34
los mil precios
00:27:36
de los productos, que hacemos, nos declaramos
00:27:38
mil de estas, n1, n2, n3
00:27:40
escribimos así hasta n1000
00:27:42
o sea, es imposible
00:27:44
tener un cierto volumen de datos
00:27:46
cuando hay un montón de números enteros
00:27:48
o un montón de cadenas
00:27:50
que es un caso real, obviamente
00:27:52
no podemos tirar de meter
00:27:54
esos datos en variables sueltas
00:27:56
sería implanteable
00:27:58
ya no solo porque no podemos estar aquí
00:28:00
escribiendo hasta el infinito
00:28:02
sino porque luego a la hora de asignar
00:28:04
¿qué hacemos? n1 igual a tal, n2 igual a tal
00:28:06
n3 igual a tal y así hasta n1000
00:28:08
o sea, mil líneas es lo único que hacen
00:28:10
¿qué hacen n1 igual a tal, n2 igual a tal?
00:28:12
no, es implanteable
00:28:14
entonces eso desde ya
00:28:16
tenemos que poder solucionarlo
00:28:18
desde ya, y desde ya se ha solucionado
00:28:20
la programación estructurada, esto no tiene que ver
00:28:22
con clases, ni con objetos, ni con nada
00:28:24
vale, pues ¿cómo se soluciona esto?
00:28:26
se soluciona con el concepto
00:28:28
de Arrays
00:28:30
Arrays, lo que en literatura
00:28:34
por ahí, pues a veces
00:28:36
por herencia del pasado
00:28:38
muchas veces lo llaman
00:28:40
vectores
00:28:42
pero bueno, esto por la herencia
00:28:44
de literatura antigua, pero su nombre
00:28:46
está en Darés Arrays
00:28:48
y los que lo quieren traducir
00:28:50
que muchas veces
00:28:52
en fuentes bibliográficas, sobre todo
00:28:54
si son latinoamericanas
00:28:56
estarán traducidas
00:28:58
pues si lo quieren traducir
00:29:00
a veces lo traducen así
00:29:02
esta sería su traducción, Arrays
00:29:04
pero es que es un término muy feo, muy raro
00:29:06
lo normal, el término con el que
00:29:08
nos entendemos, es con este
00:29:10
vale, es con este
00:29:12
pero vamos, si estudiáis por ahí
00:29:14
o lo que sea
00:29:16
pues podéis encontraros esto
00:29:18
como traducción, o esto
00:29:20
porque todavía se arrastra un poquito
00:29:22
porque en origen eran vectores
00:29:24
si recordáis la física
00:29:26
del bachillerato
00:29:28
pues un vector es
00:29:30
un montón de valores
00:29:32
puede ser bidimensional, tridimensional
00:29:34
pues eso es un Arrays
00:29:36
un Arrays es un montón de valores
00:29:38
porque eso es justo
00:29:40
para lo que lo queremos
00:29:42
bueno, pues ¿qué es un Arrays?
00:29:44
un Arrays es
00:29:48
una variable también, una variable
00:29:50
eso es una variable, pero es una variable
00:29:52
especial, es una variable
00:29:54
especial porque en lugar de servirnos
00:29:56
para guardar un único valor
00:29:58
¿verdad Moisés?
00:30:00
en lugar de ser una, hasta ahora
00:30:02
todas las variables que hemos declarado
00:30:04
servían para guardar sólo un valor
00:30:06
me da igual que sea un número
00:30:08
me da igual que sea un char
00:30:10
o me da igual que sea una cadena, pero sólo un valor
00:30:12
bueno, pues un Arrays es una variable
00:30:14
pero es especial porque me permite guardar
00:30:16
muchos valores
00:30:18
bajo su mismo nombre
00:30:20
bajo un único nombre
00:30:22
vale, eso es un Arrays
00:30:24
es una variable
00:30:26
que permite guardar
00:30:32
guardar o almacenar
00:30:36
como lo entendáis mejor
00:30:38
un montón de valores
00:30:42
un montón de valores
00:30:44
y no sólo una diferencia de las que hemos visto
00:30:46
de un mismo tipo
00:30:50
¿vale?
00:31:06
esto es importante
00:31:08
lo de un mismo tipo
00:31:10
porque luego Java con la herencia
00:31:12
pues ha apañado
00:31:14
un poco para que sea un poquito más
00:31:16
flexible y puedan ser diferentes tipos, pero con ciertas
00:31:18
restricciones, pero eso ya en su momento
00:31:20
con Java, con objetos, con clases, con todo
00:31:22
ya lo veremos
00:31:24
ahora mismo nos quedamos
00:31:26
con que es una variable
00:31:28
que permite guardar un montón
00:31:30
pero de un mismo tipo, es decir
00:31:32
un montón de enteros, todos juntos, ahí en la misma variable
00:31:34
un montón de cadenas, todos juntos
00:31:36
en la misma variable, un montón de decimales
00:31:38
todos juntos en la misma variable, eso es lo que permite un Arrays
00:31:40
entonces al ser una única
00:31:42
variable, porque un Arrays es una única variable
00:31:44
tiene un único nombre
00:31:46
vale, pues bajo ese
00:31:48
nombre, bajo ese único
00:31:50
nombre, podemos guardar un montón de números
00:31:52
imaginamos que declaramos un Arrays
00:31:54
ya veremos cómo, que ese Arrays se llama
00:31:56
números
00:31:58
pues ese será el nombre de la variable
00:32:00
ArraysNumeros, su único nombre
00:32:02
números, igual que mi variable n1
00:32:04
cuando yo guardaba un número se llamaba n1
00:32:06
n1 solo me
00:32:08
permitía guardar un número, pues ahora
00:32:10
números, al ser de tipo
00:32:12
ArraysNumeros, me permite guardar un montón
00:32:14
me permite guardar muchos
00:32:16
nos viene la duda de, y como lo hago yo
00:32:18
a través de ese nombre
00:32:20
como accedo yo al primero, o al segundo
00:32:22
o al quinto, se tiene un montón, bajo el mismo
00:32:24
nombre, como distingo yo
00:32:26
dentro de ese único nombre, números
00:32:28
a cual me refiero de todos ellos
00:32:30
porque hay un único nombre
00:32:32
para todos los números que tiene guardados
00:32:34
vale, pues ahí viene
00:32:36
como ahora
00:32:38
declaramos
00:32:40
usamos y
00:32:42
y utilizamos esta
00:32:48
este tipo de variable
00:32:50
bueno, pues entonces
00:32:52
repito, uno tiene que tener claro que problema
00:32:54
le soluciona, porque las cosas existen
00:32:56
si no solucionan problemas
00:32:58
si no solucionan problemas
00:33:00
no necesitamos que existan, necesitamos
00:33:02
conocerlas, nos dan igual
00:33:04
entonces esta nos soluciona un problema
00:33:06
vale, para eso está, no está porque tenga que estar ahí
00:33:08
nos soluciona el problema de guardar
00:33:10
un montón de datos
00:33:12
sin tener yo que declarar variables
00:33:14
por separado para cada uno de ellos
00:33:16
eso me soluciona, que es interesante
00:33:18
bueno, pues ahora
00:33:20
cuando yo la necesito
00:33:22
porque me he dado cuenta que esa es mi situación
00:33:24
que mi situación es que tengo que trabajar con 100 enteros
00:33:26
pues cuando yo me
00:33:28
identifico que la necesito
00:33:30
porque tengo que trabajar con 100 enteros
00:33:32
y hacer num1, num2, num3
00:33:34
hasta 100, no es operativo, cuando yo la identifico
00:33:36
ahora digo, vale, muy bien, ¿cómo la declaro?
00:33:38
¿qué hago? vale, pues
00:33:40
vamos a ver, ¿cómo la usamos y cómo la declaramos?
00:33:42
como todas las variables
00:33:44
hay que declararla
00:33:46
primero, antes de usarla
00:33:48
primero se la declara, como todas las variables
00:33:50
luego ya se le dan valor, se opera con ella
00:33:52
lo que uno quiera, pero primero se la declara
00:33:54
y luego ya se le asigna valores
00:33:56
y se la usa en expresiones
00:33:58
o lo que uno quiera
00:34:00
¿ha llamado?
00:34:02
dime
00:34:04
un segundo, dime
00:34:08
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 5
- Fecha:
- 13 de noviembre de 2023 - 12:10
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 651.24 MBytes