Saltar navegación

Operadores - 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 29 de septiembre de 2023 por Stefano C.

14 visualizaciones

Descargar la transcripción

Voy a grabar esta explicación, por lo tanto si habláis me estáis dando el permiso de grabaros 00:00:00
Vale, entonces nosotros hemos visto variables 00:00:07
Ahora vamos a ver constantes 00:00:11
¿Qué es una constante? 00:00:14
Pues es como una variable a la que una vez asignado un valor no puedo modificarlo 00:00:17
¿Vale? 00:00:23
Es lo mismo, es crear un espacio de memoria donde dentro le pondré un valor 00:00:25
Pero una vez que he puesto este valor 00:00:29
Si intento cambiarlo otra vez 00:00:31
El programa me dirá, no puedes cambiarlo 00:00:33
Porque esto no es una variable, es una constante 00:00:35
¿Para qué me sirve? 00:00:37
No lo sé, a lo mejor en mi programa 00:00:39
Hay algunos valores que no quiero 00:00:41
Poder modificar, y por lo tanto 00:00:43
Lo pongo allí, incrustados como 00:00:45
Ese valor de allí, y ya está 00:00:47
¿Vale? O a lo mejor, por ejemplo 00:00:49
Están algunas clases ya desarrolladas 00:00:51
Como la clase matemática, la clase math 00:00:54
¿Vale? Que dentro tiene 00:00:55
Algunas constantes, como por ejemplo pi 00:00:57
¿Vale? Y pi no vale 00:00:59
No es que hoy vale 00:01:01
3 y mañana 3,1 00:01:04
Y pasado, no, es ese valor de allí 00:01:06
¿Vale? Entonces dentro de esa clase 00:01:08
Que han desarrollado no sé quién 00:01:10
Me han metido una constante 00:01:12
Que es la constante pi 00:01:14
Que vale lo que valga pi 00:01:15
3,14 y algo más 00:01:17
¿Sí? Pues lo mismo puedo hacer 00:01:19
De hecho, mira, ejemplo 00:01:21
¿Vale? Entonces, ¿cómo defino 00:01:23
Una variable, una constante? 00:01:25
Pues igual que una variable 00:01:27
Pero con final delante 00:01:30
Esta es una palabra reservada 00:01:33
Final 00:01:35
¿Vale? 00:01:36
Es como decir el valor final de esta variable 00:01:37
Desde aquí no se puede mover 00:01:39
Entonces si yo hago final double pi 00:01:40
Es igual a 3,14 00:01:44
Si es o no, desde esta cosa aquí 00:01:47
Estoy definiendo una constante 00:01:49
¿Notáis algo distinto 00:01:52
Entre una variable y una constante 00:01:54
Por cómo está escrita así 00:01:56
Mirando sólo esta línea aquí 00:01:58
De final, double, pi 00:01:59
Aparte el final, que es nuevo 00:02:00
Mayúscula 00:02:08
Las finales se escriben todas en mayúscula 00:02:14
¿Es necesario? 00:02:17
¿Si no, no funciona? 00:02:19
No, podéis escribir lo que os da la gana 00:02:20
Pero los programadores en Java 00:02:22
Asumen que se encuentran un nombre 00:02:25
Todo en mayúscula 00:02:27
Eso es una final 00:02:28
Una constante 00:02:31
¿Vale? 00:02:33
Si lo encuentran todo en minúsculas 00:02:34
De una variable 00:02:37
Es una variable 00:02:38
Si lo encuentran en minúsculas con la paréntesis 00:02:40
Es un método 00:02:42
Y si encuentras un nombre que empieza por mayúsculas 00:02:44
Y sigue por minúsculas 00:02:46
Es una clase 00:02:48
Todas nuestras clases empiezan por mayúsculas y luego minúsculas 00:02:49
Scanner es una clase 00:02:52
System es una clase 00:02:54
String es una clase 00:02:57
¿Dudas? 00:02:59
¿Vale? 00:03:05
¿Cómo? 00:03:05
Los nombres 00:03:08
De constante 00:03:10
Todo en mayúsculas 00:03:11
Entonces por ejemplo 00:03:13
Pi es aceptable, MaxUsuarios 00:03:15
Está aceptable, MaxUsuarios 00:03:17
Todo pegado, también se lee 00:03:19
Un poco mal, pero bueno 00:03:21
Si pusiera un espacio aquí 00:03:22
Colapsaría porque el 00:03:29
Parcer que me va a sacar 00:03:31
Los tokens 00:03:33
El token final 00:03:34
Ok, puede ser seguido de un tipo 00:03:37
Vale, puede ser seguido de un identificador 00:03:39
Y después del identificador no puede ir otro identificador 00:03:41
Y por lo tanto hay un problema 00:03:44
¿Cuál es la diferencia entre...? 00:03:45
Es que esta es la constante 00:03:54
¿Cómo defino una constante? 00:03:55
Poniendo final delante 00:03:57
Es la forma con la que defino la constante en Java 00:03:58
Si no la pongo 00:04:02
Esta es una variable 00:04:04
Puedo hacer debajo pi igual a 4 00:04:05
Si lo pongo 00:04:09
Ahora si intento hacer pi igual a 4 00:04:10
me dicen no lo puedes modificar porque es una constante. ¿Dudas? 00:04:12
En mayúscula una constante no puede cambiar su valor. 00:04:21
Ámbitos de las variables y de las constantes. Esto también es 00:04:26
interesante. Una variable o una constante existe sólo en el bloque en 00:04:30
En la que la he definido 00:04:39
Que es un bloque 00:04:41
Donde empieza una llave 00:04:43
Y acaba otra llave 00:04:45
¿Vale? 00:04:46
Si yo tengo un bloque 00:04:48
Llave abierta 00:04:51
¿Vale? 00:04:53
Declaro una variable allí 00:04:54
Y luego sigo adelante 00:04:55
Esta variable existe 00:04:57
Hasta que yo cierre ese bloque 00:04:59
O sea, ponga la llave de cerrar 00:05:02
Si yo declaro una variable dentro del 00:05:03
Del main 00:05:06
Solo existe dentro del main 00:05:08
No fuera del main 00:05:11
Si yo la declaro dentro de clase 00:05:12
Existirá en el main 00:05:15
Y también en otros lados que estén dentro de la clase 00:05:17
Lo veremos 00:05:20
¿Vale? 00:05:21
Por ahora lo único que os tiene que quedar claro 00:05:22
Es algo así 00:05:25
Esto funciona 00:05:26
Esto no 00:05:30
¿Por qué? 00:05:32
Porque yo aquí tengo un bloque 00:05:38
Aquí dentro he declarado A 00:05:40
¿Vale? 00:05:43
Y cuando en un bloque interno 00:05:44
Declaro B y uso esta A 00:05:46
Esta A sigue existiendo 00:05:49
Porque estoy dentro del bloque donde se ha creado 00:05:51
Bloques internos 00:05:53
Va, bien 00:05:56
Sin embargo, si yo pongo 00:05:58
Un bloque aquí interno 00:06:01
Donde declaro A 00:06:03
Y luego intento utilizarla 00:06:04
En el bloque externo 00:06:07
Este A ya no existe 00:06:09
No está declarado en este bloque de aquí 00:06:11
Existe solo dentro de este bloque de aquí 00:06:13
¿Se entiende? 00:06:16
Variables constantes 00:06:18
Variables constantes 00:06:20
Y muchas otras cosas 00:06:21
Esto se llama el ámbito de una variable 00:06:22
¿Vale? 00:06:27
Scope 00:06:29
Scope en inglés 00:06:30
¿Vale? 00:06:32
Si yo me equivoco con el ámbito de una variable 00:06:34
Y la uso donde no es su ámbito 00:06:37
Se enfadará el Java diciendo 00:06:39
Oye, mira, esta variable no está declarada 00:06:44
¿Cómo no? La he declarado aquí 00:06:46
Pero la has declarado en un bloque que ya se ha cerrado 00:06:47
Entonces, una vez cerrado este bloque 00:06:50
Esa variable ya no existe 00:06:52
Si tú la necesitas 00:06:53
Lo que tienes que hacer es la declaración de esta variable 00:06:55
Ponerla en el bloque ester 00:06:58
¿Me explico? 00:06:59
Entonces, tened cuidado 00:07:05
Ahora como nosotros utilizamos casi solo main 00:07:07
Y escribimos todos allí dentro 00:07:11
Todas nuestras variables están allí dentro 00:07:13
No hay grandes problemas de 00:07:15
Scope, de ámbito 00:07:17
Pero más adelante cuando empezaremos a utilizar 00:07:19
Bloques como el for, el while 00:07:21
Y cosas por el estilo 00:07:23
Según donde creas la variable 00:07:24
No la puedes utilizar fuera de ese bloque 00:07:27
O si 00:07:30
Si la sacas fuera 00:07:31
Pero acordaos siempre que 00:07:33
Yo tengo una 00:07:36
Un bloque 00:07:37
Un bloque sería un bloque 00:07:39
de secuencia, un bloque de instrucciones 00:07:41
¿vale? y 00:07:43
para que pueda 00:07:45
usar una variable 00:07:48
dentro de ese bloque, tiene que estar 00:07:49
creada, tiene que estar declarada 00:07:51
en ese bloque o en un bloque 00:07:53
más grande que contiene ese bloque 00:07:55
¿si? para poder utilizar 00:07:57
A aquí, tiene que estar definida 00:08:00
en ese bloque o en un bloque 00:08:02
que incluye el bloque donde estoy 00:08:03
o en un bloque que incluye el bloque 00:08:05
donde estoy 00:08:06
¿si? 00:08:08
¿Dudas? ¿Se entiende más o menos? Vale. 00:08:11
Bueno, puede tener el mismo nombre que otra declarada en el ámbito del método del que pertenece, ¿vale? 00:08:19
O sea, si yo estoy en este ámbito aquí, ¿podría aquí dentro volver a declarar a? 00:08:25
¿Int a es igual a algo? Pues no, porque está ya declarada aquí. 00:08:31
Me dice, ya existe. ¿Podría yo aquí volver a declarar a? 00:08:35
Sí, porque esta existiría aquí 00:08:40
Y luego no le he pasado, pues no 00:08:43
Probablemente me daría error esto 00:08:44
Porque me diría 00:08:51
Ya está definida en este bloque exterior 00:08:53
Vale, ejemplo de ámbito 00:08:55
Vale 00:09:00
Entonces si aquí tengo 00:09:01
X que vale 12 00:09:03
Fijaos que está en el ámbito del main 00:09:05
Vale 00:09:08
Y después creo Q que vale 96 00:09:09
Ahora puedo hacer 00:09:12
X más Q, porque aquí dentro 00:09:13
Tengo a disposición tanto esta X 00:09:15
Como esta Q, porque el ámbito 00:09:18
Es correcto para los dos 00:09:19
Fuera de este bloque de aquí 00:09:21
No puedo utilizar Q 00:09:23
Puedo solo utilizar X 00:09:25
¿Dudas sobre esto? 00:09:26
Si os fijáis por como están hechos 00:09:32
Los bloques 00:09:36
¿Vale? 00:09:39
Aquí dentro he declarado X 00:09:40
Entonces dentro de este bloque de aquí 00:09:42
Puedo usar X donde me da la gana 00:09:44
Sin embargo Q la he declarado dentro de este bloque de aquí 00:09:46
Entonces dentro de este bloque yo tengo acceso tanto a Q como a X 00:09:51
Sin embargo dentro del bloque externo solo puedo utilizar X 00:09:56
Si intento utilizar aquí Q, me dice que Q no existe 00:10:03
Porque solo existía dentro de este ámbito de aquí 00:10:06
¿Dudas? 00:10:09
Vale 00:10:18
Expresiones, ya hemos hablado de expresiones varias veces, ¿vale? 00:10:19
Sostancialmente nosotros cuando creamos una variable o algo por el estilo 00:10:25
Y decimos int x es igual a 3, pues 3 es un literal, ¿vale? 00:10:29
En vez de poner 3 directamente, lo que puedo poner es una expresión 00:10:34
Una expresión es un conjunto de operaciones, de operadores, etc, etc 00:10:38
que me crean una expresión aritmética o una expresión booleana o lo que sea 00:10:44
que yo tenga que, antes de poder asignar un valor a la variable donde estoy guardando esta expresión 00:10:49
pues tengo que resolver esta expresión 00:10:56
tengo que hacer el cálculo para ver que me sale de esta expresión 00:10:58
y una vez que lo he hecho, pues eso será un literal 00:11:02
y ese literal lo guardo en la variable 00:11:05
Es un conjunto de tokens que el programa 00:11:10
Puede resolver en tiempo de evolución 00:11:13
A un valor concreto 00:11:15
La expresión más simple consiste en un literal 00:11:16
Un literal solo es una expresión 00:11:18
3 es una expresión 00:11:21
3 más 7 es una expresión 00:11:22
A más 5 00:11:24
Siendo A un entero 00:11:27
Pues es una expresión 00:11:28
A por 7 dividido B 00:11:30
Más 5 00:11:33
Por F 00:11:34
Y o X 00:11:36
si son todos int, pues es una expresión. ¿Se entiende? Sí, lo acabo de decir. Vale, una expresión es lo que pongo a la derecha del igual 00:11:38
y que se puede resolver en un determinado valor. Me explico. Por ejemplo, 3 es una expresión. ¿Por qué? Porque es el valor 3. 00:11:57
3 más 7 es una expresión 00:12:06
3 más 7 dividido a 00:12:09
Siendo a una variable 00:12:13
Pues también es una expresión 00:12:15
Lo que pasa es que cuando yo lo tengo 00:12:17
3 más 7 dividido a 00:12:20
Haré estos cálculos 00:12:23
Me dará un resultado 00:12:25
Pongamos el resultado sea 5 00:12:27
Y este 5 es el que pongo dentro de la variable 00:12:28
Que utilizo 00:12:31
Estos son, por ejemplo, expresiones 00:12:32
2 más 3 es una expresión 00:12:45
3 por saldo, siendo saldo un identificador de una variable 00:12:49
Es una expresión 00:12:53
Saldo más incentivos, pues también es una expresión 00:12:55
Paréntesis, paréntesis, saldo dividido por 2 cerrada paréntesis más 1000 módulo 10 00:12:59
Pues es una expresión 00:13:04
¿Qué pasará? Que a tiempo de ejecución 00:13:05
El programa 00:13:08
La JavaScript Machine o quien por él 00:13:10
Analizará esta expresión 00:13:12
Sostituirá 00:13:14
Las variables 00:13:15
Que es un saldo por ejemplo, un saldo incentivo 00:13:17
¿Vale? Por el valor 00:13:20
Que tienen en ese momento 00:13:22
Estas variables 00:13:24
O sea, os acordáis, saldo 00:13:26
¿Qué quiere decir? Que me voy a la memoria 00:13:27
Que se llama saldo 00:13:29
Miro que valor está ahí dentro 00:13:31
Si ahí dentro hay 100 00:13:33
Pues entonces esto vale 100 00:13:34
Algo 100 dividido 2 más 1000 módulo 10 00:13:36
Y el resultado de todo esto 00:13:39
Es el resultado de esta expresión 00:13:41
Dudas 00:13:43
Y lo hemos utilizado 00:13:46
Cuando nosotros hacemos 00:13:50
Área del cuadrado 00:13:51
Es igual a lado por lado 00:13:54
Pues lado por lado es una expresión 00:13:56
Nosotros por ahora hemos utilizado 00:13:58
Principalmente 00:14:05
Expresiones aritméticas 00:14:06
Pero existen también expresiones booleanas 00:14:09
El otro día hicimos ejemplos 00:14:12
De cuando hacíamos a menor que 5 00:14:14
A menor que 5 es una expresión 00:14:17
Pero el resultado de a menor que 5 00:14:19
No es un entero 00:14:21
Sino es un valor de verdadero o falso 00:14:23
¿Ojotáis? 00:14:26
Por lo tanto es una expresión booleana 00:14:28
¿Alguna pregunta? 00:14:30
Ah, sí, te iba a decir 00:14:33
En la parte anterior de expresiones 00:14:35
Entonces si, por ejemplo 00:14:37
Saldo es un identificador 00:14:40
Si no he definido la variable saldo 00:14:47
Pues no podría ni ejecutarlo 00:14:50
Me diría 00:14:53
No consigo resolver saldo como una variable 00:14:53
Si yo lo he creado 00:14:56
Pero no la he inicializado 00:14:58
Me diría 00:15:00
No puedo utilizar saldo porque no ha sido inicializado 00:15:01
¿Vale? 00:15:04
Y explotaría 00:15:05
Dependiendo de cómo lo hago 00:15:06
O a tiempo de compilación o hasta tiempo de ejecución 00:15:08
O sea que me permitiría ejecutarlo 00:15:10
Pero cuando luego llegue a leer saldo 00:15:12
Diría, oye, mira que aquí no has puesto nada 00:15:14
Pues no puede hacerlo 00:15:16
Si yo no le he puesto ningún valor 00:15:17
Hemos reservado un trozo de memoria 00:15:21
Con allí dentro que se llama saldo 00:15:24
Pero no sé que hay allí dentro 00:15:26
Porque en ningún momento me has escrito algo allí dentro 00:15:28
Entonces podría ser que este es un trozo de memoria 00:15:30
Que se había utilizado antes 00:15:33
Y que ahora reutilizarlo 00:15:35
Allí dentro hay datos 00:15:36
Pero no son los datos reales actuales 00:15:38
Entonces como no lo has inicializado se enfada 00:15:42
Te dice, la tienes que inicializar 00:15:43
De hecho, hay veces que 00:15:45
Si no estás seguro, te dice 00:15:47
Mira, que esta variable podría no ser inicializar 00:15:49
Y te da como un error 00:15:52
O sea, por algún lado la tienes que inicializar 00:15:53
¿Dudas? 00:15:55
¿Agrupación? 00:16:00
Las paréntesis 00:16:00
Si yo tengo 00:16:01
2 más 3 por 5 00:16:07
¿Qué hago antes? 00:16:10
Normalmente se hace antes las multiplicaciones 00:16:13
Y luego las sumas 00:16:15
Antes multiplicaciones y divisiones 00:16:16
Luego sumas 00:16:18
¿Vale? Entonces si yo no tengo las paréntesis 00:16:19
Me haría 3 por 5 00:16:22
Y a 15 le suma 2 00:16:24
¿Vale? 00:16:26
Si yo no quiero eso 00:16:27
Pues puedo agrupar 2 más 3 00:16:29
Y entonces le estoy diciendo 00:16:32
Antes haz esta parte de aquí 00:16:34
Agrupada entre paréntesis 00:16:36
Y cuando has solucionado este de aquí 00:16:37
Que 3 más 2 probablemente hace 5 00:16:40
Pues lo haces por 5 00:16:42
Y el resultado es 25 00:16:43
Voy rápido 00:16:45
Porque estas son todas cosas bastante básicas 00:16:52
De las que hemos ya hecho 00:16:54
Ejemplos 00:16:55
Simplemente le estamos dando un nombre 00:16:58
¿Cómo se llaman las paréntesis? 00:17:00
Pues es el operador de agrupación 00:17:02
Ahora sí que tiene valor 00:17:04
Antes era una paréntesis, ahora es el operador de agrupación 00:17:06
Mucho mejor 00:17:09
También porque si alguien nos habla de 00:17:10
Operador de agrupación 00:17:14
No digáis, eso nosotros no lo hemos visto 00:17:16
De vuestra respuesta estándar 00:17:19
Clasificación de operadores 00:17:22
¿Vale? 00:17:24
¿Qué tipo de operadores hay? 00:17:25
Si me baso 00:17:29
El número de expresiones que requiere 00:17:30
Puede haber 00:17:33
Unarios 00:17:35
Binarios 00:17:36
Oternarios 00:17:37
Los operadores unarios 00:17:39
Necesitan una expresión sola 00:17:41
Como por ejemplo 00:17:43
El menos 00:17:45
Menos uno 00:17:46
1 es la expresión 00:17:48
Y el menos es como el operador que me dice 00:17:50
Sí, pero multiplícalo por menos 1 00:17:52
Y hazlo negativo 00:17:55
¿Sí? 00:17:55
O esta cosa de aquí 00:17:57
Que a lo mejor lo veremos en un futuro 00:17:59
Binario 00:18:00
Son los más básicos 00:18:04
Los que conocemos como el más, el por, el dividido, el módulo 00:18:05
¿Vale? 00:18:08
Entonces 2 más saldo 00:18:09
O 2 más 3 00:18:12
Más 4 por 7 00:18:14
¿Vale? 00:18:15
Siempre hay dos expresiones 00:18:16
Con en el medio el símbolo 00:18:18
Si yo miro este porra de aquí 00:18:21
Tengo una expresión 00:18:23
Por otra expresión 00:18:25
Binario, dos expresiones 00:18:27
Luego que esta expresión sea más compleja 00:18:29
No sea un número solo 00:18:31
Me vale igual 00:18:32
Pero es un operador 00:18:33
O sea, un operando multiplicado 00:18:36
Otro operando 00:18:38
Si es binario 00:18:39
Necesito dos operandos 00:18:41
Dos expresiones 00:18:44
¿Me entiende? 00:18:46
Y finalmente están unos operadores 00:18:48
Que esto creo que es el único que veremos 00:18:51
Que es ternario 00:18:53
Por ejemplo, esta cosa de aquí 00:18:54
Que miraremos ahora dentro de un rato un poquito mejor 00:18:56
Hacemos un par de ejercicios de estos 00:19:00
¿Vale? 00:19:02
Es un operador que necesita tres expresiones 00:19:03
Una, dos y tres 00:19:07
Es como un if simplificado 00:19:10
Me dice, mírame esta cosa de aquí 00:19:16
Si esto es verdadero, toda esta operación vale esto 00:19:20
Si esto es falso, toda esta operación vale esto 00:19:25
Por mil cosas posibles 00:19:31
Y porque nos da paso a lo que luego es la raíz 00:19:41
Que es una cosa que utiliza constantemente 00:19:44
Si el número es mayor que cero 00:19:47
Entonces el resultado es 00:19:50
Soy positivo 00:19:52
Si el número es menor que cero 00:19:53
Pues entonces el resultado es soy negativo 00:19:55
¿Qué has hecho? 00:19:57
Es un programa que dado un número te dice si es positivo o negativo 00:19:59
Voy a hacer un ejemplo 00:20:02
Ahora los hacemos 00:20:06
No estamos viendo este operador 00:20:08
Estamos viendo que existen 00:20:11
Operadores externarios 00:20:13
Por ahora lo que tenéis que haber entendido 00:20:15
Es que hay operadores que requieren 00:20:17
Una sola expresión 00:20:19
Operadores que necesitan 00:20:21
Dos expresiones 00:20:23
Y operadores que necesitan tres expresiones 00:20:24
¿Eso lo hemos entendido? 00:20:27
Not 00:20:35
Not 00:20:36
Es un operador unario 00:20:38
Not, true, the false 00:20:40
Eso, eso no es un 00:20:42
Para hacer otro ejemplo de unario 00:20:44
El not, ¿nos acordáis de la otra vez 00:20:46
Vimos el operador not? 00:20:50
Pues el not es unario 00:20:53
Es not en una expresión 00:20:54
Dame el resultado baleano de esta expresión 00:20:56
Y yo te lo cambio al otro valor 00:20:58
Es un operador unario 00:21:00
Unar 00:21:02
Unar 00:21:06
Que solo necesita una expresión 00:21:07
Not y una sola expresión 00:21:09
Mientras el más 00:21:11
No puedo decir 00:21:14
Siete más 00:21:15
¿Siete más qué? 00:21:16
Necesito dos expresiones 00:21:20
¿Sí? 00:21:21
Y en este de aquí necesito tres expresiones 00:21:22
Para que funcione 00:21:25
Entonces, en base a cuantas expresiones 00:21:26
Necesita, yo puedo declarar 00:21:28
Que un operador X 00:21:31
No sé que operador es, puede ser un ario 00:21:32
Binario, ternario 00:21:35
Si yo te digo 00:21:35
Este operador es un ario 00:21:37
Es porque tú estás usando no sé qué 00:21:39
Operador no sé qué 00:21:43
Y en vez de no necesitas dos expresiones 00:21:44
Necesitas una expresión sola 00:21:46
O si te digo, este operador es binario 00:21:48
Es porque tú estás usando una sola expresión 00:21:51
Y en vez necesitas dos expresiones 00:21:53
Es como es 00:21:55
Como esto es más 00:22:04
Pues esta es interrogación de dos puntos 00:22:05
Pero no lo hemos visto todavía 00:22:07
Es un ejemplo 00:22:09
Donde están las tres opciones 00:22:10
Una antes de la interrogación 00:22:15
Me estoy preguntando esta cosa 00:22:18
¿Vale? 00:22:20
Y si es verdadera esto 00:22:21
Dos puntos 00:22:23
Si no esto 00:22:24
¿Vale? 00:22:25
¿Sí? 00:22:27
¿Dudas? 00:22:31
Esto lo hago, ahora lo miramos con más calma 00:22:31
¿Vale? Tranquilos 00:22:36
Como se usa esto, lo veremos 00:22:37
Simplemente para que sepáis 00:22:39
Que tipos estamos en clasificación 00:22:41
De operadores 00:22:43
Y si no 00:22:45
Puedo mirar 00:22:47
Donde está el operador 00:22:49
Y hay tres posiciones también 00:22:51
El operador puede estar antes 00:22:53
De la expresión 00:22:55
Entonces es prefijo 00:22:57
Como el not 00:22:59
Por ejemplo 00:23:00
Puede estar después de la expresión 00:23:01
Entonces es posfijo 00:23:06
Como por ejemplo el más más 00:23:08
¿Os acordáis la otra vez que dijimos x más más 00:23:09
Que era igual a poner x es igual a x más uno? 00:23:11
Pues el más más va detrás 00:23:15
Puede ir también delante 00:23:17
Hay una pequeña diferencia 00:23:18
Pero por ahora no me interesa 00:23:20
¿Vale? 00:23:21
O puede ser infijo 00:23:23
Cuando va entre medias de dos expresiones 00:23:25
Prefijo va antes 00:23:29
Posfijo va después 00:23:33
Infijo va en el medio 00:23:35
Sufijo sería al final también 00:23:36
Pero 00:23:43
Por como se llama aquí en Java 00:23:43
Y por lo que sea 00:23:47
Es pre, post o in 00:23:47
¿Dudas? 00:23:51
Vale 00:23:55
Esta es solo una nomenclatura 00:23:56
Tipos de expresiones 00:23:57
Vale 00:24:00
Nosotros hemos dicho 00:24:02
Que las expresiones 00:24:06
Son un conjunto de símbolos 00:24:07
Y literales 00:24:10
Y variables, y constantes 00:24:12
Y cosas raras 00:24:14
Que yo luego puedo evaluar 00:24:15
¿Vale? 00:24:18
Y al final, después de haber evaluado toda esta expresión 00:24:19
Me da un valor 00:24:22
¿Sí? 00:24:23
Este valor tendrá un tipo 00:24:25
Si he sumado todos enteros 00:24:27
El resultado final será un entero 00:24:30
Y por lo tanto es un int 00:24:33
¿Sí? 00:24:34
Si yo hago esta expresión de aquí, por ejemplo 00:24:36
La escribo 00:24:38
Se lee 00:24:45
Muy grande 00:24:53
Pongamos esta expresión de aquí 00:24:56
2 más 7 00:25:01
¿Qué tipo tiene esta expresión? 00:25:03
Tipo 00:25:08
Vale, usa un operador 00:25:09
Infijo, vale, fenomenal 00:25:12
Operador de suma 00:25:14
¿Qué valor tiene esta? 00:25:15
O sea, ¿qué tipo tiene esta expresión? 00:25:17
¿Esto qué tipo es? 00:25:24
Int 00:25:26
¿Esto qué tipo es? 00:25:27
Más int 00:25:31
¿Qué me da? 00:25:32
Pues int 00:25:34
Entonces, el valor resultante de esto, que será 9, es un int 00:25:35
El valor, el tipo de esta expresión es 00:25:41
Int 00:25:48
¿Se entiende? 00:25:50
Vale 00:25:53
Esta sería int más double 00:25:53
Por lo tanto todo el resultado este de aquí 00:26:03
Esta expresión es de tipo 00:26:06
Double 00:26:07
¿Qué tipo tiene esta expresión de aquí? 00:26:09
Double 00:26:39
Esta sería int 00:26:40
Dividida 2.0 es un double 00:26:43
Por 7 es un double 00:26:47
¿Sí? 00:26:48
Porque he puesto esto 00:26:53
Y esta 00:26:55
Float 00:26:56
Porque tengo int más int 00:27:02
Este es un int 00:27:05
Int dividido float 00:27:06
Float 00:27:10
Float por int 00:27:11
Float 00:27:13
Si o no? 00:27:14
Int 00:27:18
A es igual a 8 00:27:23
int b es igual 00:27:26
a 9 00:27:29
doble t es igual 00:27:30
a 3 00:27:35
y string s 00:27:37
es igual a esto 00:27:41
¿estamos de acuerdo? 00:27:43
vale 00:27:46
esta expresión 00:27:47
¿qué tipo tiene? 00:27:50
¿cómo double? 00:27:59
¿Qué es esto? 00:27:59
Double 00:28:10
Este es int 00:28:11
Más int es un int 00:28:13
Más double 00:28:14
Es double 00:28:16
Eh, pero aquí está escrito 3 00:28:18
Sí, sí, pero lo he guardado como double 00:28:20
Su tipo es double 00:28:22
¿Sí o no? 00:28:23
Sí, pero se va a enfadar 00:28:27
Porque este es un int 00:28:28
Debería haberlo puesto así 00:28:29
Pero hemos dicho que 00:28:31
Si yo pillo uno más pequeño 00:28:33
Y lo pongo en algo más grande 00:28:35
Él no se queja 00:28:37
¿Vale? 00:28:39
¿Sería más preciso ponerlo así? 00:28:41
00:28:43
¿O ponerlo así? 00:28:43
Sí, también 00:28:44
¿Vale? 00:28:45
Pero si lo pongo así 00:28:46
Es verdad que este es un int 00:28:47
Pero está guardado en un double 00:28:49
Ha ocupado el espacio de un double 00:28:51
Son 8 bytes 00:28:53
Entonces cuando aquí hago 00:28:54
Int más int más double 00:28:56
El resultado 00:28:59
Es un double 00:29:00
¿Sí? 00:29:01
¿Qué tipo tiene esta expresión? 00:29:03
Tipo string 00:29:12
¿Vale? 00:29:17
A más B 00:29:19
Será un int 00:29:21
Más C será un double 00:29:23
Pero como luego utilizo este más 00:29:25
Que no es un más aritmético 00:29:27
Sino es un más de concatenación 00:29:29
Con un string 00:29:31
El resultado total es un string 00:29:32
¿Y qué hace? 00:29:33
Antes me hace esta suma de aquí 00:29:38
Y luego le pega detrás 00:29:40
El string 00:29:42
Con cadena todo 00:29:44
O sea, el resultado es algo como 00:29:46
8, 9, 3 00:29:48
Y pongamos aquí una A 00:29:50
O hace 00:29:53
8, 8, 6, 6, 7, 6, 8, 9, 20 00:29:55
Como son todos más 00:30:01
Lo más probable es que vaya haciéndolo en orden 00:30:11
Entonces me sale esto 00:30:14
Y si quiero estar seguro, seguro, seguro 00:30:17
Que salga esto 00:30:20
Y si quiero estar seguro, seguro, seguro 00:30:21
Que salga esto 00:30:30
Yo quiero ser seguro, seguro, seguro 00:30:31
Pues estoy seguro, seguro, seguro 00:31:02
Hay formas de hacerlo más fácil 00:31:06
Probablemente si pongo la S delante 00:31:14
O sea que 00:31:16
S más A más B más T 00:31:22
Probablemente da esto 00:31:25
Porque como va en orden 00:31:27
Me haría S más A 00:31:30
Entonces es un string, más B es un string 00:31:31
Más C es un string 00:31:34
Pero me pone la delante 00:31:35
Está pensando en esto 00:31:40
Me entendéis más o menos 00:31:43
Y con esto funciona 00:31:47
Entonces, ¿entendéis que es el tipo de una variable? 00:31:50
Perdón, el tipo de una expresión 00:31:55
Una expresión 00:31:57
Compleja cuanto queráis 00:31:58
La resuelvo, al final me sale algo 00:32:00
El tipo de ese algo 00:32:02
Es el tipo de la expresión 00:32:04
Y puede ser un int, puede ser un double 00:32:06
Puede ser un string 00:32:08
¿Dudas? 00:32:09
Así funciona 00:32:23
Con la A no 00:32:24
Sería A893 00:32:25
Es que como al principio lo he puesto así 00:32:31
Y luego lo he puesto al lado después 00:32:35
Pues estaba pensando 00:32:36
00:32:38
De la expresión 00:32:39
Tú tienes la expresión, calculas el valor que representa esa expresión 00:32:51
Y una vez que lo tengas, pues ese es tu tipo 00:32:55
Pregunta, ¿puedo saber el tipo de una expresión antes de saber qué valores tengo en las variables? 00:32:58
O sea, imaginaos que esto sea scan.nextin 00:33:08
Esto no sé qué valor va a ir a 00:33:12
¿Puedo saberlo? 00:33:16
Si A más B 00:33:21
Pues estar seguro 00:33:23
Que este es un int 00:33:24
Si, porque me lo dice aquí, vale 00:33:25
Cada variable 00:33:28
Tiene su valor 00:33:30
¿Estamos de acuerdo? 00:33:31
Vale, entonces vamos a ver esta cosa de aquí 00:33:35
A veces 00:33:37
Vale 00:33:39
Las expresiones 00:33:40
El tipo de valores 00:33:43
El tipo de la expresión, la hemos dicho 00:33:44
Es esta de aquí, pero a veces se hacen 00:33:46
Conversiones automáticas 00:33:48
lo que decíamos que si yo tengo 00:33:50
double x es igual a 3 00:33:52
3 no es un double 00:33:53
pero él me lo hace automáticamente la conversión 00:33:55
y me transforma el 3 que es un entero 00:33:58
en un double 00:34:00
esto pasa cuando 00:34:01
son automáticas 00:34:03
son implícitas estas conversiones 00:34:05
cuando tengo un cambio 00:34:08
de un tipo compatible 00:34:10
más pequeño a uno más 00:34:11
grande, por ejemplo 00:34:14
así 00:34:16
yo digo 00:34:24
Aquí mira, para ser seguro 00:34:26
Algo así 00:34:28
Imaginaos que yo digo 00:34:28
Tengo una variable 00:34:33
Que se llama n1 que es de tipo float 00:34:35
Y vale 3,4 como float 00:34:37
¿Vale? 00:34:40
Ok, ahora pillo un double n2 00:34:42
Y digo n2 es igual a n1 00:34:44
Funciona esto 00:34:47
Y lo hace de automático 00:34:51
¿Vale? 00:34:53
Porque float son 4 bytes 00:34:54
Y yo lo estoy metiendo 00:34:58
En un espacio que son 00:35:00
8 bytes 00:35:02
Por lo tanto cabe 00:35:03
No hay problema 00:35:05
Lo mismo si yo tengo un int 00:35:06
X y luego esta X 00:35:10
La pongo en un long 00:35:12
Ningún problema 00:35:13
No me necesita nada 00:35:15
No me dice nada Java 00:35:16
No me avisa de oye mira 00:35:18
Que aquí hay algo raro 00:35:20
Lo hace de forma automática 00:35:21
Hace esta conversión de tipo de forma automática 00:35:23
conversiones explícitas vale que son de un tipo compatible más grande a un tipo a uno más pequeño 00:35:26
sí pero cuidado que el charla es un inter considerado como flor entonces luego has 00:35:39
perdido que echar que era pero lo que hace una casting explícito vale que es cuando yo 00:35:49
tengo dos tipos compatibles que quiere decir un tipo compatible está hablando de números por 00:35:57
ejemplo vale entonces flow a te da bolson compatibles inter 00:36:02
el hombre son compatibles string e int son compatibles 00:36:10
entonces qué pasa si quiero hacer al revés de esto o sea que yo pillo un 00:36:17
double luego me creó una flor y quiero poner dentro de n 2 n 1 algo así 00:36:21
si yo hiciera esto 00:36:30
¿funciona? 00:36:33
esto me va a dar un error 00:36:38
me va a decir, oye mira, no puedo poner 00:36:40
8 bytes dentro de 4 bytes 00:36:42
te estás equivocando 00:36:45
si yo estoy seguro 00:36:48
que no me estoy equivocando y quiero hacerlo 00:36:50
quiero hacerlo, quiero hacerlo 00:36:52
pues entonces tengo que hacerlo con un 00:36:54
casting explícito 00:36:56
esto es como avisar 00:36:58
A Java 00:37:03
Que sé perfectamente que esto 00:37:04
No se puede hacer 00:37:06
Pero lo quiero hacer 00:37:08
¿Qué hará Java? 00:37:10
Perder precisión 00:37:13
¿Sí? 00:37:14
Ahora está intentando poner 00:37:17
Un valor 00:37:19
Que se define 00:37:22
Con 8 bytes 00:37:24
En un espacio de 4 bytes 00:37:25
Entonces por algún lado tendrá que recortar bytes 00:37:27
Entonces puede ser 00:37:30
Que este valor de aquí 00:37:32
no sea exactamente esto, pero has dicho tú que lo querías hacer 00:37:33
si tú por ejemplo tienes un número con la coma y quieres solo la parte 00:37:44
entera no redondeando, solo la parte entera puedes convertir 00:37:49
lo hace en un int por ejemplo entonces estás pintando solo la parte entera, si pero el 00:37:55
Double es demasiado grande 00:37:59
Podría tener problemas 00:38:00
Entonces 00:38:01
Conversiones de dos tipos 00:38:04
Automáticas o explícitas 00:38:07
O casting 00:38:10
Implícitas o explícitas 00:38:11
Cuando no pierdo 00:38:13
Ninguna precisión 00:38:14
Me lo hace el en automático sin decirme nada 00:38:17
Cuando tengo problemas 00:38:19
El me dice que hay un error 00:38:21
Y tengo que hacer una conversión 00:38:23
Yo explícitamente 00:38:25
Y luego un tercer tipo 00:38:26
Que estas no se pueden hacer 00:38:29
¿Cuándo no se puede hacer? 00:38:31
Cuando hay que hacer una conversión 00:38:35
Entre tipos incompatibles 00:38:38
Como por ejemplo 00:38:39
Yo intento hacer 00:38:41
String nombres igual a pp-n 00:38:42
Menos 00:38:46
Es un operador binario 00:38:48
Infijo 00:38:50
Que necesita 00:38:52
Por ejemplo int-int 00:38:53
¿Vale? Este es un int 00:38:55
Vale, fenomenal 00:38:57
Pero esto es un string 00:38:58
¿Puedo convertir un string a int? 00:39:01
Entonces esta conversión no la puedo hacer 00:39:04
Entonces esto me da un error 00:39:07
Esto me dice, esto no lo puedes hacer 00:39:08
¿Por qué? Porque el menos 00:39:10
No está definido para strings 00:39:12
El más sí 00:39:14
Si yo cambio esto con más 00:39:17
Pues no funcionaría 00:39:18
Porque haría string más int 00:39:20
Y lo admite, ¿vale? 00:39:22
No tiene que hacer conversiones 00:39:24
Pero con el menos, como el menos solo está definido 00:39:25
Entre int menos int, por ejemplo 00:39:27
O double menos int 00:39:29
Tiene que convertir este de aquí 00:39:30
A un entero 00:39:33
Y no puede, porque son tipos incompatibles 00:39:33
Por lo tanto me da un error 00:39:37
Esto no se puede hacer 00:39:39
Oh, otra opción 00:39:41
Es entre tipos compatibles 00:39:44
Pero perdiendo precisión 00:39:47
Y sin casting explícito 00:39:48
Este es un entero, son 4 bytes 00:39:50
Lo intento poner 00:39:55
y convertir dentro de un byte 00:39:56
me dice no puede hacer porque estoy perdiendo 00:39:58
precisión, es un error, no te lo hago 00:40:01
si yo aquí 00:40:03
le pongo entre paréntesis byte 00:40:05
hago un casting explícito, me lo hará 00:40:06
porque asume 00:40:09
que yo sé el riesgo a lo que 00:40:11
a lo que me estoy arriesgando 00:40:13
dudas 00:40:15
bueno si 00:40:18
estas cosas luego saldrán 00:40:20
es teoría, luego practicamos 00:40:22
Es lo mismo que esto 00:40:25
Pero sin el flow 00:40:29
Aquí 00:40:30
Yo no puedo poner 4 bytes 00:40:33
Dentro de un byte 00:40:36
Entonces si no lo hago explícitamente 00:40:37
No me lo hace 00:40:39
Este es un error 00:40:40
¿Vale? 00:40:42
00:40:44
Pero entonces caigo en este 00:40:44
Estoy aquí 00:40:49
Aquí lo que te está diciendo es 00:40:50
Si son tipos compatibles 00:40:55
Perdiendo precisión 00:40:57
Y sin casting explícito 00:40:59
Entonces esta es no factible 00:41:01
Sin casting explícito no lo puede hacer 00:41:03
Con casting explícito sí, pero entonces caigo en esta opción 00:41:05
¿Dudas? 00:41:08
¿Cómo? 00:41:11
Así 00:41:21
Lo que cambia es ponerle el casting o no 00:41:22
Si le pongo el casting me deja, si no le pongo el casting no me deja 00:41:26
¿Dudas? 00:41:29
Y llegamos a la transparencia a la que quería llegar 00:41:35
¿Vale? 00:41:37
Los operadores que tenemos que saber 00:41:38
Aritméticos 00:41:42
Los sabemos 00:41:51
Ya los hemos visto 00:41:53
Más, menos, por, dividido, módulo 00:41:55
¿Alguien tiene dudas sobre qué hacen estos operadores? 00:41:59
¿Alguien me puede decir 00:42:03
Esto 00:42:07
¿Cómo clasificaríamos este operador de aquí? 00:42:09
Como división 00:42:17
¿Qué clasificación es como división? 00:42:18
¿Cómo es este operador? 00:42:21
Binario 00:42:26
¿Y? 00:42:27
Exacto, infijo 00:42:33
Binario 00:42:34
Soy vosotros que decís ternario 00:42:38
Porque no sabéis qué decir 00:42:41
¿Sí? 00:42:42
Binario 00:42:44
Porque necesita dos expresiones 00:42:45
Y va en el medio de las dos expresiones 00:42:47
Entonces infijo 00:42:50
Sin embargo, el módulo 00:42:51
Binario 00:42:53
E infijo 00:42:59
Muy bien 00:43:03
¿Eh? 00:43:04
No habéis caído en la trampa 00:43:04
Entonces dice 5 módulo 7 00:43:05
Hace 5 dividido 7 00:43:11
Y luego el resto de esta división 00:43:13
¿Vale? 00:43:14
Pues no 00:43:15
Que... 00:43:16
Es lo que hay 00:43:17
Esto lo repasáis 00:43:18
Porque deberíais saberlo 00:43:20
Vamos a ver 00:43:21
Los tipos de comparación 00:43:23
Que también hemos visto 00:43:26
El otro día 00:43:28
Entonces está 00:43:29
El igual, igual 00:43:31
¿Qué hace este de allí? 00:43:32
¿Cómo es? 00:43:40
¿Cómo es? 00:43:47
Es un ario 00:43:48
Ah, perdón 00:43:50
Es binario 00:43:51
¿Y cómo es? 00:43:52
¿Cómo podría ser? 00:43:54
Es binario 00:43:55
Y es 00:43:59
Infijo 00:44:00
Entonces hay expresión booleana 00:44:02
Igual, igual 00:44:06
Expresión booleana 00:44:07
Y esto es true 00:44:09
Si las dos expresiones 00:44:12
Son o las dos true 00:44:14
O las dos false 00:44:16
¿Si? 00:44:17
Y si no es false 00:44:19
¿Se entiende? 00:44:20
Lo hago 00:44:22
Esquemita 00:44:23
Pongamos que haya dos expresiones 00:44:29
La expresión 1 y la expresión 2 00:44:32
Booleanas 00:44:35
¿Vale? 00:44:36
Entonces, aquí pongo E1 00:44:37
¿Vale? 00:44:40
¿Cómo lo hago? 00:44:41
Así 00:44:42
Entonces, E1 puede ser 00:44:42
Verdadera 00:44:46
O falsa 00:44:48
¿Sí? 00:44:50
Y E2 puede ser verdadera 00:44:50
O falsa 00:44:53
Y estamos mirando 00:44:54
El operador 00:44:57
Igual, igual 00:44:59
Entonces 00:45:00
E1 igual, igual, E2 00:45:01
¿Estamos de acuerdo? 00:45:05
Si E1 es verdadera 00:45:07
Y E2 es verdadera 00:45:09
Igual, igual, ¿cómo es? 00:45:11
Verdadero 00:45:14
Porque esto es igual a esto 00:45:15
¿Sí? 00:45:19
Y si 00:45:23
Ay, me estoy liando yo 00:45:24
Vale 00:45:26
Y si en vez de ir 00:45:31
Hagámoslo sin 00:45:34
Bulearnos 00:45:36
Si esto vale 2 y esto vale 3 00:45:37
Igual, igual 00:45:40
Falso, porque no son igual 00:45:44
Si esto vale 2 00:45:48
Y esto vale 5 00:45:50
2 y 2 00:45:51
Si o no 00:45:57
Porque, perdóname 00:45:59
Esto del verdadero es falso, luego lo hacemos aquí. 00:46:02
Ahora, con esto nos sirve menos, ¿vale? 00:46:05
Simplificámoslo. 00:46:08
Entonces, yo tengo expresión 1 es igual a igual a expresión 2, ¿sí? 00:46:10
Si esto es 5 igual a igual a 3, ¿resultado? 00:46:15
Falso. 00:46:23
Falso. 00:46:24
¿Sí? 00:46:26
3 es igual a igual a 3. 00:46:27
¿Se entiende el igual a igual? 00:46:30
Vale, not igual 00:46:33
5 not igual a 3 00:46:35
3 not igual a 3 00:46:41
¿Se entiende? 00:46:49
Vale 00:46:57
Miramos el mayor igual 00:46:57
Mayor 00:47:00
Venga 00:47:01
3 mayor que 5 00:47:02
Falso 00:47:05
Cinco mayor que tres 00:47:07
¿Vale? 00:47:11
Y es igual con el menor 00:47:14
Menor o igual 00:47:15
Por ejemplo, tres mayor o igual que tres 00:47:19
Otra vez 00:47:23
¿Están de acuerdo con esto? 00:47:26
Vale, estos son sencillos 00:47:29
¿Sí? 00:47:31
Y tengo estos cinco, estos seis 00:47:32
Igual, igual, distinto, mayor, menor, mayor o igual y menor o igual 00:47:35
¿Vale? 00:47:40
Y esto es fácil 00:47:42
Se puede hacer también 00:47:43
Entre booleanos 00:47:46
Entre coma fluctuantes 00:47:48
Entre char 00:47:49
O sea, yo puedo hacer 00:47:50
Igual, igual 00:48:00
Pero ve 00:48:04
Char inicial 00:48:12
Es igual a B 00:48:18
Inicial 00:48:20
Igual, igual 00:48:26
Alche 00:48:30
Si o no 00:48:35
Vale 00:48:39
Inicial 00:48:41
Mayor 00:48:45
Que A 00:48:47
¿Os acordáis que con el código H 00:48:50
Cada carácter representa un número? 00:49:05
Que todo esto era 00:49:08
No me acuerdo, 63, este 64 00:49:09
Por lo tanto 64 es mayor que 63 00:49:11
Me daría truco 00:49:14
Estáis allí, teníais la cara de 00:49:22
Esto es muy fácil 00:49:23
Y lo mismo lo puedes hacer 00:49:24
Con booleanos, como habíamos empezado antes 00:49:30
Pero con booleanos, estos operadores de aquí 00:49:32
De booleanos, son un poquito más 00:49:34
Más fáciles 00:49:36
¿Vale? Por lo tanto, entre enteros 00:49:40
O charro, o cosas por el estilo 00:49:42
Se pueden utilizar estos, eso entiende 00:49:44
Estos son nuevos, estos no los hemos visto nunca 00:49:45
Bueno, el norte lo hemos visto 00:49:48
¿Vale? 00:49:50
Nos interesa esto y esto 00:49:52
Estos otros los dejamos 00:49:54
Son parecidos 00:49:57
¿Qué es el AND y el OR? 00:50:00
¿Vale? 00:50:03
Estos son operadores 00:50:04
Que reciben 00:50:05
Una expresión booleana 00:50:07
AND AND 00:50:10
Por ejemplo 00:50:12
Expresión booleana 2 00:50:13
¿Si? 00:50:15
Entonces, aquí si que la tabla de antes 00:50:19
Es interesante 00:50:21
Verdadero o falso 00:50:22
verdadero, falso 00:50:23
estamos viendo lo que se llama el end 00:50:27
esto es el operador and, vale 00:50:30
operador y 00:50:34
esto es verdadero, o sea, esta cosa de aquí es verdadera 00:50:36
solo cuando esto es verdadero 00:50:43
y esto es verdadero 00:50:47
Es decir, que aquí 00:50:50
Verdadero 00:50:52
Y si esto fuera verdadero y esto falso 00:50:55
Pues todo es falso 00:50:59
Y si esto es falso y esto es verdadero 00:51:01
Falso 00:51:10
Y si esto es falso y esto es falso 00:51:12
Falso 00:51:16
¿Sí? 00:51:18
El OR 00:51:25
Que se hace así 00:51:26
El 1 con alt gráfico 00:51:30
Es verdadero 00:51:40
O sea que esta cosa de aquí 00:51:46
Es verdadera 00:51:48
Si esta 00:51:49
Esta 00:51:59
Es verdadera 00:52:00
Por lo tanto, si esta es verdadera 00:52:02
Y esta es verdadera 00:52:05
Esto todo es verdadero 00:52:06
Si esta es falsa 00:52:09
Pero esta es verdadera 00:52:11
Verdadera 00:52:12
Si esta es verdadera 00:52:14
Y esta es falsa 00:52:18
Verdadero 00:52:19
Y si no 00:52:20
Falso 00:52:22
Ahora hacemos un ejemplo 00:52:24
Vamos a hacer un ejemplo 00:52:33
Yo quiero verificar que un int 00:52:35
Que 00:52:39
Recibo desde 00:52:40
Scan 00:52:42
Sea entre 0 y 10 00:52:43
Quiero que sea una nota 00:52:51
Por lo tanto no puede ser 11 00:52:56
No puede ser menos 7 00:52:58
¿Cómo puedo mirar? 00:53:00
¿Qué tengo que hacer? 00:53:06
Con A para hacer una condición booleana 00:53:07
Que me diga true 00:53:10
Cuando el número A está entre 0 y 10 00:53:12
Y me diga false en cualquier otro caso 00:53:15
Me explico 00:53:18
A mayor que 0 00:53:20
Mayor o igual que 0 00:53:22
Esto funciona 00:53:24
Si me ponen A menos 1 00:53:26
Me dice true 00:53:29
Pero si me ponen A 157 00:53:30
Me dice true también 00:53:33
Por lo tanto esto no me vale 00:53:35
Entonces pruebo esta 00:53:37
A menor que 11 00:53:43
Esto si pongo 10 00:53:45
Me dice true 00:53:49
Si, si pongo 1 00:53:50
Si pongo 0 00:53:52
Si pongo menos 7 00:53:54
Menos 7 no es menor que 11 00:53:56
Entonces 00:54:00
Esta me vale porque me pilla los números de 0 por arriba 00:54:04
Esta me vale porque me pilla los números de 10 para abajo 00:54:08
Pero yo quiero las dos condiciones a la vez 00:54:10
¿Cómo lo hago? 00:54:13
Que A sea mayor que 0 00:54:21
Y también menor que 11 00:54:23
Entonces probamos con el número 00:54:26
Cinco 00:54:31
¿Es mayor que cero? 00:54:33
True 00:54:36
Verdadero 00:54:37
¿Es menor que once? 00:54:41
00:54:45
Verdadero 00:54:46
¿Y verdadero y verdadero cómo era? 00:54:47
Verdadero y verdadero 00:54:50
Verdadero 00:54:52
Por lo tanto esta es verdadera 00:54:55
Si, por algo a la 5 00:54:56
Me funciona 00:55:00
Y si pongo 15 00:55:01
Veamos 00:55:02
¿Es mayor que 0? 00:55:04
Verdadero 00:55:08
¿Y? 00:55:08
¿Es menor que 11? 00:55:11
No, es falso 00:55:13
Y este de aquí en la tabla 00:55:15
Si es verdadero 00:55:18
Perdón, verdadero esto 00:55:20
Pero falso este otro 00:55:23
Por lo tanto esto es falso 00:55:24
¿Vale? 00:55:27
¿Lo veis que esta condición de aquí 00:55:29
Me pilla solo los números entre 0 y 10? 00:55:31
Y así es como se usa el end 00:55:35
Y si yo quisiera pillar todos los números 00:55:38
Excepto entre 0 y 10 00:55:44
Quiero todos los números me valen 00:55:47
Pero entre 0 y 10 no 00:55:53
¿Cómo lo diríais? 00:55:55
A menos sí, ¿no? 00:56:13
A menor que cero 00:56:14
A menor que cero 00:56:16
Entonces esto 00:56:19
Estrictamente menos 00:56:31
¿Esto funciona? 00:56:33
¿Puede un número ser menor que cero 00:56:36
Y al mismo tiempo mayor que diez? 00:56:39
Esto estaría siempre falso 00:56:42
00:56:43
Si esto me pilla 00:56:49
Solo los números entre cero y diez 00:57:00
Esto me pillará los otros 00:57:02
Bueno 00:57:08
Y con el or 00:57:10
Si a mi me valen 00:57:12
A ver 00:57:14
Hagamos con dos variables 00:57:21
Si yo tengo la variable A 00:57:22
Y la variable B 00:57:24
Y quiero que una de las dos 00:57:26
Sea positiva 00:57:29
Si una de las dos es positiva 00:57:30
A mi me vale 00:57:33
Que condición crearíais vosotros 00:57:34
Para verificar que 00:57:37
O A o B sea mayor que 0 00:57:40
Mayor que 0, sí, positivo 00:57:43
A mayor que 0 00:57:44
B mayor que 0 00:57:56
Si este es positivo y este es positivo 00:57:58
Da positivo 00:58:05
Si este es positivo y este es negativo 00:58:06
Me da positivo igual 00:58:08
Porque con esto true y esto false 00:58:10
El or da fa true 00:58:12
Si este es negativo y este es positivo 00:58:13
True 00:58:18
Si los dos son negativos 00:58:19
Pues falso 00:58:21
Ahora, esto de aquí de la lógica booleana 00:58:22
Los send, los or, los mayores 00:58:28
Y cosas por el estilo 00:58:31
Son básicos en informática 00:58:31
El or 00:58:33
El or es verdadero cuando 00:58:40
Siempre, excepto cuando son falsas 00:58:43
Las dos expresiones 00:58:46
Si lo miras aquí 00:58:47
Es siempre verdadero 00:58:54
Excepto cuando los dos son falsos 00:58:56
¿Sí? 00:58:59
Entonces 00:59:03
Estos de aquí 00:59:05
De la lógica 00:59:06
De los AND 00:59:07
De los OR 00:59:08
Etcétera, etcétera 00:59:09
Que son operadores lógicos 00:59:09
De lógica booleana 00:59:11
¿Vale? 00:59:12
Son fundamentales en informática 00:59:12
Porque nosotros nos basamos mucho en condiciones 00:59:15
¿Vale? 00:59:17
Muchas de las cosas que veremos 00:59:19
Que son los IF 00:59:21
Y son los WHILE 00:59:21
Se basan sobre una condición 00:59:23
Y también 00:59:25
Este señor de aquí 00:59:27
Se basa sobre una condición 00:59:29
¿Vale? 00:59:31
Que es el operador ternario 00:59:33
El que decíamos antes 00:59:35
¿Vale? Es decir, que este operador 00:59:37
Tiene tres partes 00:59:39
Separadas por esta 00:59:41
Interrogación y estos dos puntos 00:59:42
¿Vale? 00:59:45
Aquí va una condición 00:59:47
Una expresión 00:59:50
Una expresión booleana 00:59:51
Algo que se pueda resolver 00:59:53
Con true o false 00:59:56
Sin embargo, aquí 00:59:57
Y aquí 00:59:59
Van otras expresiones 01:00:01
Pueden ser int, pueden ser 01:00:03
Lo que les da la gana 01:00:05
Tened en cuenta que 01:00:07
El tipo de estas dos expresiones 01:00:09
Tiene que ser el mismo 01:00:11
Si este es int, esto también es int 01:00:12
Si este es double, esto también es double 01:00:15
Si este es string, esto también es string 01:00:18
no vale mejor que no vale entonces cómo se usa esto ahora hacemos un ejemplo vale 01:00:21
estos de aquí yo no os los cuento vale existen son operadores a nivel de binario que mueven el 01:00:36
binario de una posición a destra sinistra y uno los he usado en mi vida vale entonces existen 01:00:44
están aquí, a lo mejor haremos 01:00:50
un ejercicio una vez para 01:00:52
probarlo, ¿vale? así de trampa 01:00:54
para que no se os olvide, no sabéis ni siquiera 01:00:56
que son, ¿vale? entonces son los operadores 01:00:58
de shift, ¿vale? 01:01:00
y se 01:01:02
usan en ciertos contextos 01:01:04
pero en lo que hagáis a hacer vosotros 01:01:06
este año, no lo vais a ver, ¿vale? 01:01:08
por lo tanto 01:01:10
tampoco quiero añadir 01:01:11
cosas, ¿vale? 01:01:14
entonces, este de aquí, ahora 01:01:16
hacemos ejemplos, ¿vale? 01:01:18
Pero, para que se quede en la grabación, este de aquí, si es verdadero, entonces todo esto vale esto, si esto es falso, todo esto vale esto. 01:01:20
Por ejemplo 01:01:39
Si yo digo 01:01:41
Int a es igual 01:01:44
Si 5 01:01:48
Es mayor que 7 01:01:51
Entonces 4 01:01:52
Si no 01:01:56
¿Cuánto vale int? 01:01:59
¿Cuánto vale a? 01:02:04
Miro esta cosa de aquí 01:02:06
¿Es true o false? 01:02:09
False 01:02:14
Por lo tanto esto 01:02:14
Si yo 7 lo pongo dentro de A 01:02:16
Por ejemplo para 01:02:37
Vamos a un programa rápido 01:02:42
Me dan un int 01:02:44
Número 01:02:46
Scan.nextint 01:02:47
Y yo quiero saber 01:02:51
¿Vale? 01:02:56
Si este número 01:02:57
Es positivo 01:02:58
O negativo 01:03:00
Y que me escriba 01:03:02
Por pantalla 01:03:03
Positivo o negativo 01:03:05
¿Cómo lo puedo hacer? 01:03:06
Pues por ejemplo 01:03:11
String 01:03:12
Resultado 01:03:15
Es igual a 01:03:17
Sinum 01:03:19
Es mayor o igual a 0 01:03:21
¿Qué vale? 01:03:24
El positivo 01:03:33
Sinum 01:03:33
Esperad que lo hago un poquito más pequeño para que se vea entero 01:03:38
¿Lo veis? 01:03:45
Pues ya está, he hecho un programa 01:03:54
Que dame cualquier número 01:03:56
Y te digo si es positivo o negativo 01:03:57
¿Si o no? 01:03:58
Compruebo esta cosa aquí 01:04:08
Si el número que me acaban de dar 01:04:09
Es mayor que cero 01:04:11
Entonces devuelvo esta cosa aquí 01:04:12
Es decir que pongo aquí dentro positivo 01:04:15
Si en vez de esta cosa aquí es falsa 01:04:17
Pues lo pondré aquí 01:04:20
¿Qué hace esto? 01:04:21
Me dice si el número que me han puesto 01:04:51
Es igual a cero o no 01:04:53
¿Si? 01:04:54
¿Lo veis? La diferencia entre esto 01:04:56
Y esto 01:04:58
¿Qué es esto? 01:05:00
Operador de asignación 01:05:08
¿Qué es esto? 01:05:09
Operador de igualación, sí 01:05:14
Igualdad 01:05:16
¿Sí? 01:05:18
Este de aquí es un operador booleano 01:05:21
Que me dará un true and false 01:05:23
Que compara las dos expresiones 01:05:24
A la izquierda y a la derecha, si son iguales 01:05:26
Sin embargo 01:05:29
Este de aquí es una operación 01:05:30
De asignación 01:05:32
Y antes de acabar 01:05:33
La última cosa importante 01:05:35
No se usa este operador 01:05:37
Entre palabras 01:05:41
Entre string 01:05:42
Esto está prohibido 01:05:45
Variables 01:05:47
Variables de tipo string no 01:05:50
Variables de tipo string no 01:05:51
Variables de tipo int 01:05:53
Variables de tipo lo que sea 01:05:55
Tipo primitivos 01:05:56
Uso esto 01:05:59
String no 01:06:00
veremos como se hace 01:06:01
vale, y aquí yo creo 01:06:04
que me paro, aquí hay otros 01:06:06
ejemplos y cosas por el estilo 01:06:08
lo veremos en otro momento 01:06:10
Autor/es:
Stefano Chiesa
Subido por:
Stefano C.
Licencia:
Reconocimiento
Visualizaciones:
14
Fecha:
29 de septiembre de 2023 - 13:16
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
1h′ 06′ 14″
Relación de aspecto:
4:3 Hasta 2009 fue el estándar utilizado en la televisión PAL; muchas pantallas de ordenador y televisores usan este estándar, erróneamente llamado cuadrado, cuando en la realidad es rectangular o wide.
Resolución:
960x720 píxeles
Tamaño:
209.17 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid