20241024 ProgrEstruct-Bucles-ejercicios_10 - 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:
Bueno, pues entonces, vale, nos habíamos quedado con esto,
00:00:00
pero a ver, estaba claro, ¿no?
00:00:04
Que esto es, tenemos que ver si algo pasa o no pasa.
00:00:05
De partida, asumimos que no hay ninguno.
00:00:07
Empezamos a leer, empezamos a leer y en cuanto nos encontramos
00:00:11
un contraejemplo que se llama algo que me hace cambiar de opinión
00:00:14
porque ya he encontrado uno, como es aquí,
00:00:18
en cuanto he encontrado uno que me hace cambiar de opinión
00:00:20
porque está suspenso, pues ya lo pongo a tú.
00:00:23
Y ya está.
00:00:26
los siguientes que vengan
00:00:26
ya dan igual
00:00:29
en realidad, ya dan igual
00:00:30
van a seguir poniendo la true a lo mejor
00:00:32
si es menor que 5, pero es que ya estaba
00:00:34
de antes, entonces dan igual
00:00:37
entonces
00:00:38
bueno, sí, a ver
00:00:39
el número que sea, da igual
00:00:44
el número que sea, vale, entonces ¿en qué nos habíamos quedado?
00:00:46
pues en lo más importante
00:00:49
que es, a ver, ojo
00:00:51
cuando ya hemos encontrado alguno
00:00:52
que cumple esto, luego es true
00:00:54
ya lo que pase con los demás
00:00:56
me da lo mismo, porque ya he encontrado
00:00:59
uno que me ha hecho cambiar de opinión y decir que sí
00:01:01
hay uno al menos que ha cambiado de opinión
00:01:03
entonces aquí querríamos
00:01:05
ya dejar de ejecutar el bucle
00:01:07
porque efectivamente si el bucle tiene 50.000
00:01:08
pues vaya rollo estar ahí
00:01:11
entonces siempre podemos
00:01:12
hacer esto si queremos salir de un
00:01:15
bucle, pero bueno como es
00:01:17
feo, habíamos
00:01:18
incorporado esto de arriba
00:01:21
que en el for recordad
00:01:23
que esta es la condición que hace que yo siga
00:01:25
que yo siga
00:01:27
entonces ¿cuándo vamos a seguir?
00:01:28
si se cumple simultáneamente
00:01:30
que no los he recorrido todos
00:01:32
y además todavía no he encontrado
00:01:34
ninguno suspenso
00:01:37
si se ocurren
00:01:38
simultáneamente las dos cosas
00:01:40
que no he acabado con todos
00:01:42
y que además todavía no he encontrado
00:01:44
ningún suspenso, seguiré
00:01:46
pero
00:01:48
imaginaos que ya he terminado
00:01:49
ya he recorrido los cinco
00:01:52
aunque no haya encontrado ningún suspenso todavía
00:01:54
luego esto es falso, perdón, luego esto es true
00:01:56
pues si ya he recorrido
00:01:58
todo, será falso
00:02:00
y true, falso, saldrá
00:02:02
porque ya los ha recorrido todos
00:02:04
aunque algún suspenso siga siendo falso
00:02:05
porque es que no he encontrado ninguno
00:02:08
esa será una de las posibilidades
00:02:09
que harán que salga del bucle
00:02:12
la otra, que no he recorrido
00:02:13
todos, es decir, esta es true
00:02:16
pero ya esto
00:02:17
se ha puesto true, porque ya he encontrado a uno
00:02:20
luego esto automáticamente se ha convertido en false
00:02:22
luego será la otra opción
00:02:24
por la que pueda salir
00:02:26
porque no los he recorrido todos aún
00:02:27
luego eso sigue siendo true, pero esto me saltó a false
00:02:30
me saltó a false
00:02:32
porque entré por aquí
00:02:34
al entrar por aquí se puso a true
00:02:35
con el no delante se ha puesto a false
00:02:38
luego consigo el efecto del break
00:02:40
que en cuanto yo entro por aquí
00:02:42
porque uno es suspenso
00:02:44
en cuanto entro se ha puesto a true
00:02:46
entonces al ponerse esto a true
00:02:48
esta automáticamente se pone a falso
00:02:49
luego ya la siguiente iteración
00:02:52
ya no se va a hacer, que era justo lo que quería
00:02:54
que ya no se hagan más
00:02:56
iteraciones desde el momento
00:02:58
en que me encuentro ya un suspeso
00:03:00
los demás ya se ignoran
00:03:02
¿vale?
00:03:04
no lo entiendo
00:03:09
a ver, ya sabía
00:03:10
¿por qué no has explicado
00:03:12
lo que parece?
00:03:12
pues si es más fácil de lo que parece es que te lo he explicado
00:03:16
muy bien, porque no te parecería
00:03:18
fácil.
00:03:20
Ok, lo siento, profe, perdóname.
00:03:22
No cuente más.
00:03:23
Vale, a ver.
00:03:25
Y no significa que tienen que pasar
00:03:28
las dos cosas. Claro, pero esta es la condición
00:03:30
con la que sigues entrando.
00:03:32
Entonces tú sigues entrando.
00:03:34
Si no has completado todos
00:03:35
y además todavía
00:03:37
no has encontrado uno suspenso
00:03:40
porque es negada.
00:03:42
Entonces si se... A ver,
00:03:44
no es fácil de ver. Si se cumplen
00:03:46
que tú no has encontrado todos
00:03:48
y además todavía no hay ningún
00:03:50
suspenso porque
00:03:52
sigues en false, luego esto es true
00:03:54
pues tú sigues
00:03:56
¿cuándo termina el bucle?
00:03:57
el bucle terminará
00:04:00
porque esta es falsa o porque
00:04:01
esta es falsa, porque el and
00:04:04
se convierte en false en cuanto
00:04:05
uno de los dos es falsa
00:04:08
entonces ¿cuándo terminará el bucle?
00:04:09
cuando esta es falsa o
00:04:12
esta es falsa, porque
00:04:14
para cualquiera de esos dos casos
00:04:16
la total es falsa, luego no entra más
00:04:17
bueno, pues cuando
00:04:20
terminará el bucle
00:04:22
cuando ya he comprobado los 5
00:04:22
cuando ya he comprobado los 5, termina sí o sí
00:04:25
esta se ha hecho falsa, el total es falsa
00:04:27
luego ya no entra, esta es la condición
00:04:29
que me marcaría
00:04:31
que yo entrara, si se ha hecho falsa no entra
00:04:33
vale, pero no solo
00:04:35
no solo va a dejar de entrar cuando esta es falsa
00:04:37
también cuando esta lo es
00:04:39
entonces
00:04:41
esta de aquí
00:04:43
algún suspenso, sabemos
00:04:44
que desde el momento en que yo entro
00:04:47
aquí, porque estoy en la iteración 3
00:04:49
por ejemplo, estoy en la 3
00:04:51
ese es suspenso, vale
00:04:52
pues entonces algún suspenso ha puesto a true
00:04:55
estaba false de antes, pero ahora se ha puesto a true
00:04:56
vale, pues entonces cuando yo venga
00:04:59
por aquí arriba, como esta ha cambiado a true
00:05:01
esta tiene el negado
00:05:03
delante, luego esta se ha hecho
00:05:05
false, entonces
00:05:07
esta se ha hecho false
00:05:09
el and con un false es
00:05:10
falso, me da igual
00:05:13
lo que sea esto, falso
00:05:15
and lo que sea es falso, pues a cabo ya no
00:05:17
entra, porque esta es la condición
00:05:19
esto es como si fuera un while
00:05:21
esta es la condición que si se cumple entra
00:05:22
lo tienes que pensar tú solito
00:05:25
en la intimidad, ponte a pensarlo
00:05:27
y lo, hasta que lo veas
00:05:29
claro
00:05:31
¿vale?
00:05:31
lo ponéis y
00:05:35
bueno, más o menos
00:05:36
bueno, pues
00:05:39
A ver
00:05:42
Yo ya prácticamente
00:05:45
He hecho todo lo que podía hacer
00:05:48
Por vosotros
00:05:51
Todos los ejercicios
00:05:53
Que quieran
00:05:56
Ahora ya, claro, muchos de ellos ya son
00:05:56
Bastante más difíciles
00:05:58
Pero todo se puede hacer con todo lo que hemos visto
00:06:00
Son las 4 o 5 ideas
00:06:02
4 o 5 ideas que hemos visto
00:06:05
Combinadas
00:06:06
Todo el rato lo mismo, 4 o 5 ideas
00:06:07
Lo que pasa es que, claro
00:06:10
Hay algunos que son
00:06:11
Más difíciles y más fáciles
00:06:14
Vale, pues entonces
00:06:17
El lunes empezamos con
00:06:19
Otra cosa, pero hoy y mañana
00:06:21
Vamos a hacer un repaso
00:06:23
De estos de aquí
00:06:25
Cuál os parece más difícil
00:06:26
Cuál queremos, cuáles hacemos aquí
00:06:28
Etcétera, vale
00:06:30
Venga, por ejemplo
00:06:32
Eh, o sea
00:06:37
Damos por corregidos
00:06:38
Hasta aquí
00:06:40
Porque estos tres en realidad son iguales
00:06:42
Hemos hecho este
00:06:46
Pero es que este y este son prácticamente el mismo
00:06:47
Entonces los hace
00:06:49
Los hacéis y ya está
00:06:51
Vale, pues a partir de aquí
00:06:53
Del 19 al 38
00:06:56
Vale, ¿alguna petición?
00:06:58
Del 19 al 38
00:07:02
Sí, pero es que no podemos corregirlos todos
00:07:03
Porque se nos haría diciembre
00:07:06
Pero vamos, podemos ir
00:07:07
Aunque el lunes empecemos
00:07:09
Algo nuevo, podemos ir
00:07:12
Haciendo de estos también
00:07:14
Pero peticiones, ¿cuál te gusta?
00:07:16
El 30, ala, lo bestia
00:07:19
Sabía que os ibais a las estrellitas
00:07:21
Sí
00:07:23
Sois la generación de que os tiene que entrar por los ojos
00:07:24
Las cosas
00:07:27
De lo visual
00:07:27
Pero vale, venga
00:07:29
Empezamos con el 30
00:07:33
Vale, aparte del 30
00:07:34
Yo quiero que hagamos el de los números primos
00:07:38
Y algún otro por ahí
00:07:41
¿Vale?
00:07:43
Hay unos cuantos que sí que quiero que hagamos aquí
00:07:44
Pero vamos a empezar con el 30, ¿vale?
00:07:47
No, le ha gustado ese, pobrecito
00:07:52
Déjale
00:07:54
Bueno
00:07:55
Pues os vais a cagar
00:08:08
que no, que no, que es una broma
00:08:11
vale, el arbolito de navidad
00:08:15
venga
00:08:18
espera, vamos a detener esto mientras
00:08:18
vale, pues el programa dice
00:08:25
mostrar esta figura
00:08:31
¿el plátano?
00:08:39
pero aún no estamos
00:08:43
pero casi
00:08:48
vale
00:08:51
si fuera esta figura
00:08:51
fija tal cual
00:08:55
pues me hago 4 system out y listo
00:08:56
pero claro, me están diciendo
00:08:59
tú mete un dato de entrada
00:09:00
que es el número de filas
00:09:02
y el arbolito de navidad tiene que tener
00:09:03
tantas filas
00:09:10
en cada iteración
00:09:13
metes una más
00:09:14
¿Vale? Tantas filas como te digan
00:09:15
Bueno, un asterisco más no
00:09:18
Ya, pero
00:09:22
Lo que tú me estás diciendo sería esto
00:09:24
Sí
00:09:27
El triángulo
00:09:28
Pero vamos a hacer el arbolito
00:09:29
También hay otra parte abajo
00:09:31
Bueno, lo de abajo es el rombo
00:09:32
¿Vale? A ver, podríamos hacer esta primera
00:09:35
Versión, efectivamente
00:09:38
Esta es más sencilla de hacer
00:09:40
¿Vale? Vamos a hacer esta primera versión
00:09:41
que es el triangulito
00:09:43
y luego ya hacemos el arco
00:09:45
vale, entonces vamos a imaginar
00:09:48
que nos han pedido esto
00:09:50
bueno, pues esta
00:09:51
es fácil porque decimos
00:10:01
tengo que hacer varias veces
00:10:03
mostrar una línea
00:10:05
varias veces mostrar una línea
00:10:07
vale, pues entonces
00:10:09
esto
00:10:12
estas son las filas
00:10:13
que tenemos
00:10:19
entonces, yo sé exactamente
00:10:19
el número de iteraciones
00:10:23
que necesito, que son
00:10:25
N mayúscula
00:10:26
luego me planto un
00:10:28
bucle for
00:10:30
que se ejecute N veces
00:10:34
vale
00:10:39
bueno, pues entonces, hasta ahí he llegado
00:10:44
tengo que hacer algo N mayúscula
00:10:47
veces, vale, ese algo
00:10:49
que tengo que hacer, ¿qué es?
00:10:51
e imprimir cosas por pantalla
00:10:52
imprimir
00:10:55
vale, la primera vez
00:10:56
que es la vez para i igual a 0
00:10:58
tengo que mostrar un asterisco
00:11:00
pero la segunda vez
00:11:03
que es la de i igual a 1
00:11:05
porque recordad que este for
00:11:06
esta variable i
00:11:08
cuando la primera vez que entramos vale 0
00:11:10
pero la siguiente vez que entramos ya vale 1
00:11:12
entonces la propia variable i
00:11:14
nos está valiendo como una especie de contador
00:11:15
cuando i vale 0
00:11:18
un asterisco, pero cuando i vale
00:11:20
dos son dos asteriscos los que tenemos que mostrar
00:11:22
pero cuando y valga
00:11:24
dos son tres
00:11:26
asteriscos, entonces
00:11:31
si nos hacemos aquí un bucle
00:11:33
que lo que haga sea
00:11:35
mostrar un asterisco
00:11:37
pues entonces
00:11:39
este bucle esta vez se ejecutará
00:11:40
y más una veces
00:11:43
y la segunda vez se ejecutará también y más una veces
00:11:44
y la tercera vez se ejecutará
00:11:47
y más una veces también
00:11:50
luego si yo me planteo cada línea
00:11:51
cada línea me la planteo
00:11:54
como un bucle
00:11:56
que lo que se hace en cada iteración es mostrar un único asterisco
00:11:57
pues ese bucle
00:12:00
es en las veces que se ejecuta
00:12:02
la primera vez y más una, la segunda y más una
00:12:03
la tercera y más una, luego es un bucle
00:12:06
que se ejecuta siempre y más una veces
00:12:08
entonces
00:12:10
pues aquí dentro me hago otro bucle
00:12:11
que se va a ejecutar exactamente
00:12:14
y más una veces
00:12:16
¿no?
00:12:18
para igual a cero una vez
00:12:19
para igual a uno dos veces, para igual a dos tres veces
00:12:20
luego es un bucle que se ejecuta y más una vez
00:12:23
pues me hago un bucle for que se ejecuta
00:12:25
y más una vez
00:12:27
aquí no voy a usar la variable y otra vez
00:12:28
esta ya está usada, tiene aquí un uso
00:12:31
pues me
00:12:33
uso otra
00:12:36
¿vale? entonces este for está
00:12:38
dentro del de arriba
00:12:46
entonces este es un for que se ejecuta
00:12:46
y más una vez
00:12:50
luego en la primera
00:12:51
iteración del for de arriba
00:12:53
este se ejecuta una vez
00:12:55
porque y vale c
00:12:57
en la siguiente iteración del for de arriba
00:12:58
este se ejecuta
00:13:02
dos veces porque i vale uno
00:13:04
en la siguiente iteración del for de arriba
00:13:05
este se ejecuta tres veces
00:13:08
porque i vale dos
00:13:10
que es justo lo que yo quiero
00:13:11
vale, ¿y qué es lo que tengo que hacer en el for de dentro?
00:13:13
mostrar el asterisco
00:13:16
mostrar el asterisco
00:13:17
pero se va a ejecutar i veces
00:13:19
porque has puesto menor
00:13:21
no menor igual
00:13:23
entonces se va a ejecutar i veces
00:13:24
no, se ejecuta i más una
00:13:26
o sea, si yo quiero que, es como este
00:13:28
este desde 0 hasta n
00:13:31
se ejecuta n veces, este desde 0 y más 1
00:13:32
se ejecuta y más 1
00:13:35
entonces, aquí el único tema es que
00:13:36
el asterisco que yo quiero mostrar
00:13:39
si lo muestro así
00:13:40
con el system.out.println que hemos usado siempre
00:13:42
así
00:13:45
el system.out.println
00:13:47
te muestra un asterisco
00:13:49
pero te salta la línea
00:13:50
con lo cual, cuando nosotros
00:13:52
estemos en esta iteración
00:13:55
la segunda, el primer asterisco
00:13:56
me deja la línea saltada, luego este asterisco
00:14:00
me lo muestra abajo también
00:14:01
pero no pasa nada, tenemos una variante
00:14:03
del system.out.print.ln
00:14:05
que es system.out.print
00:14:07
que me muestra
00:14:09
y no me deja la línea
00:14:11
saltada, me muestra
00:14:14
entonces
00:14:15
este bucle, así tal cual
00:14:17
que nos hace, vale, iteración 0
00:14:19
primera vez que entro por aquí, iteración 0
00:14:21
este bucle
00:14:24
se va a ejecutar una vez.
00:14:25
Una vez. ¿Y qué va a hacer?
00:14:28
Mostrar un asterisco.
00:14:29
Iteración para i igual a 1.
00:14:33
Este bucle se va a ejecutar dos veces.
00:14:35
Porque ahora valdrá
00:14:38
desde 0 hasta 2, dos veces.
00:14:39
Y muestra un asterisco
00:14:42
y muestra otro más, porque se ejecuta dos veces.
00:14:43
Iteración i igual a 2.
00:14:46
Este bucle se va a ejecutar tres veces.
00:14:49
Me muestra un asterisco, otro asterisco,
00:14:52
otro asterisco.
00:14:53
¿Qué falla aquí?
00:14:56
Ojo, que cada vez que yo acabo esto,
00:14:57
cada vez que acabamos esto,
00:15:00
es porque hemos acabado una línea enterita.
00:15:02
Queremos que el cursor se vaya abajo
00:15:05
para que la siguiente línea sea abajo.
00:15:07
Entonces, este for es para mostrar cada una de las líneas.
00:15:10
Para eso vale.
00:15:14
Entonces, una vez que yo he terminado de mostrar una línea,
00:15:16
que este for es el que lo hace,
00:15:18
asterisco, asterisco, asterisco,
00:15:19
tantas veces como haga falta,
00:15:20
asterisco, asterisco,
00:15:21
tantas veces como haga falta,
00:15:23
me falta meter un salto de línea
00:15:24
me falta meter un salto de línea
00:15:26
para que la siguiente línea se haga abajo
00:15:27
vale, pues ¿cómo puedo meter
00:15:30
yo un salto de línea? le hago un system.out.print
00:15:32
ln vacío
00:15:34
y es el efecto que tienes, no mostrar
00:15:35
nada, nada más que un salto de línea
00:15:38
vale, ya
00:15:40
estaría ese triángulo hecho
00:15:42
entonces si ejecutáis este código
00:15:43
variando n, 2, 7
00:15:51
8, pues os saldrá este
00:15:54
triángulo, pues con tantas líneas
00:15:55
como tú
00:15:58
la hayáis dicho
00:15:59
pero eso no sale así
00:16:01
no...
00:16:04
ya, claro, pero es que lo he dicho hace dos minutos
00:16:05
vamos a hacer primero esta versión
00:16:08
y cuando la tengáis clara
00:16:09
vamos a hacer ahora la otra
00:16:11
¿esto lo entendéis?
00:16:13
sí, segurísimo, segurísimo
00:16:16
pero me dice que solo me sale la primera línea
00:16:18
está bien así
00:16:20
¿tiene que salir el triángulo?
00:16:21
a mí no me sale el triángulo
00:16:24
a mí me sale una fila
00:16:25
Pero le habéis quitado aquí el LN
00:16:27
Que os he dicho
00:16:32
A ver, a ver, vamos a ver
00:16:32
¿Te sale el triángulo ya?
00:16:39
O sea, no hace falta ni que lo compruebe, ¿no?
00:16:48
A ver, Pablo, mírale
00:16:52
Lo que ha hecho
00:16:53
Porque así no tengo que
00:16:55
¿Me has hecho quitar eso con lo que me cuesta?
00:16:58
Vale, a ver, lo que está ahí tiene que funcionar
00:17:00
Igual algo has copiado mal, no lo sé
00:17:10
A ver, ¿alguien no entiende este código?
00:17:11
Si lo entiendo, que lo tengo
00:17:28
No, él no lo entiende
00:17:30
Nada ha pasado
00:17:31
¿Por qué?
00:17:34
Yo soy el único que...
00:17:35
El único valiente, querremos decir.
00:17:38
Vale, ¿entendéis todo el mundo este código?
00:17:42
Entonces, aquí hemos identificado.
00:17:44
Tenemos que varias veces imprimir una línea de cosas.
00:17:47
Vale, una línea de cosas.
00:17:54
Pues por eso hay un for que se ejecuta tantas veces como líneas.
00:17:55
¿Está claro, no?
00:17:59
Vale, ahora ya.
00:18:00
Dentro de este for grande toca imprimir la línea.
00:18:02
ahora viene el subproblema
00:18:05
el subproblema es, muy bien
00:18:07
ahora como imprimo yo una filita de asteriscos
00:18:08
pues si imprimo una fila de asteriscos
00:18:12
es imprimir un asterisco
00:18:14
y otro y otro, luego de nuevo es un bucle for
00:18:16
un bucle for donde se imprime
00:18:18
un asterisco y otro y otro
00:18:20
para que queden seguidos
00:18:21
sin el ln aquí, ln es de line
00:18:23
que es que te salta la siguiente
00:18:25
te imprime y se queda el cursor
00:18:27
ahí para que el siguiente sea en la misma línea
00:18:30
bueno pues esto
00:18:32
es lo que tenemos que hacer varias veces
00:18:33
aquí una vez, pero aquí dos veces
00:18:35
pero aquí tres veces
00:18:38
es decir, dependiendo del i
00:18:39
de la iteración de fuera
00:18:41
dependiendo del i
00:18:43
lo hago una vez, dos, tres
00:18:45
es decir, siempre lo voy a hacer
00:18:48
una vez más que lo que valga la i
00:18:49
entonces cuando yo entro en este for
00:18:51
y la primera vez vale cero
00:18:54
la segunda valdrá uno
00:18:55
la segunda valdrá dos, no lo sé, pero lo que sí que sé
00:18:57
es que este for se va a hacer siempre
00:19:00
y más una vez
00:19:02
el print sin el LN
00:19:03
no imprime nada
00:19:06
no, no, no, hace un salto de línea
00:19:06
un salto de línea sin más
00:19:08
no, digo el print que no lleva el LN
00:19:10
ese no imprime nada
00:19:13
hasta que no hagas un print LN
00:19:15
no, no, no, sí, imprime en este disco
00:19:17
lo que no hace es dejarte el salto de línea
00:19:19
metido
00:19:21
este, el print es
00:19:22
imprime esto sin salto de línea
00:19:25
y el print LN es imprime esto con salto de línea
00:19:26
entonces como pone
00:19:29
ah, vale, porque
00:19:30
vale, entonces este bucle
00:19:32
sé que se va a ejecutar y más una
00:19:37
veces, porque tengo que imprimir
00:19:39
y más un asterisco, pues un bucle que sé las veces
00:19:40
que se va a ejecutar, lo planto
00:19:42
tal cual, bucle que se ejecuta y
00:19:44
más una veces, como la variable
00:19:46
y ya está usada, porque
00:19:48
es el índice del bucle de arriba
00:19:50
este bucle for lo planteo con otra
00:19:52
variable, claro, otra
00:19:54
y este es un bucle for que se ejecuta
00:19:56
exactamente y más una veces
00:19:59
igual que este, es un bucle for
00:20:01
que se ejecuta exactamente
00:20:03
entonces este bucle for
00:20:04
para la primera iteración cuando i es igual a 0
00:20:06
se ejecuta solo una vez
00:20:09
y me imprime en este disco
00:20:10
pero para la siguiente iteración
00:20:13
cuando i es igual a 1
00:20:15
se ejecuta dos veces, luego me imprime dos
00:20:17
no, dos filas no, dos asteriscos
00:20:19
a ver, y más uno es la cantidad de veces
00:20:22
que se hace este print
00:20:29
entonces para la iteración
00:20:30
i igual a 7
00:20:32
se imprimirán 8 asteriscos
00:20:33
entonces
00:20:36
todo este for
00:20:37
enterito es para una línea
00:20:40
como una vez acabada la línea
00:20:41
tenemos que pasar a la línea siguiente
00:20:44
pues ponemos
00:20:46
aquí esto con la única idea de
00:20:48
pasar a la línea siguiente y ya está
00:20:50
¿vale? bueno
00:20:51
¿he entendido el código más o menos?
00:20:54
entonces, se puede anidar
00:20:57
for como se puede anidar todo, pero cuidado
00:20:59
si una anida for no vaya a utilizar
00:21:00
la misma variable
00:21:03
porque dentro de este for y ya está usada
00:21:04
ya tiene un uso
00:21:07
que es el índice del bucle de arriba
00:21:08
entonces no uséis
00:21:10
la misma variable índice
00:21:13
en for anidados
00:21:15
vale, pues entonces
00:21:16
siguiente variante, el arbolito
00:21:20
vale, pues a ver
00:21:22
siguiente variante
00:21:59
el arbolito este
00:22:02
entonces este arbolito es la misma idea
00:22:05
es n veces
00:22:07
imprimir una línea
00:22:09
luego el for de arriba es idéntico
00:22:11
el for de arriba es idéntico
00:22:13
porque yo n veces tengo que imprimir
00:22:15
una línea
00:22:17
lo que cambia es la línea
00:22:18
porque aquí la línea eran
00:22:20
y más un asterisco
00:22:22
y ya está
00:22:24
entonces aquí lo que cambia es que para imprimir
00:22:25
cada línea, no es esto
00:22:28
cada línea tendré
00:22:30
que hacer, primero imprimir
00:22:32
unos espacios, los que toquen
00:22:35
y luego ya imprimir asteriscos
00:22:37
entonces aquí imprimir la línea
00:22:39
será imprimir unos cuantos
00:22:40
espacios y luego después
00:22:42
imprimir unos cuantos asteriscos, en eso
00:22:44
consiste ahora imprimir la línea
00:22:46
y aquí era más fácil, aquí imprimía asteriscos y más
00:22:47
aquí no, aquí
00:22:50
en cada iteración de la i
00:22:52
para i igual a 0
00:22:54
pues imprimo dos espacios
00:22:55
en este caso, cuando n es igual a 3
00:22:58
y un asterisco
00:23:00
pero cuando y es igual a 1
00:23:02
imprimo un espacio
00:23:04
y tres asteriscos
00:23:06
y cuando y es igual a 2, que sería la última
00:23:07
imprimo cero espacios
00:23:10
y cinco asteriscos
00:23:12
luego
00:23:14
claro, entonces
00:23:15
la línea desde luego no la consigo
00:23:17
con esto, con esto conseguía imprimir
00:23:20
y más un asterisco sin más
00:23:22
luego la línea con esto no se consigue
00:23:23
Entonces, ¿cómo consigo la línea?
00:23:26
Bueno, pues hago en secuencia
00:23:29
Primero imprimo los espacios
00:23:30
Y luego imprimo los asteriscos
00:23:33
Entonces, vamos a imprimir primero los espacios
00:23:35
¿Cuántos espacios?
00:23:38
Todavía no lo sé, vamos a pensarlo
00:23:39
Pero sé que
00:23:41
Habrá un número de espacios a imprimir
00:23:44
Y aquí yo
00:23:46
Imprimiré los espacios
00:23:49
Print, para que no salte
00:23:51
Print, espacio
00:23:55
vale, cuando ya he terminado los espacios
00:23:57
este for ya acabó
00:24:00
este for ya acabó, ya he terminado de imprimir los espacios
00:24:01
voy con los asteriscos
00:24:04
pues otro for
00:24:06
aquí sí que puedo reutilizar
00:24:07
la jota, porque este no es
00:24:10
un for interno
00:24:12
vale, pues
00:24:13
claro, este for de arriba
00:24:15
ya acabó, la jota ya desapareció
00:24:20
la puedo volver a usar aquí
00:24:21
vale, pues a falta
00:24:23
de esto, que es todavía
00:24:37
la incógnita, el programa
00:24:40
estaría.
00:24:42
Imprimo en líneas. ¿Cada línea en qué consiste?
00:24:44
Primero, imprimo
00:24:47
una serie de espacios, no sé cuántos.
00:24:48
Y luego imprimo
00:24:51
una serie de asteriscos, no sé cuántos.
00:24:52
Y cuando ya lo he hecho, me voy a línea siguiente.
00:24:54
Este tiene que seguir
00:24:57
estando aquí, cada línea siguiente.
00:24:58
Aquí, cuidado, no pongo llaves, porque
00:25:00
solo hay una sentencia en cada uno.
00:25:02
¿Vale? En cada unzo.
00:25:04
vale, ahora la pregunta es
00:25:06
oye, pero ¿cuántos espacios y cuántos asteriscos
00:25:08
se imprimen en cada línea?
00:25:11
hombre, pues podemos sacar la regla fácilmente
00:25:12
fijaos en el caso de n igual a 3
00:25:14
imprimimos espacios
00:25:17
¿cuántos? 2, 1 y 0
00:25:19
pero si n fuera igual a 4
00:25:20
si n fuera igual a 4
00:25:22
tendríamos este árbol de navidad
00:25:26
¿y cuántos espacios nos costaría imprimir?
00:25:27
nos tendríamos que imprimir
00:25:30
3, 2, 1 y 0
00:25:31
claro, luego el número de espacios que hay que imprimir
00:25:32
en cada línea
00:25:36
empieza siempre
00:25:37
siendo
00:25:39
uno menos que el número de líneas
00:25:40
y se va incrementando
00:25:43
¿no?
00:25:44
claro
00:25:47
es decir
00:25:47
para i igual a cero
00:25:50
¿cuántos espacios tenemos que imprimir?
00:25:52
en espacios
00:25:56
menos
00:25:57
i más uno ¿verdad?
00:25:58
y los mismos
00:26:05
para este, los mismos para esta
00:26:06
es decir, para el caso 3
00:26:09
en la línea 1 tengo que imprimir
00:26:11
3 menos 1, 2 espacios
00:26:14
luego, este es el
00:26:16
número de espacios
00:26:19
que tengo que imprimir en la línea i
00:26:20
ese, n menos i más 1
00:26:23
lo podéis probar
00:26:25
para varios ejemplos, para este
00:26:29
cuando n es igual a 4
00:26:31
estamos en el caso de n es igual a 4
00:26:32
para n igual a 4
00:26:36
e i igual a 0, ¿cuántos espacios
00:26:40
tengo que imprimir?
00:26:42
4 menos
00:26:43
1, 3, justo
00:26:45
pero para i igual a 1
00:26:47
¿cuántos? 4 menos
00:26:49
2, 2, justo
00:26:51
luego se trata de sacar la regla
00:26:52
que me relaciona
00:26:55
número de espacios con
00:26:56
número de filas
00:26:58
y fila en la que estoy
00:27:01
pues esa es la relación
00:27:02
n igual menos i más 1, este es el número de espacios
00:27:04
que tengo que imprimir
00:27:07
empezando con n menos 1
00:27:08
y cada vez siendo 1 menos
00:27:13
¿Esta es la regla?
00:27:15
¿Sí o no?
00:27:21
Sí, no es fácil de ver
00:27:23
Entonces, n menos i más 1
00:27:25
¿En qué se va convirtiendo?
00:27:27
n menos i más 1 se va convirtiendo
00:27:29
Igual es más fácil de ver
00:27:31
La regla esta así
00:27:33
En lugar de n menos i más 1
00:27:34
n menos 1 menos i
00:27:37
Así igual es más fácil de verlo
00:27:40
Para la fila 0
00:27:42
n menos 1 espacios
00:27:43
Pero para la fila 1
00:27:45
n menos 2 espacios
00:27:46
Para la fila 2, n menos 3 espacios
00:27:48
Para la fila n menos 1, que es la última, 0 espacios
00:27:51
Quizás así lo veis más fácil
00:27:56
Que es lo mismo que lo que había puesto antes
00:28:00
Es decir, cada fila tendrá un número de espacios igual a n menos 1 menos la fila en la que estoy
00:28:03
De tal forma que en la fila 0 serán n menos 1
00:28:10
En la fila 1, n menos 2
00:28:15
en la fila 2
00:28:17
n-3 cada vez uno menos
00:28:19
¿verdad? porque ahí se va incrementando
00:28:21
cada vez un espacio menos
00:28:23
y se va incrementando 0, 1, 2
00:28:24
luego cada vez un espacio menos justo
00:28:27
empezando ¿por cuál? por n-1
00:28:29
la condición del for
00:28:31
para poner eso
00:28:32
a ver, esta es la cantidad de veces que se ejecuta el for de arriba
00:28:34
pues es plantar eso ahí, ya está
00:28:37
j menor que n-1
00:28:38
claro
00:28:41
n-1 menos i, menos i más 1
00:28:42
ya está, lo que yo quería era saber
00:28:45
el número de espacios que tenía que imprimir
00:28:47
en cada fila. Pues el número de espacios
00:28:49
que tengo que imprimir en cada fila es este.
00:28:51
Pues ya está. Esto ya lo tengo.
00:28:54
¿Vale? Para la primera
00:28:59
fila, que es la 0, n-1.
00:29:00
Está claro.
00:29:02
Para la segunda fila, que es la 1,
00:29:04
n-2.
00:29:06
Para la tercera fila, que es la 2,
00:29:07
n-3.
00:29:10
Para la última fila, que es la 3,
00:29:11
n-4. Justo.
00:29:14
Ningún espacio. Ninguno. Se acabó.
00:29:16
Pues ya está. Esa es la cantidad
00:29:18
que me faltaba, el número de espacios
00:29:20
el número de espacios es
00:29:22
m-1 menos i
00:29:23
y ahora, número de asteriscos
00:29:24
pues para la fila 0
00:29:28
1, a ver si sacamos
00:29:30
la regla, para la fila 0
00:29:35
hay que imprimir un espacio
00:29:37
pero para la fila 1
00:29:38
¿cuántos espacios hay que imprimir? 3
00:29:40
pero para la fila 2
00:29:42
¿cuántos? 5
00:29:44
para la fila 3
00:29:47
¿cuántos? 7
00:29:49
Luego
00:29:51
¿Qué regla
00:29:53
Podemos sacar para pasar
00:29:56
De 0 a 1, de 1 a 3
00:29:58
De 2 a 5
00:30:00
¿Qué regla sacamos?
00:30:01
No hay más o menos porque en la primera vez
00:30:03
Se hace así
00:30:05
Es decir, lo que me pide es que me saquéis
00:30:06
¿Qué función
00:30:09
De i
00:30:10
Me devuelve este número?
00:30:12
¿Qué función de i me devuelve este número?
00:30:14
Para saber
00:30:18
Este número, ¿cuánto va a ser?
00:30:19
o lo que es lo mismo, ¿cuántos asteriscos
00:30:20
voy a tener que imprimir en función de i?
00:30:22
¿Cuántos asteriscos voy a tener que imprimir
00:30:25
en función de i?
00:30:26
¿Encontráis alguna función matemática?
00:30:28
¿Alguien ve alguna expresión matemática
00:30:38
que me dé este valor en función
00:30:39
de lo que valga i?
00:30:41
El número de líneas
00:30:45
menos el número de espacios.
00:30:46
No hace falta ni la n.
00:30:48
De 0 tengo que pasar a 1.
00:30:51
De 1 a 3, de 2 a 5, de 3 a 7.
00:30:52
Ah, números impares.
00:30:55
¿Y cómo? ¿Cómo lo expreso?
00:30:57
No, no, yo no lo he fundido.
00:31:01
A ver.
00:31:03
Esto, ¿y ahora tenéis?
00:31:05
2 por i más 1.
00:31:07
2 por i más 1.
00:31:14
Cuando i es igual a 0, 1.
00:31:17
Cuando i es igual a 1, 3.
00:31:19
Cuando i es igual a 2, 5.
00:31:22
o sea, es la sucesión aritmética
00:31:24
de los números impares de toda la línea de matemática
00:31:26
es decir, 2 por i más 1
00:31:29
me dice para cada fila
00:31:32
cuántos asteriscos tengo que poner
00:31:34
para la fila 0 me saca 1, estupendo
00:31:36
para la fila 1 me saca 3
00:31:39
para la fila 2
00:31:41
me saca 5, luego 2 por i más 1
00:31:42
es el número de asteriscos
00:31:45
que tengo que poner en cada fila
00:31:46
pues ya está, ya lo tengo
00:31:48
lo planto aquí en mi siguiente interrogación
00:31:50
y acabe el programa
00:31:52
2 por i
00:31:53
Más 1
00:31:56
Y ya está
00:31:57
Sacarla
00:31:59
Algo de esto
00:32:02
Son sin líneas de código
00:32:05
Pero sí
00:32:06
Por eso decía que a partir de ahí
00:32:07
Algunos son más fáciles, más difíciles
00:32:10
Entonces
00:32:12
Esto no va a caer
00:32:12
Pues sí
00:32:16
Pero este mismo ya lo tenéis hecho
00:32:17
No, ejercicios tan difíciles
00:32:20
o tal, no
00:32:23
no te preocupes, va a caer esto
00:32:24
pero con stream y con chat
00:32:29
y con tablas
00:32:30
vale, a ver
00:32:31
la cosa es que bueno, a ver, es la primera vez
00:32:35
que os enfrentáis a este tipo de ejercicios
00:32:37
pero la primera vez
00:32:39
es la que os tiene que
00:32:41
servir para hacer un poquito
00:32:43
ya la conexión neuronal y decir, vale
00:32:45
esta forma de funcionar ya la he
00:32:47
usado una vez
00:32:49
a ver si cuando tenga que hacer algo parecido se me enciende
00:32:50
la luz para decir
00:32:53
ya sé, ya sé
00:32:54
cómo se trabajaba
00:32:57
pues venga, hago mi conexión
00:32:58
y
00:33:00
que sí, hombre, sí
00:33:01
que hay mucha luz
00:33:05
vale, entonces en este caso ha sido
00:33:06
tenemos que hacer n líneas
00:33:08
y en este caso para cada línea
00:33:10
he visto
00:33:13
unos cuantos espacios y unos cuantos
00:33:13
asteriscos, vale, el misterio
00:33:17
ha sido, ¿cuántos espacios?
00:33:19
pues los he tenido que sacar
00:33:21
para cada línea en función de i y n
00:33:22
¿cuántos espacios? ¿cuántos asteriscos?
00:33:25
pues para cada línea, en este caso
00:33:27
con i ya me salían, no necesito la n
00:33:29
entonces si ejecutáis esto pues ya está
00:33:31
a ver, sobre todo
00:33:35
lo que cuesta entender es sacar la relación
00:33:41
matemática, la relación matemática
00:33:43
entre la fila en la que estoy
00:33:45
y la cantidad de asteriscos
00:33:47
o espacios, la relación matemática entre una y otra
00:33:49
a ver, la relación matemática entiendo
00:33:51
que es más complicado, pero lo otro
00:34:06
ya no, porque lo otro es lo que estamos trabajando todo el rato
00:34:08
que es pensar
00:34:10
modularmente, pensar por módulos
00:34:11
entonces vos te vas a tener que ir pensando
00:34:13
a ver, este programa como se plantea
00:34:16
varias veces una línea
00:34:18
ahí ya tienes el primer for
00:34:20
Ahora ya, como tú estás pensando modularmente
00:34:21
Dices, muy bien, tengo un primer for
00:34:24
Ahora, ¿qué tengo que hacer aquí debajo?
00:34:25
Vale, pues lo que tengo que hacer aquí debajo
00:34:28
Es imprimir una línea, ¿cómo lo hago?
00:34:30
Anda, pues para hacerlo, tengo que hacer
00:34:31
Varios espacios
00:34:34
Un for, y varios asteriscos
00:34:35
Otro for
00:34:37
Vale, entonces tenéis que tener ese pensamiento
00:34:38
Modular
00:34:42
Claro
00:34:42
De aquí lo complicás la relación
00:34:45
Sacar la relación matemática
00:34:48
entre espacios y asteriscos, pero eso ya es una cosa
00:34:50
más al margen de la programación
00:34:52
¿vale?
00:34:53
claro, sacar la relación entre
00:34:57
el número en función
00:34:59
de n y de i
00:35:02
que en este caso ha dependido de n
00:35:03
los espacios
00:35:06
y los asteriscos solo de i
00:35:07
bueno, pues
00:35:09
en el primer caso son n-1
00:35:12
siempre
00:35:14
si tienes 4 filas son 3 espacios
00:35:14
n-1 siempre
00:35:18
por eso la fórmula es
00:35:19
n menos 1 menos i
00:35:21
para que cuando dice igual a 0 te dene menos 1
00:35:23
y cuando dice igual a 1 te dene menos 2
00:35:25
y cuando dice igual a 2 te dene menos 3
00:35:28
que es la relación que hemos visto que seguimos
00:35:30
¿vale?
00:35:32
¿sí me alía?
00:35:33
¿cómo la mitad?
00:35:37
vale, hombre pues tiene que salir
00:35:44
Si lo tienes exactamente igual, no puede ser.
00:35:46
Vamos a ver.
00:35:52
Vale.
00:36:09
Esto vamos a decirle que introduzca el N mayúscula.
00:36:10
Y ahora
00:36:15
Un momento, no mováis
00:36:18
Vamos a comprobar que lo hace bien
00:36:21
Falta una cosa más por deciros
00:36:23
Relax, vale
00:36:26
Sí, pero espero
00:36:28
Quiero que os relajéis
00:36:29
Y ahora, este for tiene tres partes
00:36:31
Primero
00:36:38
Desde j igual a 0
00:36:40
Mientras j sea menor que n
00:36:43
Menos 1 menos i
00:36:47
E incrementando J
00:36:48
En ese caso haces
00:36:51
El espacio
00:36:53
A ver si es que, David
00:36:58
En lugar del espacio has puesto una cadena vacía
00:37:01
Pues será
00:37:04
Y aquí haces esto mismo
00:37:09
Pero 2 por I
00:37:12
Por I más 1
00:37:14
Y aquí pones asterisco
00:37:18
esto así no es
00:37:20
esto así no es
00:37:24
y esto
00:37:25
ahora ya sí
00:37:28
vale, lo ejecutamos
00:37:29
8
00:37:33
vale, ya está
00:37:40
vale
00:37:41
sería eso, que no has puesto
00:37:43
espacio
00:37:46
sino que has puesto cadena vacía
00:37:48
Bueno, pero obviamente sí que funciona
00:37:49
Lo acabo de probar yo y sí funciona
00:37:55
- 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:
- 24 de octubre de 2024 - 17:23
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 38′
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 946.79 MBytes