Saltar navegación

20251114 EjerArrays_2 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 16 de noviembre de 2025 por Raquel G.

3 visualizaciones

Descargar la transcripción

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
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
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
palabras de 00:11:41
y charad j 00:11:44
es mayor que 00:11:44
¿cuál era? 00:11:52
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
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid