20261005 SentenciaIf_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:
Bueno, pues estamos aquí, ¿verdad? Estos son los ejercicios que dejamos la última media horita del viernes pasado para que practicarais, ¿vale?
00:00:04
Espero que lo hayáis hecho y si tenéis algún problema o cosa, pues me lo decís.
00:00:19
Y qué más cosas hay aquí puestas.
00:00:25
esto
00:00:27
lo vamos a dejar un poquito
00:00:29
por ahora
00:00:33
son simplemente como
00:00:34
nosotros tenemos que usar el tipo string
00:00:36
desde ya, porque nuestras aplicaciones
00:00:39
necesitan usar cadenas de texto
00:00:41
una aplicación
00:00:43
que no use cadenas de texto
00:00:45
es muy raro
00:00:47
pues aparte de
00:00:48
saber declarar
00:00:51
la variable
00:00:52
que va a contener esa cadena de texto
00:00:55
que ya sabemos como declararla
00:00:57
pues con este tipo de dato que es especial
00:00:58
porque es objeto
00:01:02
aunque todavía no lo entendamos
00:01:03
ni sabemos por qué es especial
00:01:05
aparte de saber declararla
00:01:06
y de saber asignarle cosas
00:01:08
que ya sabemos cómo se le asigna algo
00:01:10
a una variable string, pues como a cualquier otra variable
00:01:13
asignándole algo compatible
00:01:15
que sea una cadena de texto
00:01:17
literal entre comillas dobles
00:01:19
o otra variable string
00:01:21
o la concatenación de dos cosas
00:01:23
¿verdad?
00:01:26
la concatenación de dos cosas, también es un string, esto concatenado con lo que hay en esta variable,
00:01:28
pues eso es lo único que sabemos hacer ahora mismo con string.
00:01:39
Entonces, el hecho de que las variables string sean de ese tipo especial, que lo decimos ahora sin entender lo que es,
00:01:43
que es de tipo objeto, les da unas posibilidades que no tienen las variables normales,
00:01:52
las variables primitivas, como los números entre los i decimales, los char y los boole.
00:02:02
¿Vale? Esas son las variables de tipo primitivo.
00:02:10
Bueno, pues esta, al ser variable objeto, ese nombre que no sabemos qué significa,
00:02:13
tiene unas posibilidades
00:02:18
que no tienen estas variables primitivas
00:02:21
entonces las recojo aquí un poquito
00:02:24
pero para no aburrirnos ahora mirando esto
00:02:26
como no vamos a poder entenderlo en realidad
00:02:30
es solo recoger lo básico para poder usarlo
00:02:33
vamos a empezar con la sentencia de decisión
00:02:35
y según vayamos viendo ejercicios
00:02:40
en los cuales usemos cadenas de texto
00:02:44
es decir, usemos string
00:02:47
según vayamos viendo esos ejercicios
00:02:50
pues iremos viendo
00:02:52
estas
00:02:53
posibilidades, funcionalidades
00:02:54
que tienen las cadenas de texto
00:02:57
¿vale?
00:03:00
que nos van a, para poder hacer unas cosas
00:03:01
mínimas con ellas, para poder hacer unas cosas
00:03:03
mínimas, aparte de lo que ya sabemos
00:03:05
que es concatenar
00:03:07
¿vale?
00:03:08
bueno, pues entonces vamos ahora con esto de aquí
00:03:11
la sentencia de decisión
00:03:13
¿vale?
00:03:15
Ahí lo tenéis todo recogido en ese fichero.
00:03:17
Bueno, pues vamos allá.
00:03:29
Vale, entonces hasta ahora nuestros programas eran exclusivamente una sucesión de sentencias, por supuesto, una tras otra, porque eso es un programa, una sucesión de sentencias.
00:03:33
Pero esas sentencias hacían un conjunto muy reducido de cosas, porque era lo único que sabíamos hacer, ¿verdad?
00:03:52
Esas sentencias podían declarar variables, eso sabemos hacerlo, declarar una variable para que esa variable ya me contenga un dato y yo pueda ya operar con él, hacer asignaciones y ya sabemos lo que es hacer una asignación.
00:03:59
A una variable le asigno un valor. Y bueno, la complejidad de esta primera parte era, ¿qué puedo poner yo aquí? Pues desde el valor directamente hasta una expresión que combine operadores, cuyo resultado sea un valor compatible, pero al fin y al cabo no dejará de ser una asignación, que es lo que hemos estado practicando todo este tiempo.
00:04:28
construir expresiones
00:04:53
válidas, cuyo único
00:04:56
resultado, cuya única finalidad
00:04:58
es asignarse
00:05:00
a una variable de un tipo compatible
00:05:02
ya está, entonces con esas
00:05:04
operaciones, construíamos
00:05:06
expresiones que se asignaban a la variable
00:05:08
y luego también
00:05:10
hemos sabido mostrar por pantalla
00:05:12
esos valores
00:05:14
mostrarlos por pantalla
00:05:17
con un system out
00:05:19
println los hemos mostrado por pantalla
00:05:20
vale
00:05:23
y dentro de las asignaciones
00:05:24
también hemos sabido
00:05:27
hacer una asignación
00:05:29
de un valor que venía
00:05:31
del teclado, eso también lo hemos sabido
00:05:33
hacer
00:05:35
las asignaciones que es lo que nos ha
00:05:35
llevado pues más tiempo
00:05:41
las hemos hecho
00:05:43
valor tal cual
00:05:45
construyendo una expresión
00:05:46
la variante condicionada
00:05:48
que es o asigno esto
00:05:50
o asigno esta otra cosa
00:05:52
en función de la expresión
00:05:54
o asigno un valor
00:05:56
leído del teclado
00:05:58
¿vale? pues una secuencia
00:05:59
de sentencias
00:06:02
de estos tipos
00:06:04
de aquí han construido nuestros programas
00:06:06
hasta ahora ¿vale? hemos
00:06:08
visto algo más, hemos hecho algo más que eso
00:06:10
bueno
00:06:12
lógicamente
00:06:16
solamente con estas sentencias
00:06:18
no podemos realizar
00:06:20
todo, cualquier función
00:06:23
que queramos hacer, no podemos
00:06:25
nos quedamos muy cortos
00:06:26
no podemos solamente construyendo expresiones
00:06:28
elaborar
00:06:31
la solución para cualquier problema
00:06:33
que nos planteen, es imposible
00:06:35
se queda muy corto
00:06:37
todo esto, tenemos que tener más posibilidades
00:06:38
para hacer cosas
00:06:41
¿no? por ejemplo
00:06:42
si a mí me dicen
00:06:45
programa que
00:06:47
solicite
00:06:48
nombres
00:06:51
de usuario
00:06:54
y te diga
00:06:55
cuáles de ellos están en castellano
00:06:58
por ejemplo, y cuáles están
00:07:00
en otro idioma, bueno, más que nombres, palabras
00:07:02
los nombres son más
00:07:04
asépticos en el idioma
00:07:06
entonces
00:07:07
y además nos dicen, ese programa
00:07:09
finalizará
00:07:12
cuando el usuario introduzca como
00:07:13
nombre, fin
00:07:16
¿vale? eso podría ser un programa
00:07:17
perfectamente que nosotros podríamos querer
00:07:20
programar, ¿programa qué?
00:07:22
dame una
00:07:25
dame una palabra
00:07:26
castellano
00:07:28
dame una palabra
00:07:29
inglés, luego habría que ver cómo
00:07:31
averiguamos si es castellano o inglés, pero esa parte
00:07:34
ya me importa menos, dame una palabra
00:07:36
francés, ¿vale? te va dando
00:07:38
respuestas a palabras que tú
00:07:42
vas introduciendo, dame una palabra
00:07:44
Eh, fin
00:07:45
Ah, pues aquí termino
00:07:48
¿Vale? Podría ser una propuesta de programa
00:07:49
Que nos hace
00:07:52
Entonces
00:07:53
¿Con qué problema nos encontramos aquí a la hora
00:07:55
De elaborar esto?
00:07:58
Pues que como lo hacemos, podríamos decir
00:08:02
Vale, pues yo le hago un siso
00:08:04
Dame palabra
00:08:05
Leo la palabra
00:08:10
con el
00:08:15
next como sea
00:08:21
ahora incorporaremos como leer un
00:08:23
porque solamente sabemos leer números hasta ahora
00:08:25
números y boolean, leo la palabra
00:08:27
aquí hago lo que tenga que hacer
00:08:28
para
00:08:31
que esa parte, estas sentencias
00:08:33
son las que me importan ahora
00:08:35
y aquí ya pongo el resultado
00:08:37
vale, lo que sea
00:08:39
pero esto yo lo
00:08:41
tengo que hacer de forma indefinida
00:08:44
pues con lo que sabemos hacer ahora
00:08:46
todo esto
00:08:48
lo pondría aquí otra vez
00:08:49
muy bien
00:08:52
todo esto lo pondría aquí otra vez
00:08:53
entonces si el programa me estaría
00:08:56
dame palabra, la lee, me da el resultado
00:08:57
dame palabra, la lee, me da el resultado
00:09:00
pero claro, me veo yo de repente
00:09:03
diciendo, pero vamos a ver
00:09:04
¿cuántas veces escribo esto?
00:09:06
¿cuántas veces lo escribo? no sé
00:09:08
porque yo no sé cuántas
00:09:10
veces voy a tener que hacer
00:09:12
esto, porque el usuario
00:09:14
me ha dicho, el que me ha pedido el programa
00:09:16
me ha dicho, oye, el programa
00:09:19
tiene que dejar de hacerte
00:09:21
esto, de pedirte esto, cuando
00:09:23
tú tecles la palabra
00:09:24
fin, entonces ahí termina
00:09:27
vale, muy bien
00:09:29
pero tú cuando estás programando esto
00:09:30
tú no sabes cuándo va a llegar
00:09:32
esa palabra fin, entonces tú
00:09:35
como programador que estás haciendo el código
00:09:36
¿cuántas veces escribes esto?
00:09:38
no sabes, no tienes
00:09:41
ni idea, lo escribes siete veces
00:09:43
Pues entonces tu programa va a pedir siete palabras, independientemente de cuándo haya escrito el usuario fin.
00:09:45
¿Lo escribes cien veces?
00:09:50
Pues entonces el programa te va a pedir cien palabras, independientemente de cuándo hayas escrito tu fin.
00:09:53
Luego, con las herramientas que tenemos ahora, este programa sencillo que nos han planteado, no podemos resolverlo.
00:10:00
Porque nos vemos en la duda de, ¿y cuántas veces repito yo esto?
00:10:08
Claro, porque necesitamos un tipo de sentencia adicional
00:10:12
Que no hemos visto
00:10:16
Claro, necesitaríamos
00:10:19
Ah, vale, es que yo necesito una sentencia que me permita repetir algo
00:10:21
Mientras no se cumpla una condición de finalización
00:10:26
Es lo que necesito
00:10:32
Una sentencia de Java que me diga
00:10:33
Repite esto mientras no ocurra lo siguiente
00:10:36
Nosotros no sabemos programar eso
00:10:40
Nos conocemos esa sentencia
00:10:43
La sentencia nos falta
00:10:45
La sentencia que le dice a Java
00:10:46
Repite esto
00:10:48
En nuestro caso sería esto de aquí
00:10:49
Repite esto
00:10:51
Una vez y otra vez y otra vez
00:10:54
Mientras se dé una condición
00:10:55
La que sea en este caso sería
00:11:00
Mientras la palabra introducida
00:11:03
Sea diferente de fin
00:11:05
Mientras la palabra
00:11:06
Sea diferente de fin
00:11:09
Vale, pues deberíamos ser capaces de programar esto
00:11:10
Un código que se repite un montón de veces
00:11:16
No tengo yo que escribir una tras otra
00:11:20
Porque es que yo no sé cuántas veces se va a repetir
00:11:22
Depende de cuándo introduzca el usuario 100
00:11:24
Pues tendría que ser yo capaz de escribir una sentencia
00:11:27
Que le explique a Java
00:11:30
Repite esto mientras esta condición sea cierta
00:11:32
Repítelo
00:11:37
Vale, eso sería pues un bucle, ¿verdad? Eso es lo que se llamaría un bucle. Bueno, pues esa es una sentencia que nos falta para poder hacer cosas. Y también nos falta otra sentencia más.
00:11:38
Por ejemplo, una situación en la que nos dicen, a ver, hazme un programa, por favor, que te solicite un número y si el número es primo te haga no sé qué cosa y si no es primo te haga otra cosa diferente.
00:11:56
entonces, con lo que hemos visto hasta ahora
00:12:24
no sabemos programar eso
00:12:28
nosotros sabemos en función de una condición
00:12:30
asignar un valor
00:12:33
a una variable
00:12:35
asignar un valor o asignar otro
00:12:36
en función de una condición, eso si sabemos, ¿verdad?
00:12:38
nosotros sabemos
00:12:41
a una variable en función
00:12:42
de una condición
00:12:45
asignarle o el valor
00:12:46
este o el valor este
00:12:49
pero no sabemos
00:12:50
en función de una condición
00:12:52
hacer toda una ristra de cosas
00:12:54
o hacer otra, eso no lo sabemos
00:12:56
¿vale? y necesitaríamos
00:12:59
saberlo hacer para hacer un programa
00:13:01
como el que me han dicho
00:13:03
oye, introduce un número
00:13:04
si es primo, por favor, opera
00:13:06
con él para hacer no sé qué
00:13:09
si no es primo, hace estas otras cosas
00:13:10
con lo que conocemos
00:13:13
no sabemos hacer ese programa
00:13:15
claro, porque necesitamos
00:13:16
una sentencia en Java que nos permita expresar
00:13:18
esa idea, la idea de que
00:13:21
en función de una condición, mi programa hace toda una serie de cosas
00:13:23
o si no hace una serie de cosas diferentes.
00:13:26
Esa sería la sentencia de decisión o selectiva.
00:13:31
Luego, nos faltan sintaxis de sentencias de Java
00:13:37
para poder hacer cualquier cosa que se nos pida en un enunciado, en una aplicación.
00:13:41
Pero la buena noticia es que existe una cosa que es de la estructura o del programa estructurado
00:13:49
¿Y qué dice esto?
00:14:11
Pues esto, los teóricos de la programación allá en su momento averiguaron que cualquier problema, cualquiera, cualquiera, cualquiera
00:14:18
que una CPU
00:14:27
pueda resolver, una CPU tradicional
00:14:29
como las que están en todos los ordenadores
00:14:32
que tenéis, tablets, móviles, etc.
00:14:33
Cualquier problema que una CPU
00:14:36
pueda resolver mediante
00:14:37
sentencias de código que llegan
00:14:39
hace sus operaciones y las envía a los buses
00:14:43
cualquiera, se puede
00:14:45
elaborar simplemente
00:14:48
combinando en secuencia
00:14:49
estas estructuras que hemos
00:14:52
visto, la asignación por supuesto, esa se asume, la entrada de datos lógicamente, pues
00:14:56
combinando exclusivamente bucles como los que he planteado antes por encima sin explicar
00:15:01
y decisiones, pues combinando exclusivamente sentencias de bucle y sentencias de decisión
00:15:08
en secuencia, se puede hacer cualquier, se puede elaborar cualquier programa, no hace
00:15:16
falta nada más, no hace falta ninguna otra
00:15:25
estructura de programación
00:15:27
nada más
00:15:28
bueno, pues los
00:15:30
programas que usan exclusivamente
00:15:33
esas cosas
00:15:34
que son, por supuesto, lectura de datos
00:15:35
y asignaciones, es inevitable, si no tengo datos
00:15:38
de partida, pues no puedo hacer nada, eso lo damos por sentado
00:15:40
que cualquier lenguaje de programación
00:15:43
permite incorporar
00:15:45
datos a sus variables
00:15:47
mediante asignaciones
00:15:48
pues los programas que usan
00:15:50
exclusivamente en secuencias
00:15:53
sentencias de ese tipo bucles y decisiones bucles y decisiones bucles y
00:15:54
decisiones más repito la asignación de datos son programas estructurados
00:15:59
y los lenguajes de formación estructurados son los que usan estas
00:16:06
sentencias y punto pelota y ninguna otra y para contar y cuáles son
00:16:17
absolutamente todos los que conocemos todos los que conocemos
00:16:22
¿Vale? Java incluido, son lenguajes de programación estructurados, porque solamente necesitan usar estas sentencias, bucles y decisiones, nada más.
00:16:27
Claro, la complicación viene de que hay que decidir correctamente cuáles, en qué orden hay que usarlas para que el programa haga lo que tiene que hacer, lógicamente, para que el programa haga lo que tiene que hacer.
00:16:37
Esa es la parte complicada.
00:16:51
bueno, pues
00:16:53
todo lo que hay más allá de esto
00:16:56
ahora ya es
00:16:59
cómo organizo mi código
00:17:02
entonces, la programación entrada a objetos
00:17:04
es única y exclusivamente
00:17:06
programación estructurada
00:17:09
a la que se le da
00:17:11
una manera de organizar
00:17:13
el código que permite
00:17:15
la reutilización, sobre todo
00:17:16
la mejora en mantenimiento
00:17:19
el poder trabajar
00:17:23
diferentes personas en diferentes
00:17:24
partes del programa, o sea la operación
00:17:27
orientada a objetos, lo que incorpora
00:17:28
es una manera de
00:17:31
organizar los problemas estructurados
00:17:33
ya está, no incorpora nada más
00:17:35
una manera de organizarlos
00:17:36
entonces, ¿Java es un lenguaje orientado a objetos?
00:17:38
por supuesto, pues como Python
00:17:41
como prácticamente todos
00:17:43
¿significa eso que no sean estructurados?
00:17:44
no tiene nada que ver, todos son
00:17:46
estructurados porque todos usan
00:17:48
esto en secuencia.
00:17:50
Si además son orientados a objetos,
00:17:53
la orientación a objetos lo que
00:17:55
hace es
00:17:57
ofrecer una forma de organizarlo.
00:17:57
Ya está. Nada más.
00:18:01
¿Vale? No son conceptos
00:18:03
separados. Lenguajes
00:18:04
estructurados, lenguajes orientados a objetos.
00:18:06
No. Se refieren
00:18:09
a cosas independientes. Por debajo
00:18:10
está el lenguaje estructurado
00:18:13
y luego cómo organizas tú ese código.
00:18:14
pues la programación orientada a objetos
00:18:16
te da una forma eficiente
00:18:20
de organizarlo
00:18:21
¿por qué es necesaria?
00:18:22
porque si usáramos solamente
00:18:25
los lenguajes
00:18:27
en su forma estructurada
00:18:29
o sea la secuencia de bucles, decisiones
00:18:31
todo estaría muy bien, podríamos hacer lo que quisiéramos
00:18:34
pero un programa
00:18:36
para hacer pues
00:18:37
una aplicación cualquiera
00:18:39
pues podría tener a lo mejor
00:18:40
5.300, 400 líneas
00:18:42
¿vale? está muy bien
00:18:45
funciona perfectamente, pero hombre
00:18:46
5.430 líneas se hace pesado
00:18:48
si de repente quiero
00:18:50
cambiar algo en su funcionalidad
00:18:52
buscar en un chorizo
00:18:55
de 5.430 líneas
00:18:57
se hace pesado
00:18:59
¿vale?
00:19:00
si yo ese código
00:19:04
se lo tengo que dar a alguien
00:19:05
para que lo entienda, lo mantenga
00:19:07
en el futuro, lo que sea
00:19:09
si le doy un chorizo de 5.430 líneas
00:19:10
pues se le va a hacer pesado
00:19:13
entonces la programación
00:19:14
y entrada a objetos
00:19:16
permite que los programas
00:19:16
no sean chorizos
00:19:18
de 5.430 líneas
00:19:19
ya está
00:19:21
única y exclusivamente
00:19:21
y al no ser chorizos
00:19:22
de 5.430 líneas
00:19:24
porque los separa en partes
00:19:26
pues esas partes
00:19:27
se pueden atacar
00:19:29
de forma separada
00:19:31
si yo tengo que tocar algo
00:19:32
voy a la parte
00:19:33
que tengo que modificar
00:19:34
y el resto de partes
00:19:35
ni se entera
00:19:36
esa es la filosofía
00:19:37
de la programación
00:19:39
y entrada a objetos
00:19:39
¿vale?
00:19:40
que ya iremos viendo
00:19:41
Bueno, pues entonces
00:19:42
¿Qué es lo que vamos a ver nosotros ahora?
00:19:45
Pues vamos a seguir incorporando
00:19:47
Sentencias de programación estructurada
00:19:49
Y la primera de ellas
00:19:52
La de decisión
00:19:53
La siguiente, los bucles
00:19:54
Bueno, pues la sentencia de decisión
00:19:57
Es muy fácil de entender
00:20:20
Conceptualmente
00:20:24
Tiene todo el sentido del mundo
00:20:25
Pensar
00:20:28
Que un programa
00:20:28
en función de una condición
00:20:30
necesite hacer una cosa
00:20:32
o necesite hacer otra
00:20:35
es una idea muy normal
00:20:37
ahí me dan los datos
00:20:39
de un usuario
00:20:43
entonces
00:20:45
si el usuario tiene rol administrador
00:20:46
yo voy a hacer una cosa
00:20:49
que es mostrarle la pantalla de administrador
00:20:52
si tiene rol
00:20:53
usuario normal
00:20:55
cliente, pues voy a hacer otra
00:20:57
que es mostrarle la pantalla de cliente
00:20:59
o sea continuamente los programas
00:21:01
en función de una condición
00:21:03
o tiran por un camino
00:21:05
o tiran por otro
00:21:07
continuamente
00:21:08
yo entro en una aplicación
00:21:09
¿qué día es una aplicación?
00:21:12
agenda, soy tu agenda
00:21:17
¿qué día soy? yo le pongo lunes
00:21:18
pues ese programa
00:21:20
si es lunes
00:21:22
me mostrará una cosa
00:21:25
pero si le pongo martes me mostrará otra
00:21:27
pero si le pongo miércoles me mostrará otra
00:21:29
entonces es una situación lo más natural del mundo
00:21:32
que un programa en función de una condición
00:21:34
sea la que sea
00:21:36
o necesite hacer una cosa
00:21:37
o necesite hacer otra
00:21:40
eso se ve muy bien
00:21:41
en
00:21:44
diagramas de flujo
00:21:45
que los diagramas de flujo
00:21:48
son una de tantas estructuras
00:21:50
como los pseudocódigos, como todo eso
00:21:51
que nos permiten en plan borrador
00:21:54
hacer nuestros primeros bocetos
00:21:56
de diseños de programas
00:21:58
antes de pasar a escribir código
00:21:59
antes de pasar a escribir código
00:22:01
pues uno se puede hacer
00:22:04
lógicamente se debería hacer
00:22:06
una primera idea de este programa
00:22:08
como voy a combinar aquí una decisión
00:22:10
y aquí me va a tocar un bucle porque tengo que repetir
00:22:12
muchas cosas
00:22:14
se lo puede hacer uno en papel o a ripet
00:22:15
o hay
00:22:18
pequeñas
00:22:19
herramientas, estándares
00:22:23
más o menos que usamos todos
00:22:26
pues para hacer esos bocetos
00:22:28
de cómo va a ser el diseño
00:22:30
de mi programa
00:22:32
una es el diagrama de flujo
00:22:33
pues por ejemplo, en diagrama de flujo
00:22:36
¿cuál sería el diagrama de flujo
00:22:38
de una sentencia de decisión?
00:22:40
pues bueno, el programa
00:22:46
me viene por aquí
00:22:46
este es el hilo del programa
00:22:47
el programa
00:22:49
está aquí y de repente
00:22:52
me pregunto yo si se cumple una condición
00:22:54
si la condición se cumple
00:22:59
yo ahora ya haré lo que toque hacer
00:23:05
si la condición no se cumple
00:23:10
ahora haré lo que toque hacer si no se cumple
00:23:13
cuando ya he terminado de hacer
00:23:16
lo que tengo que hacer cuando la condición se cumpla
00:23:19
el programita continúa su camino tranquilamente
00:23:22
Cuando ya he terminado de hacer
00:23:25
Lo que tengo que hacer
00:23:29
Si la condición no se cumple
00:23:30
El programita continúa su camino
00:23:31
Tranquilamente hasta su final
00:23:33
Con las sentencias que haya por aquí
00:23:35
¿Vale?
00:23:37
Es decir, aquí podría haber más sentencias
00:23:38
Y aquí también podría haber más sentencias
00:23:40
¿Vale?
00:23:48
Cada cuadradito
00:23:57
En el diagrama de flujo
00:23:59
Cada cuadrado significa
00:24:01
Pues un bloquecito de sentencias
00:24:02
Este sería el inicio del programa
00:24:04
Y este sería el final
00:24:09
Este sería el diagrama de flujo
00:24:10
De un programita
00:24:14
Que usa una sentencia de decisión
00:24:15
El programa arranca
00:24:17
Aquí hará cosas
00:24:20
Cuadradito significa
00:24:22
Unas cuantas sentencias
00:24:24
Como las que hemos hecho hasta ahora
00:24:25
Ahora de repente
00:24:27
Nos damos cuenta de que
00:24:29
En función de una condición
00:24:31
O hay que hacer una cosa o hay que hacer otra
00:24:33
Es decir, no hay que hacer esto siempre
00:24:35
O esto siempre, no lo sé
00:24:37
Depende de una condición
00:24:39
Si la condición se da, hago esto
00:24:40
Y si no se da, hago esto
00:24:42
Por ejemplo
00:24:44
Una agenda que te dice lo que tienes que hacer
00:24:48
En función de si es laborable o es festivo
00:24:52
Pues la agenda arranca
00:24:55
Aquí te muestra, hola, ¿qué tal?
00:24:57
Soy la agenda, patatín, patatán
00:24:58
Te muestra no sé cuántos
00:25:00
Y ahora lo que tiene que hacer la agenda es diferente en función de si es laborable o si es testigo
00:25:01
Por lo cual le toca hacerse la pregunta, sí o sí, no hay tutía, le toca hacerse la pregunta
00:25:07
Por lo cual aquí se abre la sentencia de decisión
00:25:13
La pregunta en diagrama de flujo se pone en rombito siempre
00:25:17
Me toca hacerse la pregunta, se hace la pregunta
00:25:22
Si esto es cierto, hace lo que tenga que hacer
00:25:25
y si es falso hace lo que tenga que hacer
00:25:29
y luego continúa
00:25:33
me da igual que haya ido por aquí
00:25:35
que haya ido por aquí
00:25:37
entonces mi agenda
00:25:38
programa arranca
00:25:40
hola que tal soy la agenda patatín patatán
00:25:41
te muestra lo que sea
00:25:43
ahora se hace la pregunta
00:25:44
el programa
00:25:46
es laborable
00:25:47
se va por aquí
00:25:48
pues tienes que ir a recoger a no se quien patatín patatán
00:25:50
comprar el pan no se cuantos
00:25:52
no es laborable
00:25:54
Pues tienes que dormir hasta las 10 y regar las plantas
00:25:56
Vale
00:26:00
En ambos casos, una vez que ha hecho lo que toca
00:26:00
Tanto si se cumple como si no se cumple
00:26:05
El programa terminará
00:26:07
Como por ejemplo, adiós, me voy y voy a cerrar el programa
00:26:08
No te olvides de hacer lo que te he dicho, etc.
00:26:11
Bueno, pues este diagrama de flujo
00:26:18
Es el diseño de un programa que usa una sentencia de decisión
00:26:20
Nuestro problema ahora
00:26:25
Si hemos entendido realmente
00:26:29
Su utilidad
00:26:31
Y por qué son imprescindibles
00:26:32
Si lo hemos entendido
00:26:35
Nuestro único problema ahora es
00:26:37
Cómo lo programamos
00:26:38
Entonces, recopilando
00:26:39
Primero, tenemos que saber
00:26:47
Que esta posibilidad existe
00:26:49
Lógicamente, que un programa
00:26:51
Haga una serie de cosas
00:26:53
O haga otras en función de una condición
00:26:55
Esa posibilidad existe
00:26:57
segundo
00:26:59
tengo yo que ir cogiendo soltura
00:27:01
lógicamente en identificar
00:27:04
cuando tengo un enunciado
00:27:05
anda, aquí voy a necesitar una sentencia
00:27:07
de decisión, porque lo que me están
00:27:10
pidiendo hacer, o bien
00:27:12
se hace de esta manera, o bien se
00:27:14
hace de esta otra en función de una condición
00:27:16
luego yo tengo que identificar
00:27:18
pues voy a necesitar una sentencia
00:27:20
de decisión, porque mi programa
00:27:22
viene a hacer esto, viene a hacer lo otro en función de la condición
00:27:24
entonces yo lo identifico, porque soy el que
00:27:26
programo, lo identifico
00:27:28
Y luego ya compongo mi programa. Ah, vale, pues la voy a tener que poner aquí, primero pongo lo siguiente, luego lo compongo, hago mi primer diseño y mi boceto. Y luego ya, pues programar esto, una vez que ya sé la sintaxis de esto, pues es inmediato.
00:27:29
entonces, ¿alguien tiene alguna duda
00:27:47
sobre el sentido
00:27:51
la razón
00:27:52
de por qué hay que incorporar
00:27:53
sentencias de decisión en un lenguaje
00:27:56
estructurado
00:27:58
y a qué situaciones
00:27:59
aplica
00:28:02
nadie, ¿no?
00:28:03
¿tienen ninguna duda de por qué existen?
00:28:06
bueno, pues entonces, ¿qué es lo que nos queda?
00:28:09
ver cómo es
00:28:12
la sintaxis que nos permite
00:28:12
programar esto
00:28:15
que hay unas cuantas posibilidades
00:28:17
con matices cada una de ellas
00:28:22
y yo decido pues en cada momento
00:28:24
pues a lo mejor cuál pega más, etc.
00:28:26
Vale, pues a ver
00:28:30
vamos a ver la sintaxis
00:28:31
de la sentencia de decisión básica
00:28:33
que es esto de aquí
00:28:36
si la condición se cumple hago una cosa
00:28:37
y si no se cumple hago otra
00:28:40
Vale, pues la sintaxis sería
00:28:43
mi programita viene por aquí
00:28:52
hace lo que tenga que hacer, que sería esto
00:28:54
por ahí viene mi programita, hace lo que tiene que hacer
00:28:56
ahora llega el momento
00:28:58
de hacerse la pregunta
00:29:00
porque en función del resultado
00:29:01
de la pregunta, o hago una cosa
00:29:04
o hago otra, pues cuando llega
00:29:06
el momento de hacerse la pregunta
00:29:08
como no podía ser de otra manera
00:29:10
pues yo escribo if
00:29:12
si pasa esto, hace una cosa y si no otra
00:29:13
y aquí pongo
00:29:16
esa pregunta, que esa pregunta
00:29:18
¿Qué es? Un booleano, una condición. Aquí pongo mi condición, algo que puede ser true o false. Ahí pongo mi condición. Y ahora, lo que viene justo después, yo ahora entre llaves, aquí pongo lo que haría en el caso de que se cumpla.
00:29:20
¿vale? esto sería la rama del true
00:29:55
si se cumple la condición
00:29:58
esto es lo que se hace
00:30:02
luego después pongo el se
00:30:03
abro otro bloquecito de llaves
00:30:08
y si no se cumple
00:30:10
lo que hay que hacer en ese caso se pone aquí
00:30:14
y ya está
00:30:18
ya terminó
00:30:20
una de las posibilidades de sintaxis
00:30:22
la más estándar
00:30:24
¿vale?
00:30:26
esto es exactamente esto
00:30:27
que la condición se cumple hago esto
00:30:30
si no se cumple hago esto otro
00:30:33
y luego ya el programa sigue por debajo tranquilamente
00:30:37
ahí sigue, igual que seguía por aquí
00:30:40
me da igual haber hecho esto o haber hecho esto otro
00:30:42
una de las dos cosas habré hecho lógicamente
00:30:45
porque la condición o es true o es false
00:30:48
no hay un término medio
00:30:50
o es true o es false
00:30:52
una de las dos habré hecho
00:30:53
o he ido por aquí
00:30:54
o he ido por aquí
00:30:56
no hay otra
00:30:59
pero me da igual haber ido por aquí
00:31:02
que haber ido por aquí, llega un momento en que ya he terminado
00:31:04
lo que tengo que hacer
00:31:06
esto va aquí y esto va aquí
00:31:07
llega un momento en que ya he terminado
00:31:10
lo que tengo que hacer y sigo
00:31:12
y mi programa sigue
00:31:14
con lo que tenga que hacer después
00:31:15
que en este caso iría después de las llaves estas
00:31:17
vale, pues esta es la sentencia básica
00:31:19
Entonces, si la practicamos aquí para ir incorporando matices, vale, pues por ejemplo, venga, voy a hacer un proyecto cualquiera de pruebas, pruebas de sentencia y decisión, paquete ejemplos.
00:31:31
Vale, pues venga
00:32:57
Vamos a
00:33:33
Dos números
00:33:38
Por ejemplo
00:33:52
Si son distintos
00:33:58
Te muestra la suma
00:34:00
Y si son iguales
00:34:07
Vamos a hacer algo
00:34:13
Que implique varias sentencias
00:34:17
Para que no sea algo que no haríamos
00:34:18
Con el operador ternario básico
00:34:20
Y si son iguales
00:34:22
Te avisa
00:34:24
Te solicita
00:34:36
Te solicita
00:34:39
Otra vez
00:34:41
Los números
00:34:45
Y ahora ya sí que sí los suma
00:34:49
Aunque sean iguales
00:34:53
Porque si no tendríamos que meternos en un bucle
00:34:56
Que no sabemos hacer
00:34:57
Vale, pues venga
00:34:58
Programa te pide dos números
00:35:01
Si son diferentes te muestra la suma
00:35:03
Y si son iguales te da una segunda oportunidad, pidiéndotelos otra vez, y en ese caso ya te hace la suma, o sea, te da una segunda oportunidad, ya no más, ¿vale? Por ejemplo, entonces esto no nos lo plantearíamos hacer con un operador ternario, porque el operador ternario podríamos hacer la condición de ser iguales, pero en el caso de que sean iguales todavía no tenemos la asignación lista, tendríamos que seguir pidiendo cosas,
00:35:06
Entonces esto, como hacíamos en los videos anteriores, no podíamos
00:35:32
Vale, pues entonces
00:35:36
Vamos a declarar primero las variables que necesitamos
00:35:40
Número 1 y número 2
00:35:45
Como vamos a leer del teclado
00:35:50
Pues venga, el objeto este famoso
00:35:53
Ahora leemos los datos
00:35:57
Vale, pues venga, vamos a leer los datos
00:36:13
Número 1
00:36:16
Igual a
00:36:20
Scan.nextin
00:36:22
Bueno, vamos a poner el mensajito
00:36:27
Número 1
00:36:31
Y número 2
00:36:37
Vale, hasta aquí no hay duda
00:36:46
El programa
00:36:54
Ha solicitado dos números enteros por teclado
00:36:56
Y ahí los tiene
00:36:59
y ahora es cuando empezamos a pensar en el algoritmo
00:37:00
que es, vamos a ver
00:37:02
¿qué hago? pues es que depende
00:37:03
porque hago cosas completamente
00:37:06
diferentes en ambos casos
00:37:08
si son diferentes
00:37:10
directamente los sumo
00:37:12
y muestro la suma
00:37:14
y si son iguales me viene
00:37:15
pedirlos otra vez
00:37:17
leerlos otra vez
00:37:21
ahora y así hacer la suma
00:37:22
hago dos cosas completamente distintas
00:37:24
entonces aquí es cuando yo identifico
00:37:26
que aquí ya
00:37:28
Me tengo que ir por dos ramas separadas
00:37:29
No hay otra
00:37:32
O me voy por una rama o me voy por otra
00:37:32
Porque hago dos cosas diferentes
00:37:35
Entonces aquí es cuando identifico que tengo que poner una sentencia de decisión
00:37:36
Digo, a ver
00:37:39
En función de una condición
00:37:40
O bien hago una cosa
00:37:42
O bien hago otra
00:37:44
¿Vale?
00:37:47
Aquí lo identifico
00:37:49
Que a partir de aquí mi programa se ramifican dos
00:37:50
Porque aquí ya sí que tengo que mirar
00:37:53
Como son los números
00:37:57
Y hago dos cosas completamente distintas
00:37:59
Completamente
00:38:01
Si son iguales a si son diferentes
00:38:02
Completamente
00:38:04
Entonces a partir de aquí no me queda más remedio
00:38:05
Que poner una sentencia de decisión
00:38:07
Con su sintaxis correcta
00:38:10
En la cual en función de una condición
00:38:12
O bien hago algo
00:38:14
O bien hago
00:38:16
Otra cosa
00:38:19
¿Vale?
00:38:21
Vamos a parar aquí antes de completarla
00:38:23
Y la completamos a la vuelta
00:38:26
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 1
- Fecha:
- 5 de octubre de 2026 - 11:15
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 38′ 28″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 1.10