20241128 CorreciónExamen_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:
¿De qué? Venga, vamos a ejercicio 1.
00:00:00
Pues entonces, estáis en el examen.
00:00:04
Empezáis vuestra clase, ejercicio 1.
00:00:06
¿Qué es lo primero que hacéis?
00:00:09
Leer, efectivamente, enunciado y asegurarse de que uno lo entiende bien.
00:00:12
Vale.
00:00:17
Entonces, realizar una función.
00:00:18
Vale.
00:00:20
El nombre de la función os lo doy dado
00:00:21
para que luego a mí me sea más fácil corregirlo
00:00:23
porque a veces me ponéis nombres de funciones tan
00:00:26
hiper, mega
00:00:28
extraños que luego no encuentro
00:00:30
entonces, os doy el nombre de la función
00:00:32
pero claro, no os doy ni los parámetros que tiene que
00:00:34
recibir el valor de retorno, se lo deducís
00:00:36
vale, lo que digo, esta función necesita
00:00:38
entonces, esto
00:00:40
será, lo que me tenéis que
00:00:42
hacer es una función, con lo cual
00:00:44
a ver, que
00:00:46
con lo cual lo que me tenéis que hacer es
00:00:47
algo así, una función
00:00:52
que reciba
00:00:54
Esto es lo que hay que hacer.
00:00:59
Vale.
00:01:01
Luego ya esta función se probará en el main.
00:01:02
Pero eso es aparte.
00:01:05
Uno hace la función.
00:01:07
La función es absolutamente independiente.
00:01:08
Tiene su cometido.
00:01:11
Trabaja con unos datos de entrada en caso de haberlos
00:01:13
y devuelve un valor o no.
00:01:15
A lo mejor con lo que hace dentro es suficiente.
00:01:20
Bueno, y esa función es independiente.
00:01:22
Pues eso es lo que se pide, hacer la función.
00:01:23
Y luego vamos a hacer un main para probarla.
00:01:25
Para que os sirva a vosotros
00:01:29
Para ver si realmente os está funcionando o no
00:01:30
Pero esto es lo que se pide hacer
00:01:32
Una función
00:01:35
Bueno, para hacer una función ya sabemos que necesitamos
00:01:35
Parámetros de entrada
00:01:39
¿Necesita parámetros de entrada para trabajar o no?
00:01:41
Pues sí, porque nos dicen
00:01:44
Oye, la función va a recibir
00:01:45
Una array de cadenas de texto
00:01:47
Pues entonces esto ya lo tenemos
00:01:48
Entonces si la función recibe
00:01:51
Una array de cadenas de texto
00:01:53
¿Es esto lo único que tiene que recibir?
00:01:54
no os inventéis
00:01:57
más argumentos
00:01:59
la función trabaja con esto
00:02:00
puede que la función por dentro
00:02:02
necesite variables auxiliares para hacer
00:02:04
cosas, si las necesita se
00:02:07
declaran ahí dentro, porque son variables
00:02:08
auxiliares solo para trabajar aquí
00:02:10
pero lo que le viene desde
00:02:12
fuera para trabajar es solo
00:02:14
una raíz de cadenas de texto, solo eso
00:02:16
pues es lo único que se pone ahí, no se ponen
00:02:18
más variables
00:02:21
bueno, pues esta función con estas cadenas
00:02:21
de texto, ¿qué va a hacer?
00:02:25
Pues va a hacer, calcular la longitud media de esas cadenas.
00:02:27
Cada cadena tendrá una longitud, pues la media de las longitudes.
00:02:32
Y luego devolverá como valor de retorno otro array de cadenas
00:02:35
que contenga cadenas, pero ¿cuáles?
00:02:40
Pues las cadenas del primer array cuya longitud sea menor o igual que la media.
00:02:42
Entonces, recibe un array de cadenas, devuelve otro array de cadenas,
00:02:50
luego esto que se pone aquí
00:02:54
ya lo tenemos
00:02:56
lo que va a devolver es esto
00:02:58
vale
00:02:59
y ahora
00:03:01
¿qué tiene que hacer?
00:03:02
calcular la media de las longitudes
00:03:04
y una vez que tiene la media
00:03:06
construir un array
00:03:09
que tenga solamente
00:03:10
las cadenas del array parámetro
00:03:12
cuya longitud sea menor o igual que la media
00:03:15
y ese array lo devolvemos
00:03:17
luego son como esas tres partes
00:03:19
vamos a hacer la primera parte
00:03:21
calcular
00:03:22
longitud media
00:03:24
esto es hacer una media
00:03:27
hacer una media sabemos perfectamente
00:03:30
cómo se hace
00:03:32
las longitudes son números enteros
00:03:32
pues venga, vamos a calcular
00:03:35
la longitud media
00:03:38
entonces para hacer una media hacemos primero
00:03:39
la suma acumulativa y dividimos entre el total
00:03:43
esa es la media
00:03:46
primero la suma acumulativa de los valores
00:03:46
y cuando tengamos la suma acumulativa
00:03:49
dividimos entre el total de valores
00:03:51
Bueno, pues la suma acumulativa
00:03:54
Siempre hacemos de esta misma manera
00:03:56
Empieza con 0
00:03:59
Y ahora, esta suma acumulativa
00:04:00
Que va a ir recorriendo
00:04:03
Todas las cadenas del array que me han pasado
00:04:04
Las va a ir recorriendo todas ellas
00:04:06
Bueno, pues aquí tendremos un for
00:04:09
Que recorra mi array
00:04:11
Que me han pasado por parámetro
00:04:13
Vale
00:04:15
Este for es el que va a ir
00:04:27
Incorporando en la variable suma
00:04:30
Con la sentencia de siempre
00:04:33
la sentencia de la suma acumulativa, la que va a ir incorporando en la variable suma
00:04:35
todos los sumandos que la integran.
00:04:39
¿Y los sumandos que la integran cuáles van a ser?
00:04:41
Pues cada una de las longitudes de estas cadenas.
00:04:45
La longitud de la cadena 0, la longitud de la cadena 1, la longitud de la cadena 2.
00:04:48
Es decir, cadena de i.length
00:04:52
Cadenas de i.length
00:04:57
¿Vale? Pues ya tenemos el for
00:05:04
Voy a poner la llavecita por si nos estreséis
00:05:07
¿Vale? Ya tenemos el for que hace una suma acumulativa de toda la vida
00:05:14
Aquí lo único que puede tener un pelín de es
00:05:20
Que lo que vamos sumando a la suma acumulativa es todos y cada uno de los tamaños de las cadenas.
00:05:24
A la suma acumulativa va la longitud de la primera, y luego va la longitud de la segunda, y luego la longitud de la tercera, y así.
00:05:33
Oye, paz, silencio.
00:05:43
Vale, esta es la suma de las longitudes, pero nos han pedido la media.
00:05:46
Bueno, pues la media es
00:05:51
Esa suma entre el total de cadenas que tengo
00:05:53
Pues entonces
00:05:55
La media es esa suma
00:05:57
Entre el total de cadenas que tengo
00:06:01
¿Y cuántas cadenas tengo?
00:06:03
Pues tantas como hay en el array
00:06:05
Es decir, esto
00:06:06
Tantas como hay en el array
00:06:08
Vale, pues ya tengo
00:06:09
La media de las longitudes
00:06:12
Una suma acumulativa normal y corriente
00:06:14
Y luego dividida por el total
00:06:16
Para que sea una media
00:06:18
Ahora, ¿qué tenemos que hacer?
00:06:19
Tenemos que construir un nuevo array
00:06:23
Y recorrer este primero
00:06:25
Este parámetro que nos han pasado
00:06:27
Recorrer este primero de aquí
00:06:29
Andoni, cállate de una vez
00:06:32
¿Vale? Recorrer este primer array
00:06:35
Y cada
00:06:38
Y cada cadena de esa
00:06:39
Cuya longitud sea menor o igual que la media
00:06:41
Menor o igual
00:06:44
Pues lo metemos en ese otro array
00:06:45
Solo vamos a copiar en el otro array
00:06:46
Las cadenas
00:06:49
de este cuya longitud sea menor
00:06:51
que la media que acabamos de calcular
00:06:53
luego, la primera duda que nos surge
00:06:55
es, a ver, este array
00:06:58
nuevo, ¿qué tamaño
00:06:59
tiene? ¿qué tamaño le reservo?
00:07:01
es que no sé
00:07:04
no sé cuántas cadenas
00:07:05
van a tener menor
00:07:07
longitud que la media, no lo sé
00:07:09
entonces, mi array resultado
00:07:11
que va a ser un array de cadenas
00:07:13
mi array resultado
00:07:15
pues aquí me quedo
00:07:17
para un rato, ¿no?
00:07:19
Y digo, uy, ¿qué tamaño le doy a mi array resultado?
00:07:21
Vale, pues aquí, a ver, podemos resolver de muchas maneras.
00:07:26
Podríamos darle el mismo tamaño que el original y rellenándolo desde el principio
00:07:32
y la parte que me sobra, que sea la que tenga null, cortarla.
00:07:38
Podemos operar de muchas maneras, pero la más sencilla es,
00:07:42
oye espera, voy a meter aquí un contador
00:07:45
que me vaya
00:07:48
voy a hacer un contador
00:07:50
que me cuente
00:07:52
cuántas cadenas tienen
00:07:53
como longitud menor
00:07:56
que esta media
00:07:58
lo cuento antes
00:07:59
y ahora ya este string
00:08:01
que tenga como tamaño ese contador
00:08:03
eso sería lo más fácil, es más largo de código
00:08:05
que esa primera otra opción que he dicho
00:08:08
de darle la longitud del original
00:08:10
y luego cortarlo que no hayamos rellenado
00:08:12
es más largo de código, pero quizás
00:08:14
es más fácil de hacer para vosotros
00:08:17
porque es lo que hacemos todo el rato, contar, sumar
00:08:19
pues venga, vamos a contar
00:08:21
cadenas de
00:08:22
longitud
00:08:28
menor o
00:08:28
igual que la media
00:08:35
vamos a contarlas
00:08:37
con el único propósito, repito
00:08:38
de darle tamaño a este array
00:08:41
que lo tenemos ahí, que no sabemos que tamaño
00:08:43
va a tener, con único propósito
00:08:45
pues venga, vamos a contar
00:08:46
como contamos siempre
00:08:49
un contador, recorremos nuestro array
00:08:50
casi nunca usáis el forEach
00:08:52
porque lo mencionamos
00:08:57
y no lo hemos usado en los ejercicios prácticamente
00:08:58
para nada, por unos
00:09:00
pequeños efectos secundarios que veremos más cuando veamos
00:09:03
objetos, pero bueno, por comodidad
00:09:05
lo voy a poner
00:09:07
¿vale?
00:09:08
bueno, no, venga
00:09:18
no lo pongo para que nos liéis, cuando veáis
00:09:19
la corrección, no lo pongo, ya usaremos este
00:09:20
forEach con objetos tranquilamente
00:09:23
Pues venga, vamos a contar cuántas cadenas de mi array parámetro tienen longitud menor o igual
00:09:24
Pues ahora, si cadenas de y.length
00:09:34
Es decir, el tamaño de la cadena es menor o igual que la media
00:09:41
¡Hala! Esta va a ir al array
00:09:49
Esta va a ir al array, pues la contamos
00:09:51
Bueno, pues ya tenemos aquí el for
00:09:54
Le voy a poner llaves al for
00:09:58
Para que no me regañéis
00:10:00
Uy, ahí no
00:10:02
Aquí abajo
00:10:04
Al con más más ese ya no le pongo llaves
00:10:05
Que es demasiado
00:10:11
Vale, entonces este
00:10:11
Este trozo de código
00:10:15
Es un trozo de código solamente para contar
00:10:17
Cuántas cadenas
00:10:19
De la array original
00:10:21
Van a tener un tamaño menor que la media
00:10:22
Porque esas van a ser las que vayan al otro
00:10:25
entonces si las tenemos contadas
00:10:27
ya hemos resuelto este problema
00:10:30
que tamaño le damos al array definitivo
00:10:32
ya lo hemos resuelto
00:10:34
ya está
00:10:36
y ahora ya nos queda la tercera parte
00:10:37
que también hemos hecho muchas veces
00:10:40
pues vamos recorriendo un array
00:10:43
la que toque la guardo en el otro
00:10:45
en la posición que toque y dejo incrementada la posición
00:10:48
es decir, ahora ya vamos a recorrer
00:10:50
el array parámetro para ir copiando
00:10:54
mientras i sea menor
00:10:56
que cadenas
00:10:58
punto len
00:11:00
no, estoy recorriendo el original
00:11:01
y cada cadena que sea menor o igual que la media
00:11:08
lo copio en el otro, el otro está vacío todavía
00:11:10
tiene nul, el otro está vacío
00:11:12
pues que hacemos con esto
00:11:14
si
00:11:17
cadenas de i
00:11:19
punto len
00:11:22
resulta que es
00:11:24
menor o igual que la media
00:11:28
esta toca copiarla
00:11:30
luego esta toca
00:11:32
llevarla a alguna posición
00:11:34
de result, a alguna
00:11:36
toca copiarla
00:11:38
y este problema ya lo hemos visto muchas veces
00:11:39
¿a qué posición la copiamos?
00:11:46
porque aquí habéis plantado todos
00:11:48
alegremente, o casi todos, y
00:11:50
claro, magnífico, y te vas
00:11:51
dejando unos huecazos en medio
00:11:54
copias la 0 en la 0, luego
00:11:55
que hay 3 que no copias, te quedan ahí 3 huecos
00:11:58
vacíos, luego copias la 4 en la 4
00:12:00
no queremos eso, queremos
00:12:02
que las que vamos copiando de la raya original
00:12:04
vayan seguidas en el otro
00:12:06
esto lo hemos resuelto muchas veces
00:12:08
claro
00:12:09
entonces, ¿en qué posición?
00:12:12
pues venga, vamos a ponerla en una posición
00:12:14
que se inicie en 0
00:12:16
que se inicie en 0
00:12:17
y la voy dejando incrementada
00:12:21
¿vale?
00:12:23
que esto ya lo hemos resuelto muchas veces
00:12:26
pues ya está
00:12:28
de la raya original
00:12:30
vamos copiando en posiciones
00:12:32
consecutivas de result
00:12:34
en consecutivas, no a saltos
00:12:36
no a saltos
00:12:38
en posiciones consecutivas
00:12:39
vamos guardando
00:12:41
esto, vale
00:12:43
y ya está, y ahora ya devolvemos
00:12:53
result
00:12:56
y listo
00:12:56
se acabó la función
00:13:06
vale
00:13:07
entonces la función son como varias partes
00:13:11
varios ladrillos, como digo siempre
00:13:14
de cosas que hemos hecho, pero claro
00:13:16
insisto en lo de siempre
00:13:17
primero uno tiene que organizar
00:13:19
su código y decir, ah, tengo que hacer esto y luego esto
00:13:22
y luego esto, una vez que lo tiene organizado
00:13:24
cada uno de esos ladrillos
00:13:26
no los tiene que pensar de cero
00:13:27
porque ya los hemos hecho muchas veces y ya los tiene
00:13:29
memorizados en la cabeza, dice, ah, vale
00:13:32
tengo que hacer una media
00:13:34
genial, hago una media
00:13:35
una suma acumulativa donde voy sumando
00:13:37
todas las longitudes de las cadenas
00:13:39
y cuando tenga ya la suma
00:13:42
divido por el total de cadenas
00:13:44
vale, ahora me hago
00:13:46
un array, me hago un array
00:13:48
resultado en el que voy copiando
00:13:50
vamos copiando en posiciones
00:13:51
consecutivas del resultado
00:13:53
para eso tenemos que hacer esto
00:13:55
voy copiando una posición
00:13:57
que empieza siendo 0 y luego la voy
00:14:00
incrementando, para así
00:14:02
ir copiando en posiciones consecutivas
00:14:04
de este, ¿y cuáles voy copiando?
00:14:06
pues voy copiando solo cada una de las
00:14:08
y es de estas
00:14:11
cuya longitud sea menor o igual que la media
00:14:12
y ahora este problema que queda
00:14:14
ya pero no sé qué tamaño darle
00:14:17
bueno pues vamos a contar antes
00:14:18
cuántos espacios vas a necesitar
00:14:19
pues vas a necesitar estos espacios
00:14:22
vamos a contarlos, tantos como cadenas
00:14:24
tengan longitud menor o igual que la media
00:14:26
vale, pues ya está la función
00:14:28
ahora si hacemos un main para probarla
00:14:32
aquí el main, ni había que leer por teclado ni nada
00:14:34
para que fuera más corto
00:14:36
el ejercicio
00:14:38
y entonces
00:14:44
el
00:14:44
ah, es que esta no es la versión definitiva
00:14:46
vale, la versión definitiva
00:14:52
la tengo
00:14:54
en otro sitio
00:14:57
vale, bueno, había que probar con una RAI de números
00:14:59
cualquiera, vamos a ponerlo
00:15:01
entonces habíamos dicho, venga, probad
00:15:03
Con el array este
00:15:07
De cadenas
00:15:09
Que era soy y un montón de cosas varias
00:15:10
Vale, vamos a poner
00:15:15
Tres, otra larga
00:15:29
Para ver si elimina la del medio
00:15:31
Al menos
00:15:33
Un cerdo no es muy larga
00:15:34
Vamos a poner un cerdito
00:15:43
Por mi torrinco ese estaría bien
00:15:44
Vale, entonces aquí me falta
00:15:50
La
00:15:54
Llave
00:15:55
y el punto y coma, vale
00:15:57
este main estaba puesto un poco a propósito
00:15:59
para que os acordarais
00:16:02
de que uno puede a la vez que declara un array
00:16:03
inicializarlo entre llaves
00:16:06
con los valores, entonces en mi main
00:16:07
ya tengo un ejemplo concreto
00:16:09
entonces ahora ya con un ejemplo concreto
00:16:10
llamo a la función
00:16:13
vale, pues entonces
00:16:14
mi función
00:16:16
me devolverá un resultado
00:16:20
por ejemplo lo guardamos
00:16:22
aquí
00:16:29
filtradas
00:16:29
y como se llama la función
00:16:32
esto también era para ver que sabíais llamar a la función
00:16:35
pues se llama la función
00:16:38
con su nombre y pasándole
00:16:40
el dato que uno quiera
00:16:42
pues queremos pasarle este dato
00:16:44
cadenas, este array en concreto
00:16:46
le vamos a pasar
00:16:48
el resultado como es un array hay que guardar una variable
00:16:49
si no lo guardo en una variable
00:16:52
el resultado lo pierdo
00:16:53
y ahora hombre para comprobar si realmente
00:16:55
lo ha filtrado, vamos a mostrarlo
00:16:58
venga
00:17:00
filtradas de ahí
00:17:18
vamos a ver
00:17:21
si nos funciona a la primera
00:17:23
todo el mundo sabe llamar a la función
00:17:25
si tiene valor de retorno, pues tiene que
00:17:27
guardarlo en un sitio y luego ya hacer con él
00:17:29
lo que sea, en nuestro caso mostrarlo
00:17:32
pues a este main
00:17:33
lo llamamos
00:17:36
y esta es la única que no superaba
00:17:37
la media, debe ser que la media era
00:17:41
muy larga, podríamos
00:17:43
Comprobarlo, pero bueno
00:17:45
Suponemos que está bien
00:17:46
¿Puedes bajar al último array?
00:17:48
En la función
00:17:51
O en el main
00:17:52
Vale
00:17:53
¿Perdón?
00:18:12
Pues no sé deciros
00:18:24
Este es el código, está en mi prueba
00:18:25
No sé qué código tenéis vosotros
00:18:27
Luego lo miramos a ver
00:18:29
En vuestro código
00:18:31
Que hay, pero vamos
00:18:33
A ver, si el código es idéntico
00:18:33
El resultado tiene que ser idéntico
00:18:38
Si el resultado es distinto, el código es distinto
00:18:39
Eso sí que es
00:18:42
Impepinable
00:18:43
Un descansito
00:18:45
Vale, un descansito
00:18:48
- 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:
- 1 de diciembre de 2024 - 19:26
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 18′ 52″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 81.08 MBytes