Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 6-10-23 - 3 - 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 aquí la condición cuál va a ser, que el dato de entrada, único dato de entrada entero, pues ala, único dato de entrada entero lo leemos, este es mucho más sencillo que el otro, mucho más sencillo que el otro, condición, que ese número sea par, pues de nuevo el problema, un enunciado natural que es, el número es par, el número n es par, trasladado a condición,
00:00:01
¿cómo trasladamos a condición con los operadores de Java
00:00:29
que conocemos?
00:00:32
n es par
00:00:33
¿cómo expresamos con los operadores de Java
00:00:34
ese hecho?
00:00:41
el hecho de que n sea par
00:00:43
ahora lo tenemos que traducir
00:00:44
al lenguaje de Java
00:00:46
con los operadores, con operaciones
00:00:47
con comparadores, con operadores booleanos
00:00:49
bueno, pues ahora el problema es ese
00:00:52
traducirlo
00:00:54
¿cómo lo traduciríamos?
00:00:54
un número es par
00:00:56
si le pasa que
00:00:57
tenemos que hacer luego ya elaboraciones
00:00:58
¿cómo sabemos matemáticamente que un número es par?
00:01:01
¿cómo podemos saberlo matemáticamente?
00:01:04
divisible entre 2 significa
00:01:09
porque no hay un operador en Java que sea divisible
00:01:11
tenemos que traducir los operadores de Java que conocemos
00:01:14
¿cómo lo podemos traducir?
00:01:16
eso de ser divisible entre 2, ¿qué significa?
00:01:19
a ver, ¿cómo expresas en Java?
00:01:27
eso, lo de que n sea divisible
00:01:31
entre 2, porque no hay un operador que sea
00:01:33
es divisible
00:01:35
claro
00:01:36
que el resto de dividir
00:01:43
n entre 2 sea 0
00:01:46
entonces ya vamos avanzando
00:01:48
vale, de n ser par
00:01:50
hemos llegado a que n sea
00:01:52
divisible entre 2
00:01:54
de n ser divisible entre 2 lo vamos
00:01:55
traduciendo cada vez a un
00:01:58
enunciado que se parece cada vez más a las matemáticas
00:02:00
pues n ser divisible entre 2
00:02:02
lo traducimos a que el resto
00:02:04
de dividir n entre 2 sea 0
00:02:06
ahora ya eso va a Java
00:02:07
porque el resto de dividir n entre 2
00:02:09
lo conocemos que es el operador módulo
00:02:12
y ser igual a lo conocemos que es el operador doble igual
00:02:13
ya lo tenemos en Java
00:02:16
el resto de dividir
00:02:17
n entre 2
00:02:20
igual a 0
00:02:22
¿qué ha pasado?
00:02:24
has vuelto a entrar como tutor
00:02:29
con las credenciales que te ha dado él
00:02:31
Igual tienen que habilitarte ellos
00:02:33
Fueron los que te pidieron el usuario
00:02:43
Bueno, vale pues ya está
00:02:45
Este problema es uno de los problemas
00:02:48
Fundamentales cuando programamos
00:02:50
Que es un enunciado natural
00:02:52
Una expresión
00:02:54
Trasladarla al lenguaje de Java
00:02:55
Y aquí hemos dado saltitos
00:02:58
Hemos ido del paso
00:02:59
N es par
00:03:01
Al paso N es divisible entre 2
00:03:03
Y del paso n es divisible entre 2
00:03:05
Ya hemos dado el paso
00:03:08
El resto de dividir n entre 2 es 0
00:03:09
Y ahora ya, el resto de dividir n entre 2 es 0
00:03:11
Ya eso sí que lo sabemos programar en Java
00:03:14
Porque tenemos operador resto
00:03:16
Y operador ser igual a
00:03:18
¿Vale? Pero tenemos que ir dando esos pasos
00:03:20
Porque a veces decís
00:03:22
Ah, es que yo no sé expresar en Java
00:03:24
Lleve y hace frío para ti
00:03:26
Hombre, claro, es que lo que tienes es que irlo
00:03:28
Elaborando ese enunciado
00:03:30
Lo tienes que ir traduciendo
00:03:33
a cosas que sí que sabes expresar
00:03:34
en Java
00:03:36
¿no?
00:03:36
se forma parte de programar, precisamente es lo que estamos evaluando
00:03:39
que seamos capaces de
00:03:42
trasladar los enunciados en lenguaje natural
00:03:44
a lo que sabemos programar
00:03:46
¿vale?
00:03:47
bueno
00:03:50
entonces
00:03:51
procedimiento malo para hacer esto
00:03:53
dices
00:03:56
a ver, en Spark
00:03:57
¿cómo pongo yo que en ese apar en Java?
00:03:59
voy a chargpt, oye, ¿cómo pones que en ese apar en Java?
00:04:01
Y Chagbet te dice, hombre, pon esta condición. Ah, estupendo. Ya lo sé para siempre. Pues no hemos hecho nada porque nos hemos saltado del proceso previo de pensar, de trasladar un enunciado a las herramientas que conocemos de Java. Entonces, ese procedimiento es el que hay que entrenar. No los conocimientos. Los conocimientos nos dan igual. Hay que entrenar el procedimiento mental. Eso es lo que tenemos que entrenar poniéndolo en práctica.
00:04:03
Tú no vas a jugar al baloncesto nunca bien
00:04:29
Si no sales a correr
00:04:33
Pues tres días por semana
00:04:34
Para ganar resistencia
00:04:35
Pero luego no te van a evaluar de correr
00:04:37
Te van a evaluar de jugar al baloncesto
00:04:39
Bueno
00:04:41
Venga
00:04:42
Pues este de par en par
00:04:44
Ninguna duda, ¿no?
00:04:46
Venga, ¿a dónde nos vamos?
00:04:50
Algo así más rarito, por ejemplo
00:04:51
23
00:04:53
A ver, que me vais a
00:04:54
23, a ver que hacemos esto
00:04:56
como hacemos esto, dígame
00:04:59
claro, porque si no es par es impar, no hay tu tía
00:05:01
hombre, par o impar
00:05:07
es que son complementarias
00:05:10
si no eres par eres impar
00:05:13
no puede ser par, impar
00:05:14
o indefinido, ¿con qué comparas? pues con cero
00:05:19
vale, venga, pues nos vamos a uno
00:05:21
muy raro que me habéis dicho
00:05:25
Que era el 23
00:05:26
Tres variables
00:05:29
Venga
00:05:30
Ejercicio 23
00:05:33
Lunes
00:05:45
Y el enunciado es
00:05:45
Este
00:05:50
Vale, pues estamos en la misma historia
00:05:52
Una vez que uno ha entendido el enunciado
00:05:59
Leerte es variables
00:06:02
Que son las horas trabajadas en tres días distintos
00:06:04
Tienes que decirme
00:06:07
Si has trabajado
00:06:09
entre 8 y 20 horas
00:06:10
o no
00:06:11
eso es lo que tienes que decirme
00:06:12
vale, pues entonces, una vez que hemos entendido
00:06:14
que no hay ninguna duda, que no hay ambigüedad
00:06:17
porque si hay alguna ambigüedad
00:06:19
o algo no está claro, antes de hacer nada
00:06:20
hay que ir y decir
00:06:23
aquí esto es ambiguo, y qué pasa si no sé qué
00:06:24
y qué pasa, vale, aquí
00:06:27
no hay ambigüedad
00:06:29
nos quedamos con esto, vale, pues una vez que estamos en ese paso
00:06:31
ya, como veis
00:06:33
nos vamos al final
00:06:35
que el final es
00:06:36
¿cuál va a ser el resultado de mi programa?
00:06:38
¿qué tengo yo que obtener con esto?
00:06:41
¿qué tengo yo que obtener?
00:06:43
porque puede ser, tengo que obtener escribir en un fichero
00:06:44
tengo que obtener no sé qué
00:06:47
bueno, en este caso, ¿qué tengo que obtener?
00:06:48
me voy al final, pues lo que tienes que obtener es
00:06:50
un mensajito que te diga
00:06:52
si has
00:06:54
trabajado entre 8 y 20 horas o no
00:06:56
eso es lo que tienes que obtener
00:06:59
entonces siempre tenemos que
00:07:00
partir de
00:07:03
nuestro final, ¿qué quiero yo
00:07:04
obtener con este ejercicio?
00:07:06
Porque si empezamos a hacer cosas y no sabemos a dónde vamos, pues no llegamos a ningún lado, ¿vale? Siempre hay que tener el objetivo muy claro antes de actuar. Si no, no llegamos a ninguna parte. Pues es que estamos en las mismas una y otra vez.
00:07:08
el resultado final de mi programa
00:07:21
es mostrar un mensajito
00:07:25
y este mensajito
00:07:26
pues lo tendré que leer por teclado
00:07:29
no, por teclado no, perdón, pero seguro que tengo que leer por teclado
00:07:31
datos, voy a copiar ya el scan
00:07:33
vale
00:07:35
pues venga
00:07:39
vale, ahora ya
00:07:40
este va a ser la estructura de mi programa
00:07:42
ahora ya la siguiente pregunta es
00:07:45
resultado, ¿qué valor le doy al resultado?
00:07:47
ese es el asunto de siempre
00:07:50
Resultado
00:07:51
Pues resultado
00:07:54
¿Cuántas posibilidades tengo?
00:07:57
Para resultado puedo tener
00:07:59
Dos, que será la opción más fácil
00:08:00
Tres, cuatro, cinco
00:08:02
Como tenga cinco posibilidades
00:08:03
Ya le he liado
00:08:04
Lo puedo hacer
00:08:05
Anidando operadores ternarios
00:08:08
Pero bueno, se complicaría
00:08:10
Mejor meter un if
00:08:11
Como ya hacemos el próximo día
00:08:12
Bueno, resultado
00:08:14
¿Cuántas posibilidades tengo?
00:08:16
Esta es la opción sencilla
00:08:18
Tengo dos, menos mal
00:08:19
si has trabajado
00:08:20
esa cantidad, no, tengo dos
00:08:22
bueno, menos mal, entonces como tengo
00:08:24
dos posibilidades, esto se me va
00:08:26
a quedar como una asignación
00:08:29
muy sencilla, de dos posibilidades
00:08:30
condicionada a una condición
00:08:33
eso sí, pues para no escribir tanto
00:08:34
vamos a decir, sí, no
00:08:36
solo tenemos dos posibilidades
00:08:38
que diga sí o que diga no
00:08:42
y ahora ya, una vez que hemos identificado
00:08:44
que solo hay dos posibilidades, decimos, vale, ¿de qué depende
00:08:46
que vaya yo a una rama y asigne sí
00:08:48
o de que depende que vaya yo a otra rama y asigne no
00:08:51
pues vamos a releerlo
00:08:54
pues depende de
00:08:56
si la suma
00:08:59
de las horas que ha trabajado
00:09:01
en tres días diferentes está comprendida
00:09:03
entre 8 y 20
00:09:05
vale, pues entonces
00:09:06
primero, necesito datos para valorar esa condición
00:09:08
lo primero necesito datos
00:09:12
pues vamos a leer los datos que son tres cantidades
00:09:13
tres cantidades, tres variables
00:09:16
pues venga, tres cantidades, tres variables
00:09:17
como son números de horas
00:09:20
le pega el entero
00:09:22
pues venga
00:09:23
vamos a poner día uno
00:09:26
día dos
00:09:28
día tres
00:09:31
nombres muy mal elegidos
00:09:32
porque los elijo así
00:09:35
para no estar escribiendo un montón de tiempo
00:09:36
si esto fuera una aplicación
00:09:38
real, pondríamos horas trabajadas
00:09:40
día tal, horas trabajadas
00:09:42
o sea, un nombre de variable muy largo, no pasa nada
00:09:44
Los llamo de 1, de 2, de 3
00:09:46
Por vaguería
00:09:49
Vale, los datos de entrada
00:09:51
Los tenemos que leer
00:09:53
Me han dicho que son datos de entrada de la aplicación
00:09:54
Pues venga, leamoslos
00:09:56
En lugar de poner
00:09:58
Uy, no sé qué cosa tan bonita
00:10:00
Ahora sí, vale
00:10:04
Día 1
00:10:07
Día 1
00:10:10
Día 1 igual a
00:10:13
scan.nextIn
00:10:14
y lo mismo con día 2 y día 3
00:10:18
día 1, día 2
00:10:21
y día 3
00:10:29
vale, ya tengo los datos de entrada
00:10:33
y ahora, este es mi problema
00:10:39
este es mi problema
00:10:42
expresar la condición
00:10:45
con los recursos que tenemos
00:10:47
de operadores en Java
00:10:51
de operadores en Java
00:10:52
que refleje este hecho
00:10:54
que en los tres días
00:10:56
ha trabajado entre 8 y 20
00:10:59
o sea, enunciado es el enunciado en lenguaje natural
00:11:00
que nos es
00:11:03
que en el lenguaje nuestro natural lo entendemos perfectamente
00:11:05
trabajar entre 8 y 20
00:11:07
en los tres días, lo entendemos perfectamente
00:11:09
pero a Java hay que dárselo
00:11:11
en su lenguaje
00:11:13
bueno, pues como expresamos
00:11:14
trabajar entre 8 y 20 horas
00:11:16
en los 3 días
00:11:18
pero como mínimo 8 no es dejado
00:11:20
como mínimo 8 y como máximo 20
00:11:23
comprendido entre 8 y 20
00:11:26
ahora, esa idea que la tenemos todo claro
00:11:27
que entre los 3 días
00:11:30
la suma de los 3 días
00:11:32
haya
00:11:34
este en el intervalo 8 y 20
00:11:35
mayor o igual de 8 o mayor que 20
00:11:37
eso que lo entendemos lo que significa
00:11:39
pues no lo entendíamos, tendríamos que preguntar
00:11:42
es decir, a ver, ¿te refieres a que sea la suma de los 3?
00:11:44
O que los tres días, porque a ver, es que efectivamente el enunciado no está muy bien, porque yo he interpretado por las buenas que sumando los tres días haya trabajado entre 8 y 20, se podría interpretar que el primer día haya trabajado entre 8 y 20, y el segundo día también y el tercero también.
00:11:46
O sea, en realidad tiene dos interpretaciones
00:12:07
El enunciado no está muy afortunado escrito
00:12:09
Entonces, aquí este es el punto
00:12:11
En el que uno se iría, el que escribió el enunciado diría
00:12:13
¿Te refieres a que en el total
00:12:15
De los tres días
00:12:18
Haya trabajado entre ocho y veinte?
00:12:19
¿O que te refieres a que en cada uno
00:12:21
De los tres días haya trabajado entre ocho y veinte?
00:12:23
Vamos a suponer
00:12:26
Vamos a suponer que nos dice
00:12:27
Entonces, hombre, trabajar
00:12:29
Cada día entre ocho y veinte, pero si se toca trabajar
00:12:31
Veinte horas cada día es demasiado, entonces vamos a ponerle
00:12:33
que en el total de los tres días haya trabajado entre 8 y 20.
00:12:35
En el total de los tres días.
00:12:42
Vale, entonces ahora ya el que nos ha denunciado nos lo ha aclarado,
00:12:49
allá lo entendemos.
00:12:53
Pues ahora ya hacemos la pregunta.
00:12:54
Ahora ya entiendo la idea.
00:12:56
La suma de lo que ha trabajado en los tres días
00:12:57
tiene que estar comprendida entre 8 y 20.
00:12:59
Eso está muy bien, pero Java no le puede decir eso.
00:13:01
A Java se lo tengo que decir en su lenguaje de operadores
00:13:04
Pues hará algo cuando nos ponemos a escribirlo
00:13:06
¿Cómo pondríais esa condición?
00:13:08
¿Quién me la dicta?
00:13:11
Que me la dicte cualquiera
00:13:12
Por ejemplo
00:13:13
Por ejemplo
00:13:24
Bueno, con uno o con dos
00:13:26
Con dos en este caso
00:13:28
O sea, siempre ponemos con dos
00:13:31
Porque ahorramos tiempo
00:13:33
Solo ponemos con uno si la segunda
00:13:34
La queremos evaluar siempre porque hacemos algo
00:13:35
En este caso no tenemos nada
00:13:38
Pues por eso doblean
00:13:39
pues por eso queremos el doble and
00:13:45
para que no evalúe la siguiente
00:13:51
el doble and es la que no evalúa la siguiente
00:13:52
la que no evalúa
00:13:54
es que igual lo tienes interpretado al revés
00:13:56
pero si la idea es esa
00:13:57
es decir, trabajar entre 8 y 20
00:13:59
automáticamente nos tenemos que ir a un and
00:14:01
que es trabajar más de 8
00:14:04
y trabajar menos de 20
00:14:07
entonces automáticamente
00:14:09
del lenguaje natural
00:14:10
ya saltamos
00:14:11
a la conjunción lógica
00:14:13
que se den dos cosas simultáneamente
00:14:15
la simultaneidad se tiene que dar
00:14:17
mayor que 8 y menor que 20
00:14:20
porque si se da mayor que 8
00:14:21
pero no se da menor que 20
00:14:23
no cumple
00:14:25
y si se da menor que 20
00:14:26
pero no se da mayor que 8 tampoco cumple
00:14:29
entonces tenemos que trasladar
00:14:31
la idea exacta
00:14:33
y la idea exacta es
00:14:35
la simultaneidad de los dos
00:14:36
que la suma sea más que 8
00:14:39
y que la suma sea menor de 20
00:14:41
que puede parecer sencillo
00:14:44
pero muchas veces los cambiamos
00:14:47
el and y el or los interpretamos al revés
00:14:48
entonces en este caso que sería
00:14:50
que de 1 más de 2
00:14:52
más de 3
00:14:54
la suma de las horas
00:14:55
sea mayor o igual que 8
00:14:58
pero no es basta solo con eso
00:14:59
también porque podrían ser 27
00:15:01
y no, también tiene que ser
00:15:03
menor que 20
00:15:06
pues entonces de 1 más
00:15:07
de 2 más
00:15:10
de 3
00:15:12
menor o igual que 20
00:15:13
se tienen que dar
00:15:16
las dos
00:15:18
porque eso es lo que refleja estar comprendido
00:15:19
en el intervalo
00:15:22
estar comprendido en el intervalo es
00:15:24
ser mayor que esta y ser menor que esta
00:15:25
porque es el ejemplo que hemos dicho
00:15:28
si has trabajado 30, la primera condición es cierta
00:15:31
pero esta no
00:15:34
entonces no estás en el intervalo
00:15:35
vale, entonces ya lo hemos trasladado al lenguaje de Java
00:15:37
estar comprendido entre 8 y 20 significa
00:15:41
ser mayor que 8
00:15:43
y también y también
00:15:45
ser menor que 20
00:15:47
vale, pues estas pequeñas cosas en realidad
00:15:48
son claves, porque a veces las ponemos
00:15:53
al revés, interpretamos un or
00:15:55
donde hay un an, entonces el programa
00:15:57
obviamente no hace la rama que tiene que hacer
00:15:58
ni la rama que tiene que ir, entonces cuidado
00:16:00
siempre con
00:16:03
pensar bien las condiciones
00:16:04
vale, de hecho
00:16:06
si uno tiene dudas
00:16:12
ha puesto una condición muy grandota
00:16:14
que cree que expresa una idea
00:16:16
y tiene dudas sobre si la expresa correctamente
00:16:17
la idea que le han enunciado
00:16:20
lo normal es que
00:16:22
se haga un programita aparte
00:16:24
donde ponga la condición
00:16:26
y muestre los valores que da
00:16:27
si da true o false, true o false, true o false
00:16:30
en diferentes casos de prueba
00:16:32
y si con diferentes pruebas le dice
00:16:33
ah si, si, true o false, true o false
00:16:36
que me está dando es lo que yo espero que me dé
00:16:38
entonces casi seguro que he puesto la condición bien
00:16:39
casi seguro
00:16:43
aquí si hiciéramos casos de prueba
00:16:44
y le pusiéramos 12
00:16:46
me daría true
00:16:48
está comprendido entre 8 y 20
00:16:49
si le ponemos 14 me daría true
00:16:51
si le pusiéramos 24
00:16:54
me daría false
00:16:56
porque no está comprendido
00:16:58
pero si yo le pusiera 24
00:17:01
y aquí me hubiera equivocado
00:17:03
y hubiera puesto un or
00:17:05
porque no lo he interpretado bien
00:17:05
y le meto un 24
00:17:07
me daría true
00:17:08
entonces ahí me daría yo cuenta
00:17:09
de que estoy poniendo mal la condición
00:17:11
me daría yo cuenta, porque digo, oye
00:17:13
le he puesto 24 y me da true
00:17:15
debería darme false, ah claro
00:17:17
es que esto es un odd
00:17:19
entonces 24 es mayor o igual que 8
00:17:21
luego como este ya es true, este me da igual lo que sea
00:17:23
true o false, porque va a ser true el total
00:17:26
entonces hay veces
00:17:28
que con pruebas de los
00:17:30
casos, si la condición
00:17:32
no lo tiene muy claro, si la condición que ha puesto
00:17:34
es la que refleja la situación
00:17:36
pues hace pruebas, a ver si en todos
00:17:37
ellos encaja el resultado que obtiene
00:17:40
de verdad o mentira con el que espera
00:17:42
pues en este caso
00:17:44
la condición es esa
00:17:46
la suma de las tres tiene que ser
00:17:47
simultáneamente
00:17:49
mi igual que 8 y mi igual que 20
00:17:51
¿vale?
00:17:54
¿vale?
00:18:03
¿esta está clara también?
00:18:03
pues venga, otro ejercicio
00:18:11
¿cuál queréis?
00:18:12
el último
00:18:17
uff, pero eso es un rollo
00:18:18
hay que buscar en internet
00:18:22
las condiciones
00:18:23
de si...
00:18:25
Claro.
00:18:27
Claro.
00:18:29
Sí, sí, es que igual estoy confundiendo yo con otra idea.
00:18:43
¿Vale? ¿No?
00:18:48
Sí, sí, lo estaba yo confundiendo
00:18:54
con...
00:18:56
Sí, eso, claro, efectivamente.
00:18:58
Que la otra idea de Jaleno depende de los lados,
00:19:00
exclusivamente.
00:19:02
Me da igual si es...
00:19:03
Eso.
00:19:06
acutángulo, obtusángulo...
00:19:12
Sí, es que estaba pensando en esa idea
00:19:16
y eso se complicaría un poco más.
00:19:17
Vale, bueno, pues venga, ala.
00:19:19
Hacemos el 26.
00:19:22
¿Vale?
00:19:24
A ver...
00:19:30
Ejercicio 26.
00:19:41
Lunes, venga.
00:19:59
Vale, pues venga, a ver
00:20:00
Uy, no, no haría eso lo que yo quería
00:20:16
Que si puedes, ¿qué? ¿Perdona?
00:20:19
Vale, vamos a hacer una cosa
00:20:38
Súbelo aquí a la carpeta compartida
00:20:40
Que te lo vamos a mirar ahí
00:20:42
Vamos a ver
00:20:44
Espera, voy a parar esto un momento
00:20:45
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 7
- Fecha:
- 6 de octubre de 2023 - 14:00
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Duración:
- 20′ 49″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 397.43 MBytes