Operadores booleanos 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:
Voy a grabar, por lo tanto, si habláis, me dais la autorización a grabar vuestras voces, ¿vale? Entonces, estamos aquí con operadores, ¿vale? Entonces, los hemos visto todos más o menos estos de aquí, ¿vale?
00:00:01
esto de aquí son los operadores que me dicen
00:00:14
si dos cosas son iguales
00:00:17
si dos cosas son distintas
00:00:19
si dos cosas, una es mayor que otra
00:00:21
una es menor que la otra
00:00:23
mayor o igual, menor o igual
00:00:25
estos son operadores de comparación
00:00:27
¿están de acuerdo con esto?
00:00:30
vamos a hacer
00:00:33
otras
00:00:34
pruebas
00:00:36
por ahora quito esto
00:00:38
algo básico
00:00:40
Hemos dicho que esto
00:00:45
Esto se entiende
00:00:50
Falso
00:00:55
Pregunta
00:00:56
¿Quién ha pensado comparar strings?
00:00:58
Ha suspendido
00:01:18
El primer examen
00:01:20
Esto no son strings
00:01:21
¿Y qué me da?
00:01:27
Falso
00:01:35
los char son caracteres tipo primitivo ya vale en realidad java por debajo representa
00:01:35
los char como números. Un char es un número. Entonces puedo hacer operaciones con los char.
00:02:29
B-1 es A. Char, no string. Esto deriva de vuestro mejor amigo, el código Azti.
00:02:37
¿Qué es este señor de aquí?
00:02:53
¿Vale?
00:03:00
Que es una tabla
00:03:00
que sustancialmente os dice
00:03:01
cada carácter
00:03:04
a qué número corresponde.
00:03:06
¿Veis?
00:03:10
Entonces, cuando yo hago A,
00:03:11
en realidad, por debajo,
00:03:12
él dice que es 97.
00:03:14
Cuando digo B, por debajo,
00:03:15
él dice que es 98.
00:03:17
Luego, como es char,
00:03:18
cuando lo va a utilizar,
00:03:20
él no va a utilizar 98, más va a utilizar el carácter correspondiente. Es decir, que da...
00:03:21
porque para él el carácter A en realidad es el entero 97, lo vemos aquí,
00:03:37
y por lo tanto. Ahora tened en cuenta que vosotros como utilizadores de caracteres demoníacos,
00:03:52
Si os fijáis, todas las letritas vienen aquí bonitas, excepto vuestros carácteres demoníacos.
00:04:00
Por ejemplo, la ñ. ¿Está la ñ? No, la ñ está por aquí. ¿Está la A con la diéresis? Pues no,
00:04:08
no está la A con la diéresis. En carácter normal la A con la diéresis está aquí, 132. Entonces,
00:04:18
mientras que vosotros trabajéis en inglés y hagáis ejercicios pensando en inglés,
00:04:24
pues todas las letritas
00:04:29
vienen aquí bonitas, pegadas
00:04:31
una a otra y podéis hacer cosas guay
00:04:33
como B más 1 es igual a C
00:04:35
¡Uy, qué guay! ¿Vale?
00:04:37
En el momento en que introducís la Ñ
00:04:39
las diéresis, las tildes
00:04:41
y cosas por el estilo, ya esto
00:04:43
no funciona tan bien. ¿Vale?
00:04:45
Porque vamos a caracteres raros.
00:04:47
¿Sí? Entonces
00:04:50
si queréis hacer cosas
00:04:51
usando los charres, ejercicios que
00:04:53
mandaré, haciéndolo bien en español
00:04:55
tendréis que
00:04:57
que considerar todos los casos raros que vienen por aquí, ¿vale?
00:04:58
Cualquier ejercicio que os mande yo sobre char, pensadlo sin carácteres demoníacos, ¿vale?
00:05:04
Pensadlo como si fuera inglés y utilizamos estas cosas de aquí, ¿vale?
00:05:11
Mayúsculas y minúsculas.
00:05:16
Fijaos que en el medio entre la mayúscula y la minúscula hay unos cuantos símbolos raros, ¿vale?
00:05:18
pero toda la minúscula
00:05:23
va enseguida, toda la mayúscula va enseguida
00:05:25
y esto es el alfabeto inglés
00:05:27
¿vale? nosotros los ejercicios que haremos
00:05:28
si hacemos ejercicios
00:05:31
sobre char o que hay que utilizar char
00:05:33
pues siempre lo pensaremos como
00:05:35
con estos caracteres, en la realidad
00:05:37
no, en la realidad
00:05:39
los char se usan relativamente poco
00:05:40
se usan más los string
00:05:43
¿vale?
00:05:44
entonces esto es
00:05:50
para que veáis que
00:05:52
los tipos primitivos son o numéricos o de verdad, ¿vale? True-False, ¿sí? Que en realidad por debajo
00:05:53
algunos lenguajes lo consideran como cero o no cero, ¿vale? O hc, por ejemplo, el cero es falso y
00:06:03
cualquier otro número es true, ¿vale? Normalmente se utiliza cero y uno, pero bueno. True-False o
00:06:11
numéricos, ¿vale? Enteros
00:06:19
o decimales. El char, que es
00:06:22
otro carácter, otro tipo
00:06:24
primitivo, en realidad
00:06:26
se porta mucho como
00:06:28
número, ¿vale?
00:06:30
Entonces yo podría hacer un
00:06:33
te doy un entero
00:06:35
dime qué char es.
00:06:37
¿Vale? Entonces te leo
00:06:40
este de aquí, dame un número
00:06:41
y te digo, vale, escríbeme X.
00:06:43
¡Pum! Venga, vamos.
00:06:46
Entonces te digo, 97
00:06:48
¿qué es? ¡pum! 97 es 97. Espera, ¿y qué hago? ¡Ah! Lo sé. Le pongo que es un string, así el x tiene que ser un char y me pondrá una a. ¡Claro!
00:06:49
97
00:07:05
¡pum!
00:07:08
¡ah! porque me he equivocado
00:07:09
esto es un char
00:07:12
al que le añado x
00:07:14
pues no, porque no existe
00:07:16
el operador
00:07:19
más para char
00:07:21
existe para string
00:07:23
pero no para char
00:07:25
porque no es una cadena
00:07:26
entonces con cadena
00:07:29
es un símbolo solo
00:07:30
¿qué hago?
00:07:32
si lo preguntan por qué sabéis la respuesta algo algo ojalá tuviera un
00:07:35
modo yo para decir hoy este tipo de datos considerado como otro tipo de
00:08:05
datos ojalá ahora cuando tenía yo una un flow actor y decía no más considerado
00:08:09
como entero y me decía vale tanto consigo entero ojalá tuviera ese
00:08:21
mecanismo. Hago un casting explícito. Vamos a ver si así pilla. Estoy diciendo, ay mira, este es un entero.
00:08:25
Pero no lo consideres como entero. Te digo yo que lo tienes que considerar como un chart.
00:08:50
Entonces él dice, ah vale, entonces este es un chart. Entonces es A. ¿Se entiende?
00:08:57
Entonces, aquí ahora con esta cosa aquí, yo puedo meter el número que quiero y ver a qué
00:09:08
se corresponde. Si le dais al Alt y luego el numerito correspondiente al ASCII, os lo
00:09:26
escribe, dándole al botón
00:09:44
alto izquierdo, mientras lo mantenéis
00:09:47
pulsado y escribir, por ejemplo
00:09:49
97, pues lo pondré
00:09:50
no que esto sea muy
00:09:52
pero, si vosotros
00:09:56
tenéis 13 años y queréis
00:09:58
perder mucho tiempo
00:10:00
en hacer dibujitos
00:10:02
utilizando estos
00:10:04
simbolitos de aquí
00:10:06
podéis hacerlo
00:10:07
Yo hacía laberintos con eso.
00:10:10
Entonces, ¿queda claro todo esto?
00:10:18
¿Sí? ¿Queda claro que estos dan true o false?
00:10:22
¿Queda claro que esto lo puedo usar entre booleanos, enteros, goma flotante o char?
00:10:26
Queda claro que utilizarlo entre booleanos tiene poco sentido, pero bueno.
00:10:34
Bueno, queda claro que estos van bien aquí, porque esto tiene que ser un booleano, ¿sí?
00:10:39
Nos quedan estos. De estos nos interesan tres.
00:10:51
Este de aquí, este de aquí y este de aquí.
00:10:57
Esto es and, y. Esto es or, o. Y esto es not.
00:11:01
Lo hemos ya usado esto. ¿Dónde lo hemos usado esto? Aquí.
00:11:15
Es que esto es igual, igual. Y esto es no igual. Y era distinto.
00:11:23
¿Lo veis?
00:11:29
Entonces, ¿qué hacen estas cosas aquí?
00:11:32
Para estas cosas aquí necesitamos una tabla, ¿vale?
00:11:35
Entonces, imaginaos que esto es el end.
00:11:42
Aquí hay true, false, true y false.
00:11:48
Si yo tengo dos expresiones, la primera es true y la segunda es true, el resultado es true.
00:11:54
Es verdadera esta y esta.
00:12:05
En cualquier otro caso es falso
00:12:08
H, H, H
00:12:12
Es como decir, yo me estoy preguntando si una condición y otra condición son verdaderas juntas
00:12:18
Esta es verdadera y esta es verdadera
00:12:27
Si las dos son verdaderas, todo es verdadero
00:12:29
Si este es verdadero y esto no, no es verdadero esto y esto
00:12:32
Este es falso, entonces no me vale
00:12:38
¿Es verdadero esto y esto?
00:12:40
¿Y esto es falso? Pues tampoco.
00:12:44
Las dos son falsas.
00:12:45
¿Es verdadero esto y esto? No.
00:12:46
El y y eso son verdaderas.
00:12:49
Las dos expresiones a la vez.
00:12:51
¿Entiendes?
00:12:55
Esto es el and.
00:12:56
El y.
00:12:59
Esto y esto.
00:13:08
¿Sí?
00:13:11
Y luego está el or.
00:13:12
Que es esto.
00:13:17
Esta cosa aquí se hace
00:13:18
con la tecla 1 y el alt gráfico, alt gr 1. Y tengo lo mismo, puede ser true, false, true o false.
00:13:20
Y yo tengo dos expresiones, ¿vale? La primera es verdadera o la segunda es verdadera y es true
00:13:37
¿Qué me da? ¿Es verdadera esta o esta?
00:13:44
¿True? True. Ahora estoy true y false. ¿Es verdadera esta o esta?
00:13:51
True. Porque una de las dos es verdadera. Me estoy preguntando si es verdadero esto o esto.
00:14:00
¿Esto es verdadero? Pues, suficiente.
00:14:08
True.
00:14:11
Por el revés.
00:14:12
¿Es verdadera ésta o ésta?
00:14:15
Pues, como ésta es verdadera, pues true.
00:14:18
False y false.
00:14:20
¿Es verdadera ésta o ésta?
00:14:26
Pues no, ninguna de las dos es verdadera.
00:14:28
Por lo tanto, false.
00:14:31
Esto es el end y el end.
00:14:39
Luego está el not.
00:14:41
El not no tiene dos porque es un ario.
00:14:50
Tiene solo true o false.
00:14:53
Si es true, not true es.
00:14:56
Y si es false, not false es.
00:15:01
¿Sí?
00:15:09
Tú das y ya está.
00:15:11
Esto es vuestro peor enemigo.
00:15:18
Es lo que, una de las cosas con la que más lucharéis el resto del curso.
00:15:21
Y probablemente el resto de vuestra vida informáquil, si seguís haciendo informáquil.
00:15:28
¿Sí?
00:15:32
Todo esto es lógica.
00:15:33
Oye, cuidado. Hoy en día muchas cosas nos la hace la inteligencia artificial. Pero dos cosas. Aprender la lógica booleana es bueno para vosotros, para vuestro cerebro, para razonar, para aprender a razonar. Es cosa buena.
00:15:35
Y la segunda es que cuando las condiciones son complejas, si la inteligencia artificial se equivoca, es vuestra responsabilidad saber si lo que os ha dado cubre la condición que vosotros habéis creado o deja fuera algunas condiciones que deberían ser pilladas en vez.
00:15:55
No, es lo de antes y he puesto positivo X mayor que cero.
00:16:21
Soy yo, programador, que tengo que entender que he dejado el cero entre los negativos.
00:16:26
Entonces siempre hay un margen de cuánto me fío de la inteligencia artificial.
00:16:34
Mientras va todo bien, ningún problema.
00:16:38
El día que algo explota porque la inteligencia artificial lo ha hecho mal, tú no le puedes decir a tu jefe que se ha equivocado la inteligencia artificial.
00:16:40
Vamos a ponerlo en práctica.
00:16:51
Dame un número.
00:17:00
Yo quiero que este número sea
00:17:03
válido
00:17:05
cuando sea positivo
00:17:09
pero menor que 100.
00:17:13
¿Cómo lo hago?
00:17:20
Yo quiero que al final me diga
00:17:23
es válido o no es válido.
00:17:24
Es válido cuando el número que te he dado
00:17:28
es positivo o menor que 100.
00:17:31
¿Cómo lo hago?
00:17:39
Bring resultado.
00:17:44
Condición.
00:17:48
Interrogación.
00:17:50
Si esta condición es verdadera,
00:17:52
válido.
00:17:55
Si esta condición
00:17:57
no es verdadera,
00:17:59
no válido.
00:18:01
Y imprimir.
00:18:03
Ahora,
00:18:09
yo quiero que vaya aquí
00:18:09
cuando es
00:18:11
positivo
00:18:13
Menor que 100
00:18:14
Y aquí en todos los otros casos
00:18:17
¿Qué hago?
00:18:19
Vamos por pasos
00:18:29
¿Vale?
00:18:30
Esto es una cosa que en informática se llama
00:18:31
Divide tímpera
00:18:33
¿Vale?
00:18:34
Divide vencerás
00:18:35
Cuando tienes un problema complejo
00:18:37
Divídelo en problemas sencillos
00:18:39
Y a ver qué pasa
00:18:42
¿Sí?
00:18:43
Entonces
00:18:45
Olvidamos del menor que 100
00:18:46
¿Cómo sé si es positivo o no?
00:18:48
Sí
00:18:53
Entonces, x es mayor que cero o mayor o igual, depende si queréis pillar el cero o no, ¿vale?
00:18:53
Pongamos mayor o igual.
00:19:03
Entonces, esto de aquí ahora me funciona.
00:19:06
Si yo pongo menos uno, me dice que no es válido.
00:19:10
Si pongo setenta y siete, me dice que es válido.
00:19:13
Y si pongo ciento uno, me dice que es válido.
00:19:17
Y no es el problema que me han dado.
00:19:22
¿Veis? Medite si es positivo o negativo, pero cuidado,
00:19:25
y el 101 no es un número válido, demasiado grande.
00:19:28
Imaginaos que estoy calculando un porcentaje, entonces porcentaje solo entre cero y cien.
00:19:31
No puede ser cien, no, no, cien, 101 por ciento.
00:19:37
¿Sí? Entonces, ¿qué hago?
00:19:40
Esta cosa de aquí, ¿qué le pongo?
00:19:46
Y que X sea menor que cierto 1 o menor o igual.
00:19:55
Bien.
00:20:06
Cuidado que si me ponéis menor que 100, pues 100 no vale.
00:20:09
No sé si queremos valer o no.
00:20:13
Eso debería haber el enunciado escrito y decir,
00:20:16
ah, mamá, has dicho menor que 100, entonces es 99.
00:20:18
vale, vamos a verlo
00:20:20
ahora si pongo
00:20:26
menos 1
00:20:27
válido
00:20:29
si pongo 0
00:20:30
¿por qué pruebo menos 1 y 0?
00:20:32
¿por qué no pruebo menos 7 y 55?
00:20:37
porque es justo al límite
00:20:43
es donde cambia
00:20:44
es el límite mínimo
00:20:45
menos 1 no es válido, 0 es válido
00:20:47
voy a probar allí
00:20:50
los que están en el medio
00:20:51
es más fácil que funcione. ¿Cuál es el siguiente límite? 100. ¿Qué me tiene que dar 100? Válido.
00:20:54
Correcto. ¿Y el último caso? 101. Esta condición de aquí me está diciendo que a la vez tienen que
00:21:04
ser verdadero esto y esto. Con que uno de los dos no sea verdadero, falso. ¿Por qué? Por esto. Con
00:21:22
que uno sea falso, el resultado es falso. ¿Dudas? Probamos el exacto opuesto. Es decir, quiero que
00:21:34
sea valido cuando el número es o negativo o mayor que 100 esto string ref2 es igual a esta misma
00:21:57
cosa aquí que le pongo el x menor pero si cero antes era válido entonces eso no tiene que ser
00:22:16
es válido, o sea, menor o igual, menor o igual, menor o estricto, ¿qué más?, o que x sea mayor que 100 estrictamente, entonces ahora cualquier valor que pongo, el primero me tiene que decir válido, el segundo no válido,
00:22:42
El primero no es válido y el segundo es válido
00:23:14
Tiene siempre que ser al revés
00:23:16
Porque estas son dos cosas disjuntas
00:23:18
Cuando es válido para esta condición
00:23:21
Es falso para esta condición
00:23:24
Y al revés
00:23:26
Por ejemplo, si pongo menos uno
00:23:28
No lo he escrito
00:23:31
Si pongo menos uno
00:23:33
Para el primero no es válido
00:23:41
Pero para el segundo sí
00:23:43
Si pongo cero
00:23:44
Para el primero es válido
00:23:46
Pero para el segundo no
00:23:48
Si pongo 100 para el primer es válido, para el segundo no. Si pongo 101. O sea que ésta es ésta.
00:23:49
Cosa que, por cierto, habría podido utilizar aquí. ¿Sí? ¿Entendéis más o menos?
00:24:09
Ahora, con esto hay que jugar. Mientras que lo haga yo es súper fácil.
00:24:31
en el momento en que lo hacéis vosotros
00:24:38
es un infierno
00:24:43
hay muchos ejercicios
00:24:44
los primeros son fáciles
00:24:47
ahora
00:24:52
para que entendáis
00:24:54
la última cosa
00:24:57
¿qué hacéis?
00:24:58
¿cuánto hace 30 dividido por 0?
00:25:32
y con 201
00:25:38
¡pum! ¡explosión!
00:25:39
no se puede dividir por cero
00:25:41
¿qué ha dado este dividir por cero?
00:25:44
el bachillerato
00:25:46
definido
00:25:47
no se puede dividir por cero
00:25:50
no hay la posibilidad de
00:25:52
entonces cuando tú intentas
00:25:53
dividir por cero
00:25:57
te da una aritmética excepción
00:25:58
un error aritmético
00:26:00
de que división por cero
00:26:02
no se puede dividir por cero
00:26:04
¿sí?
00:26:05
¿estamos de acuerdo con esto?
00:26:08
vale, entonces ahora imaginaos
00:26:09
esta cosa aquí.
00:26:12
Como siempre nuestra
00:26:34
de este estilo.
00:26:36
Yo digo, si esto y esto es verdadero,
00:26:40
si yo me pregunto y digo
00:26:43
si x
00:26:44
es mayor o igual a 0
00:26:46
y
00:26:48
10 dividido
00:26:50
por x
00:26:57
es
00:26:58
mayor que 1,
00:27:00
entonces es válido.
00:27:08
Si no, no. ¿Qué me está diciendo?
00:27:09
Me está diciendo, mira, si este número es positivo
00:27:11
y 10 dividido
00:27:14
ese número es mayor que 1,
00:27:16
pues entonces es un número válido.
00:27:18
Si no, no. Justo.
00:27:19
Entonces si lo pongo aquí
00:27:22
y le digo 1, me dice
00:27:23
es válido, porque 1 es mayor
00:27:25
que 0 y 10 dividido los 1
00:27:27
es 10 y por lo tanto es mayor
00:27:29
que 0. Mayor que 1.
00:27:31
Justo.
00:27:34
Y ahora le digo once y me dice que no es válido porque es positivo, pero diez dividido once me da un número menor que uno. ¿Están de acuerdo? ¿Funciona esto? Sí, lo doy a mi cliente.
00:27:35
En nuestras clases nuestro cliente se llama Matsumoto,
00:27:51
es un señor japonés, ¿vale?
00:27:56
Que cuando vosotros estáis seguros que vuestro programa funciona,
00:27:58
podéis llamar y él desde Japón vuela unas 12 o 13 horas
00:28:03
y viene a ver vuestro producto.
00:28:09
Y Matsumoto se enfada mogollón cuando vuestro producto tiene errores.
00:28:12
¿Sí?
00:28:18
Entonces, se lo enseñamos a Matsumoto.
00:28:19
Cuidado con esta cosa aquí
00:28:21
Porque esto
00:28:43
Me explota aquí
00:28:45
Vale
00:28:48
¿Es válido si esto es válido
00:28:58
O esto es válido?
00:29:10
Si yo le pongo 0
00:29:14
Explota
00:29:16
¿Por qué?
00:29:19
No he cambiado esto
00:29:32
Aquí está haciendo 10 dividido 0
00:29:34
porque aquí funciona
00:29:36
y si le pongo el end no
00:29:40
aquí explota
00:29:42
cero, pum
00:29:44
porque me está diciendo
00:29:48
estás haciendo una división por cero
00:29:50
pero yo aquí le pongo
00:29:52
hazme un or
00:29:54
y le hago hacer una división por cero
00:29:56
y él dice perfecto
00:29:59
y porque si yo hago esto
00:30:02
vuelve a explotar
00:30:04
y esto es un or
00:30:09
Vale, porque en realidad nosotros usamos los operadores lazy, perezosos, ¿vale?
00:30:12
El operador perezoso es un operador que intenta optimizar el trabajo del ordenador, ¿vale?
00:30:23
Y lo que estamos haciendo es que si yo tengo que evaluar las dos expresiones,
00:30:35
evalúo las dos expresiones.
00:30:42
Pero si yo ya tengo el resultado, después de haber evaluado una sola de las dos expresiones,
00:30:44
entonces no tiene sentido que evalúe también la siguiente.
00:30:52
Vamos en el caso del n.
00:30:56
Yo pongo cero.
00:31:02
Esta de aquí, ¿qué me da?
00:31:04
Truca.
00:31:07
si yo tengo un end
00:31:07
y la primera es true
00:31:09
end
00:31:12
con la primera true
00:31:14
ya sé el resultado
00:31:15
o el resultado
00:31:17
depende de la segunda
00:31:20
expresión
00:31:21
depende de la segunda expresión
00:31:23
porque si es true será true
00:31:26
si es false es false
00:31:27
por lo tanto estoy forzado
00:31:28
tengo que ejecutar
00:31:31
que evaluar también la segunda
00:31:33
voy a evaluar 10 dividido por 0
00:31:34
y allí es donde exploto
00:31:37
diciendo, oye, mira, no puedo dividir por cero.
00:31:39
¿Está claro?
00:31:43
Ahora, vamos en el caso del log.
00:31:44
Or.
00:31:46
Yo aquí pongo or.
00:31:47
Él mira esto.
00:31:51
Él dice, x es mayor que c.
00:31:52
Vale, fenomenal.
00:31:55
True.
00:31:56
Si yo tengo que la primera es true,
00:31:57
¿tiene algo que ver la segunda
00:32:00
para dar el resultado?
00:32:02
No.
00:32:05
Porque independientemente de que sea true o false,
00:32:05
mi resultado será true
00:32:08
y entonces no la
00:32:10
evalúo, no pierdo tiempo a ver
00:32:12
que me da la siguiente
00:32:14
expresión, porque ya sé
00:32:16
que el resultado de esta condición es true
00:32:18
entonces
00:32:20
no ejecuto
00:32:22
esta cosa y por lo tanto
00:32:24
no exploto porque no hago una división por cero
00:32:26
¿sí?
00:32:35
cosas así se pueden
00:32:37
hacer más útiles
00:32:39
así, está diciendo
00:32:43
Mira, si esto es distinto de cero, entonces ves a ver el valor.
00:32:47
Pero si esto es cero, no vayas.
00:32:55
Ya sabes que no lo puedes hacer.
00:33:00
Y por lo tanto ya te lo darás como no vale.
00:33:03
Esto es al revés, ¿vale? Con el end.
00:33:06
Si con el end la primera es falsa, tú ya sabes que el resultado es falso.
00:33:08
Tienes que ir a mirar la segunda evaluación.
00:33:15
segunda expresión ya es falso y esto en un cierto sentido te protege de que no explota mi programa
00:33:19
y dice hoy mira el número que me ha dado es cero porque si es cero ya este número no me vale porque
00:33:27
sé que debería hacer una división por cero y eso no me vale no lo puede hacer entonces ya te diría
00:33:33
no es valiente sin embargo si he pasado esta barrera entonces no sé si es verdadero o falso
00:33:41
porque depende de esta cosa de aquí.
00:33:48
Entonces la voy a evaluar. Pero
00:33:50
como he pasado esta barrera,
00:33:51
estoy seguro que no voy a hacer una división
00:33:54
por cero. ¿Entienden?
00:33:55
Entonces,
00:34:03
lo que me interesa es esto.
00:34:04
AND, OR
00:34:08
y NOT.
00:34:09
Esto lo tenéis que saber, porque
00:34:15
lo vamos a usar.
00:34:17
¿Y qué quiere decir?
00:34:18
¿Con true or false?
00:34:20
Esta cosa.
00:34:22
Nosotros usaremos casi siempre el end y el or perezoso, o sea, end-end y or-or, ¿sí?
00:34:23
En realidad, si yo lo pongo con uno solo, esto de aquí no es perezoso.
00:34:32
Esto de aquí es, evalúalo siempre los dos y después haces el end, ¿vale?
00:34:41
Pero desde una perspectiva, o sea, son muy pocos los casos en que quiero esta cosa aquí, ¿vale?
00:34:46
a veces sí que puedo quererlo, pero por ahora no sabemos por qué. Pero la mayoría de las veces,
00:34:51
si una ya falla, pues ese no tiene que llegar a mirarla. ¿Dudas? ¿Preguntas?
00:35:00
Entonces, vamos a hacer un ejemplo. El otro día, si os acordáis, en la 2.1, en el ejercicio 4,
00:35:14
ya empezaba a trabajar. Llega un programa que le ha cortecado una variable entera para
00:35:28
representar la edad de un usuario. Luego muestra un mensaje que diga que él es mayor de edad,
00:35:34
seguido de true si es verdad o false si no lo es. Esto para hacer esto de aquí se necesita
00:35:39
un ternario. Bueno, a lo mejor no. El ternario no, podría evitarlo, pero sí los operadores
00:35:46
de positivo, negativo, mayor, menor
00:35:58
y cosas así que el otro día no habíamos visto, ¿vale? Entonces, vamos a hacer este ejercicio rápidamente
00:36:02
aquí, me dice, dame tu edad
00:36:05
y él, en realidad, dice
00:36:12
esto, eres mayor
00:36:19
de edad, y luego le pega detrás
00:36:23
true o false, ¿vale? Que será
00:36:27
lo que has leído, o sea, x mayor o igual que 18. Esta cosa de aquí me devuelve true o false.
00:36:32
Entonces, si he puesto del 18 por arriba, me dirá en el mayor de edad los puntos true, y si no, false.
00:36:47
entonces si yo le pongo 17
00:36:54
me dice de mayor edad false
00:36:59
si yo le pongo 18
00:37:01
vale, nosotros
00:37:03
esta cosa de aquí
00:37:07
ya la sabemos hacer un poquito más bonita
00:37:08
vale, entonces podemos hacer
00:37:10
piso
00:37:13
si
00:37:14
x mayor o igual
00:37:17
que 18
00:37:20
entonces r es mayor
00:37:21
de edad y si no eres menor de edad. Esta es la lección un poquito más bonita que si pongo 17
00:37:26
me dice eres menor de edad y si pongo 18 me pone eres mayor de edad. Llamo a Matsumoto,
00:37:43
se lo voy a llamar a Masumoto
00:37:53
y me dice, dame tu edad
00:38:13
menos 33
00:38:14
claro, en el menor de edad
00:38:16
¿os gusta a vosotros dar menos
00:38:20
33 años?
00:38:25
depende, depende de todos
00:38:32
habrá sistemas en que poner
00:38:34
edad negativa tiene sentido
00:38:36
¿vale? en el 99,9%
00:38:38
de los sistemas
00:38:41
la edad negativa
00:38:42
¿sí?
00:38:44
entonces ¿cómo hago? ¿cómo resuelvo este problema?
00:38:48
Pues lo mismo que antes, ¿vale? Aquí son dos condiciones, ¿sí? De forma sencilla, le digo, si X es mayor de 18, bueno, no, porque son tres casos ahora, ¿vale?
00:38:50
Son por un lado que tengo que mirar si es un valor positivo, o sea, si es un valor mayor que cero, y después ver si es mayor de edad o menor de edad, ¿vale?
00:39:18
podría empezar, es que si le pongo esto, al igual funciona, porque si le doy 18 me dice mayor de edad,
00:39:31
si le doy 17 me dice menor de edad, si le doy menos 33, pues menor de edad, no he resuelto mucho, ¿vale?
00:39:59
En este caso de aquí debería volver a eso de un ternario dentro de un ternario,
00:40:15
Antes debería ver si es mayor que 0, y en ese caso solo si es mayor que 0, pues hacer esto.
00:40:21
Esto de aquí es una rama de mi ternario.
00:40:31
En mi ternario dice, si x es mayor o igual que 0, entonces el resultado es esta cosa.
00:40:40
Si no, edad no válida.
00:40:49
Entonces, ¿esto qué me hace? Me comprueba esta cosa de aquí.
00:41:02
Si esta es verdadera, va a hacer lo que hemos visto antes.
00:41:05
Vale, perfecto. Si esta cosa es falsa, entonces me has dado un número negativo,
00:41:09
te dice que esta edad no es válida.
00:41:13
Entonces, ahora, si yo pongo, a ver, que es esto.
00:41:16
Dame de edad. 17 es el menor de edad.
00:41:26
18 es el mayor de edad.
00:41:33
Y si le doy menos 33, ahí dice que el grano es alto.
00:41:35
menos uno es cuando ya salta
00:41:40
porque le he puesto mayor igual
00:41:58
si le pusiera mayor estricto
00:42:00
entonces salta también
00:42:03
esto que acabamos de hacer
00:42:04
es pillar este enunciado
00:42:08
y empezar a jugar
00:42:11
con ese enunciado
00:42:15
Esto es lo que tenéis que hacer vosotros en casa, ¿vale?
00:42:16
No es, este enunciado lo hago solucionado.
00:42:20
No, es lo hago y luego pienso, y si hago esta cosa aquí, y lo prueba.
00:42:23
¿Y lo puedo hacer de otra forma? Sí, lo hago de otra forma.
00:42:28
¿Y lo puedo hacer mejor? Sí, le pongo un ternario.
00:42:30
¿Y qué pasaría si ahora le pongo un negativo?
00:42:32
Espera, negativo no vale. ¿Cómo hago para quitarle negativo?
00:42:35
¿Me explico? Esto es el trabajo que tenéis que hacer vosotros.
00:42:39
Cada uno de estos ejercicios no es un ejercicio, son 10 ejercicios.
00:42:42
son
00:42:46
inventaos cosas
00:42:47
el problema que tendréis vosotros
00:42:50
es que a lo mejor os inventáis cosas
00:42:53
demasiado difíciles, a vuestro nivel
00:42:54
o os pasáis de demasiado
00:42:56
fácil o os pasáis de demasiado difícil
00:42:59
¿vale? porque todavía
00:43:01
no sabéis calibrar bien
00:43:03
dónde está el
00:43:04
hasta dónde podéis llegar
00:43:05
¿vale? pero está bien
00:43:09
si no sabéis hacer los ejercicios, bien
00:43:10
si llegáis a un momento
00:43:13
en que habéis hecho seis
00:43:15
versiones de este ejercicio y en la
00:43:17
séptima no os sale porque no sabéis
00:43:19
por dónde pillarla. Perfecto.
00:43:21
Ya estáis entrenando. Ahora,
00:43:23
dejadla allí, escribid el enunciado
00:43:25
que no habéis sabido hacer
00:43:27
y traedlo a la clase. Oye, mira,
00:43:28
estoy aquí, lo estaba haciendo y quería intentar
00:43:31
hacer esta cosa aquí, pero
00:43:33
no me ha salido. ¿Cómo lo puedo hacer?
00:43:34
Y yo ya, que tengo más experiencia que vosotros, digo,
00:43:36
no, mira, ahora mismo no lo intentes.
00:43:39
O, has probado, usaré esto.
00:43:41
¿Por qué no haces esta cosa aquí?
00:43:43
¿Me explico? Vale.
00:43:45
.
00:43:52
Vale. Entonces, aquí acaba la teoría.
00:44:28
- 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:
- 5
- Fecha:
- 30 de septiembre de 2026 - 12:49
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 44′ 34″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 138.49 MBytes