Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Clase 6-10-23 - 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 6 de octubre de 2023 por Raquel G.

7 visualizaciones

Descargar la transcripción

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
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid