Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 20-10-23 - 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:
Vale, pues estábamos todavía con el tema de programación estructurada.
00:00:00
La programación estructurada que es la base de la programación orientada.
00:00:24
Entonces, la programación estructurada combinaba en secuencia,
00:00:31
en secuencia, una tras otra, una tras otra, cuando una se acaba empieza la siguiente,
00:00:37
cuando una se acaba empieza la siguiente, sentencias, ¿verdad?
00:00:41
Y de esas sentencias las que hemos visto son las de asignación de valores a variables,
00:00:45
variables previamente declaradas, ¿no?
00:00:52
Entonces, variables previamente declaradas, asignarles valor.
00:00:55
Me da igual que sea como resultado una expresión o leídas del teclado,
00:00:59
con el objeto escáner, me da igual, en ambos casos son asignaciones, ¿no?
00:01:05
Asignación siempre, nombre de variable a la izquierda,
00:01:10
nombre de variable a la izquierda, valor que asignamos a la derecha,
00:01:16
esa es la asignación, ¿verdad?
00:01:23
Aquí una expresión cualquiera, un valor o leído del teclado, me da igual,
00:01:26
esta expresión a su vez puede involucrar otras variables,
00:01:31
bueno, todo eso es lo que tenemos que tener ya más o menos en la cabeza dominada.
00:01:34
Vale, aparte de las sentencias de asignación, ¿qué más sentencias conocemos?
00:01:38
Las de decisión, las sentencias de decisión, un IF normal y corriente,
00:01:42
o un IF con un ELSE, o un IF con varios ELSE-IF,
00:01:48
si es que uno quiere, porque se adapta a su situación,
00:01:57
en lugar de simplemente esta situación que si algo se cumple bien y si no hago esto,
00:02:03
y acabo la sentencia, pues si nuestra situación es, si algo se cumple bien y si no,
00:02:09
miro a ver si se cumple esta otra cosa, y si no, miro a ver si se cumple esta otra cosa,
00:02:14
si nuestra situación es esta, ¿vale?, varias ramas excluyentes,
00:02:19
pues podemos poner esta, y si nuestra situación es,
00:02:23
en función del valor de una variable hacer una cosa u otra,
00:02:27
pues elegíamos esta de aquí, ¿verdad?
00:02:31
Bueno, pues estas son las sentencias de decisión que ya conocemos,
00:02:37
sabemos usar y sabemos sobre todo identificar en qué situaciones me interesan a mí seleccionar.
00:02:44
Estos son sentencias, lo que pasa es que son sentencias complejas,
00:02:52
no como la de asignación, que es una sentencia que escribimos en una línea,
00:02:56
esta no la escribimos en una línea, esta sentencia es una sentencia compleja,
00:02:59
aunque es una única sentencia, la sentencia es esta,
00:03:03
es una sentencia compleja que a su vez puede tener aquí un montón de ellas dentro,
00:03:06
y aquí un montón de ellas dentro, y aquí un montón de ellas dentro a su vez,
00:03:11
que a su vez esas pueden ser otros if, eso ya uno va poniendo ahí los ladrillos
00:03:15
y las combinaciones que resuelvan lo que dan, ¿vale?
00:03:20
Bueno, pues solo nos falta un tipo de sentencia de la aprobación estructurada,
00:03:23
solo nos falta un tipo de sentencia, porque lo que decía el teorema de la aprobación estructurada
00:03:27
es que cualquier tarea que le queramos encomendar a un ordenador,
00:03:31
se puede hacer combinando en secuencia decisiones y bucles,
00:03:35
más la asignación de valores a datos, o sea, no lo dice ese teorema,
00:03:39
pero bueno, es evidente que habrá que asignar valores a datos.
00:03:43
Bueno, pues decisiones, sentencias, ya la tenemos,
00:03:46
pues solo nos falta entonces el otro tipo de sentencias,
00:03:49
que son las que se llaman las sentencias repetitivas,
00:03:52
o, en resumen, los bucles de toda la vida, ¿vale?
00:04:03
Los bucles de toda la vida.
00:04:08
Es el único tipo de sentencia en realidad que nos falta de la aprobación estructurada,
00:04:10
y con eso se puede hacer cualquier cosa,
00:04:14
claro, porque lo difícil no es conocer las sentencias y la sintaxis
00:04:17
y las diferentes variantes que hay de una versión de Java a otra,
00:04:20
eso no es lo difícil, eso sí que está en los papeles escritos,
00:04:23
lo difícil es entender un enunciado y a partir de ahí componer estas sentencias,
00:04:27
componerlas para que resuelvan lo que hemos pedido, ¿vale?
00:04:34
Lo difícil es eso, conocer la sintaxis de un lenguaje con sus detalles.
00:04:37
Bueno, pues vamos a terminar de conocer esos ladrillos
00:04:43
que podemos necesitar para construir ese programa.
00:04:47
Pues venga, vamos con los bucles entonces.
00:04:50
¿Vale?
00:05:04
Vale, pues las sentencias de decisión visualizamos ya en un diagrama de flujo,
00:05:17
ya lo visualizamos para entenderla, ¿qué es esto?
00:05:21
El programa viene por aquí y de repente tiene dos posibilidades,
00:05:24
o hacer una cosa o hacer otra.
00:05:30
Esas dos posibilidades irán en función de una condición, ¿vale?
00:05:32
Entonces si se cumple hago esto y si no hago esto.
00:05:39
Esta era nuestra sentencia de decisión visualizada en un diagrama de flujo,
00:05:42
¿vale?
00:05:49
Era esta, esta era nuestra sentencia de decisión, ¿vale?
00:05:50
Que la rama del no, no queremos que se haga nada,
00:05:58
entonces significa que esto se programa como ELSI.
00:06:01
Que la rama del no a su vez queremos abrir otra posibilidad,
00:06:03
pues eso sería el ELSI, el IF, el SEIF, ¿vale?
00:06:07
Pero al fin y al cabo todas las sentencias que hemos visto responden a esta estructura.
00:06:10
Otra cosa es que luego yo aquí abro la rama del no, la vuelvo a abrir,
00:06:15
entonces será un ELSI, pero responde a esto.
00:06:18
Pero en cualquier caso aquí no hay nada que se repita.
00:06:21
Si se cumple yo hago esto y si no se cumple hago esto.
00:06:24
Y ya está, pero lo hago una sola vez.
00:06:29
Y una vez que ya lo he hecho voy al punto de cierre,
00:06:32
ya se termina la sentencia IF-ELSI o IF-ELSI-IF,
00:06:37
si es que aquí tiene varios anidados, se termina y el programa continúa.
00:06:40
No hay nada que se repita, ¿vale?
00:06:44
Pero hay una situación que se puede dar a menudo
00:06:47
y es que necesitamos que un conjunto de sentencias se repitan varias veces.
00:06:49
A veces que es imprescindible que un conjunto de sentencias se repitan varias veces.
00:06:54
¿Vale? Es una situación, por ejemplo, cuando estamos haciendo un programa
00:06:59
que hemos hecho ahora varias veces, que leer un número entero
00:07:03
comprendido entre cero y mil, luego después con él hacer no sé cuántos.
00:07:07
Hasta ahora cuando hemos planteado un enunciado así, pues decíamos,
00:07:12
asumimos que el que va a usar la aplicación va a respetar las normas
00:07:17
y va a meter un número entre cero y mil, lo asumimos.
00:07:22
Pero imaginaos que ahora ya refinamos un poquito más el programa
00:07:26
y decimos, no, yo no voy a contar de partida con que el usuario
00:07:29
va a meter un número de cero a mil.
00:07:33
Entonces, yo le voy a pedir un número.
00:07:36
Si no está entre cero y mil, se lo voy a volver a pedir otra vez.
00:07:38
Si no está entre cero y mil, se lo voy a volver a pedir otra vez.
00:07:42
Entonces, si queremos que el programa sea un poquito más robusto
00:07:46
y que se esté ahí pidiendo números todo el rato hasta que se meta un número válido,
00:07:49
eso no lo podemos hacer con lo que conocemos, no lo podemos hacer,
00:07:55
porque eso implica automáticamente que la sentencia de pedir número
00:07:58
se haga un montón de veces.
00:08:02
¿Cuántas? No lo sabemos.
00:08:04
Depende de lo que tarde el tío en meter el número correcto.
00:08:06
Entonces, un ejemplo.
00:08:09
Es un ejemplo que estoy poniendo de situación que si uno quiere programarla
00:08:11
va a necesitar un bucle, porque necesita aquí un conjunto de sentencias
00:08:15
que en este caso pedir número y leerlas se repitan muchas veces.
00:08:19
Y como es ejemplo puede haber un montón de situaciones.
00:08:24
Pues ver si un número, ver los divisores que tiene.
00:08:27
Así muy en general.
00:08:33
Entonces, un número n.
00:08:35
¿Qué tendríamos que hacer?
00:08:37
Ir a n-1 y ver si lo divide.
00:08:39
Ir a n-2 y ver si lo divide.
00:08:41
Es decir, tendríamos que hacer un montón de veces,
00:08:43
ver si un número divide al n.
00:08:46
Un montón de veces.
00:08:48
¿Cuántas? No sé.
00:08:49
Depende del número n.
00:08:51
Si es 5, pues tengo que comprobar entre 4 y 2.
00:08:52
Si es 7, pues entre 6 y 2.
00:08:54
Depende.
00:08:56
Entonces, lo que estoy poniendo es ejemplos
00:08:57
de situaciones que cuando uno ya las analiza y las estudia
00:08:59
llega a la conclusión de que va a tener que hacer algo
00:09:02
un montón de veces.
00:09:05
A priori, no sabemos cuántas.
00:09:06
Depende de los datos de entrada.
00:09:08
En el ejemplo que he dicho antes,
00:09:11
cuando nosotros identificamos que nuestro programa va a tener que hacer
00:09:13
varias veces leer un número,
00:09:16
a priori no sabemos cuántas.
00:09:18
Si en una ejecución el usuario ha metido el número ya bien
00:09:20
la primera vez, se va a ejecutar solo uno.
00:09:23
Esa sentencia.
00:09:26
Pero en la siguiente ejecución,
00:09:27
si el usuario no mete el número correcto
00:09:29
entre 0 y 1.000 hasta la vez número 30,
00:09:31
pues eso se va a hacer 30 veces.
00:09:33
¿Vale?
00:09:35
Entonces, a priori no sabemos cuántas veces
00:09:36
se va a ejecutar un conjunto de sentencias
00:09:38
que nos hemos dado cuenta que se van a repetir.
00:09:40
No sabemos.
00:09:43
Depende de los datos de entrada.
00:09:44
Bueno, pues cuando identificamos que esa situación se da,
00:09:47
automáticamente identificamos que vamos a necesitar un bucle.
00:09:49
¿Vale?
00:09:52
Cuando identificamos que un conjunto de sentencias
00:09:53
se va a arrepentir unas cuantas veces,
00:09:55
que la pregunta inmediata sería
00:09:58
¿Cuántas?
00:10:00
Depende de los datos de entrada,
00:10:02
o sea, depende de la situación de la ejecución.
00:10:04
En alguna ejecución a lo mejor se repite más,
00:10:07
en otra a lo mejor se repite menos.
00:10:09
Depende. ¿Cuántas?
00:10:10
Pues esa situación se programa con un bucle,
00:10:11
con una sentencia repetitiva.
00:10:14
¿Vale?
00:10:16
Pues, en diagrama de flujo,
00:10:17
un bucle tiene este aspecto.
00:10:20
Aquí se evalúa una condición.
00:10:25
Que la condición se cumple,
00:10:28
hago todo lo que tenga que hacer,
00:10:31
una o mil sentencias,
00:10:34
las que yo crea que se quieren repetir.
00:10:35
¿Vale?
00:10:38
Y luego, bueno,
00:10:39
me he quedado sin,
00:10:41
voy a poner la rama del sí por abajo,
00:10:42
porque si no,
00:10:44
se me va a pegar con lo otro.
00:10:45
¿Que sí se cumple la condición?
00:10:48
Que sí se cumple.
00:10:50
Pues hago aquí todo lo que tenga que hacer,
00:10:51
conjunto de sentencias que se repiten.
00:10:53
Y ahora ya,
00:10:55
vuelvo arriba otra vez.
00:10:58
Y vuelvo a evaluar condición.
00:11:00
¿Se sigue cumpliendo?
00:11:02
Sí.
00:11:04
Pues hago lo que tenga que hacer.
00:11:05
Y el programa vuelve arriba otra vez,
00:11:07
vuelve a evaluar condición.
00:11:09
¿Se sigue cumpliendo?
00:11:11
Sí, hago lo que tenga que hacer.
00:11:12
Entonces, esto se parece a esto,
00:11:14
pero no es igual,
00:11:16
porque aquí en la rama del sí,
00:11:17
una vez que ejecuta lo que tenga que hacer,
00:11:18
se acabó, he terminado.
00:11:20
Y me voy.
00:11:21
Entonces, a veces confundís
00:11:22
esto con esto a la hora de programarlo
00:11:25
y no representan la misma situación.
00:11:28
Esta situación.
00:11:30
Evalúo condición.
00:11:31
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 5
- Fecha:
- 20 de octubre de 2023 - 14:23
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Duración:
- 11′ 39″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 222.21 MBytes