Java Básico 5 operadores - 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:
Vale, voy a grabar esta clase, por lo tanto, si habláis, me autorizáis a grabar vuestra voz en esta grabación, ¿vale?
00:00:01
Entonces, hemos estado viendo qué es una expresión, hemos estado viendo qué tipo de operadores hay, qué tipos, ¿vale?
00:00:10
Cómo se llaman los operadores, qué criterios son para clasificarlos.
00:00:17
Vamos a ver ahora el tipo de una expresión.
00:00:21
No tipos de expresión en el sentido de que hay distintos tipos,
00:00:23
O sea, el tipo en el sentido de que es un int, un var, un charro,
00:00:26
cosas por el estilo.
00:00:30
Hemos dicho que una expresión, al fin y al cabo,
00:00:31
cuando yo la evalúo, pues me devuelve un tipo.
00:00:34
¿Vale?
00:00:38
Entonces, si yo puedo pillar una expresión
00:00:39
y calcular un poquito el resultado que me va a dar
00:00:42
y decir, ay, mira, el resultado es 3,4,
00:00:46
pues esto que es lo que me va a dar es un double.
00:00:48
¿Vale?
00:00:51
O me da un entero, pues digo un entero.
00:00:51
O me da un string, un poquito esto, lo hemos hecho,
00:00:53
nosotros. ¿Os acordáis cuando yo decía en una sola línea, en un system.auto.println, decía
00:00:56
el área del cuadrado es, y luego ponía más lado por lado? En un cierto sentido, ahí estábamos
00:01:04
hablando diciendo, mira, que antes hace lado por lado, y como es int por int, el resultado es un
00:01:13
luego hace más la frase que viene antes, y como es un string más un int, el resultado es un string, ¿vale?
00:01:19
Ya allí estábamos hablando del tipo de expresión, ¿sí?
00:01:28
O cuando hemos hecho el perímetro del lado es lado más lado más lado más lado,
00:01:32
no me acuerdo si era un triángulo o un treslado o lo que era,
00:01:38
pues, y vimos que en vez de ponernos 2 más 3 más 4, nos ponía 234, ¿sí?
00:01:41
y ahí razonamos y decimos, claro, como esto es un string, le sumo un int,
00:01:47
pues todo esto es un string, le sumo otro int, todo esto es un string,
00:01:52
le sumo otro int, todo esto es un string.
00:01:55
Allí es razonar sobre el tipo de la expresión.
00:01:57
Para cambiar el tipo de la expresión tengo que pensar el operador,
00:02:00
en qué orden se ejecuta y quién son sus parámetros o sus operandos
00:02:04
para sostancialmente entender qué es esto.
00:02:13
Entonces vimos, por ejemplo, que agrupábamos lado, más lado, más lado.
00:02:17
Y entonces, haciendo así, era int, más int, más int.
00:02:21
El resultado era un int y luego lo sumamos.
00:02:24
¿Sí? ¿Os acordáis de todo esto?
00:02:27
Vale, aquí es lo mismo.
00:02:28
Ahora, dentro de Java hay un margen de posibilidad de poder modificar el tipo, de jugar con los tipos.
00:02:31
O sea, que yo puedo almacenar, por ejemplo, un tipo dentro de otro tipo siempre que sea compatible.
00:02:41
La primera forma de hacer esto es una conversión automática o implícita.
00:02:51
Esto pasa cuando hay un tipo compatible más pequeño y lo queremos tratar como un tipo compatible más grande.
00:02:59
Por ejemplo, si yo tengo un float
00:03:09
Un float se puede almacenar en un double
00:03:12
¿Por qué? Porque el float ocupa 4 bytes
00:03:17
Es preciso 4 bytes
00:03:19
Un double es preciso el doble
00:03:21
Entonces cualquier número que yo pueda representar con un float
00:03:23
Lo puedo representar con un double
00:03:27
¿Vale?
00:03:29
Entonces aquí, por ejemplo, tenemos este ejemplo
00:03:30
Tenemos float n1 es igual a 3.4
00:03:32
En realidad 3.4 sería un double
00:03:34
Aquí debería poner un f
00:03:36
¿Vale? Se me ha olvidado
00:03:37
el 3.4 va en N1
00:03:39
ahora creo double N2
00:03:44
N2 es igual a N1
00:03:46
yo estoy haciendo que un valor float
00:03:47
guardándolo dentro de un double
00:03:49
pues esto me va a hacer
00:03:51
una conversión automática a Java
00:03:54
y no le da problemas
00:03:55
en realidad en este código
00:03:57
me daría problemas en la primera línea
00:04:00
3.4 me diría este es un double
00:04:01
lo estás metiendo en un float
00:04:04
y como el double se representa
00:04:06
con 8 bytes
00:04:08
y tú lo estás guardando en un espacio
00:04:09
de 4 bytes, no lo puede hacer.
00:04:12
Entonces me tienes
00:04:15
que decir explícitamente que esto sea un
00:04:16
3,4 pero como float.
00:04:18
¿Sí? Porque os recuerdo
00:04:21
que 3,4 es un literal de dado.
00:04:22
¿Sí? Entonces aquí
00:04:25
es un pequeño error.
00:04:26
Vale. Estas son cosas automáticas.
00:04:28
Cuando paso de algo
00:04:30
más pequeño a más grande
00:04:31
me funciona. Podría hacer
00:04:34
int
00:04:35
edad es igual a 3L, punto y coma.
00:04:40
No, porque 3L es un long, es más grande
00:04:47
que un int, por lo tanto no lo puede hacer. ¿Podría hacer a long
00:04:51
n es igual a 3? Sí.
00:04:55
Porque long n es un long, 3 es un int, pero
00:04:59
un int es más pequeño, es un entero, es compatible, entonces puede entrar
00:05:03
en el último. Cuidado que tienen que ser compatibles. No puede hacer
00:05:07
int n es igual a gato
00:05:11
gato no es compatible
00:05:13
¿qué hago yo para transformar gato
00:05:16
en un número y guardarlo en un entero?
00:05:18
al revés
00:05:21
se puede hacer
00:05:23
desde un tipo compatible más grande a uno más pequeño
00:05:24
pero
00:05:28
en un cierto sentido
00:05:29
yo tengo que avisar a Java
00:05:30
que sé los peligros
00:05:33
de hacer esta operación
00:05:36
y que yo como programador la autorizo
00:05:37
Y la debería autorizar si, solo si, sé lo que estoy haciendo.
00:05:40
Si uso números decimales muy poco precisos, 3,4, 9,7, un solo decimal,
00:05:47
pues pasarlo de double a float no voy a perder nada.
00:05:57
Sí, pero soy un físico y estoy calculando partículas,
00:06:02
la posición de las partículas y la tengo que
00:06:07
guardar
00:06:09
su posición con
00:06:11
52 decimales
00:06:12
entonces pasar
00:06:15
de un double a un
00:06:17
a un float me puede
00:06:19
dar problemas, porque no todos
00:06:21
los números que se puedan representar
00:06:23
como float, como double, se pueden
00:06:25
representar como float
00:06:27
¿se entiende?
00:06:28
hay bastante más números
00:06:30
representables como double
00:06:33
que como float, ¿cuántos más?
00:06:35
¿El doble?
00:06:39
Pregunta.
00:06:42
No lo sé exactamente, pero por cada bit que yo añado,
00:06:49
en principio hago el doble de posibles números.
00:06:53
Pensad un float así.
00:06:57
Si ahora le añado un bit,
00:06:58
tengo todos los números que podía hacer antes con un 0 delante
00:07:00
y todos los números que podía hacer antes con un 1 delante.
00:07:03
Por tanto, ahora tengo el doble, añadiendo un bit.
00:07:07
¿Vale?
00:07:10
Pero no estoy añadiendo un bit
00:07:10
Estoy añadiendo 4 bytes
00:07:12
¿Vale?
00:07:15
8 más 8 más 8 más 8
00:07:17
64 bits
00:07:18
Y por cada bit que añado es un por dos
00:07:20
Entonces es por dos, por dos, por dos, por dos
00:07:23
Por dos, por dos, por dos, por dos
00:07:24
64 bits
00:07:25
¿Sí? Mucho más
00:07:26
¿Entiendes?
00:07:29
No sé si es exactamente así, pero voy a dar los videos
00:07:32
Casteed explicitas
00:07:34
¿Vale? Entonces
00:07:37
Cuando yo quiero hacer esta cosa
00:07:38
quiero, oye, tengo un
00:07:40
double y lo quiero guardar
00:07:42
en un float, tengo que decirle
00:07:44
explícitamente al programa
00:07:46
oye, yo como programador
00:07:48
me pillo la responsabilidad
00:07:50
de que luego no funcione nada y te digo
00:07:52
hazlo. Entonces él me dice
00:07:54
vale, tú me lo dices, lo has
00:07:56
puesto tú explícitamente, pues
00:07:58
te creo y lo hago.
00:08:00
Pero ten cuidado porque
00:08:02
podrías perder precisión.
00:08:04
Como sea, que por ejemplo
00:08:06
tengo el double n1, 3, 1, 4, el float n2,
00:08:08
puedo decir que n2 es igual a n1,
00:08:12
pero le digo explícitamente, trátame n1 como float.
00:08:15
Este paréntesis float paréntesis se llama cast explícito.
00:08:32
¿vale? Hacer una
00:08:38
un cambio
00:08:40
de tipo, desde un tipo a otro
00:08:42
se dice casting
00:08:44
en javiano
00:08:45
¿vale? En el mundo de Java
00:08:48
o de la programación, ¿sí?
00:08:50
Entonces, y aquí estoy haciendo
00:08:52
un cast de un double a float
00:08:53
¿sí?
00:08:56
Él sabe, va a perder precisión
00:08:58
según que el número es este
00:09:00
de aquí, no será el mismo
00:09:02
¿vale? Será un número distinto
00:09:04
pero lo hace
00:09:06
puedo hacer cast
00:09:08
por ejemplo de double a int
00:09:09
porque ya un double
00:09:11
decirle, oye eres un int
00:09:14
y guardarlo en un int
00:09:16
pero eso quiere decir que pierdo toda la parte
00:09:17
decimal
00:09:20
si yo tengo 3,4 y lo casteo a int
00:09:20
lo que obtengo es 3
00:09:24
he perdido precisión
00:09:25
pues lo mismo puede pasar entre double y float
00:09:27
a lo mejor yo tengo el 3.6798
00:09:30
53634444
00:09:32
34444
00:09:34
y cuando lo paso a float no es el mismo número
00:09:35
a lo mejor ha redondeado por arriba o por abajo
00:09:38
o a lo mejor no tiene
00:09:40
todos estos decimales, he perdido
00:09:42
algo, pero lo hace
00:09:44
porque yo explícitamente le he dicho lo puede ser
00:09:46
¿entiendes?
00:09:48
entonces, automáticas
00:09:51
o implícitas
00:09:52
cuando no pierdo nada
00:09:54
explícita, cuando dice
00:09:55
oye, perdí algo, él me da error si no pongo
00:09:58
este float, pero yo le digo, hágale
00:10:00
si hay error, no te preocupes, que sé yo
00:10:02
como es de doubles, estoy seguro que nunca
00:10:04
será algo muy muy preciso
00:10:06
pues puedo permitirme de pasar la flor y si no están los no factibles vale algunos casting de
00:10:07
algunos cambios de conversión no se pueden hacer por ejemplo internet es igual a 10 string de
00:10:15
nombres igual a pp menos n no lo puede dar porque él el operador menos vale se hace entre tipos
00:10:21
numéricos. Entonces,
00:10:32
el menos acepta un int.
00:10:34
Sí, es un operador binario,
00:10:36
necesita dos expresiones. Por un lado
00:10:37
tiene un int, ¿vale? Fenomenal.
00:10:40
¿Qué tengo al otro lado? Un string.
00:10:42
No está definido un operador
00:10:44
que pille string menos
00:10:46
int. Y por lo tanto
00:10:48
me da un error. Dice, no sé qué hacer.
00:10:50
¿Qué quiere decir gato menos un?
00:10:52
También, entre tipos compatibles
00:10:58
pero perdiendo precisión
00:11:00
y sin casting explícito me va a dar
00:11:02
problemas, ¿vale? Si yo hago
00:11:04
int n es igual a 170, es un entero
00:11:06
byte k es igual a n
00:11:08
esto estaría perdiendo
00:11:10
precisión porque entero son 4 bytes
00:11:11
y byte es un byte
00:11:14
y entonces me diría
00:11:15
no, no se puede hacer, como no le he puesto
00:11:18
el casting explícito
00:11:20
no me va a funcionar
00:11:21
si hago el casting explícito probablemente sí
00:11:23
pero me pueden salir cosas muy raras
00:11:26
¿vale? porque va a perder
00:11:28
datos y probablemente
00:11:30
como capa o sea byte va de menos 128 hasta más 127 si yo le pongo 170 lo que hará es
00:11:31
pillarme los 4 bytes pillar de estos 4 bytes sólo un byte y este byte pasarme la byte entonces me
00:11:42
saldrá un número absurdo que no tiene nada que ver con 170 dudas vale operadores que están en
00:11:48
en Java que existen. Estos
00:12:01
cinco ya los conocéis.
00:12:03
El que conocéis menos es el módulo,
00:12:05
pero ya hemos hecho ejercicios y ya lo hemos
00:12:07
utilizado alguna vez, por lo tanto, ahora ya estáis
00:12:09
en el mundo de la persona que saben que es
00:12:11
un módulo. Es decir, el
00:12:13
resultado, el resto de una operación,
00:12:15
de una división entera.
00:12:18
¿Sí? Lo hicimos también aquí en la pizarra,
00:12:19
si os acordáis, que cuando hago módulo
00:12:22
un número, siempre el resultado
00:12:23
será entre cero y ese número
00:12:25
menos uno. ¿Sí? Vale.
00:12:27
Luego están operadores lógicos o booleanos. Estos operadores lógicos lo
00:12:29
que hacen es pillar valores de verdad y combinarlos entre ellos. O sea, verdadero
00:12:35
y falso, y el resultado será verdadero o falso.
00:12:41
Ahora casi vamos a hacer una tabla.
00:12:45
Elend
00:12:57
el end
00:13:00
el end es un operador
00:13:04
que puede pillar true o false
00:13:09
y true o false
00:13:11
es un operador
00:13:14
que pilla binario
00:13:16
pilla dos funciones
00:13:18
dos expresiones, ¿lo conocéis?
00:13:20
¿lo habéis visto alguna vez en la vida?
00:13:22
¿eh?
00:13:25
no, vale
00:13:26
si esto y esto
00:13:27
son verdaderos, el resultado es verdadero.
00:13:30
En todos los otros casos. Es fácil. O sea que
00:13:36
una operación en n es verdadera si y solo si
00:13:41
las dos expresiones que tiene son verdaderas las dos.
00:13:46
A la vez.
00:13:50
El or es también un operador
00:13:55
binario que es verdadero
00:14:04
si al menos una de sus expresiones es verdadera.
00:14:10
Es decir, que si esta es verdadera y esta es verdadera,
00:14:14
ahora es verdadero.
00:14:18
True or false, verdadero.
00:14:20
False or true, no false, true, es verdadero.
00:14:23
Solo en el caso en que los dos sean falsas, es falso.
00:14:28
¿Sí?
00:14:36
Y luego está el not, este símbolo aquí,
00:14:37
que es un ario
00:14:41
y prefijo
00:14:43
se pone delante de una expresión
00:14:44
y sustancialmente
00:14:47
el not
00:14:49
lo que hace es que si
00:14:49
si es true o no es false
00:14:53
dice false
00:14:57
cambia
00:14:58
el valor
00:15:00
booleano
00:15:02
como solo hay true o false
00:15:03
si
00:15:04
dudas hasta aquí
00:15:07
tengo un problema
00:15:08
que no se verá esto en los
00:15:11
en el vídeo
00:15:13
pero tanto vosotros lo habéis tomado a puntas
00:15:13
ningún problema
00:15:17
vale
00:15:18
estos son los operadores
00:15:20
booleanos, si os fijáis hay dos tipos
00:15:25
de AND, dos tipos de OR
00:15:27
nosotros siempre usamos el doble
00:15:29
vale, la diferencia
00:15:31
entre esto
00:15:33
es que esto se llama lazy
00:15:34
en vez de este de aquí se llama normal
00:15:37
vale, AND lazy
00:15:39
o end normal. ¿Qué hace el end lazy?
00:15:41
El end lazy, cuando tú
00:15:43
haces un end, tienes dos expresiones.
00:15:45
Expresión 1, end, expresión
00:15:47
2. ¿Vale? Lo que va a
00:15:49
hacer es mirar la expresión
00:15:51
1. Si la expresión
00:15:53
1 es falsa,
00:15:55
no necesita ir a evaluar
00:15:57
la segunda expresión.
00:15:59
Ya sabe que el resultado es falso.
00:16:01
Entonces ahorra tiempo.
00:16:03
No evalúa la segunda expresión
00:16:05
y ya te da el resultado falso.
00:16:07
Mientras que un end solo,
00:16:09
Evalúa las dos
00:16:10
Y luego te dan un resultado
00:16:12
Y lo mismo
00:16:14
El or lazy
00:16:15
Si
00:16:16
Una
00:16:17
Si la primera
00:16:19
La primera expresión que evalúa
00:16:21
Es true
00:16:24
Él sabe que el resultado va a ser true
00:16:24
Independientemente del valor de la segunda
00:16:26
Por lo tanto
00:16:29
No evalúa la segunda
00:16:30
Y hace la true
00:16:31
¿Se entiende?
00:16:31
Esta es la diferencia
00:16:34
Entre poner uno o dos
00:16:35
Como con dos
00:16:37
Funciona mejor
00:16:38
pues pongo normalmente dos
00:16:39
el uno lo pongo solo
00:16:41
si hay alguna situación en mi vida
00:16:42
en el que tengo
00:16:45
sí o sí, quiero sí o sí
00:16:47
evaluar las dos expresiones
00:16:49
antes de decir si true o false
00:16:51
entonces en ese caso
00:16:53
uso el end o el off, sí o no
00:16:55
¿Dudas?
00:16:57
Vamos a los operadores de comparación
00:17:01
¿Vale? Se pueden comparar
00:17:05
entre ellos varios tipos, como enteros, float, double, char,
00:17:07
y cosas por el estilo.
00:17:13
El primer operador es el igual igual, ¿vale?
00:17:15
Cuidado, es distinto del igual a secas, ¿vale?
00:17:20
Nosotros hemos usado el operador igual a secas en las variables
00:17:24
int var es igual a 3, ¿vale?
00:17:27
Y ese operador, ese igual, es un operador de asignación.
00:17:31
Es asignarme este valor a esta variable.
00:17:35
Mientras aquí utilizamos otro símbolo que es igual, igual, que es un operador de comparación
00:17:39
para ver si lo que está a la izquierda es igual a lo que está a la derecha.
00:17:44
Si son iguales, devuelvo true.
00:17:49
Si son distintos, devuelvo false.
00:17:52
Entonces, 3 igual, igual a 3.
00:17:56
Fácil.
00:18:04
Cuidado, esto funciona
00:18:05
Bien con todo
00:18:08
Excepto
00:18:10
Con la string
00:18:12
En realidad, funciona bien
00:18:13
Con todo, excepto que con objetos
00:18:16
String es un objeto
00:18:18
¿Vale? Entonces
00:18:20
Con string el igual igual no se usa
00:18:21
O se usa si se sabe
00:18:24
Que es, ¿vale? Pero hasta que no
00:18:26
Veremos los objetos, no sabremos
00:18:28
Que es como funciona el igual igual
00:18:30
Entonces, entre dos string
00:18:31
no uso el igual-igual.
00:18:34
¿Vale?
00:18:37
Entre todos los tipos primitivos
00:18:38
sí que puedo usar el igual-igual.
00:18:40
¿Vale?
00:18:42
Not igual. ¿Qué será esto?
00:18:43
Es distinto.
00:18:47
Es al revés del otro.
00:18:50
Si igual-igual
00:18:53
daría true, not igual daría falso.
00:18:54
Y al revés. Me estoy preguntando
00:18:57
si esta expresión
00:18:58
son distintas. Si son distintas,
00:19:00
true. Si son falsas, si son
00:19:02
iguales, falsas. ¿Vale?
00:19:04
y al revés de la anterior.
00:19:06
Mayor.
00:19:08
Si lo de la izquierda, la expresión de la izquierda,
00:19:12
es mayor que la de la derecha, dará true,
00:19:14
y si no, dará false.
00:19:17
Fijaos, mayor estricto.
00:19:19
Si son iguales, queda.
00:19:21
Tres mayor que tres.
00:19:25
Falso.
00:19:27
False.
00:19:29
Menor, lo mismo.
00:19:31
Pero al revés.
00:19:33
Luego está el mayor igual,
00:19:34
que quiere decir, es true.
00:19:36
si lo de la izquierda
00:19:39
es mayor de lo de la derecha
00:19:41
o si son iguales
00:19:43
y
00:19:45
el menor igual también
00:19:47
¿se entiende?
00:19:48
dudas, preguntas
00:19:50
vale
00:19:53
me salto esto
00:19:54
lo veremos
00:19:57
hoy, pero un poquito más tarde
00:19:58
y a nivel de bits
00:20:01
no lo veremos
00:20:03
estas son operaciones que se pueden hacer
00:20:04
con los bits
00:20:07
de una variable, ¿vale?
00:20:08
Y, sustancialmente, se llaman shift
00:20:10
porque mueven los bits a la derecha o a la izquierda.
00:20:12
Hay algunas operaciones en las que esto es fundamental
00:20:16
e interesantísimo, ¿vale?
00:20:18
Pero nosotros no vamos, sustancialmente,
00:20:21
a utilizar los bits en la vida, ¿vale?
00:20:23
Vosotros allá afuera, en alguna empresa
00:20:27
que toquéis esto, puede ser.
00:20:29
A mí lo que me interesa es que sepáis
00:20:32
que hay operadores que toquetean los bits, ¿vale?
00:20:33
Pero no los vamos a ver
00:20:38
¿Sí?
00:20:40
Vale
00:20:44
Entonces, vamos a hacer
00:20:44
Alguna prueba
00:20:46
La hago aquí
00:20:47
Porque así lo hago así
00:20:49
Con un poco de suerte
00:20:55
Si escribo aquí
00:20:58
Se graba
00:20:59
Entonces
00:21:00
Vamos a hacer, por ejemplo
00:21:02
Dos es mayor
00:21:05
Que tres
00:21:07
¿Qué tipo tiene esta expresión?
00:21:09
Suspenso
00:21:19
¿Qué tipo tiene esta expresión?
00:21:20
Buriano
00:21:24
¿Sí?
00:21:25
Contestaba preguntas, cuidado
00:21:27
¿Y cuánto vale?
00:21:28
False
00:21:32
Esto de aquí, diría, no, dos no es mayor que tres
00:21:33
False
00:21:36
Cinco más siete
00:21:37
Mayor o igual
00:21:42
6 más 6
00:21:44
¿Qué tal?
00:21:48
¿5 más 7 cuánto es?
00:22:03
12
00:22:06
¿Es mayor o igual que 12?
00:22:07
Sí, true
00:22:10
¿De acuerdo con esto?
00:22:11
Vale
00:22:14
¿Qué tipo tiene esta expresión?
00:22:14
Bulear
00:22:36
El tipo es boolean, siempre boolean. Al final, si lo hago bien, me da un true o un false.
00:22:36
¿Y qué me da? Esta habíamos dicho que era false.
00:22:42
Entonces, hasta sin ir a mirar esto, podría decirte que es false.
00:22:50
Porque false y false da la false y false y true da la false.
00:22:56
Si no fuera lazy, o sea con un end solo, pues entonces evaluaría esto también, esto sería true.
00:23:01
Luego dice verdadero y falso, pues falso.
00:23:12
¿Sí?
00:23:20
Sí.
00:23:21
¡Borra!
00:23:24
¡Borra!
00:23:25
¡No, no!
00:23:27
¡Pulá!
00:23:29
¡Pulá!
00:23:30
¡Pulá!
00:23:32
¡Borra!
00:23:33
¿Qué sería tu?
00:23:36
¿Qué era tu capítulo?
00:23:41
¿Cómo se llama? ¿Puedo decir un caso sobre esto?
00:23:43
Mámer
00:23:45
Píter, hacer, seleccionar, seleccionar, espera
00:23:46
Ahí
00:23:56
Ok, ahora estoy de acuerdo
00:23:58
¿Y esto?
00:24:00
Sería true.
00:24:02
Sería true.
00:24:07
¿Vale?
00:24:08
Es un or.
00:24:09
Entonces es falso solo si las dos expresiones son falsas.
00:24:10
Falso o verdadero.
00:24:16
Verdadero.
00:24:18
¿Sí?
00:24:21
¿Dudas?
00:24:22
Pero ahí aunque es doble, está evaluando las dos.
00:24:23
Si es doble, antes evalúa esta.
00:24:26
Ve que es falso.
00:24:29
Si es falso, no lo sabe.
00:24:30
Porque depende de la otra.
00:24:32
entonces se iría a evaluar también la otra sale true y por lo tanto si esto hubiese sido true
00:24:33
entonces no habría falta mirar ¿vale? ¿dudas hasta aquí? va entonces rápidamente tenemos este código
00:24:40
¿Vale? ¿Qué hace este código?
00:25:07
¿Qué hace este código?
00:25:20
Nadie
00:25:35
Nadie
00:25:35
Venga
00:25:39
Vamos ahora
00:25:44
hacer que esto funcione y pregunta son iguales y a continuación me debería decir true o false
00:26:02
son iguales me dice true si son false me dice false vale y luego dice la suma de ellos es mayor
00:26:11
que el producto de ellos si eso es verdadero dice true si no es false entonces qué puedo hacer yo
00:26:19
aquí para que me conteste true o false a esto. Ideas?
00:26:27
No lo sé. Yo creo, o sea, aquí no necesito saber el tipo de una variable.
00:27:03
Lo que hago es que me crea una variable de ese tipo, si quiero.
00:27:09
Dos posibles soluciones. ¿Se os ocurre alguna?
00:27:14
Olvidaos de esto por ahora.
00:27:18
Pensáos a esto.
00:27:21
¿Cómo puedo preguntarme si esto que he leído y esto que he leído son iguales?
00:27:23
¿Cómo lo hago?
00:27:29
Mira, opción número uno.
00:27:42
Ya está.
00:27:47
Pégale detrás a este de aquí el resultado de esta operación de aquí.
00:27:51
¿Vale? Entonces él me pillará ahí.
00:27:58
Verás si es igual a D.
00:28:00
si estos de aquí son iguales valen lo mismo, me dará true y por lo tanto pegará detrás true
00:28:01
y me dará son iguales true, y si estos son distintos pondrá false. ¿Vale? Vamos a ver si funciona.
00:28:07
Cierta un int, tres, inserta un double, cuatro, dice son iguales, false. Cierta un int, tres, inserta un double, tres, son iguales.
00:28:13
falta todavía un par de clases
00:28:31
para llegar al top
00:28:39
ahora, como podría haberlo hecho
00:28:40
de otra forma lo mismo
00:28:46
tengo una variable
00:28:47
que se llama b
00:29:03
de tipo boolean
00:29:05
y lo que vale
00:29:07
es el resultado de esta expresión
00:29:09
el resultado de esta expresión es true
00:29:11
si los dos valores son iguales
00:29:13
si son distintos por lo tanto una vez que tengo aquí almacenado el valor lo pego detrás era más
00:29:16
o menos lo que me preguntaba es tu pregunta si esto funciona exactamente igual que antes
00:29:25
vale 3 y 3 me da true 3 y 4 me da false vale ok perfecto entonces ahora que hemos visto cómo se
00:29:37
hace esto? ¿Cómo hago esto? Pensadlo un minuto, luego alguien me lo dice. Pensadlo 20 segundos y luego alguien me lo dice.
00:29:48
Vamos a hacer divide tímpeda, ¿vale? Antes me hago boolean operación, ¿vale? Es igual a algo. Y este algo lo escribo
00:30:24
aquí, ¿vale? Ahora, ¿cuál es la operación? ¿Quién me lo dice?
00:30:36
B mayor que I por D. ¿Se llama I igual o no?
00:30:45
¿Os parece bien? ¿Qué es I por D? Tipo. ¿Qué tipo tiene I por D?
00:30:56
¿Vale? Porque es
00:31:12
entero multiplicado
00:31:15
por un doble. Entonces, esta cosa aquí es un
00:31:17
doble. Mayor o menor
00:31:19
lo tengo que comparar con otro doble.
00:31:21
¿Veis qué es? ¿Qué tipo tiene
00:31:23
B? Culeano.
00:31:28
Entonces, ¿qué quiere decir? ¿Es verdadero
00:31:29
mayor que 37?
00:31:32
¿Veas si verdadero es
00:31:35
mayor que 37?
00:31:37
¿Vale? Estoy haciendo una operación
00:31:39
entre tipos distintos.
00:31:41
Hoy te digo, ¿es más gato o
00:31:43
42. 42 es el sentido de la vida, pues no importa lo demás, pero quiero saber. Entonces, esto
00:31:45
no me vale. Me está preguntando si la suma de ellos es mayor que el producto. Entonces
00:31:56
digo, la suma de ellos es mayor que el producto. Si es verdadera esta cosa, me dirá true,
00:32:09
si no, es false.
00:32:19
Si yo le pongo
00:32:21
le pongo uno
00:32:22
y uno, me dice true.
00:32:32
Uno más uno
00:32:36
es mayor que uno por uno.
00:32:37
Si yo le digo
00:32:41
dos y dos,
00:32:42
me dice que son...
00:32:45
me dice falso. ¿Por qué me dice falso?
00:32:46
Dos más dos
00:32:49
2 por 2
00:32:50
4 es mayor que 4
00:32:52
¿no?
00:32:56
y está preguntando si es mayor
00:32:58
no si es mayor o igual
00:32:59
por lo tanto es correcto o es falso
00:33:00
¿sí?
00:33:03
que me pongo
00:33:05
3 y 3
00:33:06
true
00:33:08
¿por qué?
00:33:10
3 más 3 es 6
00:33:13
no, perdón, falso
00:33:14
3 más 3 es 6
00:33:17
3 por 3 es 9
00:33:20
entonces la suma no es mayor que la
00:33:21
¿se entiende?
00:33:24
¿dudas?
00:33:27
vale
00:33:29
ahora me pregunto
00:33:29
¿son los dos números
00:33:30
positivos
00:33:38
más pos?
00:33:39
pos es igual a qué
00:33:50
¿cuál es una expresión booleana
00:33:52
que me permite
00:33:56
establecer si
00:33:58
los dos números que has puesto
00:33:59
son positivos los dos.
00:34:02
¿O lena no?
00:34:10
¿O de lansi?
00:34:12
Damos un minuto
00:34:17
para que pensen.
00:34:18
¿Quién lo sabe?
00:34:35
No todos a la vez, por favor.
00:34:39
Doy un minuto más, 20 segundos más
00:34:49
para pensarlo.
00:34:51
¿Quién lo sabe ahora?
00:35:00
Este vídeo va a ser
00:35:02
La pregunta es, ¿son los dos números que te he dado positivos?
00:35:03
Tienes que decir, ¿cómo puedo hacer una expresión booleana que sea true si los dos números son positivos o false si los dos números no son los dos positivos?
00:35:15
¿Uno más? ¿Quién más?
00:35:29
¿Tres?
00:35:33
voy a preguntar a antes él
00:35:33
por si quiere intentarlo
00:35:37
y
00:35:38
y
00:35:40
y
00:35:41
antes
00:35:43
de
00:35:46
mayor que cero
00:35:47
mayor que cero
00:35:49
así
00:35:51
no, se enfala
00:35:52
más
00:35:58
el segundo era el fondo
00:35:59
otro, otro, no
00:36:01
varinia
00:36:05
varinia
00:36:08
Igual a true, para saber si es positivo.
00:36:08
Pero si ya es true, ya es true.
00:36:25
No, pero estás comparando si es que el resultado que va a salir en un día no es igual a un día no es true.
00:36:27
No, pero no se compara con un trupuleano, porque si es true, ya es true.
00:36:33
O sea, me lo escribo aquí.
00:36:38
Y mayor que cero,
00:36:41
si y es mayor que cero, es true.
00:36:44
Y si yo le pongo es igual a true,
00:36:46
es true igual.
00:36:48
Entonces sería un string.
00:36:52
Entonces estoy comparando
00:36:53
un booleano con un string.
00:36:55
Entonces explota.
00:36:57
Pero normalmente los valores
00:36:58
booleanos no se comparan
00:37:00
con su valor, porque ya son
00:37:03
ese valor. Si y es mayor que cero,
00:37:05
ya es true. Y preguntarme
00:37:07
¿mayo es igual a true? Sí.
00:37:09
Si es true, es true. Y si es false, es de no es true.
00:37:11
Entonces, esto no hace falta
00:37:13
porque esta expresión
00:37:15
de aquí ya es un
00:37:17
true o false. ¿Pero de qué hago?
00:37:19
¿Lo veis?
00:37:25
¿Sí? ¿Os gusta?
00:37:27
Si i es mayor que
00:37:32
cero, ¿vale?
00:37:33
And
00:37:36
y al mismo tiempo
00:37:36
d es mayor que cero
00:37:39
pues entonces es true.
00:37:41
Si este es true y este es true, entonces me da la true.
00:37:43
¿Con qué uno de los dos sea false? Me da la false.
00:37:48
La pregunta que podría surgir aquí es, ¿cero es positivo?
00:37:53
Habría que preguntarlo a un matemático. ¿Matemáticos en la sala? No.
00:38:02
Por lo tanto, digo yo, si cero es positivo, ¿qué hago?
00:38:06
Mayor o igual.
00:38:11
Claro.
00:38:13
Muy bien.
00:38:15
Si el entero es mayor o igual a cero, y al mismo tiempo el double es mayor o igual a cero,
00:38:15
los dos son mayores o iguales a cero, por lo tanto son los dos números positivos, sí.
00:38:29
Con que uno de los dos, o los dos, sean menores de cero,
00:38:34
estrictamente menor que cero, pero ya entra en este caso aquí,
00:38:42
pues entonces me da la fulgida.
00:38:45
Vamos a ver si funciona.
00:38:47
¡Ey! Le digo 5 y 5. Pues los dos números son positivos, ¡true! Perfecto.
00:38:48
Ahora le digo esto y le digo menos 5 y 5. ¡Alche! Muy bien.
00:38:56
Hay al menos un número positivo.
00:39:13
Pensadlo un minuto. Pensadlo si lo estáis haciendo bien.
00:39:36
¿Quién me lo dice?
00:39:51
¿Quién me lo dice?
00:39:58
¿Alguien lo cambiaría? ¿Les parece correcto?
00:40:06
Está preguntando si al menos uno de los dos es positivo
00:40:31
¿Vale?
00:40:35
Si esto es positivo
00:40:36
Ya es true
00:40:38
Con el or sería true
00:40:39
Si esto es positivo
00:40:40
Con el true, true
00:40:42
Si los dos son positivos
00:40:44
Son true
00:40:45
Si son positivos, entonces los dos son true
00:40:47
True or true es siempre true
00:40:49
El único caso en el que no funcionara
00:40:51
Sería false
00:40:54
Es cuando esto es negativo
00:40:55
Y al mismo tiempo esto es negativo
00:40:57
¿Vale?
00:40:59
o sea que
00:40:59
si esto o esto
00:41:01
ninguno de los dos son positivos
00:41:03
pues entonces me diría false
00:41:05
¿vale? false or false
00:41:07
false
00:41:09
5 y menos 5
00:41:10
al menos uno
00:41:23
es positivo pero los dos números
00:41:25
no son positivos
00:41:27
si ahora yo pongo
00:41:28
menos 5 y menos 5
00:41:30
me dice hay al menos
00:41:33
un número positivo
00:41:35
Y con esto podéis jugar
00:41:36
Días enteros
00:41:42
¿Vale?
00:41:44
Haciendo vuestras condiciones propias
00:41:45
Pensando
00:41:48
¿Cómo hago?
00:41:48
Seguir pillando tres números
00:41:50
El primer número es mayor que el segundo
00:41:51
El segundo y el tercero
00:41:54
Y poner allí una cosa booleana
00:41:56
Grande así
00:41:59
¿Vale?
00:42:00
Que os resuelva este problema
00:42:01
Tranquilos
00:42:02
Si no lo hacéis vosotros
00:42:05
Dentro de poco os lo mandaré yo
00:42:06
si habéis ya empezado a razonar
00:42:09
en booleano, mejor
00:42:12
¿dudas?
00:42:13
¿preguntas?
00:42:18
aquí hay otro ejemplo
00:42:35
que hemos hecho ahora, ¿vale?
00:42:36
la pregunta es esta de aquí
00:42:37
y esta es la
00:42:38
solución a la que hemos llegado
00:42:42
esto se podría sustituir
00:42:43
con todo esto de aquí
00:42:45
pero como lo hemos calculado
00:42:47
ya, pues lo podemos sustituir
00:42:50
Sí, entonces aquí tenéis algunos ejemplos básicos de cómo se usa AND, OR y cosas por el estilo.
00:42:52
Podríamos añadir en vez de... No, ha sido complejo.
00:43:05
No hemos usado el NOT aquí, ¿vale? Lo que quería usar ahora, pero bueno.
00:43:11
Nosotros pillamos este de aquí y dices, hay al menos un número positivo.
00:43:17
Queremos decir que no hay al menos un número positivo, pues ponemos un NOT delante.
00:43:20
y cambia.
00:43:25
Si era true, es false, es false, es true.
00:43:27
La combinación
00:43:30
de esas cosas se puede servir.
00:43:32
De hecho, un end se puede escribir como un
00:43:33
or, y un or se puede escribir
00:43:36
como un end si yo pongo
00:43:37
los not en sitios
00:43:40
correctos. Por ahora no
00:43:42
mato más
00:43:46
de lo que ya he tomado.
00:43:48
Ahora, todas las cosas
00:43:51
de operadores booleanos,
00:43:52
lógica booleana, etc.
00:43:54
En realidad,
00:43:57
se usan aquí.
00:43:58
Existe un operador
00:44:01
ternario, ¿vale?
00:44:02
Ternario condicional, que lo que hace es
00:44:04
recibir tres parámetros.
00:44:06
¿Vale? Tres expresiones.
00:44:09
La primera es una expresión
00:44:10
booleana. ¿Vale?
00:44:12
Que da otro ojo.
00:44:14
Si es true,
00:44:16
el resultado de este operador,
00:44:18
esta es una operación, ¿vale?
00:44:20
Será expresión 1.
00:44:22
Sea cual sea la expresión.
00:44:24
Si en vez de la condición se disuelve a false, el resultado será expresión 2.
00:44:25
Por ejemplo, pillo dos números, me entero un dado, así esto no me lo considera, se queda allí, y lo que me quiero preguntar es, ¿cuál de los dos números es el más grande?
00:44:36
El más grande es, y ahora yo aquí quiero escribir el número más grande de los dos.
00:45:00
¿Cómo lo hago?
00:45:16
Doble resultado es igual a I es mayor que D, me pregunto.
00:45:21
Si I es mayor que D, entonces I es el mayor.
00:45:33
Si no, D es el mayor.
00:45:40
Lo repito.
00:45:51
Condición. Si esta condición es verdadera, todo esto vale esto. Si esta condición es falsa,
00:45:51
todo esto vale esto. Al final de esta cosa aquí, compara i más d. Si i es d, si i es mayor que d,
00:46:04
te dirá que i es el mayor. Entonces lo pone aquí. Entonces yo puedo poner más res aquí. Si este de
00:46:17
aquí es falso, entonces es D el mayor. Si son iguales, ¿qué pasa si son iguales?
00:46:24
Devuelve D, ¿vale? Porque 3 no es mayor que 3 y por lo tanto iría a la sección falso.
00:46:37
Me devolvería D, pero da igual porque entre 3 y 3, ¿cuál es el número mayor?
00:46:52
¿Sabes si funciona? 0, 5, doble 3. El número más grande es 5.0. ¿Por qué 5.0? ¿Y qué ha hecho?
00:46:56
En términos informáticos, como si fuera una persona que estudia informática y que sabe
00:47:14
porque el profesor me lo ha dicho antes. ¿Estás de acuerdo que 5 es el entero? ¿Por qué me dice
00:47:20
5.0
00:47:35
porque he hecho
00:47:36
un casting
00:47:42
implícito
00:47:49
una conversión automática
00:47:51
cuando he llegado aquí
00:47:54
lo que ha hecho es devolverme
00:47:57
i, que es un entero
00:47:59
pero lo estoy guardando dentro de un double
00:48:00
no pasa nada, el entero
00:48:02
son 4
00:48:04
el double son 8
00:48:05
pues puedo guardar tranquilamente un entero dentro de un double. Al revés, no. Esto me daría error.
00:48:07
Normalmente aquí y aquí tiene que ir el mismo tipo o tipos compatibles. No puedo por un lado
00:48:18
poner un stringer, por un lado poner un int, porque esto al final valdrá, o int o stringer,
00:48:29
tengo que poder tener un tipo de esta
00:48:34
expresión. Si yo aquí le
00:48:36
pongo hola, ¿qué
00:48:38
tipo tiene esta expresión?
00:48:42
No se sabe
00:48:45
porque si esto es verdadero sería
00:48:46
string y si esto es falso
00:48:48
sería double. Por lo tanto,
00:48:50
no tiene un tipo preciso.
00:48:52
Tiene un doble tipo.
00:48:55
No me vale. En el momento en que le pongo
00:48:56
i, sería
00:48:58
lo mismo. ¿Vale? Esto
00:49:00
y esto tienen tipos distintos.
00:49:02
Pero en el momento en que
00:49:05
yo digo esto, pues
00:49:06
él dice, vale, pero esto se puede castear
00:49:08
implícitamente a double. Este es
00:49:10
un double. Me vale que esta expresión
00:49:12
sea un double. Y lo guardas en un
00:49:14
double. Vale.
00:49:16
Ningún problema. Te quito
00:49:18
los problemas. El problema está.
00:49:20
Pero hago yo implícitamente las
00:49:22
conversiones necesarias para que esto funcione.
00:49:24
Vale.
00:49:36
Entonces,
00:49:39
son los
00:49:44
dos números
00:49:45
pares
00:49:46
Entonces, lo hago distinto. Los dos números son, escribirá pares, si son pares los dos, impares, si son impares los dos.
00:49:49
Uf, ya lo está haciendo demasiado difícil.
00:50:38
Y lo que sea si uno es par y el otro impar.
00:50:41
Por ahora, si no son concordantes no escribo nada, me da igual lo que sea, solo pienso
00:50:56
en estos dos.
00:51:02
¿Vale?
00:51:03
Luego modificamos.
00:51:04
¿Qué hago?
00:51:06
Cuidado, ¿eh?
00:51:07
Lo que te digo.
00:51:08
Eso dice los dos números son, y yo quiero que me esquiva pares.
00:51:09
Si los dos números que te he dado son pares, impares.
00:51:14
Si los dos números que te he dado son impares o...
00:51:18
No, hagamos distinto.
00:51:21
No pares.
00:51:22
Ahí, ahí.
00:51:23
Ahora te lo digo.
00:51:23
No pares si no son pares los dos.
00:51:24
Ahí, ya está.
00:51:32
Perfecto.
00:51:33
No pares.
00:51:34
No pares.
00:51:35
Fiesta, fiesta.
00:51:37
Sí.
00:51:38
Sí.
00:51:41
Si los dos números que te he dado son pares los dos, quiero que tú me digas, los dos números son pares.
00:51:41
Si en vez, en cualquier otro caso, si no son pares los dos, dices, los dos números son no pares.
00:51:50
¿Entendéis?
00:52:01
¿Cómo lo haces?
00:52:02
Si lo tenéis, levantáis una mano.
00:52:10
Hago ejemplos.
00:52:31
Si pongo dos y dos, me dice pares. Si pongo dos y cinco, pares.
00:52:33
Uno lo tiene
00:53:03
No lo tiene
00:53:22
A lo mejor no
00:53:26
¿Sí o no?
00:53:30
No me lo digas
00:53:33
¿Puedes dejar un momento?
00:53:35
Bebes, bebes.
00:53:38
Bebes, bebes.
00:53:45
¿Votas los poquitos?
00:53:46
¿Qué?
00:53:46
¿Qué?
00:53:49
¿Qué?
00:53:51
¿Qué?
00:53:53
¿Qué?
00:53:57
¿Qué?
00:54:01
¿Qué?
00:54:03
y
00:54:05
y
00:54:07
y
00:54:09
y
00:54:11
y
00:54:13
y
00:54:15
y
00:54:17
y
00:54:19
y
00:54:21
y
00:54:23
y
00:54:25
y
00:54:27
y
00:54:29
y
00:54:31
¡Gracias!
00:54:33
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Autor/es:
- Stefano Chiesa
- Subido por:
- Stefano C.
- Licencia:
- Reconocimiento - No comercial
- Visualizaciones:
- 21
- Fecha:
- 29 de septiembre de 2025 - 11:46
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 54′ 43″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 459.12 MBytes