Saltar navegación

20241029 ProgrEstruct-Arrays-ejercicios_1 - 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 30 de octubre de 2024 por Raquel G.

9 visualizaciones

Descargar la transcripción

Demasiado, es fácil hasta para un examen, animando, hasta para un examen he dicho que es fácil. 00:00:00
A ver, venga, pues vamos allá. 00:00:10
Venga, pues todo el mundo conectado, sobre todo el que se sienta así un poquito más flojo. 00:00:28
el que vaya más sobrado pues que siga haciendo ejercicios 00:00:32
y ya está 00:00:35
a ver, vamos a leer n números 00:00:38
que hemos pedido previamente que nos digan cuantos 00:00:41
hasta ahí está claro 00:00:44
ahora, ¿qué vamos a hacer con cada uno de esos números? 00:00:45
en lugar de guardarlo en una variable primitiva suelta 00:00:49
guardarlo en posiciones consecutivas de un array 00:00:52
es decir, lo mismo que hemos hecho en los anteriores 00:00:55
recorrer un array con el for 00:00:58
y para cada posición asignarle un valor que hemos leído por teclado. 00:01:00
Bueno, pues entonces vamos a ir haciéndolo así por partes. 00:01:07
Entonces, como vamos a leer del teclado, pues el escáner. 00:01:10
Y ahora lo primero que tenemos que pedir es el tamaño del array. 00:01:23
Porque en este caso me han dicho que el número de valores que vamos a meter en el array 00:01:27
tengo que pedirlo previamente por teclado. 00:01:31
No me han dicho mete 10 números, mete 15, mete 20 00:01:33
Sino primero pregunta cuántos 00:01:36
Y luego ya los introduces 00:01:38
Pues venga, vamos a hacer 00:01:40
Primero una lectura 00:01:42
No le ponemos ni mensajito ni nada 00:01:43
Para ir rápido 00:01:46
Claro, porque 00:01:46
Estos de aquí arriba 00:01:57
Pues eran, vas a meter 5 exactamente 00:02:00
aquí te dicen, vas a meter 00:02:02
una cantidad que primero dile 00:02:05
¿cuántos quieres? 00:02:06
vamos a hacerle la pregunta para que quede 00:02:09
más claro a lo mejor qué significa ese valor 00:02:11
vale, entonces ahora ya sabemos 00:02:13
que vamos a meter exactamente 00:02:36
N mayúscula 00:02:38
los que sea que haya ahí dentro 00:02:40
no sabemos cuántos, bueno pues 00:02:42
entonces, vamos a necesitar 00:02:44
un array de números 00:02:47
enteros, vale 00:02:48
este es mi array, y vamos 00:02:52
a declarar espacio en memoria 00:02:54
para cuantos 00:02:56
para n mayúscula 00:02:58
entonces esta cantidad 00:02:59
es una concreta, la que 00:03:02
sea, una, porque aquí hay que 00:03:04
dar una cantidad fija, la que 00:03:06
sea, vale 00:03:08
y ahora ya que tenemos que hacer 00:03:09
recorrer este array 00:03:12
para hacer cosas con cada una 00:03:13
de sus posiciones. Recorrer un array para hacer cosas con cada 00:03:16
una de sus posiciones, pues siempre lo estamos haciendo así. 00:03:20
Vale, entonces, números de i será la primera posición, 00:03:33
perdón, números de i es todas y cada una de las posiciones 00:03:36
por las que vamos pasando. Pues, ¿qué vamos a hacer con cada números de i 00:03:40
en este caso? Con cada números de i 00:03:44
vamos a leer un número por teclado 00:03:48
y se lo vamos a asignar. 00:03:52
Bueno, pues este bucle 00:03:58
está solo 00:03:59
para recorrer este array que inicialmente 00:04:01
está vacío. 00:04:04
No tiene nada. La cajita 00:04:06
con las posiciones está creada. La cajita 00:04:07
con las n posiciones. Pero no tiene nada. 00:04:10
Y ahora con este for vamos 00:04:12
recorriendo posición por posición 00:04:14
y en cada posición estamos 00:04:16
asignando un valor leído por 00:04:18
teclado. Entonces este for está solo 00:04:20
para leer. 00:04:22
Ahora, este array 00:04:24
ya tiene valores en cada posición. 00:04:25
Ahora me dicen, ¿qué tengo que hacer con 00:04:28
esos valores? ¿Con esos valores qué tengo que hacer? 00:04:30
Pues sumarlos, restarlos, hacer 00:04:32
el máximo. ¿Qué tengo que hacer con esto? 00:04:33
Pues a mí 00:04:37
me dice que 00:04:38
vamos a mostrar 00:04:38
dos sumas. El resultado final es 00:04:41
mostrar dos valores, que es 00:04:43
la media de los pares, 00:04:45
que ya sabemos que es una suma, 00:04:48
dividida por un numerito después, pero una suma, 00:04:50
y la media de los que sean impares, 00:04:52
que ya sabemos que es una suma. 00:04:54
Luego el resultado de este ejercicio es mostrar dos valores. 00:04:55
Este voy a hacerlo como si fuera la suma y luego ya incorporo la división por el total para que sea la media, 00:05:01
pero primero voy a hacer como si fuera hacer la suma de los que son pares y la suma de los que son impares, que es más fácil. 00:05:10
Entonces vamos a hacer dos sumas de toda la vida. 00:05:15
Pues entonces dos sumas, dos variables que empiezan siendo 0, dos variables que empiezan siendo 0 00:05:17
Y ya está. 00:05:27
Y ahora, la suma acumulativa siempre es igual. 00:05:29
Aquí tendremos que hacer dos en paralelo. 00:05:33
Será esta operación. 00:05:36
Siempre es así. 00:05:39
Suma pares igual a suma pares más el sumando que sea. 00:05:40
¿No? 00:05:47
Y esto hacerlo un montón de veces. 00:05:49
Siendo x cada uno de los sumandos. 00:05:52
entonces ahora la pregunta es 00:05:55
cada sumando X 00:05:56
¿cómo lo genero? pues cada sumando X 00:05:58
es todos y cada uno 00:06:00
de los elementos del array 00:06:02
con lo cual para ir obteniendo 00:06:04
cada uno de esos sumandos 00:06:06
tendremos que recorrer el array otra vez 00:06:08
para ir obteniendo cada uno de esos 00:06:10
pues venga, vamos a recorrer el array 00:06:12
recorremos el array 00:06:14
porque los sumandos salen de ahí 00:06:22
salen de ahí 00:06:23
y ahora 00:06:26
vale, si dejamos esto así 00:06:30
está claro 00:06:38
lo que estaríamos haciendo, ¿no? 00:06:40
estaríamos sumando todos y cada uno 00:06:42
de los elementos del array, ¿verdad? 00:06:44
aquí 00:06:48
cada suma 00:06:48
no es con un valor que leo por teclado 00:06:49
ni es con un valor que voy generando yo 00:06:52
con algo, no, cada sumando 00:06:54
cada sumando es cada uno 00:06:56
de los elementos del array 00:06:58
bueno, este código dejado así 00:06:59
guardaría en suma pares 00:07:02
la suma de todos los elementos 00:07:04
del array 00:07:06
vale, pero en suma pares no queremos que estén 00:07:07
todos los elementos del array 00:07:10
queremos que estén solo los que 00:07:12
sean pares, ah vale, pues entonces 00:07:14
metemos esto en un if y me dice 00:07:16
oye, si números de i 00:07:18
es par, es decir 00:07:20
si lo divido entre 2 00:07:24
y me da 0 00:07:25
si es par, entonces sí 00:07:27
entonces sí 00:07:30
vale, pues entonces ahora ya sí que suma pares 00:07:31
es la suma de todos los elementos 00:07:36
del array, porque este bucle 00:07:38
va por todos ellos, uno 00:07:40
tras otro, uno tras otro, pero sólo 00:07:42
está acumulando, sólo está 00:07:44
usando como sumando estos, los que 00:07:46
cumplan esta condición. Vale, lo que pasa 00:07:48
es que tenemos que hacer dos sumas. 00:07:51
La de los pares, pero también la de los 00:07:54
impares. Bueno, pues en este 00:07:55
mismo for la incluimos. 00:07:57
Si números de i es par, 00:08:00
lo sumo a pares. Si no 00:08:01
es par, suponemos que es impar. 00:08:03
Solo hay dos opciones. 00:08:06
Vamos a dejar la cuestión de que 0 no es impar ni impar, nada. 00:08:07
Asumimos que están los pares y no los complicamos. 00:08:10
¿Vale? 00:08:29
Entonces, este bucle for de aquí, que termina ahí, este bucle for, 00:08:31
va recorriendo todas las posiciones números de i 00:08:35
con aquellas que sean pares, las integrará como sumando a suma pares 00:08:38
y las que no sean pares, las integrará como sumando en suma impares. 00:08:45
Ya está. 00:08:52
entonces es lo mismo 00:08:53
es una suma acumulativa 00:08:55
con sumandos 00:08:58
eso siempre es en un bucle 00:08:59
donde van llegando los sumandos 00:09:02
y luego ya la pregunta es 00:09:03
¿esos sumandos de dónde salen? 00:09:04
en este caso salen de las diferentes 00:09:07
posiciones de un array, salen de ahí 00:09:09
pues entonces mi bucle será el que 00:09:11
recorre el array y este sumando 00:09:13
será números de ahí 00:09:15
luego ya los sumo todos, no, todos no, los que cumplen una condición 00:09:16
pues se incorpora 00:09:20
entonces este código así puesto sin más 00:09:21
no me devuelve la media 00:09:27
sino me devuelve la suma 00:09:29
¿vale? la suma de todos los que sean pares 00:09:31
dentro del array y la suma de todos los que sean impares 00:09:33
no me devuelve la media 00:09:35
para hacer la media ya sabemos que tenemos que dividir 00:09:36
esta suma 00:09:39
por el total de números que realmente 00:09:40
hayan sido pares 00:09:43
¿vale? pues no pasa nada, vamos a contarlos 00:09:44
como ya hicimos en el ejercicio correspondiente 00:09:46
me voy a hacer un contador 00:09:49
de pares 00:09:51
que empieza valiendo 0 00:09:52
y ahora si números de i por 102 es igual a 0 00:09:57
pues además de hacer la suma de los pares 00:10:01
además de eso voy a contarlo 00:10:04
además de eso los cuento 00:10:07
¿vale? 00:10:10
entonces con esto estoy contando 00:10:16
cuántos números de la raíz realmente han sido números pares 00:10:19
es un contador de toda la vida 00:10:22
empieza siendo 0 y dentro de un bucle se va incrementando 00:10:23
Cuando yo tenga que contarlo 00:10:26
Que toque 00:10:28
No nos hace falta 00:10:30
Contarlo sin pares 00:10:33
Porque serán el total 00:10:34
N menos 2 pares 00:10:35
Bueno pues ahora ya una vez terminado el bucle 00:10:36
Y ya con 00:10:40
Y ya con la suma ya hecha 00:10:41
Una vez ya terminado todo 00:10:45
Ya podemos mostrar el resultado 00:10:47
Media pares 00:10:50
Media pares será 00:10:51
Suma pares 00:10:53
Entre el contador 00:10:55
Y la media impares será la suma impares entre el total de impares, que será el total, que era n mayúscula, menos los pares. 00:10:59
Voy a poner esto con paréntesis, claro, porque si no me lo cago. 00:11:29
Y si haces una... 00:11:33
También, ¿vale? Podría llevar en paralelo aquí con impares y dividir con impares y ya está, pero te va a dar n menos esto. 00:11:38
Bueno, pues ya está. 00:11:52
Entonces, tenemos claro cómo recorrer un array 00:11:54
y dentro de cada iteración 00:11:57
hacemos con cada elemento lo que toque hacer. 00:12:00
En este caso, ¿qué tocaba hacer con cada elemento? 00:12:02
Incorporarlo como sumando a esta suma 00:12:05
o incorporando como sumando a esta otra. 00:12:08
Pero cada vez tocará una cosa distinta. 00:12:11
Otra cosa, en el i menor, en vez de nombres len, 00:12:12
¿puedes poner n mayúscula? 00:12:15
Sí, en este caso puedes poner n mayúscula. 00:12:17
siempre puedes poner aquí el tamaño concreto 00:12:20
pero esto siempre es 00:12:23
más general, más genérico 00:12:25
¿vale? porque imagínate 00:12:26
que este código es muy largo 00:12:29
y en algún momento 00:12:31
este n te sirvió para rellenar 00:12:32
este tamaño 00:12:35
pero luego la aplicación ha reutilizado 00:12:36
esta variable para otra cosa 00:12:39
ha decidido reutilizarla para algo 00:12:40
entonces tú pones aquí el n 00:12:42
y el n ya no vale esto 00:12:44
entonces números length 00:12:47
siempre te va a funcionar sí o sí, pero la variable o el numerito 00:12:49
si ha cambiado, vale, pues nada, esto 00:12:53
funciona lógicamente, vamos a meterle 4 números solo 00:13:00
y ahora este, vale 00:13:06
pues la media de los pares 2, 4, la media es 3, y la media de los impares 00:13:10
3, 5, la media es 4, como estoy haciendo la división 00:13:15
entre enteros, me va a dar la división sin decimales, que en este caso era 00:13:19
punto cero igualmente, pero 00:13:22
si lo 00:13:24
guardara en double 00:13:26
entonces ya no 00:13:27
claro 00:13:30
pero vamos 00:13:31
vale, pues a ver 00:13:33
esto está claro, ¿no? 00:13:36
vamos a ver si encontramos algo 00:13:38
más interesante 00:13:40
¿el 4 es lo mismo? 00:13:41
es lo mismo 00:13:43
pero cambiar 00:13:44
por 102 entre mayor que 0 00:13:45
dime 00:13:48
que no te funciona 00:13:48
Pero que no te funciona exactamente 00:13:51
El código, la cabeza 00:13:55
O que, dame detalles 00:13:57
Le pones números y no te va 00:13:59
Pero tu código está bien 00:14:03
¿Cómo, cómo, cómo? 00:14:06
No puede estar igual 00:14:14
Igualdad de código es igualdad de funcionamiento 00:14:15
Aquí no existe la aleatoriedad 00:14:18
Hombre, a ver 00:14:21
tu ordenador podría introducir 00:14:25
una variante 00:14:27
pero en un código de cinco líneas 00:14:29
poca variante puede introducir 00:14:31
no, sí, sí has dicho 00:14:32
venga, vamos a buscar 00:14:38
alguno que nos dé un poco más de alegría 00:14:41
al cuerpo, ¿no? porque esto 00:14:44
a mí me dio dolor de cabeza 00:14:45
me la dio a mí 00:14:50
me la dio a mí 00:14:53
me la dio a mí 00:14:54
que la había hecho bien a la primera y fácil 00:14:57
Vale, hemos dicho que el 4 está claro 00:14:59
El 5 00:15:01
¿Os veis capaces de hacerlo? 00:15:03
A ver, ¿capaces sois? 00:15:09
Obviamente 00:15:10
Venga 00:15:11
5 minutos, el 5 00:15:14
Que no lo tenga hecho 00:15:16
Ánimo, alegría 00:15:18
Vale, entonces 00:15:20
Cada 00:15:23
vale, estas son las posiciones 00:15:32
esta 00:15:36
entonces, la posición 0 00:15:37
cuando i es igual a 0 00:15:40
queremos la 9 00:15:42
la 0 y la 9 también 00:15:44
pero cuando i es igual a 1 00:15:45
queremos la 8 00:15:48
pero cuando i es igual a 2 00:15:49
queremos la 7 00:15:52
pues una regla que podemos sacar es que 00:15:53
estos de aquí van a ser 00:15:56
siempre 9 menos i 00:15:58
siempre, cuando i es 0 00:15:59
9, justo, 9 menos 0 00:16:02
pero cuando i es 1, 8 00:16:03
9 menos 1, pero cuando 00:16:06
i es 2, 7, 9 menos 2 00:16:08
luego ya tenemos una regla 00:16:10
para sacar 00:16:12
el espejo de cada 00:16:14
una, ¿verdad? 00:16:16
entonces ahora recorremos 00:16:19
solo hasta la mitad 00:16:20
hasta la mitad y en cada 00:16:21
iteración sacamos esa 00:16:24
y el espejo, entonces aquí 00:16:25
el tema es eso, sacar la regla 00:16:28
que me permite, dado un i cualquiera 00:16:29
ver cuál tiene simétricamente 00:16:32
respecto al centro 00:16:34
y entonces, haciendo unas pequeñas pruebas 00:16:35
pues mirando y diciendo, ah, vale 00:16:38
pues si la simétrica de 0 es 9 00:16:40
y la simétrica de 1 es 8 00:16:42
y la simétrica de 2 es 7 00:16:44
pues la simétrica de un i cualquiera 00:16:46
¿cuál va a ser? 00:16:48
pues la simétrica de un i cualquiera es 9-1 00:16:49
¿vale? 00:16:52
entonces estas son las cosas pues que 00:16:54
se nos tienen que ocurrir 00:16:55
Haciendo las pruebas 00:16:57
Haciendo las cosas, mirando, analizando el problema 00:16:58
Por eso siempre lo del papelito 00:17:01
Y el lápiz es fundamental 00:17:03
Porque uno hace sus cosas 00:17:05
Ah, claro, pues si estoy viendo 00:17:07
Que 0 quiero que me lleve a 9 00:17:10
1 quiero que me lleve a 8 00:17:11
2 quiero que me lleve a 7 00:17:13
Entonces, 1 y cualquiera, ¿a cuál me llevará? 00:17:14
Pues con esto, 1 y cualquiera 00:17:18
Me va a llevar a 9 menos 7 00:17:19
¿Vale? 00:17:21
Menos 1 menos 7 00:17:23
Claro, entonces, nosotros ahora estamos poniendo 9 porque la RAI es de 10 posiciones, pero si hacemos esto en general, quien dice 9 dice números, punto len, menos 1, ¿no? 00:17:24
porque aquí el len sería 10 00:17:45
cuando el len es 10 00:17:47
las posiciones van de 0 a 9 00:17:49
cuando el 10 es 13 00:17:51
las posiciones van de 0 a 12 00:17:53
luego aquí van de 0 a 9 00:17:54
porque el len es 10 00:17:56
son 10 posiciones 00:17:58
luego 9 es en realidad 00:18:00
números de len menos 1 00:18:03
entonces esta regla la podemos generalizar 00:18:04
a números de len menos 1 00:18:07
entonces vamos a escribir el código 00:18:08
ahora ya con la idea pensada 00:18:11
escribimos el código y hacemos una primera prueba 00:18:14
a ver si nos funciona 00:18:18
pues con la idea pensada 00:18:18
entre dos 00:18:21
esto que tengo aquí puesto 00:18:26
a ver, es que se me ha llegado todavía 00:18:28
vale 00:18:30
¿dónde he puesto ahí? no he puesto yo un entre dos 00:18:31
a ver, lo que yo estoy diciendo ahí 00:18:34
es que recorres hasta la mitad 00:18:36
¿no? porque con cada uno 00:18:38
te llevas su simétrico 00:18:41
entonces el for lo tienes que parar en la mitad 00:18:42
lo tienes que parar en la mitad 00:18:45
claro, por eso el for 00:18:49
lo he parado aquí 00:18:51
para que no me llegue al total 00:18:53
a números menos uno, sino que me llegue 00:18:55
a la mitad 00:18:57
entonces, ahora ya 00:18:57
este fuera para rellenar 00:19:01
este es un for que recorro 00:19:02
hasta la mitad 00:19:04
del array 00:19:06
hasta la mitad, porque con cada posición 00:19:08
estoy 00:19:11
además mostrando 00:19:13
la simétrica, que hemos dicho que es esta. 00:19:15
Números led, menos 1, menos i. 00:19:18
Entonces, para cada i mostramos la suya y la simétrica. 00:19:21
Entonces, aquí la dificultad es sacar la regla 00:19:25
de la simétrica de cada i. 00:19:28
De la simétrica de cada i. 00:19:30
¿Vale? Pues entonces, ya hemos sacado la regla de la simétrica, 00:19:32
luego probamos esto. 00:19:37
Nos acordamos de que el for 00:19:40
tiene que llegar hasta la mitad solo. 00:19:42
y hacemos esta primera prueba 00:19:45
he mostrado el de posición i 00:19:48
y luego he mostrado 00:19:56
el simétrico 00:19:58
que es el de posición números led 00:19:59
menos uno menos i 00:20:01
separados con espacios para que se vea 00:20:02
vale 00:20:06
lo estoy poniendo 00:20:08
con print en lugar de con print el n 00:20:10
para verlos todos en una línea 00:20:12
y así luego el resultado lo veo más claro 00:20:13
porque si no están uno debajo de otro y se ve peor 00:20:15
vale, entonces he quitado el ln 00:20:18
Para que el print no me meta salto de línea 00:20:20
Y solo en la misma línea 00:20:22
Bueno, pues ejecutamos esto, que ya lo tenía lanzado 00:20:23
Meto los 10 números 00:20:26
Para que se vea bien que los intercala 00:20:27
9 y 10 00:20:30
Vale 00:20:35
Pues efectivamente me muestra 00:20:37
El primero, el último, el segundo 00:20:38
El antepenúltimo 00:20:41
Vale, los va mostrando así 00:20:42
Primero el primero que metí 00:20:44
Luego el último que metí 00:20:48
Luego el segundo que metí 00:20:49
Luego el penúltimo 00:20:51
vale, pues funciona 00:20:52
¿no? 00:20:55
entonces 00:20:58
esto es lo que muestro 00:20:58
el número es de i, el número es de len 00:21:07
menos uno menos i 00:21:09
espera un segundito, dime 00:21:09
¿estás usando? 00:21:12
a ver, pero estás poniendo 00:21:28
cero, nueve, uno 00:21:29
claro, pero entonces 00:21:32
¿Pero entonces no se hace uniforme? 00:21:32
Ah, pero para meterlos, pero para mostrarlo no. 00:21:37
Claro, pero entonces ahora la pregunta sería, 00:21:40
¿este ejercicio está hecho cuando son 10 posiciones? 00:21:43
Claro, pero si me dicen, 00:21:47
para una cantidad de posiciones cualesquiera, 00:21:49
claro, para una cantidad de posiciones cualesquiera, 00:21:53
tendríamos que plantearlo así, ¿no? 00:21:54
Bueno, vamos a parar de todas maneras aquí 00:21:56
y ahora lo... 00:21:57
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:
9
Fecha:
30 de octubre de 2024 - 17:09
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
22′ 01″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
92.86 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid