Saltar navegación

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

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

9 visualizaciones

Descargar la transcripción

Venga, vamos. A ver, los operadores aritméticos, ¿está claro? 00:00:00
María, da ejemplo como delegada. 00:00:09
Los operadores aritméticos sirven para hacer expresiones con números y que a su vez dan números, eso está claro. 00:00:13
Sobre la suma y la resta, no tenemos ninguna duda, todos sabemos lo que significa el operador suma y el operador resta, todos lo sabemos. 00:00:21
Y funciona tanto con números enteros como decimales, hasta ahí ninguna duda. 00:00:29
El operador producto, todos tenemos claro lo que hace y funciona tanto con números enteros como decimales, ¿vale? 00:00:35
Sobre ahí ningún problema. 00:00:42
¿Qué pasa con este operador? 00:00:44
El operador división, ese ya no está tan claro. 00:00:47
Cuidado con este porque nos puede inducir a errores a veces en programas 00:00:52
si no tenemos claro que no es lo mismo la división entera que la división decimal, ¿vale? 00:00:56
Entonces, primera cosa que vamos a incluir aquí, ¿vale? 00:01:03
La división entera y la decimal no son la misma, no son iguales. 00:01:11
aunque ambas se hacen con el operador este de aquí, ¿verdad?, con este operador, ¿vale? 00:01:22
Entonces, cuidado con eso, ¿verdad?, si tenemos en qué momento el operador división, el operador cociente, 00:01:39
en qué momento el operador cociente se estará comportando como división entera, es decir, saca el cociente pasando del resto, 00:01:51
¿Y en qué momento se estará comportando como división decimal? 00:01:58
Es decir, haciendo la división con decimales, olvidándose del concepto de resto 00:02:02
¿En qué momento os imagináis que puede estar comportándose de una manera o de la otra? 00:02:07
¿En qué contexto? 00:02:12
En función del tipo de variable con la que opere, ¿verdad? 00:02:15
Es decir, si nosotros tenemos aquí dos variables enteras 00:02:18
Si yo, por ejemplo, hago esto, n1 igual a n1 entre n2, ¿vale? 00:02:24
Este operador es el operador división, eso está claro, sirve para dividir. 00:02:35
Ahora la pregunta es, ¿qué división es? 00:02:41
¿Me hace el cociente entero, el cociente entero, pasando del resto? 00:02:43
Porque si me hace el cociente entero, ¿cuál es el cociente de la división entre 35? 00:02:48
35, el cociente sería, si dividís 34 y 35 con la cajita de primaria, el cociente que me daría, 0, ¿no?, me daría 0, vale, pues en este caso, este está haciendo la división entera y por tanto me da 0, porque los números con los que trabaja son enteros, están declarados como enteros, 00:02:51
Entonces, esa es la información que la máquina virtual va a buscar para saber si tiene que hacer cociente entero o división con decimales, ¿vale? En este caso, como está trabajando con números enteros, me hace la división entera, claro, entonces, si yo aquí muestro n1, no hay ninguna duda que esto me va a dar 0, ¿verdad? 00:03:19
Vale, esto me da cero como me esperaba 00:03:44
Pero cuidado, porque a lo mejor 00:03:50
Podríais pensar, ah, vale 00:03:52
No te preocupes 00:03:54
Yo me pongo aquí una variable double 00:03:55
Para guardar el resultado 00:03:57
Y voy a guardarlo 00:03:59
En la variable double 00:04:02
Espera, vamos a hacerlo 00:04:04
En otro 00:04:06
Vale, decimos, vale, vale, no, yo quiero decimales 00:04:08
Quiero decimales 00:04:10
Entonces voy a guardarlo 00:04:12
En una variable double 00:04:14
N1 entre N2 00:04:15
la división con decimales 00:04:19
entre N1 entre N2 00:04:20
será 0, lo que sea 00:04:22
9 patatín, muy cerca de 0,9 00:04:24
será 00:04:27
vale, entonces, ah, lo guardo en un double 00:04:27
volvemos a ejecutar esto 00:04:30
vale, y me sigue dando 0 00:04:31
diríamos, uy, pero 00:04:35
¿cómo que me da 0 si el resultado es un double? 00:04:36
a ver, es que 00:04:39
recordad que cuando la máquina virtual 00:04:40
se encuentra una asignación con una expresión 00:04:42
lo primero que hace es evaluar 00:04:44
la expresión y concentrarse en ella 00:04:47
y le importa 00:04:49
absolutamente nada la variable 00:04:51
de la izquierda, cuando ya tiene la expresión 00:04:53
evaluada y hecha, ya se lo asciende 00:04:55
a la variable, entonces ¿qué hace la máquina virtual? 00:04:57
se va a esta expresión 00:05:00
y dice, vamos a ver, tengo que hacer 00:05:01
una división, lo que tengo que dividir 00:05:03
¿qué es? dos números enteros 00:05:05
porque me voy aquí arriba, son 00:05:07
declarados int 00:05:09
pues entonces no hay duda, me están pidiendo 00:05:11
cociente entero, ¿vale? entonces me piden 00:05:13
cociente entero, porque los números que involucra 00:05:15
son entero, me los pide 00:05:18
y entonces ahora ya 00:05:19
hago la división entera y me da cero 00:05:21
ala, esa parte ya está, ahora me voy 00:05:23
a la segunda parte, que es 00:05:25
ahora voy a asignar esto a la variable 00:05:27
me dice, ¿resultado 00:05:29
qué es? es double, ¿puedo meter in en 00:05:31
double? así que puedo 00:05:33
le pongo coma, cero, cero, cero y ya está 00:05:34
pues entonces él 00:05:37
mete el cero en double 00:05:38
promocionándolo a double 00:05:41
Es decir, poniéndole 0,000000 00:05:43
¿Vale? 00:05:46
Pero la parte decimal la hemos perdido igualmente 00:05:48
¿Verdad? 00:05:50
¿Vale? Pues primera cosa 00:05:52
El operador división 00:05:53
Se comporta 00:05:56
Como cociente entero o como división decimal 00:05:57
En función de los operadores 00:06:00
Que involucra 00:06:02
Si son enteros es cociente 00:06:04
Y luego ya que ese resultado va a una variable 00:06:05
No pasa nada, la promocionará 00:06:08
Pero la promocionará poniéndole el 0,0000 00:06:10
no se va a inventar los decimales de nuevas 00:06:11
vale, entonces si nosotros quisiéramos 00:06:14
la división decimal 00:06:17
pues entonces tendríamos que hacer 00:06:18
declarar 00:06:20
las variables como decimales 00:06:21
obviamente 00:06:25
si yo tengo aquí dos numeritos 00:06:26
de 1 igual a 34 00:06:28
y de 2 igual a 35 00:06:29
pues entonces ahora ya 00:06:33
esto sí que tiene sentido 00:06:35
resultado igual a 00:06:37
de 1 entre de 2 00:06:39
Ahora ya, en la máquina virtual ve esto 00:06:41
División, ¿qué tipo de división? 00:06:44
No lo sé 00:06:46
Voy a mirar qué es lo que tengo alrededor 00:06:47
Anda, tienes variables decimales 00:06:50
Double, pues entonces 00:06:52
División decimal, y te hace la división con decimales 00:06:54
Y una vez que la división con decimales 00:06:57
Lo guarda aquí 00:06:59
Como resultado es decimal 00:07:01
Perfectamente le cabe, no hay problema 00:07:03
Si el resultado fuera int 00:07:05
Ya sabéis lo que pasaría 00:07:07
Que el compilador me diría 00:07:09
Oye, da a Belenín, no puedo 00:07:10
Y tendríamos que hacer el casting, ¿verdad? 00:07:12
Que es lo que dijimos el último día 00:07:15
Vale, pero ahora mismo 00:07:16
Tal y como está 00:07:19
Uy, si no pongo que me lo muestre 00:07:19
Complicado 00:07:25
¿Vale? 00:07:27
Esto ya sí 00:07:35
Entonces, este operador de los aritméticos 00:07:36
Es el único que si no sois 00:07:40
Cuidadosos y tenéis las cosas claras 00:07:42
A lo mejor una aplicación no hace 00:07:44
Lo que tiene que hacer y no entendéis por qué 00:07:46
y a lo mejor es simplemente por eso, porque creéis que está haciendo 00:07:47
un tipo de división y no entendéis 00:07:50
por qué no dan decimales o no entendéis un resultado 00:07:52
y ese resultado es que no es 00:07:55
una división decimal, sino un cociente 00:07:56
y un cociente porque las variables 00:07:58
están declaradas como y, ¿vale? pues primera cosa 00:08:00
ahí clavada 00:08:02
en la cabeza, y ahora haríais 00:08:04
una pregunta, seguramente 00:08:06
¿qué sería? 00:08:08
anda, y si una variable es decimal 00:08:10
y otra es entera, ¿me deja 00:08:12
mezclar? 00:08:14
pues tiene pinta, podemos intuir que sí 00:08:15
porque como ya sabemos que existe el concepto 00:08:19
promoción automática que es cuando me hace 00:08:21
falta el int pasarlo a double, lo paso a double 00:08:23
sin problema, pues seguramente 00:08:25
también sea capaz de hacerlo ahí 00:08:27
¿verdad? vamos a probar ahora 00:08:28
a la variable resultado 00:08:30
yo voy a hacer 00:08:33
n1, que n1 está declarada 00:08:34
como entera y vale 00:08:37
34, n1 00:08:38
entre d2 00:08:40
que d2 está declarada como 00:08:42
decimal y vale 35 00:08:44
el compilador no da problemas 00:08:47
estamos haciendo una operación 00:08:50
con variables 00:08:52
que son de dos tipos de datos diferentes 00:08:53
entera y decimal 00:08:56
no pasa nada, el siempre 00:08:58
un entero lo puede pasar a decimal, siempre 00:09:00
poniendo coma 0 0 0 00:09:02
pues lo pasa a decimal, estupendamente 00:09:04
el n1 que es 34 lo pasa a 34 00:09:06
punto 0 0 0 0, lo pasa a decimal 00:09:08
y hace la división 00:09:10
¿vale? 00:09:12
No lo he mostrado 00:09:13
El profil este 00:09:20
¿Vale? 00:09:30
Espera, espera, espera 00:09:36
Que lo estoy diciendo mal 00:09:37
Espera un segundito 00:09:39
Resultado lo tengo como 00:09:40
Espera, espera, espera 00:09:44
Se me ha ido la pinza 00:09:56
Lo he 00:09:57
Entre dedos 00:09:58
Casting 00:10:06
Lo ha tratado como división entera 00:10:10
D2 es 35 00:10:18
Vamos a poner aquí esto 00:10:29
Porque hay una cosa que no os estoy diciendo bien 00:10:56
¿Vale? 00:11:00
Esto de aquí 00:11:03
Control X 00:11:04
¿Vale? 00:11:10
Y cuando mezclamos tipos 00:11:16
¿Vale? 00:11:27
Cuando mezclamos tipos 00:11:31
os he dicho que la variable entera la promociona 00:11:32
y aquí me lo está haciendo al revés 00:11:35
la decimal es la que está quitándole la parte entera 00:11:40
entonces vamos a dejarlo así en interrogación 00:11:43
porque hay una cosa que me está resultando un poquito confusa 00:11:47
vale, entonces el operador división 00:11:50
lo que hay que tener claro es que es de los aritméticos 00:11:55
es el único que puede generar un poquito de confusión 00:11:57
en función de las variables con las que operemos 00:12:02
o hace división entera 00:12:05
o hace división decimal, depende de los operandos 00:12:06
con los que trabaje 00:12:08
este operador es un operador 00:12:09
que usamos continuamente 00:12:13
el operador resto 00:12:14
entre dos operandos 00:12:16
todo el mundo sabe lo que es el operador módulo 00:12:18
o el operador resto 00:12:20
es el resto de la división entera 00:12:21
resto de división entera 00:12:24
bueno, dime 00:12:26
lo mismo te salto de error porque arriba 00:12:28
tenías ya 00:12:30
definido que N1 es igual a 00:12:31
N1 entre 00:12:34
puede ser, sí 00:12:36
sí, lo que pasa es que ahora como me cuesta 00:12:42
pensar y hablar a la vez, prefiero dejarlo 00:12:44
aparcado, ¿vale? y luego 00:12:45
lo miro, pero sí, sí, sí, hay alguna cosa 00:12:47
aquí que me ha resultado un poquito contradictoria 00:12:49
pero ya me pararé 00:12:52
sobre ello para no ponernos 00:12:53
aquí a... pero puede ser, puede ser 00:12:55
que vaya por ahí, ¿vale? 00:12:57
vale, el operador este 00:13:00
módulo 00:13:01
este operador es muy útil 00:13:02
ayer seguramente en alguno de los ejemplos 00:13:05
ya lo usasteis 00:13:08
para establecer la condición 00:13:10
de si un número es múltiplo de otro 00:13:13
pues está claro 00:13:15
si el resto de un número entre otro es cero 00:13:16
entonces el operador resto de la división entera 00:13:18
se usa mucho 00:13:21
para hacer muchas cosas 00:13:23
¿vale? 00:13:25
todos sabéis lo que significa 00:13:26
el resto de la división entera 00:13:28
y que el operador es este 00:13:29
bueno, pues en cuanto a los de asignación 00:13:30
los aritméticos ya están, no hay mucho que ver 00:13:33
operador de asignación 00:13:35
tenemos perfectamente lo que significa 00:13:37
no hay nada que ver, ¿vale? 00:13:40
a ver 00:13:42
forma abreviada 00:13:42
que la vais a ver 00:13:45
muchísimo, para hacer asignaciones 00:13:47
forma abreviada 00:13:50
ayer la usasteis ya 00:13:51
en alguno de los vídeos que grabasteis con Estefano 00:13:53
esta la vais a usar continuamente y hay que empezar 00:13:55
a manejarla, hay veces 00:13:57
que a la hora de asignar 00:13:59
una variable 00:14:02
en la propia expresión 00:14:04
aparece esa variable 00:14:06
¿vale? 00:14:08
entonces se usa mucho 00:14:10
una forma compacta 00:14:12
que vais a ver 00:14:13
muy a menudo 00:14:14
vale 00:14:17
lo podríamos llamar 00:14:39
asignación compactada 00:14:42
no es que tenga nombre 00:14:43
pero bueno 00:14:44
aquí lo que dice 00:14:45
lo que dice el texto 00:14:50
todo el documento que tengo escrito, es que se puede combinar la asignación con operadores 00:14:53
para hacer más compacta la operación de asignación. 00:14:58
¿Vale? Entonces, ¿esto cómo funciona? 00:15:02
A ver, la asignación siempre es a una variable, eso está claro, ¿verdad? 00:15:06
A una variable le asignamos a una expresión. 00:15:11
Pero una situación que se da muy a menudo, muy a menudo, 00:15:14
es que esta expresión de aquí involucra, involucra la propia variable x, ¿vale? 00:15:18
Eso puede ocurrir mucho, la propia variable x está involucrada en la expresión, ¿vale? 00:15:35
Podría ser x más 3, el ejemplo más sencillo, y eso no pasa nada, porque la propia variable está involucrada aquí, 00:15:40
ya sabemos cómo funciona, la máquina virtual, de la izquierda se olvida, 00:15:48
se pone a evaluar la expresión 00:15:52
cogiendo una copia 00:15:55
del valor que hay aquí, cogiendo una copia 00:15:57
¿tiene 7? vale, coge una copia 00:15:59
de 7, evalúa 00:16:01
7 más 3, 10, o lo que sea 00:16:02
si es muy grandote, una vez que 00:16:05
tiene ya el valor final 00:16:07
se va a esta variable 00:16:09
y solo ya al final se va a esta variable 00:16:11
y le mete el valor pisando lo que hubiera 00:16:13
en este caso 10, vale 00:16:15
luego es una situación muy habitual que esta 00:16:17
expresión involucre a una variable que está aquí 00:16:19
Vale, pues esto normalmente se suele compactar de la siguiente manera 00:16:21
Que mi operación es x más 3 00:16:27
Pues quitamos el operador, la expresión sería x más 3 00:16:35
La idea sería lo siguiente 00:16:39
Mi expresión es x más 3 00:16:41
Y este x más 3 se lo quiero asignar a la variable x 00:16:44
Pues pongo el igual, ahí delante 00:16:49
perdón, detrás 00:16:54
lo pongo ahí 00:16:56
y digo, olvídate del igual 00:16:58
haz mi operación 00:17:00
y asígnasela a la variable que esté más cerca 00:17:02
del igual 00:17:05
y esto ya me sobra 00:17:06
entonces cuando vemos el operador 00:17:08
más igual 00:17:13
menos igual 00:17:15
por igual, división igual 00:17:16
por ciento igual 00:17:19
cuando vemos esto junto, que lo podemos ver así junto 00:17:20
en cualquier expresión 00:17:23
lo podemos ver así. Esto significa, significa, haz la operación olvidándote del igual. 00:17:25
Quítalo y haz la operación olvidándote del igual. Esto. Una vez que ya has hecho la 00:17:34
operación ignorando el igual, ahora ya ese valor que te ha dado, asígnaselo a la variable 00:17:40
que está justo pegadita a donde te has encontrado el operador. Asígnaselo a X. Eso significa, 00:17:48
bueno, pues esto 00:17:54
se usa continuamente porque 00:17:57
es más rápido de escribir 00:17:59
en expresiones más complejas 00:18:01
y siempre lo vais a encontrar así 00:18:03
un operador seguido del igual 00:18:05
y la forma de interpretar 00:18:07
eso es esa, el truco más fácil es 00:18:10
vale, yo veo aquí más igual por igual 00:18:12
no me lío, donde yo sea 00:18:14
donde yo vea ese operador 00:18:15
tapo el igual 00:18:17
como si no existiera 00:18:19
tapo todos los iguales y es que este operador 00:18:20
los tapo, ¿vale? 00:18:23
hago la operación resultante 00:18:26
hago la operación 00:18:28
ya tengo el valor 00:18:29
pues ese valor me va a la variable 00:18:31
que esté a la izquierda donde estaba ese operador 00:18:34
eso significa 00:18:36
¿vale? 00:18:37
entonces, si a n le queremos quitar 1 00:18:41
pues haríamos esto 00:18:43
¿vale? 00:18:46
entonces, esto ya es una asignación 00:18:49
esto no es que luego se le asigne además a otra cosa 00:18:50
no, esto ya es una asignación 00:18:53
esta expresión sería exactamente igual a hacer 00:18:56
n-1, vale, quito el igual, n-1 00:19:00
y ahora n-1 a quién se lo asigno 00:19:03
a la variable que tengo a la izquierda del operador, a n 00:19:05
vale, así puedo deshacer este operador 00:19:09
y esto es igual que una asignación 00:19:13
pero esta sentencia yo me la encuentro suelta 00:19:15
vale, y puede ser esto arbitrariamente complejo 00:19:17
Podríamos tener x más igual 3 por x menos n. 00:19:35
Bueno, pues da igual, yo quito el igual. 00:19:46
Me queda una expresión, la evalúo. 00:19:49
Y ahora el resultado de toda esa expresión va a parar a x. 00:19:52
Entonces, hombre, el objetivo cuando uno construye expresiones es hacer cosas más o menos que se entiendan. 00:19:58
cuando uno le queda una expresión muy grande 00:20:02
a lo mejor es más clara si la divide 00:20:03
en expresiones en diferentes líneas 00:20:05
y la va construyendo 00:20:07
pero bueno, el funcionamiento de los operadores es ese de ahí 00:20:08
que os digo 00:20:11
uy, que asusto 00:20:13
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
9
Fecha:
3 de octubre de 2023 - 14:18
Visibilidad:
Público
Centro:
IES ROSA CHACEL
Duración:
38′ 39″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
717.02 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid