Saltar navegación

20251020 ProgEstr-EjerDecision_3 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 20 de octubre de 2025 por Raquel G.

5 visualizaciones

Descargar la transcripción

Venga, vamos a conectar con esto otra vez. Estábamos con el ejercicio de dime si la fecha que te doy con día, mes y año es válida. Entonces, primero validábamos el mes, fecha no válida y para no anidar aquí un ELSE y que me quedara todo anidado para no ponerlo con un ELSE, pues nos íbamos con esta sentencia. 00:00:00
así la incorporábamos, no es una sentencia 00:00:29
que sea especialmente recomendable 00:00:32
usar, porque 00:00:34
corta un poco la elegibilidad del código 00:00:35
tienes un código larguísimo y tú 00:00:38
te haces idea de que el programa hace esto, hace lo otro 00:00:39
pero claro, si tiene un system.exe 00:00:42
y da el principio, hay una rama por la que sale 00:00:43
y termina y no hace más, entonces como que se te 00:00:45
escapa un poco la estructura del código 00:00:48
no es muy recomendable, pero bueno 00:00:49
aquí como estos ejercicios que estamos haciendo son tanto 00:00:51
if, else y if anidados 00:00:53
para no tener que encontrarnos 00:00:54
con algo tan farragoso 00:00:57
bueno, habíamos dicho, si el mes no es válido 00:00:59
ya directamente nos vamos, ahora 00:01:02
si el mes es válido, estamos aquí 00:01:03
si el mes es válido 00:01:05
¿qué hacemos? 00:01:07
pues vamos a ver 00:01:10
la condición de que sea de 31 días 00:01:11
que la hemos puesto, tanto así 00:01:13
como así, ambas son la misma 00:01:16
ambas son la misma 00:01:17
y ahora en función de si el mes 00:01:18
es de 31 días, es febrero 00:01:21
o restante que es de 30 00:01:23
hago una cosa u otra 00:01:25
y ese que hago es esta asignación 00:01:27
luego 00:01:29
una sentencia if 00:01:31
que lo único que hace dentro es una asignación 00:01:33
la podemos hacer con el operador 00:01:36
ternario, por esto había 00:01:38
comentado esto 00:01:40
entonces, si el mes es de 00:01:41
31 días, ¿qué le quiero asignar 00:01:43
a día máximo? pues si el mes 00:01:46
es de 31 días, a día máximo 00:01:48
le quiero dar 00:01:49
31, perdón, 31 00:01:50
vale, y he puesto 00:01:53
dos interrogaciones 00:01:55
¿Qué pasa si mes no es de 31 días? 00:01:56
Me abro aquí otra vez otra condición 00:02:00
Me abro esta 00:02:02
Si mes es igual a 2 00:02:04
¿Vale? 00:02:06
Si mes 00:02:09
Si mes es 00:02:11
Igual a 2 00:02:14
Entonces aquí me abro 00:02:16
Esta rama 00:02:19
Le asigno 28 00:02:21
¿Y qué pasa si no? 00:02:22
Pues le asigno 30 00:02:24
¿Vale? Entonces todo este if 00:02:25
El save se convierte 00:02:27
En esto 00:02:29
¿Vale? Se convierte en esto 00:02:29
Y hombre, pues más claro 00:02:33
Más claro, ¿verdad? 00:02:35
Vamos a hacer una asignación a una variable 00:02:37
Que es lo que estamos haciendo aquí 00:02:39
Una asignación a una variable 00:02:40
En lugar de desglosarlo 00:02:42
If, el save, el save, como lo único que hago 00:02:45
Dentro, lo único 00:02:47
Es una asignación y a la misma variable 00:02:48
Y a la misma 00:02:51
Como tengo esa estructura 00:02:52
que lo único que hago dentro es una asignación 00:02:54
y a la misma en todas las ramas 00:02:56
pues lo puedo hacer así 00:02:58
oye, esta variable, ¿qué le damos? 00:02:59
pues no sé, le podemos dar 31, le podemos dar 28 00:03:02
o le podemos dar 30, son estos tres valores 00:03:04
31, 28 y 30 00:03:06
31, 28 y 30, en función de que si lo damos 00:03:07
si se cumple esta condición 00:03:10
le doy 31 00:03:12
y si no se cumple, pues me hago otra pregunta 00:03:13
¿es 2? pues le doy esta 00:03:16
¿que no se cumple esa tampoco? pues esta otra 00:03:18
¿vale? 00:03:20
¿Veis que esta sentencia de arriba es lo mismo que todo este if, el seif? 00:03:22
Bueno, pues ahora ya que tenemos día máximo asignado, la validez del día la podemos comprobar de esta manera. 00:03:33
Si el día es menor que 1 o es mayor que el día máximo, que sea, que eso depende del mes, pues fecha no válida. 00:03:44
y la validación 00:03:56
del año, porque la combinación 00:04:01
de mes y día ya los tenemos 00:04:03
como no han dicho lo de bisiesto, este programa 00:04:04
simplifica mucho, lo podríais ampliar 00:04:07
al caso bisiesto 00:04:08
el año, pues es que no está muy bien especificado 00:04:10
si fuera un examen habría que especificarlo mejor 00:04:13
¿qué años le damos 00:04:15
válidos desde el comienzo 00:04:16
del planeta tierra? pues hombre, habría que poner 00:04:18
si es menor que 45.000 millones 00:04:20
de años 00:04:23
entonces venga, vamos a darle de nuestra era 00:04:23
Ahí ya está. Entonces, podemos directamente esa condición también ponerla aquí. Si año es menor que cero o año es mayor que 2025, pues lo mismo, fecha no válida. 00:04:26
vale, pues nada, estamos validando 00:04:58
mes y año 00:05:05
si ambos son válidos 00:05:06
si ambos son válidos, no habremos 00:05:10
abandonado el programa por aquí 00:05:12
no lo habremos abandonado 00:05:14
entonces habremos llegado aquí 00:05:15
y al haber llegado aquí, ya lo único que nos 00:05:18
falta es 00:05:20
comprobar si la combinación 00:05:21
de día y mes es correcta 00:05:24
y eso lo comprobamos aquí 00:05:26
entonces el programa se queda cortito 00:05:28
nos ha quedado largo porque he puesto 00:05:32
este boolean 00:05:33
dos veces, de las dos maneras 00:05:35
y esto de aquí, pero 00:05:37
vale, vale, vamos a 00:05:38
modificar un poco este programa y así le vamos 00:05:57
cogiendo cierta soltura 00:06:00
a los stream, en lugar de 00:06:01
pedírmelo así, que es feo, me mete 00:06:03
el día, me mete el mes, me mete el año, que me meta la fecha 00:06:05
pues separada por guiones 00:06:07
o por barras, como uno quiera, por ejemplo 00:06:09
en lugar 00:06:11
de pedirle así 00:06:13
la fecha, lo voy a comentar 00:06:15
todo, en lugar de pedirle así 00:06:17
Se la vamos a pedir así 00:06:19
Control 7 00:06:20
Puede ser 00:06:23
Igual cada clip se tiene habilitadas 00:06:29
Algunas cosas u otras 00:06:31
Vamos a pedírselo así 00:06:32
Introduzca fecha 00:06:34
Y le decimos 00:06:37
Esa fecha 00:06:44
Métela como día 00:06:48
Més 00:06:50
Y año 00:06:57
Vale 00:07:01
Día, mes y año 00:07:06
Entonces ahora ya 00:07:08
Si el usuario introduce la fecha así 00:07:11
Pues entonces la fecha se va a guardar en un string 00:07:14
Porque está metida con 00:07:18
Barras 00:07:19
Entonces esto es una cadena 00:07:21
Luego la leeremos con nextline 00:07:22
Que es como se lee un string 00:07:28
Vale, entonces ¿cuál es nuestro problema? 00:07:29
Que esta aplicación necesita 00:07:35
El mes, el día y el año como numerito 00:07:36
Meta como numerito 00:07:39
Yo voy a necesitar estas tres variables 00:07:41
voy a necesitar 00:07:42
el día 00:07:44
el mes y el año 00:07:46
las necesito las tres 00:07:49
día, mes y año 00:07:51
para poder hacer la validación correspondiente 00:07:52
pero las tengo que sacar 00:07:55
de aquí que están en modo carácter 00:07:57
y además metidas entre barritas y todo eso 00:07:59
vale, pero bueno, conocemos el método 00:08:01
charAt 00:08:05
de string que me permite obtener el carácter 00:08:06
de una posición 00:08:09
pues entonces la concatenación del carácter 0 y 1 00:08:10
me dará el día pero todavía en string 00:08:14
es decir, vamos a coger el día 00:08:18
pero en texto, el día en texto cuál será 00:08:22
la concatenación de fecha punto char 00:08:26
at 0 más 00:08:30
la concatenación de fecha punto char at 1 00:08:34
Sería esto, ¿verdad? 00:08:38
Fecha charat 0 es este primer carácter 00:08:42
Y fecha charat 1 será este segundo 00:08:46
Si concateno los dos, será el día pero en modo texto 00:08:48
Porque es la concatenación de las dos cifras en char 00:08:52
De nuevo nos sale esta cosa roja 00:08:55
Que ya sabemos lo que es porque lo hemos leído un montón de veces 00:08:59
Estamos concatenando 00:09:02
Tratando de concatenar un char 00:09:05
y otro char 00:09:07
el operador más 00:09:09
ya sabemos 00:09:11
que funciona siempre como suma 00:09:13
no como concatenación 00:09:16
salvo en un caso 00:09:17
en el caso de que alguno de los dos 00:09:19
sea un string 00:09:21
si alguno de los dos operandos es un string 00:09:22
entonces es concatenar 00:09:26
pero aquí ninguno es un string 00:09:27
aquí los dos son char 00:09:29
luego lo interpreta que suma 00:09:30
y lo que hace es sumar el código ASCII 00:09:32
de este primero con el código ASCII del segundo 00:09:35
no queremos que sume eso 00:09:37
queremos que haga la concatenación 00:09:40
¿vale? pues ¿cómo solucionamos esto? 00:09:41
concatenamos con un string 00:09:45
y ya se ha convertido automáticamente 00:09:46
esto en concatenación 00:09:49
entonces 00:09:51
ahora este más 00:09:54
concatena 00:09:57
un string vacío con un char 00:09:58
ahora ya sí que es concatenar 00:10:00
porque este es string 00:10:03
es string, luego 00:10:04
el total es concatenación 00:10:06
luego el resultado se vuelve string 00:10:08
que es el numerito que fuera 00:10:11
y ahora todo eso es un string 00:10:12
concatenado con un char 00:10:15
pues de nuevo este operador 00:10:16
se convierte en concatenación 00:10:19
porque todo lo de la izquierda 00:10:21
es un string 00:10:23
luego ahora ya si en día 00:10:23
texto tendré la cadena 00:10:27
0, 1, 23 00:10:29
la cadena que sea en modo texto 00:10:30
vamos a obtener la cadena en modo texto 00:10:32
del día y del 00:10:35
año y luego ya las cambiamos a número 00:10:37
mes en texto 00:10:39
el mes en texto 00:10:44
sería lo mismo 00:10:46
la concatenación 00:10:48
no la suma de los caracteres asti 00:10:49
la concatenación 00:10:52
pero ahora sí, del char 0 00:10:54
1, 2 y 3 00:10:56
del char en la posición 3 00:10:57
con el char en la posición 00:10:59
eso sería el char en la posición 00:11:02
3 que es este 00:11:06
con el char en la posición 4 que es este 00:11:06
Ya están concatenados 00:11:09
Y me falta 00:11:11
El año en texto 00:11:16
Que sería 00:11:21
Este caso, lo bajo abajo 00:11:27
Porque este va a ser más largo 00:11:28
Este sería 00:11:30
0, 1, 2, 3 00:11:31
4, 5, 6 00:11:35
Del 6 en adelante 00:11:37
Pues fecha charat 6 00:11:38
Concatenado con fecha charat 7 00:11:40
Concatenado con fecha 00:11:43
charat 8 00:11:47
y concatenado 00:11:50
con fecha 00:11:53
charat 9 00:11:54
vale, pues ya tenemos 00:11:58
todos los 00:12:04
datos 00:12:07
en cadena 00:12:08
en cadena, vale 00:12:11
pero yo los necesito en número 00:12:21
los necesito en número porque tengo que 00:12:22
comparar con un número aquí 00:12:25
comparo con un número aquí 00:12:27
comparo aquí con esta condición 00:12:29
si ese numerito es par o impar 00:12:31
lo necesito en entero 00:12:32
no me vale el 23 como cadena de caracteres 00:12:34
2, 3, no me vale esa cadena 00:12:37
2, 3 o 1, 2 00:12:39
que es la que yo tengo aquí 00:12:41
esa cadena no me vale, necesito el número 00:12:43
entero correspondiente a esa cadena 00:12:45
es lo que necesito 00:12:47
¿lo puedo hacer de alguna manera? 00:12:48
pues sí, como vamos a 00:12:50
tener que hacerlo muy a menudo 00:12:52
vamos a incorporar desde ya 00:12:54
Cómo hacer lo siguiente 00:12:56
Que es esto 00:12:59
Para cambiar 00:13:00
Un número 00:13:03
De modo 00:13:05
Texto 00:13:10
A modo 00:13:12
Número entero 00:13:13
Exacto 00:13:16
Con ese, no lo habíamos usado antes, ¿no? 00:13:22
¿Lo habíamos usado ya? 00:13:25
Ah, pues genial 00:13:26
Ya lo sabemos, ¿vale? 00:13:28
Vale, pues entonces 00:13:30
Mi día 00:13:31
Mi día, ¿cuál va a ser? 00:13:32
El íntegre punto parseínt de día texto. 00:13:38
Ya tengo mi día en entero. 00:13:44
Mi mes, el íntegre punto parseínt de mi mes en texto. 00:13:48
Y mi año, mi íntegre punto parseínt de mi año en texto. 00:13:55
Y ya está, ya he parseado, que se dice, parsear en general, los anglicismos a mí no me gustan mucho, 00:14:06
pero en estos contextos ya se han incorporado como lenguaje natural nuestro, entonces tenemos que usarlo. 00:14:14
Entonces, parsear en programación siempre es unos datos que están en un formato convertirlos a otro formato. 00:14:21
Pues ya hemos parseado unos datos que estaban en una fecha, que estaban en este formato, día, mes y año, 00:14:29
Pues una fecha en formato string la hemos parseado o la hemos transformado a los tres números enteros correspondientes, ¿vale? 00:14:36
Haciendo esto, hemos transformado o parseado una fecha en formato string a los tres numeritos, que son ya los que necesitamos aquí. 00:14:47
¿No funcionará esto? Pues no sé. 00:14:58
en el momento de ejecutarlo 00:14:59
se te interrumpiría el programa y te saldría 00:15:06
en rojo number input type mismatch 00:15:08
exception o number formal exception 00:15:10
entonces se te pararía 00:15:12
no, no, no 00:15:13
el parseInt lo que 00:15:19
valida es que las cifras sean solo numéricas 00:15:21
para pasar al número entero 00:15:24
para eso vale esa función 00:15:25
porque lo que dices tú 00:15:27
no hace falta hacerlo porque ya está 00:15:29
el propio char, ya si tú lo interpretas 00:15:31
como int y lo asignas a un int 00:15:34
ya es el propio int 00:15:36
no hay que hacer la transformación 00:15:37
esta es una función más compleja 00:15:39
que tiene este uso, tengo yo una cadena 00:15:41
con cifras 322 00:15:43
pues esa cadena con cifras 00:15:45
322 se la transforma en el entero 00:15:47
322 00:15:49
vale, si hay una de repente 00:15:50
eso le haría algo más 00:15:53
claro 00:15:55
por ejemplo 00:15:55
si hacemos una prueba 00:15:58
Por ejemplo, yo le meto el JJ del 67 del no sé qué, pues me dice, oye, yo he intentado coger esto, coger sus cifras numéricas para convertirlo en el entero que representa y no he podido porque lo que me has dado no es un número. 00:16:05
¿cómo voy a convertir esto en un entero? 00:16:26
no puedo, no tiene sentido, no existe el entero 00:16:28
si existe el entero 67, este si podría 00:16:31
pero el entero JJ no existe 00:16:35
¿vale? el parsein 00:16:37
no es que coja la J, mire 00:16:38
su entero en ASCII y coja 00:16:40
la J, mire su entero en ASCII 00:16:42
los concatene, no 00:16:44
porque eso no tendría sentido, lo que hace es 00:16:46
interpreta 00:16:48
esto como un número entero 00:16:50
y lo guarda en una variable 00:16:52
entera con ese valor, 67 00:16:54
el valor 6 00:16:56
el valor 7, vale, entonces 00:16:58
si lo ejecutamos 00:17:00
ahora ya, pues 00:17:02
12 de marzo 00:17:04
de 2024 00:17:06
el 12 de marzo de 2024 00:17:09
no me dice nada porque 00:17:12
se me habrá pasado el fecha válida, lógicamente 00:17:14
entonces 00:17:16
aquí 00:17:18
el se, es que me he quedado con el el se 00:17:19
O sea, el ELSE no lo habíamos completado 00:17:24
Fecha válida 00:17:25
Si la fecha es válida, no habíamos completado con el ELSE 00:17:31
Vale 00:17:36
Ahora ya sí, venga 00:17:37
3 de marzo del 2020 00:17:41
El 3 de marzo del 2020, fecha válida 00:17:46
El 30 de febrero de 2000, fecha no válida 00:17:48
El 12 del 45 del 1000 00:17:58
Pues fecha no válida 00:18:06
Bueno, se podrían contemplar todos los casos de prueba 00:18:07
Pero yo creo que están contemplados 00:18:09
Y que saldría bien 00:18:10
¿Vale? 00:18:12
Entonces, si contempláramos que sea una fecha válida 00:18:16
Teniendo en cuenta los años bisiestos 00:18:19
Pues aquí 00:18:21
La validación del año 00:18:23
Sería más compleja 00:18:27
¿Vale? 00:18:29
Entonces, aquí cambiaría, el código cambiaría en día máximo en esta asignación de aquí, perdón, aquí, si contemplamos que tenga en cuenta si el año es bisiesto o no, esta asignación de que en el caso del que el mes sea febrero sea 28 no se quedaría tan sencilla, 00:18:30
Si en el caso de que el mes sea febrero, habría que abrir una rama, que es, ¿el mes es bisiesto? 29. ¿No es bisiesto? 28. Habría que cambiar el programa abriendo una rama más aquí. ¿Vale? 00:18:57
Claro 00:19:13
O aquí se podría ver más claro 00:19:17
Meses igual a 2 00:19:21
Año bisiesto, día más 29 00:19:23
Else, día más 28 00:19:25
Para lo cual 00:19:28
Habría que hacer el bulle al año bisiesto 00:19:30
Y el bulle al año bisiesto lo habéis hecho 00:19:31
En otro ejercicio 00:19:33
¿Vale? Como año múltiplo de 4 00:19:34
Salvo que lo sea de 100 00:19:38
Que entonces no puede ser lo de 4 00:19:39
Esa es la condición que habréis encontrado 00:19:40
vale pues venga 00:19:43
alguna otra cosa 00:19:49
venga pues algún otro ejercicio 00:19:50
Venga, 21. 00:20:33
Un momento, antes de hacer el 21 00:20:52
me he quedado yo con ganas 00:20:54
y así de paso 00:20:55
hacemos el del bisiesto, por si alguno 00:20:57
de ampliar este programa 00:21:00
para que contemple los bisiestos 00:21:01
y así estamos haciendo el del booleano de bisiesto 00:21:03
en el mismo, por si alguien no lo ha hecho 00:21:05
vale, vamos a hacer 00:21:07
este programa lo dejamos así tal cual 00:21:09
vale, y vamos a 00:21:11
ampliar a una versión 2 en el cual 00:21:13
la fecha 00:21:16
contemple también los años bisiestos 00:21:17
para decirnos si es válida 00:21:19
o no, es decir, si es 00:21:21
el 29 de un bisiesto debería decirme 00:21:23
válida, aquí si es el 29 00:21:25
de cualquier año me diría que no es válida 00:21:27
entonces bueno 00:21:29
entonces vamos, este era el 00:21:30
el 26 00:21:33
pues el 26 voy a copiar 00:21:36
y pegar para hacer 00:21:40
copio y pego 00:21:41
ejer 26 00:21:44
versión 2 00:21:48
vale, pues este ejercicio es versión 2 00:21:50
en esta variante 00:21:57
vamos a comprobar 00:22:04
También 00:22:08
Si el año es 00:22:11
B si esto 00:22:14
Vale, pues en qué se traduce 00:22:16
Voy a quitar ya todo lo comentado 00:22:20
En esta versión 00:22:21
Para que quede más 00:22:23
Vale 00:22:24
Esto que teníamos aquí 00:22:27
Vale, pues entonces 00:22:30
Nuestro código se había traducido en este 00:22:39
Voy a quitar este 00:22:41
Boolean que es más largo 00:22:43
lo voy a quitar y se me queda 00:22:45
así 00:22:48
entonces mi versión del programa era 00:22:49
primero 00:22:52
leemos los datos, para lo cual hay que hacer 00:22:54
todo ese parseo 00:22:56
de string con guiones 00:22:57
a numeritos 00:22:59
vale, ya está hecho 00:23:01
ahora, ya que hemos hecho la lectura de los datos 00:23:03
empezamos a validar 00:23:05
primero el mes 00:23:07
luego el año y ahora asumiendo que el mes 00:23:10
y el año son válidos, asumiendo que son válidos 00:23:12
Ahora ya hay que ver la combinación de días con mes 00:23:14
¿Vale? 00:23:19
Entonces, el día máximo sabemos que será 31 00:23:22
Si el mes es de 31 días 00:23:26
Si el mes es de 30, será 30 días 00:23:28
Y si el mes es 2, y solo en ese caso 00:23:34
Vamos a necesitar la condición de service y esto 00:23:37
Para abrir ahí dos posibilidades 00:23:40
entonces, vamos a poner aparte 00:23:42
como lo vamos a usar, la condición de ser bisiesto 00:23:45
y esta condición 00:23:47
trabaja con el año 00:23:51
esta condición trabaja exclusivamente 00:23:52
con el año, con el dato del año 00:23:56
vale, entonces aquí uno le puede sonar 00:23:57
más o menos lo que es un año bisiesto 00:24:00
que sea múltiplo de 4, no sé qué 00:24:02
pero se le pueden escapar cosas, entonces uno 00:24:03
pues busca 00:24:06
a ver, lo normal es que 00:24:07
se lo preguntaría HGPT 00:24:10
con lo cual haría 00:24:12
pero aquí estamos intentando pensarlo 00:24:13
entonces vamos a buscar la definición 00:24:15
en lenguaje natural 00:24:17
para traducirla a código 00:24:18
vale 00:24:20
cada cual 00:24:28
pero si yo quiero 00:24:36
venga 00:24:38
condición 00:24:43
de un año 00:24:45
¿cuál es la condición para que un año 00:24:48
sea bisisto? esta pregunta me gusta más 00:24:50
vale, esto ya lo podemos traducir a código 00:24:51
vale 00:24:54
tiene que ser múltiplo de 4 00:24:55
pero no múltiplo de 100 00:24:57
porque si es múltiplo de 4 y de 100 simultáneamente 00:25:01
también debería ser múltiplo de 400 00:25:06
esto es lo que dice 00:25:10
esta es la definición matemática 00:25:12
ahora hay que traducirla a Java 00:25:14
en resumen 00:25:15
tiene que ser múltiplo de 4 00:25:16
pero no de 100 00:25:20
porque si es de 00:25:24
no simultáneamente de 4 y de 100 00:25:26
porque si es simultáneamente de 4 00:25:28
y de 100 00:25:30
no va a ser bisiesto 00:25:31
a menos 00:25:33
que sea múltiplo de 400 00:25:34
eso es, en palabras es eso 00:25:37
es decir, yo cojo mi año 00:25:40
Sí, ya. 00:25:54
Pero yo te voy a poner esto en el examen. 00:25:59
He dicho que todo lo que haya que hacer en el examen 00:26:06
va a quedar muy claro en el enunciado. 00:26:08
De verdad, dejad de sufrir tanto. 00:26:11
Dejad de sufrir tanto. 00:26:14
Vosotros, lo único que tenéis que preocuparos ahora mismo 00:26:16
es de notar si vais de alguna manera 00:26:19
aprendiendo cosas, progresando. 00:26:22
es de los que os tenéis que preocupar 00:26:24
no de los exámenes 00:26:26
pues muy mal 00:26:28
entiendo que 00:26:31
tiene sentido que preocupe si estamos en junio 00:26:32
y están los exámenes 00:26:35
suspensos, pues hombre igual preocupa 00:26:37
pero es que ahora no es nuestra preocupación 00:26:39
de verdad, ahora vuestra preocupación es 00:26:41
voy aprendiendo, voy avanzando, me entero 00:26:42
me entero, soy capaz de hacer ejercicios 00:26:45
ya está 00:26:46
¿qué? 00:26:47
¿cómo? 00:26:51
estábamos aquí 00:26:52
La condición de bisiesto 00:26:53
Tiene que ser 00:26:56
No puede ser múltiplo de 4 y de 100 00:26:57
Simultáneamente 00:27:01
¿Vale? 00:27:02
Porque si es múltiplo de 4 y de 100 simultáneamente 00:27:03
No es bisiesto 00:27:06
Pero entonces puede ser bisiesto 00:27:06
Si es divisible entre 400 00:27:09
Luego, entonces 00:27:11
Esto 00:27:14
Uno lo podría traducir 00:27:14
Vale, a ver 00:27:17
Es bisiesto 00:27:19
A ver, es múltiplo de 4, vale, y, vale, esta sería la condición de ser simultáneamente múltiplo de 4 y de 100, ¿no? 00:27:22
Pues esto no puede ocurrir 00:28:07
Dime 00:28:09
Claro, o sea, no puede ser múltiplo de 4 y de 100 a la vez 00:28:09
No puede ser 00:28:19
Pero podría ser 00:28:20
Es múltiplo de 400 00:28:23
Entonces sí, si es múltiplo de 400, sí 00:28:26
Entonces 00:28:29
Año es 00:28:30
Múltiplo 00:28:32
De 400 00:28:33
es que cualquier año 00:28:36
porque yo he interpretado la definición 00:28:54
los múltiplos de 400 00:28:56
son bisiestos todos 00:28:57
los múltiplos de 400 son bisiestos 00:28:59
¿vale? que son las únicas 00:29:02
excepciones de años múltiplos 00:29:04
de 4 y 100 que son bisiestos 00:29:06
¿Vale? Porque el resto de múltiplos de 4 y 100 simultáneamente no lo serían, solo serían los que sean múltiplos de 400, luego todos los múltiplos de 400 son bisiestos, ¿vale? ¿Sí o sí? 00:29:08
Este es 00:29:22
Esto 00:29:30
Si es múltiplo de 4 00:29:31
Esto es true 00:29:33
¿Vale? 00:29:36
Esto es true 00:29:39
Y esto es false 00:29:39
Con lo cual sería un true 00:29:43
True o false, true 00:29:45
Te daría true 00:29:46
¿Vale? 00:29:47
O esto se podría explicar 00:30:00
Múltiplo de 4 00:30:02
Igual así se ve más claro 00:30:07
Múltiplo de 4 00:30:08
Y no múltiplo de 100 00:30:09
O múltiplo de 400 00:30:13
Es decir, múltiplo de 4 00:30:17
Y, perdón 00:30:18
Así está mejor expresado 00:30:20
Múltiplo de 4 y no de 100 00:30:23
O de 400 00:30:25
Yo creo que esta ya sí que contempla todas las posibilidades 00:30:27
¿Vale? 00:30:30
Múltiplo de 4 o no de 100 00:30:32
O de 400 00:30:34
Vale 00:30:35
Hasta luego 00:30:36
entonces bájalo aquí abajo 00:30:38
vale 00:30:39
asumiendo que esta condición está bien 00:30:42
que creo que sí, ahora podemos comprobarlo y validarlo 00:30:45
ahora ya 00:30:47
podemos hacer 00:30:50
vamos a ver, ¿qué día máximo asignamos? 00:30:50
¿mes es de 31 días? 00:30:55
¿mes es de 2 días? 00:30:57
pues si el mes 00:31:02
es de 2 días 00:31:03
a ver 00:31:05
aquí lo que pasa es que si lo hacemos con el operador 00:31:06
tenemos que cambiar el orden de esto claro aquí que como abrían cuatro ramas un operador 00:31:09
ternario con cuatro ramas ya es un poco rollo entonces va a quedar mucho más claro con un 00:31:18
libro entonces meses de 31 días pues si el mes es de 31 días entonces día máximo el que borrado 00:31:23
Ah, vale, vale 00:31:37
Día máximo igual a 31 00:31:45
El SEIF 00:31:47
El SEIF 00:31:52
Més es igual a 2 00:31:55
Pues aquí podemos poner 00:32:01
Si año bisiesto 00:32:07
Si es bisiesto 00:32:08
Día máximo 00:32:11
Igual a 29 00:32:13
Else 00:32:15
Día max 00:32:19
Igual a 28 00:32:21
Y ninguno de los casos anteriores 00:32:22
Día max 00:32:26
Igual a 30 00:32:27
¿Vale? 00:32:29
Y ya está 00:32:32
Ahora contemplaría fecha válida 00:32:33
Tanto si los años son bisiestos como si no 00:32:38
Mes de 31 días 00:32:40
Esto es lo máximo que puede tener el día 00:32:42
Si el mes es febrero 00:32:45
El día máximo dependerá 00:32:46
De si es bisiesto o no 00:32:48
y si no es ni de 31 días 00:32:50
ni febrero, entonces es que tiene que ser 00:32:52
de 30, no hay otra 00:32:54
una vez que ya tenemos 00:32:55
el día máximo, ya podemos hacer este último 00:32:58
if, vale 00:33:00
vale, todas formas todo esto lo subo a la 00:33:03
virtual, vale 00:33:07
eeeem 00:33:11
y vamos a completar con el que había 00:33:13
dicho alguien, que era este, el 21 00:33:16
vale 00:33:18
datos de entrada para el 00:33:34
21, los coeficientes 00:33:37
Vamos a copiar un system out que haya por ahí 00:33:39
¿Qué número era este? 00:33:44
El 26 00:33:58
Y ¿dónde lo tengo yo aquí? 00:33:58
Ah, que está aquí ya, vale 00:34:03
El 21 00:34:05
Pues venga, un número 00:34:06
Voy a copiar y 00:34:10
Otro y otro 00:34:14
Entonces, coeficiente A 00:34:17
Coeficiente B de la ecuación de segundo grado 00:34:19
coeficiente c 00:34:24
de la ecuación 00:34:26
el primero que meto es el coeficiente a 00:34:28
el b y el c 00:34:30
vale, entonces 00:34:31
ahora se trata de contemplar las posibilidades 00:34:33
de una ecuación de segundo grado 00:34:36
¿puedo plantar la fórmula sin más? no 00:34:37
tengo varias posibilidades 00:34:40
porque 00:34:41
lo que hay dentro de la raíz es negativo 00:34:44
entonces 00:34:51
no tiene solución 00:34:52
asumimos que no tiene solución, nos olvidamos de las complejas 00:34:54
no lo extendemos 00:34:57
y si es 0 tiene una única solución 00:34:58
entonces 00:35:01
ahí ya veo las ramas que hay 00:35:03
y esas ramas van a depender 00:35:04
exclusivamente de esta operación 00:35:07
b al cuadrado menos 4a por c 00:35:08
va a depender de esto 00:35:10
entonces vamos a llamar 00:35:11
a esa operación el 00:35:15
determinante, que lo dicen, lo llaman 00:35:16
determinante, porque determina 00:35:19
las soluciones 00:35:21
Pues bueno, esto es un double porque ya 00:35:22
Esa operación, cuando hagamos la raíz puede ser un double 00:35:26
Pues venga, el determinante 00:35:30
El determinante va a ser b al cuadrado 00:35:32
Que es b por b 00:35:35
Menos 4 por a por c 00:35:37
Ese es el determinante 00:35:42
b al cuadrado menos 4 por a por c 00:35:44
Entonces, si determinante resulta que es menor que cero, pues ya está, ya hemos terminado, no existen soluciones reales, ya está. 00:35:46
Si el determinante es cero, existe una única solución, la solución doble, que se llama, que la vamos a poner en un número aparte, 00:36:09
La solución será 00:36:28
Vamos a ponerla aquí 00:36:33
Double solución 00:36:35
Que será menos b 00:36:37
Menos b 00:36:39
Lo del determinante da igual 00:36:40
Se me ha olvidado la fórmula 00:36:45
A2a 00:36:51
Menos b partido entre 2a 00:36:52
Por a 00:36:57
¿Vale? 00:36:59
esta será la solución que es la que mostramos 00:37:00
y ahora si el determinante es mayor que 0 00:37:04
que será el resto de los casos 00:37:20
tenemos dos soluciones y ya está 00:37:23
la solución 1 será menos b más raíz cuadrada 00:37:26
el operador raíz cuadrada no existe 00:37:36
pero igual que ya estamos usando algunas funciones 00:37:38
aunque no entendemos todavía por qué las usamos 00:37:41
o por qué se escriben de esa manera y todo 00:37:44
pues para hacer el charat, para hacer el next in 00:37:46
pues podemos empezar a usar esto 00:37:49
aunque no sabemos por qué se escribe así 00:37:52
para hacer una raíz cuadrada 00:37:54
b cuadrado menos 4ac 00:37:56
b por b menos 4 por a por c 00:38:01
esta sería la solución 1 00:38:06
He partido todo por 2A, claro 00:38:10
Partido todo 00:38:13
Entre 2A 00:38:21
Por A 00:38:24
Y la solución 2 sería la misma 00:38:27
Pero cambiando 00:38:30
Este más por menos 00:38:35
Y ahora las mostramos y se acabó 00:38:36
¡Hala! Ya estarían las dos mostradas 00:38:42
¿Vale? Luego distinguimos que hay 00:38:58
Tres ramas, tres posibilidades 00:39:01
Las tres en función de este valor 00:39:03
Pues ya está, las tres ramas 00:39:05
si, si, si, si, se acabó. 00:39:07
No existen soluciones, 00:39:10
o es una única o son las dos. 00:39:11
Vale, aquí he puesto paréntesis 00:39:21
lógicamente porque si no 00:39:23
ganaría este operador 00:39:25
por la prioridad. 00:39:27
Lo que pasa es que, claro, 00:39:49
para este no existen 00:39:52
soluciones reales, como era de esperar, 00:39:55
porque este polinomio 00:39:56
El B tiene que ser negativo 00:39:59
Para que se pueda factorizar 00:40:04
Entonces 00:40:08
Si lo vamos a ejecutar 00:40:10
1, menos 2 00:40:11
Y 4 00:40:15
Me he pasado con el C 00:40:16
Menos 4 00:40:21
Este si tiene ya soluciones 00:40:26
Casi 00:40:29
Venga, pues nada 00:40:31
Vamos a 00:40:38
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:
5
Fecha:
20 de octubre de 2025 - 17:13
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
40′ 40″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
183.40 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid