20241017 ProgrEstruct-Bucles-ejercicios_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:
Lo habéis hecho muy bien.
00:00:00
A ver, ¿qué pasa con el ejercicio 2?
00:00:02
¿Qué habréis dicho? ¡Uh, qué tontería!
00:00:06
Claro, entonces vosotros habéis leído y habéis dicho.
00:00:14
Como yo. Vamos a ver.
00:00:18
Vale, vosotros habéis leído y habéis visto.
00:00:24
Mostrar por pantalla los números del 1 hasta el 5.
00:00:27
Vale, entonces
00:00:31
Hombre, pues dice, jolín
00:00:34
Pues vaya programa más tonto, ¿no?
00:00:36
Ups
00:00:46
A ver
00:00:47
Claro, efectivamente
00:00:59
Habéis sacado las conclusiones correctas
00:01:08
Vale, entonces
00:01:11
¿Mostrar los números de 1 al 5?
00:01:14
Pues ya está, ya tengo hecho mi programa
00:01:16
¿Vale?
00:01:18
Silencio
00:01:21
¿Vale? ¿No tengo hecho mi programa
00:01:22
De mostrar números de 1 al 5?
00:01:24
Pues sí, son 5 líneas, no son tantas
00:01:26
¿Vale? Entonces
00:01:29
Primero, tampoco perdamos de vista
00:01:30
Que hay veces
00:01:32
Que las cosas, si tienen un camino
00:01:34
Simple y sencillo
00:01:36
Para resolverse, pues no
00:01:38
Renunciemos a él
00:01:40
¿vale? pero ¿cuál es la pega de este
00:01:41
programa? desde luego
00:01:44
funciona perfectamente y cumple
00:01:46
requisitos, que es lo que tiene que hacer
00:01:48
una aplicación, cumplir requisitos
00:01:50
es decir, hacer lo que le han pedido
00:01:52
pero esta aplicación
00:01:53
no es escalable
00:01:56
que se llama, es decir, ahora me piden
00:01:58
un pequeño cambio
00:02:00
me dicen, ay porfa, sí, pero es que me he
00:02:02
equivocado, no era de 1 a 5, era de 1 a
00:02:04
5.000, entonces
00:02:06
claro, escalar esta aplicación
00:02:08
incorporarle esa funcionalidad
00:02:10
implica escribir
00:02:12
4.500 líneas más
00:02:14
entonces cuando hacer una pequeña
00:02:15
modificación en un código
00:02:18
implica un cambio tan
00:02:19
grande como escribir 4.000 líneas más
00:02:22
seguramente es que algo
00:02:24
he hecho mal en mi diseño
00:02:26
entonces repito
00:02:27
este programa está bien, son 5 líneas y está estupendo
00:02:29
pero no es escalable
00:02:32
no es fácilmente ampliable
00:02:34
vale
00:02:36
entonces uno dice, bueno, previendo
00:02:36
que yo tenga que ampliar este código
00:02:40
que tenga que escalar sus posibilidades
00:02:42
previendo lo digo, hombre, estoy haciendo
00:02:44
varias veces lo mismo
00:02:46
pues como yo sé que tengo
00:02:47
una sentencia while para hacer varias veces
00:02:50
lo mismo, pues en lugar de
00:02:52
hacer tanto system out
00:02:54
pues me hago aquí
00:02:56
un while y este
00:02:58
while que sea el que se
00:03:02
encargue de repetir
00:03:04
vale, pero en el momento
00:03:05
en el cual decido
00:03:08
que meto aquí un while
00:03:09
para repetir esto, digo
00:03:12
estupendo, ahora ya esto se puede
00:03:14
hacer una mil, quince mil
00:03:17
las veces que haga falta, no tengo yo que
00:03:18
escribirlo system out, pero claro
00:03:20
tengo que terminar de completar el bucle, diríamos
00:03:22
a ver, pero aquí me faltan
00:03:24
cosas, primero
00:03:26
este bucle mostraría
00:03:28
uno todo el rato, no queremos
00:03:31
que muestre une, uno, queremos
00:03:32
que muestre algo que es
00:03:34
variable, primero mostrará uno, luego
00:03:36
dos, luego tres, entonces
00:03:38
Pues al mostrar algo que es variable ya me lo están diciendo, me están diciendo, hombre, muestra ahí una variable, muestra una variable, muestra una variable, porque es algo que cambia. Ah, vale, pues ahora ya sigo pensando. Y esta variable que muestro, ¿de dónde va? Desde 1 y todos sus incrementos. Pues bueno, inicialmente que tenga 1, ¿vale? Vale, ya me he aproximado más.
00:03:40
Pero claro, ese valor variable
00:04:04
Entre qué valores tiene que ir variando
00:04:07
Tiene que ir variando
00:04:09
Entre 1, luego 2, luego 3, luego 4
00:04:13
Pues tendré que incrementarlo en algún momento
00:04:15
Lo puedo dejar incrementado ahí o no
00:04:17
Y me siguen faltando cosas
00:04:19
Pero cuánto tiempo voy a estar
00:04:21
Yo ejecutando estos system out
00:04:24
Pues mientras que
00:04:25
N sea menor o igual que 5
00:04:27
Vale
00:04:29
Entonces
00:04:31
he ganado
00:04:32
una línea de código, no he ganado más
00:04:34
respecto a hacer los 5
00:04:37
System Outprint LN
00:04:38
solo he ganado una línea de código
00:04:40
bueno, pues lo tenía comodísimo, me hago
00:04:42
5 System Outprint LN
00:04:44
pero este programa ha ganado
00:04:45
en lo que realmente necesitamos
00:04:47
y es que sea escalable
00:04:50
me dicen, uy me equivoqué, son 50.000
00:04:52
ah, no pasa nada
00:04:55
son 50.000, no pasa nada
00:04:56
te cambio esto, y ya está
00:04:58
pues con una mínima modificación
00:05:00
este programa ya
00:05:02
lo puedo yo ampliar
00:05:04
a un montón de posibilidades
00:05:06
la versión anterior, uy me he equivocado
00:05:08
eran 50.000, pues tengo que escribir
00:05:10
49.595
00:05:12
95 líneas más
00:05:15
que no es la idea
00:05:18
entonces los programas no es solo que sean
00:05:19
bonitos, que funcionen, que no sé qué
00:05:22
sino que además los diseños
00:05:24
sean modificables de forma sencilla
00:05:26
bueno pues este era el objetivo en realidad
00:05:28
de este ejercicio simplemente aparte de platicar
00:05:31
con el while
00:05:34
pues ver que se puede hacer lo mismo de varias formas
00:05:34
distintas
00:05:38
normalmente la sencillez
00:05:39
siempre es la mejor claro pero la escalabilidad
00:05:44
también
00:05:46
vale entonces
00:05:46
este que cambia pues cambia
00:05:49
respecto a otro es lo mismo
00:05:52
pero saltándose un número
00:05:53
¿no? entonces
00:05:55
En este
00:05:57
Bueno, esto de aquí
00:05:59
Si hacemos exactamente lo que nos pide
00:06:03
Si hacemos exactamente lo que nos pide
00:06:05
Pues tendríamos que completar a tres bucles
00:06:11
Primero cinco, luego cincuenta
00:06:13
Y luego quinientos
00:06:15
Y así hago exactamente lo que me pide
00:06:16
Pues no del todo
00:06:22
Efectivamente, no hago exactamente lo que me pide
00:06:26
Porque, claro, tengo que volver
00:06:28
A empezar desde uno
00:06:30
Tengo que volver a empezar desde uno
00:06:32
Ahora si hace exactamente
00:06:34
lo que me pide, de 1 al 5, de 1 al 50
00:06:36
de 1 al 500
00:06:38
el 2 es lo mismo pero
00:06:39
me tengo que saltar números, luego ya el bucle
00:06:42
lo complico un poquito porque meto un if dentro
00:06:44
nada más, entonces el 3
00:06:46
es lo mismo que el anterior
00:06:56
el 3 es lo mismo pero ahora
00:06:58
parto de 1
00:07:09
y acabo en 100
00:07:11
parto de 1 y acabo
00:07:12
en 100, luego este límite lo cambio
00:07:15
pero no los muestro todos
00:07:17
¿vale? no los muestro todos
00:07:19
Aquí me falta incluir un if dentro
00:07:21
Tengo que mostrar
00:07:24
Solo los números comprendidos
00:07:26
En ese intervalo
00:07:28
Que no sean múltiplos de 5
00:07:29
Solo los que no lo sean
00:07:31
Luego si el resto de dividir
00:07:33
En entre 5 es diferente
00:07:35
De 0
00:07:38
Entonces
00:07:38
A la tercera
00:07:42
Voy a poner la llave para que no
00:07:43
Vale
00:07:47
Pues este es el mismo que el anterior
00:07:53
Muestro entre 1 y 100
00:07:55
Esta vez entre 1 y 100
00:07:57
Pero los muestro todos
00:07:58
No, no los muestro todos
00:07:59
Muestro solamente aquellos que no sean múltiplos de 5
00:08:02
Luego de la lista
00:08:05
Estoy sacando a estos
00:08:08
Y no me olvido de incrementar
00:08:09
Claro
00:08:12
¿Vale? ¿Estaría bien esto?
00:08:12
¿Sí?
00:08:28
Vamos a ejecutarlo
00:08:29
A ver si está tan bien como decís
00:08:32
Efectivamente
00:08:34
Ahí estoy, aunque no lo parezca
00:08:40
Estoy en un bucle infinito
00:08:42
Mi programa es un bucle infinito
00:08:44
Ahí se ha quedado parado
00:08:46
O lo paro aquí o lo he liado
00:08:49
Entonces, ¿por qué es un bucle infinito?
00:08:51
Porque
00:08:54
En cuanto llega
00:08:55
El primer múltiplo de 5
00:08:59
Ya aquí no entra
00:09:00
Con lo cual n se queda sin incrementar
00:09:02
Entonces n se va a quedar plantado en 5
00:09:04
El resto de su vida
00:09:07
Porque nunca jamás voy a entrar aquí
00:09:08
Luego nunca lo voy a incrementar
00:09:11
Claro, entonces no es tan trivial
00:09:13
El salto de uno a otro
00:09:15
Cuidadín, ese no es el sitio
00:09:16
De incrementar la n
00:09:19
La n la quiero incrementar, tanto si es múltiplo de 5
00:09:20
Como si no
00:09:23
Entonces queda más claro
00:09:24
Bueno, a ver
00:09:27
N empieza siendo 1, lo voy incrementando
00:09:36
Y mientras no sea múltiplo de 5
00:09:38
lo muestro, hombre
00:09:41
lo podría hacer aquí también
00:09:42
¿verdad?
00:09:45
a que lo podría hacer ahí
00:09:48
esto ya se es más confuso porque
00:09:49
esto lo hace siempre
00:09:51
el while siempre
00:09:52
evalúa esta condición, siempre entra aquí
00:09:55
entonces, coge n
00:09:57
múltiplo de 5 y la deja incrementada
00:09:59
para la siguiente, ¿vale?
00:10:01
pero cuidadín
00:10:04
que el que muestra aquí es el siguiente
00:10:05
luego tampoco está bien
00:10:07
tendría que poner más más n en el i
00:10:08
si pongo más más n, pero entonces
00:10:10
tengo que partir de lo anterior.
00:10:14
En el while, dentro del while, pero
00:10:17
tendrías que partir de más más.
00:10:18
¿Aquí te refieres?
00:10:21
Fuera de ahí.
00:10:22
Yo lo pondría en plan abajo, dentro del while, pero fuera de ahí.
00:10:24
Sí, es que eso es lo que había hecho antes,
00:10:27
pero os he dicho, aquí se queda
00:10:29
muy claro, ¿no?
00:10:30
Ahí sí.
00:10:32
Ese es su sitio. Pero lo que he dicho es, aquí está
00:10:34
claro, aquí lo vemos todo claro. Y luego he
00:10:36
dicho, para pillaros como siempre,
00:10:38
o si no, pues lo pongo aquí
00:10:40
o si no, lo pongo aquí
00:10:44
entonces aquí es cuando este código no es idéntico
00:10:45
a poner n más más abajo
00:10:49
porque aquí se queda incrementado antes de mostrar
00:10:50
luego voy a estar mostrando el siguiente
00:10:53
del que estoy comprobando si es múltiplo de 5 o no
00:10:57
voy a estar mostrando el siguiente
00:11:00
¿veis? de hecho me está mostrando múltiplos de 5
00:11:01
que no debería
00:11:05
Que no debería
00:11:06
Claro, porque es el siguiente
00:11:07
Claro, me está mostrando el siguiente
00:11:08
Al que estoy evaluando
00:11:11
¿Vale?
00:11:13
Entonces el 96 no me lo mostrará
00:11:15
Porque es el siguiente, el 95
00:11:17
Y el 95 sí que es múltiplo de 5
00:11:18
Entonces cuidado con los pequeños cambios que hacéis
00:11:20
Este no tenemos duda de que este es el correcto
00:11:23
Esto está bien, ¿verdad?
00:11:26
Claro
00:11:28
Aquí, numerito
00:11:28
¿Es múltiplo de 5?
00:11:30
No
00:11:33
pues lo muestro
00:11:34
¿es múltiplo de 5?
00:11:36
sí, luego esta condición es falsa
00:11:38
no hago nada, y en ambos casos lo incremento
00:11:40
entonces cuidado
00:11:42
por compactar código y dejarlo
00:11:44
todo compacto, cuidado porque hay veces que
00:11:46
a lo mejor uno se le escapa un detalle y ya el programa
00:11:48
no hace lo que tiene que hacer, no pasa nada
00:11:50
si es que no hay que pagar por las líneas
00:11:52
de código extra, no pasa nada
00:11:54
entonces si dejan más claro el código
00:11:56
se ponen, entonces hombre
00:11:58
este bucle se ve mucho más claro si este
00:12:00
n más más está aquí, en lugar
00:12:02
¿vale? en lugar de estar aquí, con lo cual
00:12:04
luego decrementar el valor otra vez
00:12:06
patatín, patatán, etc
00:12:08
¿vale?
00:12:09
n más más y luego poner n menos 1
00:12:13
para mostrar
00:12:15
ya, pero entonces ya sí que estamos
00:12:16
con lo sencillo que es así, ¿verdad?
00:12:18
vale, pues entonces
00:12:23
estos dos, claro, clarísimo
00:12:24
estamos usando el bucle para mostrar simplemente
00:12:27
y ya está
00:12:29
Ahora, hasta aquí estábamos mostrando
00:12:30
El 2 y el 3 eran para mostrar cositas y ver
00:12:36
El 4, ahora vamos a contar
00:12:39
Ejercicio 4, vamos a contar
00:12:42
Incorporamos un poquito más
00:12:44
Vale, pues venga
00:12:46
El 4
00:12:50
Bueno, a ver, el resultado final es una cuenta
00:12:52
Han sido tantos
00:13:01
Entonces, tú tendrás que contar de alguna manera
00:13:02
la otra cosa es que me digas con qué variable lo hagas
00:13:05
lo haces incrementando, decrementando, ¿qué utilizas?
00:13:07
¿vale?
00:13:10
pero el resultado final es una cuenta
00:13:12
¿vale? entonces tienes que contar
00:13:13
de la manera que sea, pero tienes que contar
00:13:15
vale, pues venga, ejercicio 4
00:13:17
vale, pues aquí
00:13:19
de nuevo, si lo vamos haciendo
00:13:33
pasito por pasito
00:13:35
pasito por pasito
00:13:38
silencio que me estáis distrayendo
00:13:39
vale, si lo vamos haciendo
00:13:42
paso por paso, siguiendo todas
00:13:45
las líneas
00:13:47
venga, me han dicho que
00:13:49
¿datos de entrada? ninguno
00:13:51
ningún dato de entrada, no tengo que leer nada, vale
00:13:52
tengo que hacer una cuenta
00:13:55
una cuenta tengo que hacer, bueno
00:13:57
pues entonces un contador
00:13:59
me va a venir muy bien
00:14:01
y cuando tengo que hacer una cuenta
00:14:03
esto, acaba siendo esto
00:14:05
acaba siendo algo así
00:14:07
vale, tengo que hacer una cuenta
00:14:09
acaba siendo algo así
00:14:11
vale, ¿qué tengo que contar?
00:14:12
Tengo que contar números.
00:14:15
Luego tiene que haber una variable en algún sitio
00:14:18
que vaya recogiendo cada uno de los valores
00:14:21
que yo voy contando.
00:14:25
Porque voy a contar números.
00:14:28
Pues esa variable para eso.
00:14:30
Vale, sigo pensando.
00:14:31
Números.
00:14:33
¿Esos números entre qué valores oscilan?
00:14:34
Entre 1 y 100.
00:14:38
Luego, inicialmente, el primero a contar es el 1.
00:14:40
pero ¿cuándo terminaré yo
00:14:43
con todos ellos?
00:14:46
¿cuándo terminaré?
00:14:49
pues terminaré cuando n
00:14:51
ya haya llegado a 101
00:14:52
o lo que es lo mismo, estaré contando
00:14:54
mientras n sea igual que 100
00:14:56
luego ya he avanzado mucho
00:14:57
he decidido que son números lo que voy a contar
00:15:00
luego una variable n tiene que haber ahí
00:15:02
para ir recibiendo cada uno de los que voy
00:15:03
teniendo en cuenta
00:15:06
¿qué recorrido hago?
00:15:07
pues desde el 1 hasta el 100
00:15:10
pues entonces parto del 1 y la condición
00:15:12
está clara cuál es
00:15:14
y si voy recorriendo todos ellos
00:15:15
en algún momento tendré que incrementarlos
00:15:18
tendré que incrementarlos, vale
00:15:21
pues ya estoy avanzando mucho
00:15:22
y mi cuenta cuando la incremento, que sabía que era aquí
00:15:23
colgando mi cuenta, mi cuenta la incremento
00:15:26
para cada n que sea
00:15:29
múltiplo de 7, ah vale, pues ya tengo
00:15:30
lo que me faltaba, cuidado que esta cuenta
00:15:32
solo se incrementa
00:15:34
si
00:15:37
el resto de dividir en entre 7
00:15:38
es 0, solo se incrementa ahí
00:15:40
¿Vale? Es el mismo ejercicio que hemos hecho
00:15:42
Pero el otro era múltiplo de dos
00:15:45
Pues lo mismo, hemos repetido lo mismo
00:15:46
Una y otra vez
00:15:49
Está fuera de lift
00:15:50
Está fuera de lift
00:15:51
Que sea buen hábito
00:15:52
No significa que cuando lo veáis sin llaves
00:16:00
Automáticamente no penséis
00:16:03
Ah, vale, no tengo llaves, solo es la siguiente
00:16:04
¿Vale?
00:16:06
Vale
00:16:09
El total es
00:16:10
y aquí yo tengo ya
00:16:15
mi cuenta de múltiplos
00:16:17
de 7
00:16:20
vale, y ya está, ya me he hecho
00:16:20
mi ejercicio
00:16:23
vale, pues venga, ahora sí que
00:16:24
paramos aquí
00:16:28
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 18
- Fecha:
- 20 de octubre de 2024 - 18:28
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 16′ 32″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 70.64 MBytes