20251020 ProgEstr-EjerDecision_2 - 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 vamos a volver un poquito a este
00:00:00
para ver si lo podemos reducir
00:00:02
un poco, porque fijaos
00:00:05
que esto de
00:00:07
copiar y pegar al final
00:00:08
la opción del 2
00:00:12
pues lo del caso 2
00:00:14
copiarlo y pegarlo
00:00:28
en el 3 y en el 4 y en el 5
00:00:30
ya está, podríamos copiar el caso 2
00:00:32
en el 3, en el 4 y en el 5
00:00:34
cambiando el 20 por 50
00:00:36
y...
00:00:38
vale, pues funciona, pero es que
00:00:39
nos quedarían tropecientas mil líneas
00:00:42
entonces, una vez que hemos copiado y pegado
00:00:43
es cuando nos podemos dar cuenta de, pero a ver
00:00:46
si estoy haciendo todo el rato lo mismo
00:00:48
en todos los casos, en el 2, en el 3, en el 4
00:00:49
en todos estoy concatenando
00:00:52
un prefijo a un sufijo
00:00:53
que es el mismo, entonces estoy haciendo
00:00:56
eso, entonces ¿por qué los tengo que
00:00:58
distinguir todos uno por uno?
00:01:00
No puedo a lo mejor compactarlo y decir si es de 2 en adelante, prefijo este en función del caso, sufijo en función del caso y concateno y ya está.
00:01:01
No lo dejaríamos un poquito más compacto a lo mejor.
00:01:13
Vamos a ver cómo nos queda y ya está y pasamos de este ejercicio.
00:01:16
Entonces, para no borrar esto voy a hacer ejercicio 31 versión B en otro paste.
00:01:19
ejercicio 31
00:01:35
versión 2
00:01:37
vale, pues
00:01:38
venga, pues he hecho
00:01:44
Lenin, vete a tu sitio, por favor
00:01:47
he copiado el ejercicio 31
00:01:50
entero tal cual
00:01:55
y vamos a ver que podemos hacer
00:01:56
del caso 2 en adelante
00:01:58
porque el caso 0
00:02:01
y el caso 1 van por libre realmente
00:02:02
no hay patrones en ellos
00:02:04
no hay patrones
00:02:05
Entonces los podemos dejar por libre
00:02:07
Pero del caso 2 en adelante si hay un patrón
00:02:10
Que lo que cambia es el prefijo
00:02:14
Y el sufijo luego es igual
00:02:18
Entonces podríamos
00:02:22
Voy a copiar para
00:02:27
Es decir, para el caso 3
00:02:39
Y para el 4 y para el 5
00:02:42
A ver como lo podríamos
00:02:46
Vale, pues primero
00:02:51
Podemos sacarnos
00:02:58
Caso 3, 4, 5
00:02:59
A ver donde estamos
00:03:04
Aquí
00:03:05
Vale, es que con un if
00:03:12
El se
00:03:25
Va a quedar mucho mejor
00:03:25
Venga
00:03:28
vale, pues lo pulimos entero
00:03:29
para que nos quede más claro
00:03:36
lo pulimos entero
00:03:38
unidades, decenas
00:03:39
entonces, primera cosa
00:03:42
que podemos hacer
00:03:44
poner lo que sería el sufijo, las unidades
00:03:45
en texto, ¿verdad?
00:03:48
y ahora aquí podríamos hacer
00:03:51
entonces aquí tendríamos un
00:03:53
prefijo
00:03:56
¿vale? entonces
00:03:59
El sufijo está en función de las unidades
00:04:11
Y ahora en el caso de que sea 1
00:04:14
Pues el sufijo es igual a 1
00:04:21
En el caso de que sea 2
00:04:26
Ahora lo completamos
00:04:36
En el caso de que sea 2
00:04:51
Pues será 2
00:05:09
En el caso de que sea 3
00:05:10
Pues será, el sufijo será 3
00:05:13
En el caso de que sea 4
00:05:17
Pues será 4
00:05:20
En el caso de que sea 5
00:05:25
Y en el caso de que sea 9, pues 9
00:05:27
Y aquí terminamos este switch de aquí
00:05:59
Este existe, ¿no?
00:06:11
Por ahora lo quito
00:06:13
Entonces, ahí tengo ya un sufijo
00:06:14
1, 2, 3
00:06:18
Que seguramente me sea útil
00:06:19
Porque muchos de los resultados
00:06:21
empiezan por un prefijo
00:06:23
distinto, empiezan por 30io
00:06:25
40io, pero
00:06:27
acaban igual, acaban por
00:06:29
2, 1, 3, 4
00:06:31
acaban igual, entonces ese sufijo seguramente me sea
00:06:33
muy útil, pues ya lo tengo ahí construido con ese
00:06:35
switch case, y ahora ya
00:06:37
podemos distinguir los casos, lo vamos a hacer
00:06:39
con un if el save para cambiar
00:06:41
pues ahora ya sí
00:06:43
en función de este numerito que me han dado
00:06:45
si las decenas
00:06:47
decenas
00:06:53
es igual a cero, ya sabemos que
00:06:54
eso va por libre
00:06:57
hacemos lo que haya que hacer
00:06:58
que ya sabemos que es por libre, que aquí
00:07:01
habrá de nuevo only if el safe
00:07:03
o en switch case, para poner
00:07:05
cero, uno, dos, tres, porque esto irá por libre
00:07:07
esto lo podéis
00:07:09
completar
00:07:11
con el switch case correspondiente, no hay otra
00:07:12
en función de si las unidades son cero
00:07:15
bueno
00:07:17
bueno, podemos usar
00:07:18
el propio sufijo, si lo tenemos aquí
00:07:21
si las unidades son 0
00:07:23
aquí solamente
00:07:25
claro, mostrar el sufijo
00:07:26
salvo si es 0, que entonces mostrará 0
00:07:29
vale
00:07:31
en el caso, vamos a añadir el caso 0
00:07:32
aunque luego
00:07:35
no lo usamos para concatenar el otro
00:07:37
pero en el caso 0
00:07:39
pues ese
00:07:50
sufijo sería igual a
00:07:52
y break
00:07:55
vale, pues entonces ya tenemos
00:08:00
esa variable ahí que nos va a ser bastante útil
00:08:04
0, 1, 2, 3
00:08:06
ahora ya, si las decenas son 0
00:08:07
el resultado está claro, es mostrar
00:08:09
esto
00:08:12
mostrar lo que me haya dado a mí en el
00:08:12
sufijo, el numerito que me haya dado
00:08:21
depende del número, ¿vale? depende de las
00:08:23
unidades, y ahora
00:08:25
si no estamos en el caso de que
00:08:27
las decenas sean 0, sino que
00:08:32
las decenas es igual a 1
00:08:34
pues aquí sí que va
00:08:37
bastante por libre, porque
00:08:39
tengo el 10, 11, 12, 13, 14, 15, que no siguen patrones, esos los tendría que distinguir
00:08:40
con un switch case de las decenas o con un if-else-if, a elegir, con un switch case o
00:08:49
un if-else-if, y luego, si no es ninguno de esos, sí que podríamos hacer, ya concatenar
00:08:55
al sufijo, ¿vale? Entonces
00:09:05
en este caso, por ejemplo, si el numerito
00:09:09
si el número que es n
00:09:12
si el número que es n es mayor o igual
00:09:16
que el 16
00:09:24
entonces aquí el resultado lo podemos acortar
00:09:26
poniendo 10 y más
00:09:32
Sufijo, ¿verdad?
00:09:39
16, 7 o 19
00:09:41
¿Vale? Entonces si es mayor
00:09:43
Claro
00:09:45
Y luego el resto de los casos
00:09:48
El save
00:09:50
N igual a
00:09:52
15
00:09:55
Pues aquí ya, esto sí que habría que hacerlo por separado
00:09:56
Obviamente
00:09:59
System.out 15
00:10:00
Y resto
00:10:02
Para no
00:10:04
N igual a 16
00:10:05
¿Vale?
00:10:16
Y resto de casos
00:10:19
Esto sí que hay que hacerlo por libre
00:10:21
Si decenas es igual a cero
00:10:25
Lo hemos completado en este
00:10:26
Este está claro
00:10:28
Si decenas es igual a uno
00:10:29
Tenemos dos casos
00:10:31
Que sea mayor o igual que 16 el número
00:10:33
Pero tendría que poner menor que 20
00:10:35
Sí, pero es que estoy en el subcaso
00:10:38
De que decenas es igual a uno
00:10:42
Entonces no hace falta
00:10:43
Porque estoy en este subcaso
00:10:44
Si no, efectivamente tendría que completarlo así
00:10:46
Pero como estoy dentro de este el save
00:10:48
no va a ser de 20 en adelante
00:10:50
vale
00:10:53
ahora ya
00:10:55
en el resto de casos
00:10:56
si estoy de 20 en adelante
00:10:58
vale
00:11:03
pues ahora ya aquí
00:11:05
tendríamos que
00:11:07
aquí se puede plantear de muchas maneras
00:11:09
si
00:11:16
estoy de 20 en adelante
00:11:17
si las unidades son 0
00:11:20
también es un caso
00:11:22
especial porque 20, 30, 40
00:11:24
Entonces, si las unidades son 0
00:11:26
Si las unidades son igual a 0
00:11:31
Aquí podríamos distinguir
00:11:41
Sí, bueno, más que las unidades
00:11:44
Como luego vamos a tener que distinguir
00:11:55
Esto lo más fácil es hacer
00:11:56
Si el número es igual a 20
00:11:58
Pues entonces
00:12:02
Si el número es igual a 20
00:12:05
Hacemos el prefijo
00:12:08
Igual a 20
00:12:10
Y aquí vamos distinguiendo
00:12:13
Si el número
00:12:15
Es igual a 30
00:12:17
Y luego ya lo concatenamos con el otro
00:12:19
Es igual a 30
00:12:21
Entonces
00:12:24
El prefijo igual a 30
00:12:26
Perdón
00:12:31
Ay que tontería estoy haciendo
00:12:34
Igual a 20
00:12:35
El prefijo igual a
00:12:36
30
00:12:42
Hago solo el 40 y el resto sería igual
00:12:44
Si el número es igual a 40
00:12:49
El prefijo sería igual a 40
00:12:56
Y así resto de casos
00:13:05
Que lo pongo ahí en comentario
00:13:09
Y ahora, una vez que tengo el prefijo fijado
00:13:11
En el caso de que esté de 20 en adelante
00:13:22
Una vez que tengo el prefijo fijado
00:13:25
El caso final
00:13:26
Aunque los 20 van a quedar mal
00:13:28
porque es 20, pero habría que hacer otra distinción
00:13:30
más que hace muy pesado
00:13:33
entonces
00:13:34
una vez que
00:13:35
tengo ya fijado el prefijo
00:13:38
en el caso de que sea de 20 en adelante
00:13:40
ahora ya
00:13:42
podemos hacer
00:13:44
si las unidades
00:13:45
resulta que fueran igual a 0
00:13:48
lo que tengo que mostrar es el prefijo sin más
00:13:53
20, 30, 40, lo que fuera
00:13:55
mostrar el prefijo
00:13:57
Pero si las unidades no fueran cero, en el caso S, que tengo que mostrar el prefijo concatenado con I y concatenado con el sufijo.
00:14:00
Prefijo concatenado con I y concatenado con esto.
00:14:13
Ya tengo otra versión.
00:14:27
Bueno, me faltaría completarlos.
00:14:38
Esto es el save de 50.
00:14:40
Aquí ya, claro, este programa
00:14:42
¿Qué haría? Primero, te fija las unidades
00:14:44
Esta variable te la fija por libre
00:14:46
0, 1, 2, vale, ahora ya empezamos a distinguir
00:14:48
Resulta que decenas
00:14:51
Es igual a 0
00:14:52
Mostramos las unidades, ahí no hay duda
00:14:53
Mostramos unidades, listo
00:14:55
¿Que estamos en la primera decena?
00:14:57
Pues si estamos
00:15:01
En mayor o igual que 16
00:15:02
10 más las unidades
00:15:04
Que sean
00:15:06
Si estamos en 15, 16, 17, eso ya por libre
00:15:07
15, 16, 17, esto ya se puede completar
00:15:10
System out, 15, system out, 16
00:15:13
Perdón, en igual a 15, 14
00:15:15
Perdón, 14
00:15:19
13, 12, 11
00:15:21
Esto tendría que completar los system out
00:15:23
15, system out 14, el siguiente system out
00:15:25
13, el resto de casos
00:15:27
Lo completaría ya con el system out
00:15:29
Específico, igual que aquí, ¿no?
00:15:31
Aquí, system out
00:15:33
Venga, 15
00:15:38
Pues igual que aquí pondría
00:15:44
14, hasta
00:15:46
el 11, perdón
00:15:48
aquí 14
00:15:55
resto de casos
00:15:55
hasta el 11
00:15:58
hasta el
00:15:59
11, vale
00:16:02
entonces la primera decena ya la tengo
00:16:04
cubierta, para los mayores de 16
00:16:06
lo consigo
00:16:09
así, y de 15 a
00:16:11
11 ya los tengo que hacer a mano, ahí no hay
00:16:13
tutía, de 15 a 11 a mano
00:16:14
y ahora, de las decenas del 20 en adelante
00:16:16
es la concatenación
00:16:19
De un prefijo y un sufijo
00:16:20
Lo único es que el 20
00:16:22
Tiene un matiz, porque me va a salir
00:16:25
20 y 1, 20 y 2
00:16:26
Entonces el 20 tendría que tratarlo por libre
00:16:29
Pero para no alargarlo demasiado
00:16:31
Vamos a tratarlos igual, 31, 40 y
00:16:32
Entonces todos
00:16:35
Funcionan igual
00:16:36
Todos de 20 en adelante funcionan igual
00:16:38
Es un prefijo concatenado a las unidades que sean
00:16:40
Pues el prefijo
00:16:43
Lo fijo en función del numerito
00:16:44
Si es 20, si es 30
00:16:46
bueno, perdón, si es igual a 20
00:16:48
no, si es mayor o igual que 20 y menor o igual que 30
00:16:52
esta condición estaría mal puesta
00:16:55
si es mayor o igual
00:16:56
que 20 y menor o igual
00:16:59
y menor que 30
00:17:03
perdón, y menor que 30
00:17:06
es decir, si estoy en la segunda decena
00:17:09
el prefijo es 20
00:17:12
y así con todos
00:17:13
Si estoy en la tercera decena
00:17:16
Es decir, mayor o igual que 30
00:17:20
Y menor o
00:17:22
Y menor que 40
00:17:24
Entonces el prefijo sería 30
00:17:25
Pero si estoy
00:17:27
En la cuarta decena
00:17:29
Es decir
00:17:32
Mayor o igual que 40
00:17:33
Y menor que 50
00:17:35
Entonces el prefijo sería 40
00:17:39
Y así resto de casos
00:17:40
Hasta 90, tendríamos que poner, claro
00:17:42
Resto de casos
00:17:44
Ya tengo el prefijo. Y ahora ya, ¿qué número es? Pues será, en todos los casos, prefijo concatenado con i y el sufijo, salvo si las unidades son 0.
00:17:46
Porque si las unidades son 0, pues entonces no es 20 y 0, 30 y 0. En ese caso es el prefijo solo, sin más.
00:17:57
Vale, solo, sin más
00:18:04
Vale, pues salvo por el matiz
00:18:06
De que 21, 22
00:18:09
No se escribe 21, 22
00:18:11
Que lo podríamos sacar por libre
00:18:14
Esto ya debería funcionar
00:18:16
Vamos a ver si nos hemos equivocado en algo
00:18:17
Por ejemplo
00:18:24
Meto un número cualquiera de la primera decena
00:18:31
7, vale, meto el 0
00:18:34
cero, estupendo, voy a meter
00:18:37
uno de la segunda decena de los raros
00:18:39
que había contemplado
00:18:41
ya, el quince, este lo había contemplado
00:18:43
quince, muy bien, voy a meter
00:18:45
uno ahora de los genéricos de la segunda decena
00:18:47
diecisiete, muy bien
00:18:49
voy a meter ahora ya
00:18:51
de las otras decenas que he contemplado
00:18:53
el treinta y cinco, treinta y cinco
00:18:55
muy bien, sí
00:18:57
un tres
00:19:01
y
00:19:02
vale, de la primera decena, si ya la habíamos
00:19:04
vale, vamos a poner este
00:19:07
20, muy bien
00:19:10
el 40
00:19:11
vale, pero si pongo
00:19:14
45, pues me concatenará
00:19:15
ese prefijo 40 al sufijo 5
00:19:18
45, lo único que
00:19:20
queda raro aquí es si pongo 1
00:19:22
como esto, porque el 20
00:19:23
no es 20 y 5
00:19:25
entonces para el caso del 20
00:19:27
tendría que hacer solamente una
00:19:30
distinción más, y es
00:19:31
si las unidades son 0 o no
00:19:33
Porque si son 0 es 20
00:19:34
Y si no, tengo que cambiar el prefijo
00:19:37
A 20
00:19:39
Cambiarlo a 20, nada más
00:19:40
Es decir, aquí en el
00:19:43
Caso 20
00:19:49
Tendría que hacer otro if más
00:19:50
Si las unidades son 0, pero bueno, no merece la pena
00:19:54
Vale, pues ahora ya
00:19:56
Sin bucles, sin funciones
00:20:00
No hay forma de compactar esto más
00:20:03
¿Vale? No hay forma de compactarlo más
00:20:05
Vamos a
00:20:09
Pedírselo a nuestro amigo
00:20:10
A ver si nos es capaz de hacer algo mejor
00:20:13
Sin usar
00:20:15
Funciones, ni Arrays, ni nada de eso
00:20:17
A ver si
00:20:19
A ver como lo resuelves
00:20:21
En Java
00:20:29
Sin Arrays
00:20:31
Ni
00:20:33
Creando métodos
00:20:35
Auxiliares
00:20:40
Ni bucles
00:20:43
Es decir
00:20:44
Solo con
00:20:46
Sin bucle, sin array, sin método
00:20:47
Solo usando if el save
00:20:52
Bueno, podrías un switch también, no pasa nada
00:20:53
A ver, ¿qué hace?
00:20:55
Bueno, primero con
00:20:59
No sé si se ve
00:21:00
Primero, bueno
00:21:02
El valida que esté fuera de rango
00:21:04
Hace un primer if para ver si es válido
00:21:06
Pero bueno, ya está
00:21:09
Nosotros hemos asumido que era válido
00:21:11
Ahora ya
00:21:12
Saca este texto de aquí
00:21:14
lo que hemos llamado nosotros
00:21:17
sufijo, 1, 2, 3
00:21:18
4, 5
00:21:21
bueno y lo saca para
00:21:22
para los casos raros también
00:21:24
y ahora para el resto
00:21:29
de los casos
00:21:33
va concatenando 10 y 20
00:21:33
va concatenando
00:21:37
con esto, le he dicho que no usara métodos auxiliares
00:21:39
y lo ha usado, va concatenando
00:21:41
con un método auxiliar, es decir, este código
00:21:42
lo ha sacado un método aparte
00:21:45
pero es lo mismo que hemos hecho nosotros dentro
00:21:47
vale, vamos
00:21:48
no ha hecho nada diferente
00:21:51
no se puede compactar nada más
00:21:53
vale, ha puesto aquí
00:21:55
un operador ternario para
00:21:57
bueno, si se lo pedís vosotros
00:21:59
no sé si lo hará con esta misma
00:22:05
versión o con otra distinta
00:22:06
pero
00:22:08
viene a ser lo mismo
00:22:10
vale
00:22:12
te voy a decir eso, profesor
00:22:14
si en el examen
00:22:15
los cuales que pedíamos
00:22:17
Venga, pues vamos al 26
00:22:19
Ejer 26
00:22:24
El ejercicio 26
00:22:35
Dice
00:22:40
Pedir un día
00:22:41
Un mes y un año
00:22:49
E indicar si la fecha es correcta
00:22:51
Vale, de nuevo habrá que anidar unas cuantas cositas
00:22:54
Pues ala
00:22:57
vale
00:23:00
pues venga, vamos a pedirle
00:23:18
las tres cosas que son los datos de entrada
00:23:28
el día
00:23:31
el mes y el año
00:23:37
Vale, datos de entrada
00:24:15
Pues aquí de nuevo es un montón
00:24:24
De anidar y felserif
00:24:26
Cositas, la idea es ver si conseguimos
00:24:28
Hacer un anidamiento lo menos complejo
00:24:30
Posible, y en este caso
00:24:32
Que realmente hay muchas cosas que contemplar
00:24:34
Lenin, ¿te puedes
00:24:36
Sentar en tu sitio y no
00:24:38
Andar paseando por ahí?
00:24:40
Ya, ya lo sé, pero eso
00:24:44
A mí me dificulta mucho
00:24:45
Pero todo contempla muchas breves a la vez
00:24:47
O sea, primero, hablar sin decir demasiadas tonterías,
00:24:49
sin perder el hilo del discurso.
00:24:52
No distraerme, ¿no?
00:24:54
Y es muy complicado si hay ruido de fondo,
00:24:55
si no está por aquí.
00:24:57
No se puede contemplar tantas...
00:24:58
Bueno, pues entonces, aquí el ejercicio en sí es fácil
00:25:03
porque se trata de contemplar todos los casos.
00:25:08
El problema aquí está en que nos quede un código
00:25:10
más o menos legible, nada más.
00:25:13
La dificultad no es el problema.
00:25:15
El anterior no era difícil porque rápidamente
00:25:17
veíais en la cabeza lo que teníais que hacer,
00:25:19
que era pues ir concatenando
00:25:21
ir haciendo switch case
00:25:24
ir haciendo if y en función del numerito
00:25:25
pues poner una cosa u otra
00:25:28
difícil no era porque sabíais lo que había que hacer
00:25:29
desde el principio
00:25:31
pero el asunto es como hago yo un código
00:25:32
que no sea demasiado lioso
00:25:35
como hago los if, como hago los else y ya está
00:25:36
pues aquí es lo mismo
00:25:39
vamos a ver si nos sale un código
00:25:40
que sea más o menos legible
00:25:43
entonces una cosa sencilla
00:25:44
puede ser quitarse primero
00:25:47
Y quitarse primero los casos no válidos
00:25:49
Porque eso es lo más fácil de comprobar
00:25:55
Ahí no hay nada que anidar
00:25:56
¿Vale?
00:25:59
Entonces, ¿cuáles serían los casos no válidos?
00:26:01
Pues los casos no válidos serían
00:26:14
Si el mes, por ejemplo
00:26:16
Si el mes es mayor que 12
00:26:19
O
00:26:26
El mes es
00:26:27
Menor que uno
00:26:30
¿Vale?
00:26:31
Pues ese caso es no válido
00:26:34
¿Verdad?
00:26:35
Entonces ahí
00:26:38
Fecha no válida
00:26:39
Vale
00:26:44
Aquí hay una cosa
00:26:46
Que nos facilita
00:26:52
En estos casos en los que hay que anidar
00:26:55
Tanto las cosas
00:26:57
Dime
00:26:58
Pero intenta decir
00:26:59
cuando hacemos el descanso
00:27:02
vale
00:27:04
hay una cosa que nos facilita la vida es
00:27:04
si la fecha no válida, si yo pudiera irme
00:27:08
de aquí y largarme y abandonar
00:27:10
el programa, fenomenal
00:27:12
porque si no, ahora tengo
00:27:14
que hacer un else, en el caso de que sea válido
00:27:16
y aquí ya me viene un anidamiento
00:27:18
super rollo, en el caso de que sea válido
00:27:20
ahora, vamos a ver que pasa
00:27:22
con el día, ya empezamos a anidar y es
00:27:24
un rollo que no veas, entonces si yo pudiera
00:27:26
en este punto
00:27:28
pirarme y decir no hagas
00:27:30
Nada más, programa terminado
00:27:32
Qué suerte, porque no tendría que poner aquí un ELSE
00:27:34
Repito, en el caso de que el mes sea
00:27:36
Válido y empezará a anidar
00:27:38
Y ahora qué pasa con el día
00:27:40
Bueno, pues afortunadamente
00:27:42
Tenemos
00:27:43
Esta sentencia
00:27:45
Que termina el programa en ese momento
00:27:48
¿Vale? Porque yo en este
00:27:55
Momento quiero terminar
00:27:57
¿Quiero terminar?
00:27:58
Ya está, quiero terminar
00:28:00
La fecha no es válida, fuera
00:28:01
Termina, ala, ya está
00:28:03
System Exit significa que el programa
00:28:06
se termina, entonces ya no sigue
00:28:09
después del if con todo lo que hubiera
00:28:11
no sigue, da igual lo que haya después
00:28:13
porque el programa termina
00:28:15
entonces, este numerito de aquí
00:28:16
¿qué significa?
00:28:19
es un numerito de control que se le da al sistema
00:28:20
operativo por si el sistema operativo quisiera
00:28:23
usarlo
00:28:25
¿y por qué querría usar esto
00:28:25
el sistema operativo?
00:28:29
bueno, ya sabéis que el sistema operativo, entre muchas otras cosas
00:28:30
gestiona todos los procesos
00:28:33
que se están ejecutando en nuestra CPU
00:28:35
y para cada proceso
00:28:38
se encarga de gestionar la memoria
00:28:40
que se le reserva al proceso,
00:28:43
su memoria de datos, todo.
00:28:45
Bueno, pues cuando nuestro programa Java arranque
00:28:47
será otro proceso más del sistema operativo,
00:28:50
otro más, junto con el Eclipse,
00:28:53
el explorador de archivos,
00:28:55
todo lo que está arrancado.
00:28:56
Bueno, pues ¿qué ocurre cuando hacemos System Exit?
00:28:58
Que nuestro proceso termina.
00:29:01
es decir, el proceso que se inició
00:29:03
cuando nuestro programa
00:29:06
arrancó, ese proceso
00:29:08
ha terminado
00:29:10
bueno, pues al sistema operativo le gusta
00:29:10
llevar un registro de los procesos
00:29:14
que han terminado
00:29:16
por una vía correcta
00:29:17
o los que han terminado porque
00:29:20
ha pasado algo raro, porque ha caído un meteorito
00:29:22
en el ordenador, entonces le gusta
00:29:24
llevar un registro de terminación normal
00:29:25
terminación anormal
00:29:28
terminación controlada, terminación no
00:29:29
controlada
00:29:32
cuando el sistema operativo recibe un cero
00:29:32
de un proceso que se ha muerto
00:29:36
asume que la terminación es controlada
00:29:37
no pasa nada, entonces en su tabla de registro
00:29:40
de procesos registra eso
00:29:42
entonces aquí la terminación
00:29:43
es controlada, yo quiero que cuando
00:29:46
mi programa sale por aquí
00:29:48
sale porque yo lo he mandado, se lo he ordenado
00:29:49
es una finalización de proceso
00:29:52
controlada bajo control
00:29:54
yo he mandado que este proceso termine porque la fecha
00:29:55
no es válida
00:29:58
Pues ya está. Y le mando el cero porque el cero significa terminación correcta. Un número diferente del cero no. ¿Vale? Bueno, pues entonces, repito. ¿Qué me permite incorporar esta sentencia?
00:29:59
porque cero
00:30:13
es el valor que el sistema operativo
00:30:15
interpreta como terminación normal
00:30:18
no terminación anormal
00:30:20
porque alguien cuando está ejecutando mi programa
00:30:22
pum, ha apagado el ordenador o ha hecho algo raro
00:30:24
o ha abortado mi proceso
00:30:26
directamente desde la ventana
00:30:28
de comandos o lo que sea
00:30:30
entonces, en conclusión
00:30:31
no me interesa a mí ahora tanto la gestión de procesos
00:30:34
que ya la estudiáis por otro lado
00:30:35
sino que esta sentencia
00:30:38
me permite a mí
00:30:40
salir de mi programa cuando
00:30:41
necesito hacerlo, pero siempre lo haré
00:30:43
bajo control, aquí quiero salir
00:30:45
de mi programa cuando la
00:30:47
fecha no es válida, vale, pues
00:30:49
ya está, entonces
00:30:51
¿qué me ha permitido esto?
00:30:53
lo que me ha permitido es no tener que poner
00:30:55
aquí un else y
00:30:57
que mi programa empiece a
00:30:59
anidarse y anidarse y quede un rollo
00:31:01
entonces cuando hablamos de códigos que tienen
00:31:03
muchos niveles de anidamiento
00:31:05
como este que dentro del mes hay que contemplar
00:31:07
y ahora si es febrero esto
00:31:09
y ahora si es no sé qué, pues puedo
00:31:11
ahorrarme
00:31:13
indentaciones y complejidades
00:31:15
en el código saliendo y ya está.
00:31:17
Entonces, si yo
00:31:19
llego a este punto de aquí abajo, si yo
00:31:21
llego a este punto, es porque
00:31:23
el mes era válido. Sí o sí.
00:31:25
Porque si el mes no hubiera sido válido,
00:31:27
mi programa había terminado fuera.
00:31:29
Ya está. Vale.
00:31:31
Pues ahora, si el mes es válido,
00:31:33
ahora yo puedo hacer también la
00:31:36
validación esta de aquí.
00:31:37
ahora
00:31:38
si el mes es válido, ahora ya sí que
00:31:41
el día será
00:31:44
válido o no en función de si el mes
00:31:46
es de 31 o es de 30
00:31:48
entonces ahora ya aquí podemos
00:31:50
hacer la condición de meses
00:31:52
de 31 días
00:31:54
vamos a
00:31:55
poner el boolean
00:31:56
por ejemplo, para practicar un poco
00:32:02
mes
00:32:04
31 días
00:32:07
pues la condición
00:32:10
mes 31 días sería válida
00:32:11
sería válida si
00:32:13
mes es igual a 1
00:32:14
o
00:32:17
mes es
00:32:18
igual a 3
00:32:21
o mes
00:32:22
es igual a 5
00:32:27
o
00:32:29
mes es igual a 5
00:32:32
6 7
00:32:34
es que agosto 8
00:32:35
si se podría seguramente
00:32:43
se pudiera compactar esta aplicación
00:32:47
como impar
00:32:49
Entre 1 y 7, pero bueno
00:32:51
Que a veces que tampoco
00:32:53
Compactando tampoco luego ganas tanto
00:32:54
Mes es igual a
00:32:57
8, 10
00:32:59
Es igual a 10
00:33:01
O mes es
00:33:05
Igual a 12
00:33:07
Vale, ¿podemos compactar
00:33:08
Esto más? Pues no lo sé, habría que ver
00:33:11
Impares menores que 7
00:33:13
El tema es
00:33:15
Impares entre 1 y 7
00:33:16
O pares entre 8 y 12
00:33:18
Si somos capaces de compactar eso mejor, por ejemplo, otra forma de poner esto, ya que nos ponemos, podría ser mes por ciento dos es igual a uno, luego es, o es distinto de, mes igual a dos es igual a uno, luego es impar.
00:33:21
Y y mes es menor o igual que 7
00:33:54
O si no, mes par
00:34:02
Igual que 7
00:34:05
O si no, mes par
00:34:10
Vale, la condición de arriba y la de abajo
00:34:18
Creo que son idénticas, ¿no?
00:34:30
Es decir, estar entre estos valores
00:34:33
A ver, que he borrado un doble igual
00:34:35
Estar entre estos es lo mismo que decir
00:34:37
¿Eres impar menor que 7 o eres par?
00:34:41
Porque estar entre 1 y 12 ya es seguro
00:34:45
Porque si no habríamos salido por aquí
00:34:47
Nos habríamos ido por ahí
00:34:49
Con lo cual que estamos entre 1 y 12
00:34:50
Está claro
00:34:54
Luego como estamos entre 1 y 12 está claro
00:34:55
Me da igual decir esto
00:34:57
Que decir eres impar menor que 7
00:34:59
O
00:35:02
Eres par
00:35:03
No pero ahí sería
00:35:04
Sí tienes razón es verdad
00:35:06
Porque o eres
00:35:12
Eres impar
00:35:13
No porque
00:35:16
Eres impar menor que 7
00:35:16
No, porque febrero es par, entonces no entraría
00:35:21
Febrero no entraría aquí
00:35:23
En vez de entrar, porque
00:35:25
Ah, sí, sí, sí, porque es par
00:35:26
Tienes razón
00:35:31
Sí, sí, sí, claro
00:35:32
O eres par
00:35:34
O eres, no, o eres
00:35:37
Eres impar
00:35:39
Menor que 7
00:35:42
Entonces, si no se cumple esto
00:35:43
Es porque eres mayor que
00:35:45
A ver, que yo también me estoy liando
00:35:48
Vamos a ver
00:35:52
- 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:
- 4
- Fecha:
- 20 de octubre de 2025 - 17:12
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 35′ 55″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 144.17 MBytes