Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 3-10-23 - 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:
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
N2
00:12:35
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