20251029 EjerBucles_4 - 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 volvemos
00:00:00
ahora
00:00:02
nos encontramos con un ejercicio
00:00:04
como este, ¿vale?
00:00:06
este, primero entendemos lo que hay que hacer
00:00:10
me dan un número cualquiera
00:00:12
y yo tengo que sumar todos los números comprendidos
00:00:14
entre cero y ese
00:00:16
¿implica contar?
00:00:17
no, aquí no te voy a contar nada, el programa no me dice
00:00:20
que cuenta cuantas veces pasa no sé qué
00:00:22
o dime las veces
00:00:25
que ha ocurrido esto, dime
00:00:26
Joder, se me ha puesto un silencio
00:00:27
Perdón
00:00:31
Sí, sí, soy yo
00:00:32
Vale, a ver
00:00:52
Vale, pues
00:00:56
volvemos a donde estábamos, ¿vale?
00:01:00
Vamos.
00:01:05
Venga, volvemos a donde estábamos.
00:01:06
Entonces, ahora uno
00:01:08
me es denunciado
00:01:10
y esto no es contar, esto no es
00:01:11
cuántas veces pasa algo, esto no implica contar,
00:01:13
esto implica hacer sumas.
00:01:16
¿Vale? Pues sumas sabemos. Un operador
00:01:18
suma y otro operador
00:01:20
suma sabemos. Pero claro,
00:01:22
aquí el tema es que cuántas
00:01:24
sumas hay que hacer, porque las sumas se hacen de una en una
00:01:26
lógicamente, operador suma
00:01:28
operador
00:01:30
entonces esta es una suma, pero luego habrá que hacer otra
00:01:30
luego habrá que hacer otra, ¿cuántas sumas hay que hacer?
00:01:33
pues no sabemos, depende
00:01:36
cuando me den un numerito n que sea
00:01:37
20, habrá que hacer
00:01:40
19 sumas, un montón
00:01:41
cuando me den 12
00:01:43
habrá que hacer solo 12 sumas
00:01:45
entonces yo para hacer este programa
00:01:47
voy a necesitar un bucle
00:01:49
porque es hacer varias veces algo
00:01:51
¿qué algo?
00:01:54
sumar, es hacer muchas sumas
00:01:56
¿vale? este programa va a ser
00:01:58
hacer muchas sumas
00:02:00
¿cuántas? no lo sé
00:02:02
depende de n
00:02:04
luego algo que se hace muchas veces
00:02:06
un número de veces
00:02:09
indeterminado, depende
00:02:10
de una condición, en este caso dependerá
00:02:12
de cuánto sea n, pues es un bucle, lógicamente
00:02:14
entonces, esto lo vamos a tener que hacer
00:02:16
con un bucle, pero en ese bucle
00:02:18
ya no habrá que contar, ese bucle ya no será
00:02:20
un contador que se va incrementando según pasa algo
00:02:22
esto ahora ya es
00:02:24
una suma que llamamos
00:02:26
una suma acumulativa, que es
00:02:28
otra operación que puede, que necesitamos
00:02:30
hacer continuamente, sumar
00:02:32
muchas cosas
00:02:34
¿vale? es otra operación básica
00:02:35
y de todas las operaciones básicas
00:02:38
que vamos a ir ejemplificando
00:02:40
a lo largo de esta lista de ejercicios
00:02:42
pues contar, sumar, máximos y mínimos
00:02:44
patatín, todas las operaciones básicas
00:02:47
ya combinadas, se hace
00:02:49
cualquier cosa, ¿vale? pero tenemos
00:02:50
que entender un poquito cada una
00:02:52
por separado
00:02:54
Bueno, pues entonces, aquí, si nos vamos al código directamente, que se ve más claro que en la pizarra
00:02:55
Vamos a hacer este ejercicio, que es el ejercicio 6
00:03:05
Ejercicio 6, vale
00:03:12
Vale, aquí lógicamente tendremos que leer por teclado, luego yo tengo mi escáner
00:03:26
silencio
00:03:37
vale
00:03:53
dato de entrada, solamente este
00:03:54
vale, pues entonces
00:03:57
aquí hay que hacer
00:04:17
lenguaje de signos
00:04:20
o si no, no intercambiéis información
00:04:24
vale, aquí habrá que hacer muchas veces
00:04:27
una suma, un montón de veces
00:04:33
¿Vale? El resultado
00:04:35
De esa suma, pues tendrá que estar en alguna
00:04:38
Variable, por ejemplo aquí
00:04:40
Llamémosle suma
00:04:42
Aquí tendrá que estar el resultado
00:04:43
De esta variable, y aquí habrá que hacer
00:04:46
Un montón de sumas
00:04:48
¿Pero cuál es? Bueno, pues
00:04:50
Dime
00:04:52
Es como que al hacer la condición
00:05:12
Menor o igual, lo mismo
00:05:14
Bueno, habría que ver por qué se te hace
00:05:21
Infinito el bucle, luego lo miramos
00:05:23
Pero, ¿por qué tienes un bucle
00:05:25
infinito, depende del resto de tu código. Si nunca
00:05:27
cambias nada para que la condición se
00:05:30
haga falsa, pues entonces es un buque
00:05:31
infinito. Algo no estás cambiando
00:05:33
dentro. Pero bueno, ya lo miraremos.
00:05:35
Vale, entonces
00:05:37
joder. Aquí va a estar
00:05:38
nuestro resultado.
00:05:43
Y este es nuestro
00:05:46
numerito. ¿Qué es lo que
00:05:47
tenemos que hacer dentro? Pues no sé qué es lo que
00:05:53
tenemos que hacer, pero lo que queremos
00:05:55
conseguir es esta suma.
00:05:57
1 más 2 más
00:05:59
3 más 4
00:06:01
así hasta más n
00:06:02
entonces primero habrá que hacer
00:06:04
esta suma
00:06:06
luego al resultado
00:06:07
obtenido
00:06:11
habrá que hacer ahora esta
00:06:12
y con el resultado obtenido
00:06:14
habrá que hacer otra más
00:06:17
y ahora con ese resultado obtenido habrá que hacer otra más
00:06:18
entonces estamos haciendo un montón
00:06:21
de sumas aquí dentro
00:06:23
vale, entonces ¿cómo podemos
00:06:25
plantear esto? bueno pues
00:06:27
inicialmente mi primer operador
00:06:29
1, mi primer operador por ejemplo
00:06:30
¿Vale?
00:06:33
Puede ser este
00:06:35
¿Vale? Pues ahora
00:06:36
¿Qué hago yo con mi variable suma?
00:06:38
A mi primer operador
00:06:45
A mi primer operador que ahora mismo es este
00:06:47
La suma ahora mismo tiene 1
00:06:49
Es mi primer operador, le voy a sumar
00:06:51
El primer número que toca
00:06:53
Que sería el 2
00:06:55
¿Vale?
00:06:57
Entonces el 2 ¿Cómo lo genero?
00:06:59
Pues venga, vamos a usar una variable
00:07:01
Por ejemplo, pues digo, pues mira, voy a usar una variable adicional i que empieza siendo 1 y le sumo el i, ¿vale?
00:07:03
Ya tendré el 1 más 2.
00:07:12
Y ahora, ¿qué hago con esa suma? ¿Dónde la guardo?
00:07:15
Cualquier operación tengo que llevarla a algún sitio.
00:07:18
¿Dónde guardo esta primera suma?
00:07:21
Bueno, pues vamos a pisar la propia variable suma para que ahora suma tenga esto.
00:07:23
Bueno, pues vamos a pisar la propia variable suma.
00:07:29
Ahora suma tendrá esto de aquí, pero claro me falta dejar el i incrementado porque la siguiente suma va a ser mi nuevo operador, que ahora se ha convertido en 1 más 2, a raíz de esta suma mi nuevo operador, súmale el siguiente que es 3, luego i vamos a dejarlo incrementado.
00:07:31
¿Vale?
00:07:52
Ahora, siguiente vuelta de bucle
00:07:54
Siguiente vuelta de bucle
00:07:56
Mi operador suma, ahora ya era 1 más 2
00:07:58
Le sumo el 3
00:08:01
Y lo vuelvo a pisar en suma
00:08:02
Luego mi nuevo primer operador
00:08:05
Ahora ya es este
00:08:06
Es todo este
00:08:07
Y dejo la incrementado para que ahora sea 4
00:08:09
Vale
00:08:12
Cuando el bucle llega por aquí
00:08:14
Suma mi nuevo operador
00:08:17
Que ahora es este, con el 4
00:08:19
ahora ya tengo la nueva suma que es esta de aquí
00:08:20
luego sobre mi variable suma
00:08:23
voy acumulando o incorporando
00:08:27
a través de esta sentencia
00:08:30
un nuevo valor cada vez
00:08:33
esto es una estructura de acumulador que se llama
00:08:34
mi variable suma es un acumulador
00:08:37
un acumulador que yo aquí inicialmente le he puesto un 1
00:08:40
es un acumulador
00:08:45
vale, la primera vez que entro
00:08:47
sobre esta variable suma
00:08:49
que va acumulando, le sumo el 1
00:08:51
me queda 2
00:08:52
y piso el resultado
00:08:56
que tenía de antes por este nuevo
00:08:59
vale, suma ya, ahora tiene 1 más 1
00:09:00
ha acumulado un numerito más
00:09:03
y lo incremento
00:09:04
para generar el siguiente a sumar
00:09:06
la siguiente vez que vuelvo
00:09:08
mi variable acumuladora, mi acumulador
00:09:10
que es este, ahora se le suma
00:09:12
otro numerito más, vale
00:09:15
perdón, 1 más 2
00:09:16
que es el 3, se le suma un numerito más
00:09:18
y con este valor vuelvo a pisar suma
00:09:22
es decir, ha acumulado otro número más
00:09:25
por eso se comporta como un acumulador
00:09:28
y ahora ahí lo incremento, lo dejo valiendo 4
00:09:30
siguiente vuelta, mi variable acumuladora
00:09:33
esta variable acumuladora
00:09:36
que tenía 1 más 2 más 3
00:09:37
ahora le sumo otro numerito más, el 4
00:09:40
y esa nueva suma pisa el que tenía de antes
00:09:43
luego mi variable acumuladora suma
00:09:48
ahora ya tiene el 1 más 2 más el 3 más el 4
00:09:50
tiene toda esta suma
00:09:52
luego mi variable suma es una variable
00:09:54
que en cada vuelta
00:09:56
de bucle va incorporando un sumando
00:09:58
nuevo, luego es una variable
00:10:00
acumuladora, va acumulando
00:10:02
un sumando nuevo
00:10:04
en este caso en particular
00:10:05
los sumandos que va acumulando
00:10:08
como los voy generando yo con el i
00:10:10
que empieza siendo 1
00:10:12
pues va acumulando primero
00:10:14
bueno, yo empezaría valiendo 2
00:10:15
porque esto lo he inicializado a 1
00:10:20
el primer sumando que suma es el 2
00:10:22
y luego el siguiente es el 3
00:10:26
pero estos sumandos que va acumulando
00:10:29
podrían venir de cualquier lado
00:10:31
podrían venir de que voy leyendo del teclado
00:10:32
da igual, lo que importa de esta estructura
00:10:34
es que entendamos que
00:10:37
yo tengo una variable que inicializa un valor
00:10:38
y se convierte en un acumulador
00:10:41
que tiene un valor inicial
00:10:43
y ahora ya, según va dando vueltas el bucle,
00:10:44
esa variable acumuladora va incorporando un sumando nuevo
00:10:48
y esa nueva suma pisa la anterior.
00:10:53
Siguiente vuelta del bucle,
00:10:57
a esa suma que me había quedado,
00:10:58
incorporo un sumando más y piso lo anterior.
00:11:00
A esa suma que me había quedado en la siguiente vuelta,
00:11:03
incorporo otro sumando más y piso lo anterior.
00:11:06
Luego es una acumuladora de sumas.
00:11:08
¿Qué es lo que varía?
00:11:12
los sumandos que va incorporando, en este caso va incorporando el 2, 3, 4, 5, porque son los que yo voy generando,
00:11:14
pero podría ir incorporando valores sumandos que vengan de cualquier lado, que vengan de cualquier parte, ¿vale?
00:11:21
Bueno, pues a ver, yo he hecho esto así, vamos a dejarlo más bonito, este es mi numerito n que he leído del teclado,
00:11:31
este es este valor y que yo voy sumando y esta es mi suma vale entonces yo había hecho aquí un bucle
00:11:40
la condición todavía nos falta claro la condición todavía nos falta y este bucle hará ya para
00:11:58
dejarlo bonito en lugar de poner suma igual a suma más lo normal es ponerlo así verdad suma más el
00:12:11
el nuevo sumando, ¿vale?
00:12:17
Y ahora aquí, y lo incrementaba.
00:12:19
Entonces, lo normal,
00:12:23
en una estructura de variable que va acumulando,
00:12:25
lo normal es que la variable suma, ¿vale?
00:12:27
Se inicialice a cero.
00:12:32
Porque es el valor neutro,
00:12:36
el elemento neutro de la suma, ¿verdad?
00:12:38
Es lo normal.
00:12:40
Porque la suma 1 más 2 más 3 más n
00:12:41
es igual que 0 más 1 más 2 más n
00:12:45
que es el elemento neutro
00:12:50
entonces una variable que va a acumular sumandos
00:12:52
uno la inicializa siempre a 0
00:12:55
y luego ya le empieza a meter los diferentes sumandos
00:12:57
la inicializamos a 0
00:13:01
y mediante esta sentencia de aquí
00:13:03
mediante esta sentencia
00:13:06
que esta es la sentencia de acumulación
00:13:08
mediante esta sentencia le vamos metiendo los diferentes sumandos
00:13:11
y esos sumandos
00:13:14
¿de dónde salen?
00:13:18
de donde yo necesite, de donde a mí me dé la gana
00:13:19
en este caso esos sumandos salen
00:13:21
del 1, luego 2, luego 3
00:13:24
pues bueno, tendré que construirlos
00:13:26
¿cómo los puedo construir?
00:13:28
pues
00:13:31
por ejemplo los construyo
00:13:31
iniciando la i
00:13:34
a 1
00:13:36
y aquí incrementando
00:13:37
ya están, ya los tengo construidos
00:13:43
el primer sumando que sumo va a ser el 1
00:13:45
Perfecto, va a ser este
00:13:47
Y luego lo dejo incrementado para que sea 2
00:13:48
El siguiente sumando que incorporo a la suma acumulativa va a ser el 2
00:13:51
Muy bien, luego lo dejo incrementado para que se convierta en 3
00:13:55
El siguiente sumando que sumo, por tanto, ya será el 3
00:13:58
Y esta variable suma a los valores parciales va acumulando el siguiente
00:14:01
El siguiente, el siguiente
00:14:08
Cuando el bucle ha terminado, pues ya podré yo mostrar la suma de todo eso
00:14:09
¿Vale?
00:14:14
¿Qué nos falta? ¿Cuándo termino yo?
00:14:19
Bueno, pues cuando tenga que terminar, depende del programa que esté haciendo.
00:14:22
En este ejemplo en particular, ¿qué condición puedo poner yo ahí?
00:14:26
Que la i sea menor o igual.
00:14:30
Claro, mientras, exacto, mientras la i sea menor o igual que n,
00:14:31
y así nos aseguramos de que va sumando, va sumando, va sumando,
00:14:40
siempre y cuando el sumando sea n.
00:14:44
No, porque si es menor o igual que n
00:14:46
El n no lo sumaría
00:14:49
Porque se incrementa después
00:14:52
Entonces, mientras
00:14:53
Y sea menor o igual
00:14:55
Mientras y sea menor
00:14:56
Que estrictamente menor
00:14:58
Mientras sea estrictamente
00:15:00
Menor que n, ¿verdad?
00:15:03
No, no, no, al contrario
00:15:06
No, no, sí, sí, porque luego la suma
00:15:07
O sea, cuando llegaría
00:15:09
Yo que sé, a 100
00:15:11
Luego iría al ciclo otra vez
00:15:12
No, no, no, no
00:15:13
No, no, no, porque el momento
00:15:15
si n es 100, el momento que llega a 100 lo va a hacer
00:15:19
otra vez igual que a 0.1
00:15:21
Claro, por eso
00:15:23
cuando ya he sumado n
00:15:25
n se queda siendo
00:15:27
n más 1, entonces
00:15:29
igual que n más 1, que sería
00:15:31
menor estricto que n más 1
00:15:33
Así, ¿verdad?
00:15:35
El n más 1 ya no lo queremos sumar
00:15:37
Así, menor que n más 1
00:15:40
o menor o igual que n
00:15:41
Como lo teníamos puesto antes, estaba bien, ¿verdad?
00:15:43
Pero es que en el momento de que si es 100
00:15:45
Luego que me haya centrado a 100
00:15:47
O sea, para el valor n queremos entrar
00:15:49
Y para el siguiente no
00:15:52
Claro, luego menor o igual que n
00:15:53
Que era lo primero que habíamos puesto, estaba bien
00:15:55
No, no, sí, sí, sí
00:15:57
¿Vale?
00:15:58
Es que yo lo he hecho igual, pero he puesto el i más más
00:16:00
Claro, si has puesto el i más más antes
00:16:02
Pues tu condición cambia
00:16:05
Para el n queremos entrar
00:16:06
Y ya para n más 1 no queremos entrar
00:16:08
Luego así estaría bien
00:16:11
¿Vale?
00:16:13
Bueno, pues estructura estándar
00:16:14
¿Qué varía? Repito
00:16:16
De dónde llegan los diferentes sumandos
00:16:18
Y cuándo paro de sumar
00:16:21
Es lo único que varía
00:16:23
Todo lo demás
00:16:24
¿Vale?
00:16:26
Entonces
00:16:28
Sí
00:16:29
Vale, pues aquí entonces suma
00:16:33
Igual a cero
00:16:41
E i, que es mi sumando
00:16:42
e i, que es mi sumando, que empiece valiendo 1.
00:16:44
Y ahora ya, mientras i sea menor o igual que n,
00:16:56
suma más igual i.
00:17:07
Vale.
00:17:15
Lenin, ¿puedes volver a tu sitio?
00:17:19
Vale, entonces
00:17:32
Podemos ir
00:17:33
Ajustando un poco de código
00:17:34
Pues bueno, puedo poner el imas
00:17:37
Más después
00:17:39
Que queda más o menos claro
00:17:40
O también lo puedo poner aquí, ¿no?
00:17:42
Que ya esto lo entendemos, ya lo que significa
00:17:45
Como esto está como post
00:17:47
incremento, primero usa la i
00:17:49
para la operación y luego la deja incrementada
00:17:51
entonces, vale
00:17:53
me da igual
00:17:55
si yo lo quisiera poner
00:17:56
como pre-incremento
00:17:59
¿qué tendría que cambiar en este programa
00:18:02
para que siguiera funcionando?
00:18:03
inicializaría
00:18:07
i a cero, efectivamente
00:18:07
porque lo primero que hace es
00:18:09
incrementa la i y luego la utiliza
00:18:10
para la expresión
00:18:13
¿vale?
00:18:14
Pero quizás se ve más claro así
00:18:16
Primero la utilizo para la expresión
00:18:18
Y luego ya la dejo incrementada
00:18:20
Estoy haciendo dos operaciones en la misma
00:18:22
Una suma y un incremento
00:18:25
¿Vale?
00:18:27
Y puestos ya a pedir
00:18:30
Bueno, no he devuelto la suma, lógicamente
00:18:32
Y puestos ya a pedir
00:18:34
Podemos simplificar código también
00:18:41
Quitando alguna variable
00:18:44
Que está de más, ¿verdad?
00:18:46
Es decir, mi variable n
00:18:51
bueno, pero vamos a dejarlo así
00:18:53
ya iremos, vale, porque habrá
00:18:56
algunos que estén más liados de todo
00:18:57
vale, pues
00:18:59
a ver, que esta variable n
00:19:00
solo la estás usando para el valor inicial
00:19:03
podemos esta misma variable
00:19:05
irla decrementando
00:19:06
y empezar la suma al revés
00:19:08
primero sumar n, luego sumar n-1
00:19:11
y la condición sería
00:19:14
mientras n sea
00:19:15
mayor o igual que 1
00:19:16
vale, es decir, podríamos hacerlo así
00:19:19
vamos a volver a inicializar
00:19:21
Suma igual a 0 para reiniciar la suma otra vez y podríamos hacer, mientras n sea mayor o igual que 1, que es el último sumando, pues hacemos suma más igual n y a n la dejamos decrementada.
00:19:23
entonces hacemos la suma pero empezando desde arriba
00:19:44
y utilizamos la propia
00:19:47
variable n que es que ya no nos sirve para nada más
00:19:49
con lo cual podemos irla decrementando
00:19:51
e ir incorporando
00:19:53
claro
00:19:55
con esta versión la i
00:19:57
no nos hace falta, porque la propia
00:19:59
variable n la usamos para ir
00:20:01
generando los sumandos, luego su
00:20:03
primer sumando va a ser el mayor número
00:20:05
pero luego ya la dejamos incrementada
00:20:07
para el siguiente sumando
00:20:09
que será una unidad menor
00:20:11
y la dejamos decrementada para el siguiente sumando
00:20:12
entonces si n es 10
00:20:15
pues el primer valor que suma es el 10
00:20:16
y luego lo deja incrementado
00:20:19
lo deja decrementado a 9
00:20:20
el siguiente que suma es el 9
00:20:22
y ¿cuál es el último que suma?
00:20:23
el 1 porque el bucle ya cuando n ya no sea mayor o igual que 1
00:20:26
ya no entra
00:20:29
entonces otra versión
00:20:30
a ver, n
00:20:32
es que si pone 0
00:20:42
no va a entrar nunca porque n no es mayor o igual que 1
00:20:44
con lo cual te va a devolver suma igual a cero
00:20:47
que está bien
00:20:50
la suma de todos los números comprendidos entre cero y cero es cero
00:20:50
entonces también
00:20:54
estaría bien el resultado
00:20:55
si en es cero no entra en el bucle
00:20:57
pues te devuelve suma cero
00:21:07
a ver si quieres que te salte mensaje sí
00:21:08
pero si tú quieres que si yo le meto
00:21:13
cero eso no tiene por qué ser un error
00:21:15
si yo le meto cero queda todos los números comprendidos
00:21:17
entre cero y cero
00:21:19
ah
00:21:20
dice el enunciado que si es cero
00:21:22
saque un error, ah mayor que cero
00:21:24
vale, vale, vale
00:21:26
pues entonces si podría, o podríamos meter
00:21:27
una validación como ya sabemos hacer con un while
00:21:30
que esté ahí todo el rato mientras no mete un cero
00:21:32
claro, un while
00:21:34
para forzarle que siga
00:21:36
y siga y siga hasta que no meta un cero, vale
00:21:38
vale, pues entonces con esto
00:21:40
podéis hacer
00:21:45
el 7
00:21:47
podéis hacer el 8
00:21:47
el 7 y el 8
00:21:49
son sumas acumulativas también
00:21:54
Lo que cambian son los sumandos, que aquí son solo los múltiplos de 5, entre 1 y 100.
00:21:57
Y aquí cambian los sumandos, que son los múltiplos de 5, que metidos entre ahí, ¿eh?
00:22:04
Entonces, el 7 y el 8.
00:22:09
¿Quién ha hecho el 7 y el 8?
00:22:12
Venga, pues los demás.
00:22:18
7 y 8, venga.
00:22:21
Los hacéis, son como el anterior, cambiando el detallito de dónde salen los sumandos.
00:22:23
Pues 7 y 8 los hacéis en los próximos 10 minutos
00:22:28
- 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:
- 1
- Fecha:
- 31 de octubre de 2025 - 13:49
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 22′ 36″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 592.17 MBytes