20251114 EjerArrays_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:
Venga, pues ejercicio 7.
00:00:00
¿Vamos a corregirlo?
00:00:03
Sí, ¿eh?
00:00:05
No, pero ¿queréis corregirlo?
00:00:07
Como veo que más o menos os es...
00:00:08
Lo habéis hecho más o menos sin mayor dificultad.
00:00:11
Vale, pues a ver.
00:00:14
7.
00:00:16
Vamos a leer 5 palabras.
00:00:17
Bueno, pues como vamos a leer 5 palabras,
00:00:20
vamos a hacer un array de string,
00:00:25
porque cada palabra es una cadena de texto.
00:00:27
es un string. El array antes de usarlo tengo que crearlo de esta manera y tengo que decir
00:00:30
una cantidad. Me han dicho 5, pues 5. Si en el futuro cambia, pues me vengo aquí y cambio
00:00:38
la cantidad. Vale, vamos primero a leer las palabras que me han pedido. Bueno, como vamos
00:00:43
Vamos a tener que leer del teclado.
00:00:49
Pues esto de aquí.
00:00:54
Y ahora.
00:00:59
Esto era.
00:01:03
Ahora ya.
00:01:08
Vamos primero a recorrer el array para leer.
00:01:09
Primero un for para recorrer.
00:01:13
Así nos vamos aclarando la cabeza.
00:01:15
Bueno, pues lo más cómodo.
00:01:17
Como las posiciones del array irán entre 0 y 4.
00:01:19
pues un bucle for donde ya hay una variable interna
00:01:22
que me puede servir como posición
00:01:24
aquí podría poner 5
00:01:27
pero mucho mejor si pongo
00:01:31
palabras.length
00:01:33
mucho mejor si pongo esto
00:01:38
porque si pongo esto, este va a seguir siempre a este número
00:01:39
si este le cambio, este le cambio
00:01:44
entonces mejor poner palabras.length que poner 5
00:01:45
vale, ahora
00:01:51
¿qué hacemos ahí? pues nada, leerla
00:01:53
porque es
00:01:55
la forma en la que
00:02:05
tiene un array de devolverte, como un array
00:02:07
es un objeto, pues lo que contamos
00:02:09
el miércoles, como un array es un objeto puede llamar
00:02:11
a cosas, no solo tener valor
00:02:13
una de las cosas que puede llamar es length que le da
00:02:14
el número de posiciones que tiene
00:02:17
palabras.length
00:02:19
te dice lo que tú hayas puesto aquí
00:02:24
que tengan
00:02:26
cosas o no tengan esas posiciones es lo de menos
00:02:28
Pues claro, desde i igual a cero
00:02:30
Mientras sea menor que esta
00:02:37
Incrementando i, se va a meter primero en la cero
00:02:39
Luego en la uno
00:02:41
Claro, estoy empezando en la cero
00:02:42
Entonces va a ir una por una
00:02:46
Vale, entonces introduzca
00:02:47
Palabras, pues palabras
00:02:50
De i
00:02:51
Igual a scan
00:02:52
Next line
00:02:55
Y esa palabra puede ser cualquier
00:02:56
Sucesión de caracteres
00:02:59
pero vamos a
00:03:01
primero hacer la versión
00:03:04
que solo nos importan los números positivos
00:03:05
o sea que si empieza con el guión
00:03:08
no es número
00:03:10
dime
00:03:11
el escáner está visualizado como stream
00:03:13
¿cómo que escáner
00:03:16
está como stream?
00:03:19
ah perdón, el array perdón
00:03:19
si ponemos por ejemplo dos letras
00:03:21
o cuatro que queramos
00:03:24
¿se haría eso las cinco veces?
00:03:25
No entiendo bien cómo funciona, porque...
00:03:31
A ver, palabras.led
00:03:33
te da directamente
00:03:34
este numerito.
00:03:37
Claro, entonces, esto
00:03:39
es lo mismo que poner 5.
00:03:41
Es lo mismo. Lo que pasa es que si yo pongo
00:03:43
5 y ahora mi código cambia
00:03:45
y me dicen, oye, hazme la versión para 15.
00:03:47
Pues lo tengo que ir aquí y me tendría
00:03:49
que ir aquí, que es un rollo.
00:03:51
Entonces pongo palabras.led
00:03:53
porque
00:03:55
palabras.led es la forma
00:03:58
que tiene el objeto palabras
00:04:00
de recuperar el tamaño
00:04:02
que tiene, que va a ser el que yo he puesto
00:04:05
aquí, va a ser el que yo he puesto ahí
00:04:07
vale, pues este bucle ha rellenado
00:04:08
las palabras, ya está, ya las
00:04:11
tenemos, ahora
00:04:13
¿qué es lo que me pide el programa?
00:04:13
pues me dice
00:04:17
a ver si
00:04:18
indicar si
00:04:19
alguna es un número
00:04:25
vale
00:04:27
pues entonces
00:04:28
este es un ejemplo de programa que tiene que
00:04:30
resolver si algo pasa o no pasa
00:04:33
entonces yo de partida
00:04:35
voy a asumir una cosa
00:04:36
y luego ya me pongo a recorrer las palabras
00:04:38
a ver si alguna me sirve como contraejemplo
00:04:40
que me vaya a cambiar de opinión
00:04:43
entonces de partida voy a
00:04:44
asumir que
00:04:46
ninguna es un número
00:04:48
y luego ya me pongo a comprobar
00:04:50
todas las palabras, si alguna lo es
00:04:52
ese es el contraejemplo que esperaba
00:04:54
cambio mi suposición inicial
00:04:56
vale, pues este boolean
00:04:58
no hay número, igual a
00:05:00
De partida, ninguna es un número
00:05:03
Vale, y ahora me voy a poner a explorar
00:05:05
A ver si hay alguna de todo ese array
00:05:07
Que me haga cambiar de opinión
00:05:09
Bueno, vámonos a poner a explorar
00:05:10
Pues de nuevo para explorar
00:05:13
Tendremos que recorrer el array
00:05:15
Vale
00:05:17
Ahora
00:05:23
¿Qué tenemos que hacer con cada palabra de i?
00:05:24
Aquí tenemos, en cada iteración
00:05:28
Tenemos
00:05:29
Palabras de i
00:05:30
¿Qué tenemos que hacer
00:05:33
Con cada una de ellas?
00:05:35
Ver si es número o no.
00:05:37
Porque si es número,
00:05:39
automáticamente cambio mi suposición de partida
00:05:41
y la paso a falso.
00:05:44
Porque ya he encontrado alguna que es número.
00:05:46
Con lo cual ya una vez que haya salido del for,
00:05:49
este bucle, perdón, este programa, ¿cómo acabará?
00:05:52
Si no hay número,
00:05:55
este programa va a acabar así.
00:05:59
Si no hay número, pues yo pondré
00:06:01
ninguna palabra
00:06:03
es
00:06:07
número
00:06:09
pero en el else
00:06:10
pues pondré
00:06:13
alguna palabra es número
00:06:14
que es lo que me dice el programa
00:06:16
si alguna es número o ninguna
00:06:21
bueno pues esta es la estructura de mi programa
00:06:23
vale
00:06:29
me tiene que decir si algo pasa o no pasa
00:06:30
pues eso lo guardo en un boolean
00:06:33
de partida asumo que ninguna es número
00:06:35
y ahora tendré que hacer este
00:06:37
for tendré que construirlo, que está aquí en blanco
00:06:39
en agujero negro
00:06:41
ir recibiendo las palabras a ver si
00:06:42
alguna me hace cambiar de idea
00:06:45
cuando ya este for ha terminado, ya podré
00:06:46
concluir mi programa
00:06:49
en función de ese boolean, pues si
00:06:50
esto ha pasado, esto no ha pasado
00:06:53
vale, pero
00:06:54
primero tengo que tener claras
00:06:57
tengo que tener claro el diseño, como lo voy a hacer
00:06:58
tenemos ya varios patrones
00:07:01
en la cabeza, que nos han servido
00:07:03
para resolver ejercicios, pues sumar
00:07:04
contar, pues tenemos que
00:07:06
reutilizar todo eso
00:07:09
para construir códigos
00:07:10
que sean algoritmos cada vez un poco más complejos
00:07:12
vale, pues aquí me falta
00:07:15
este agujero negro
00:07:17
que es, para cada palabra de i
00:07:18
tendremos que mirar
00:07:21
para cada una de estas
00:07:22
palabras de i
00:07:25
hay que mirar
00:07:26
si es
00:07:29
sucesión de cifras
00:07:31
o no, eso es lo que tenemos que mirar
00:07:33
si es sucesión
00:07:35
de cifras o no
00:07:37
Esto es lo que hay que mirar, porque si es sucesión de cifras, me codifica un número.
00:07:39
Si no es sucesión de cifras, no.
00:07:44
Eso es lo que tenemos que mirar.
00:07:46
Vale, pues, ¿cómo miro yo si es sucesión de cifras?
00:07:48
Pues, palabras de i es un string.
00:07:52
Pues, yo puedo hacer un for que vaya carácter por carácter.
00:07:55
Y de nuevo tengo el mismo problema.
00:08:01
yo puedo asumir
00:08:03
para ver si este número, perdón
00:08:05
si esta palabra es de y codifica un número o no
00:08:07
codificará un número
00:08:09
si todas son cifras
00:08:12
y no lo codificará solo con que
00:08:14
alguna de ellas no sea cifra
00:08:16
vale, pues de nuevo es el mismo problema
00:08:18
un mismo problema que yo puedo resolver con un boolean
00:08:21
que es
00:08:23
todas cifras
00:08:23
yo asumo que todas cifras de partida
00:08:27
se cumple, y ahora voy a ir
00:08:30
cifra por cifra. En cuanto alguna
00:08:32
no sea cifra, he cambiado de idea.
00:08:34
No hay número en ninguna
00:08:39
de las palabras. Vale, pues
00:08:40
ahora estoy ya
00:08:43
en un ámbito más pequeñito. Ahora ya estoy en
00:08:44
mi palabras de y es otro problema el que tengo que resolver.
00:08:46
Ahora tengo que resolver este problema.
00:08:49
Para cada palabra, mirar
00:08:51
si es sucesión de cifras o no.
00:08:53
De nuevo, si algo pasa, no pasa. Otra vez
00:08:54
lo mismo, pero ahora en otro ámbito más pequeño.
00:08:56
Bueno, pues voy a asumir que todas son
00:08:59
cifras. Y ahora voy a ir
00:09:00
carácter por carácter
00:09:02
a ver si alguna me permite cambiar de opinión
00:09:04
porque no es cifra
00:09:06
pues vamos a ver
00:09:07
¿cómo recorro yo todos y cada uno de los caracteres de mi string?
00:09:09
pues un bucle for
00:09:13
un bucle for
00:09:14
no puedo reutilizar la i
00:09:16
porque la i ya es la que
00:09:18
está para decirme en qué palabra estoy
00:09:20
pues desde j
00:09:22
igual a cero
00:09:24
la j recorre las posiciones de la palabra
00:09:25
la i recorre las palabras
00:09:28
la j las posiciones de la palabra
00:09:30
para j igual a 0
00:09:31
mientras j sea menor que qué
00:09:34
que el tamaño de la palabra
00:09:35
que es palabras punto length
00:09:37
perdón, palabras de i
00:09:40
punto length
00:09:43
palabras de i
00:09:44
palabras de i es un string, es una cadena
00:09:50
no es como palabras, palabras es un array
00:09:53
y el tamaño de un array
00:09:55
es palabras de length sin paréntesis
00:09:57
palabras de i es una cadena
00:09:59
un string, el tamaño de un string
00:10:01
es un length pero con paréntesis
00:10:03
pero son dos cosas distintas
00:10:06
esto es un array y esto es un string
00:10:07
vale
00:10:10
pues para cada posición debe ser empezando en 0
00:10:11
mientras sea menor que el total
00:10:14
de caracteres que tiene
00:10:15
incrementando j
00:10:17
¿qué tenemos que ver? pues si el
00:10:18
carácter
00:10:21
que tenemos
00:10:22
en esa posición
00:10:24
palabras
00:10:27
de i
00:10:29
que es la palabra que estoy comprobando
00:10:31
punto char at j
00:10:33
tengo que ver
00:10:35
si esto es una
00:10:37
cifra
00:10:39
o no lo es
00:10:41
¿vale? entonces
00:10:42
¿cómo lo podemos hacer?
00:10:49
pues vamos a ver si
00:10:50
la tabla ASTI, las cifras
00:10:52
0 y 9, bueno vamos a abrirlo
00:10:54
para que quede más claro
00:10:56
tabla ASTI, vale
00:10:57
entonces
00:11:03
las cifras
00:11:05
están entre
00:11:09
¿dónde están? que no las veo
00:11:11
aquí, no, están entre 48
00:11:13
y 57
00:11:16
claro, entonces
00:11:16
si ese char es
00:11:19
menor que 48
00:11:22
o mayor de 57
00:11:24
una de las dos
00:11:26
no es cifra, pues entonces ya he encontrado
00:11:27
el contraejemplo a cifra y puedo cambiar
00:11:30
el todas cifras true
00:11:32
bueno, pues entonces
00:11:33
si palabras de i char at j
00:11:35
es menor que 48
00:11:38
o
00:11:40
palabras de
00:11:41
y charad j
00:11:44
es mayor que
00:11:44
¿cuál era?
00:11:52
57
00:11:54
automáticamente acabo de encontrar un contraejemplo
00:11:54
a lo de que todas las cifras
00:11:58
de esta palabras de y se atrue
00:12:00
acabo de encontrarlo
00:12:02
luego ya automáticamente todas cifras
00:12:03
igual a falsa
00:12:06
voy a poner aunque no hiciera
00:12:08
falta llaves en este for para que quede
00:12:12
claro que ya me voy del for
00:12:14
vale, pues este trocito de código de aquí
00:12:15
es un trozo de código
00:12:20
para ver si
00:12:22
palabras de i tiene todas cifras o no
00:12:23
yo asumo de partida que todas son cifras
00:12:26
y ahora me pongo a recorrer
00:12:30
todas sus cifras una por una, todas sus caracteres
00:12:31
perdón, me pongo a recorrer
00:12:34
todos sus caracteres, si alguno
00:12:35
no es cifra
00:12:38
contra ejemplo, cambio de idea
00:12:39
al respecto
00:12:42
pues cuando este fuera terminado
00:12:42
ya tengo toda la información
00:12:46
necesaria para ver
00:12:48
si esta palabra es
00:12:50
un contraejemplo del no hay número
00:12:52
o si, porque
00:12:54
si
00:12:55
todas cifras
00:12:56
acabo de encontrar un contraejemplo
00:12:59
para no hay número, acabas de encontrarlo
00:13:04
pues si todas son cifras
00:13:06
entonces no hay número
00:13:07
igual a
00:13:09
falso, porque claro que lo hay, acabo de encontrar uno
00:13:11
y ya está, ya ha terminado el programa
00:13:14
lo he ido adaptando
00:13:17
a los algoritmos
00:13:23
que vamos haciendo
00:13:26
pero bueno, esto lo podéis saber
00:13:27
lo podéis luego compactar, podéis reorganizar
00:13:29
el código de otra manera
00:13:31
yo lo he ido como haciendo por ladrillos
00:13:32
claro, porque con cada palabra
00:13:36
tengo que empezar de nuevo
00:13:40
con cada palabra tengo que empezar de nuevo
00:13:41
a ver si esa palabra
00:13:43
es número o no lo es.
00:13:44
Sí, pero por eso
00:13:48
hemos dicho que vamos a hacer la versión ahora mismo
00:13:49
solo positivo, ¿vale?
00:13:50
Claro que esta se reinicia, porque
00:13:53
en cada bucle del for empiezo
00:13:55
de nuevo con una palabra nueva,
00:13:57
para ver si es todas cifras o no.
00:13:58
Claro, en cuanto
00:14:03
una de estos strings me haya dado
00:14:04
todas cifras, esto ya lo puedo
00:14:06
convertir a falsa.
00:14:08
¿Vale? Y va a seguir comprobando
00:14:10
la siguiente, que ya nos daría
00:14:13
igual, porque con este ya se ha puesto
00:14:15
a falso, ya nos da igual
00:14:17
entonces si queremos ya rizar el rizo
00:14:18
podemos aquí, en este ad
00:14:21
pero bueno, no lo voy a poner porque ya hay mucho código
00:14:23
poner, mientras no haya llegado a longitud
00:14:25
y no haya número, siga siendo
00:14:26
true, porque cuando sea falso ya no falta
00:14:29
que entre más, ¿vale?
00:14:30
sí, vamos a ver
00:14:34
vale, pues introduzca, palabra
00:14:35
esta, esta
00:14:48
Y 45
00:14:50
Vale, alguna ha sido un número
00:14:54
Efectivamente alguna ha sido
00:14:56
Vamos a no poner ninguna
00:14:58
Ninguna ha sido un número
00:15:00
Vale, hombre
00:15:08
Podríamos ir haciendo casos de prueba más retorcidos
00:15:08
A ver, pero bueno
00:15:11
Funciona
00:15:12
Yo pensaba que era poner
00:15:14
Literalmente poner dos
00:15:18
La palabra dos
00:15:19
Pues entonces sí que es complicado
00:15:21
Pues entonces no me extraña que te volvieran loco
00:15:23
No hombre, eso es muy complicado
00:15:27
Porque tienes que ir
00:15:29
Haciendo sub-stream
00:15:30
A ver si algún sub-stream es 2, 200
00:15:32
No es que sea imposible
00:15:34
Pero es muy complicado
00:15:36
No, es una locura
00:15:37
Claro
00:15:42
De hecho, vamos a preguntarle
00:15:43
Al esclavo
00:15:45
No en un array
00:15:50
en una palabra solo
00:15:52
dame método
00:15:53
java
00:15:56
para dado un
00:15:57
string
00:16:00
decirme
00:16:01
si describe
00:16:06
un número
00:16:10
o sea, esto es complicadísimo
00:16:11
un número
00:16:14
por ejemplo
00:16:17
213
00:16:20
es que esto es una locura
00:16:26
Por ejemplo, 213
00:16:27
El enfoque es
00:16:30
Separarlo en tokens válidos
00:16:38
Verificar que todos los tokens pertenecen al vocabulario numérico español
00:16:40
Intentar convertirlo
00:16:43
Convertir a positivo
00:16:44
Texto, una compuesta
00:16:55
Contiene la clave
00:16:57
Esto es una movida de método
00:16:58
Es muy complicado
00:17:00
¿Vale?
00:17:03
no era lo que pedía, lógicamente
00:17:07
esto es una movida, tienes que ir efectivamente
00:17:09
separando las partes, meterlo en una estructura
00:17:11
de datos útil, como es un
00:17:13
diccionario, como lo está usando él, un map
00:17:15
porque si no es inmanejable, si no lo metes en un map
00:17:17
es una locura, no era eso lo que pedía
00:17:19
lógicamente
00:17:21
claro
00:17:22
no entendía nada de lo que te decía
00:17:23
claro, me extrañaba que estuvieras tan desconcertado
00:17:27
pero, pues no te he entendido
00:17:29
no he entendido que tu problema era ese
00:17:31
vale
00:17:33
a ver
00:17:34
¿Algún otro que queramos que corrijamos?
00:17:37
Te van a odiar tus compañeros
00:17:45
Que tus compañeros te van a odiar
00:17:47
Pero sí, pero un segundito
00:17:49
¿Este código querías?
00:17:50
Dime
00:17:53
Ah, vale
00:17:53
Claro, un bucle que vas restando
00:17:55
O sea, primero vas restando miles hasta que sea menor que mil
00:18:06
Y ahí vas concatenando las M
00:18:10
Con la que te queda otro bucle
00:18:11
Que vas restando cienes
00:18:14
Hasta que te quede menor de cien
00:18:15
Y cada resta concatenas las C
00:18:17
Y luego, claro
00:18:18
No, yo
00:18:20
Vas restando
00:18:27
Mil quinientos
00:18:29
Porque las cifras romanas son mil quinientos cien
00:18:31
Cincuenta
00:18:33
Diez
00:18:35
Cinco y uno
00:18:36
pues ir restando esas cantidades
00:18:39
una tras otra
00:18:41
yo lo haría con un bucle
00:18:42
y hasta aquí
00:18:46
e iría acumulando
00:18:50
e iría concatenando las M
00:18:51
en cada iteración, luego habría otro bucle
00:18:53
que iría concatenando las C
00:18:55
el switch no sé a dónde te refieres
00:18:56
en función de lo que te haya dado
00:18:58
en el bucle, las restas
00:19:21
ah, sí, también, claro
00:19:22
Bueno, es que a ver, el largo
00:19:24
Porque tienes que ir haciendo los bucles de restas
00:19:30
Los tienes que hacer
00:19:32
Sí o sí
00:19:33
Bueno
00:19:35
Pues nada
00:19:46
Si queréis nos vamos
00:19:51
Y si no también
00:19:53
Dime, que ponga que
00:19:54
Que lo haga más pequeño
00:19:57
Vale, lo voy a subir
00:20:03
De todas maneras a la carpeta de ejercicios
00:20:05
Si, estarán proyectos
00:20:06
Hechos en clase
00:20:09
Gracias.
00:20:10
- 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:
- 16 de noviembre de 2025 - 11:48
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 20′ 29″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 84.43 MBytes