20240924 ProgrEstruct-Variables-ejercicios_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:
vale, si quiero
00:00:00
que el resultado no me quede tan feo
00:00:02
lo que me muestra, como habéis
00:00:04
hecho muchos, como ya sabemos
00:00:06
que el operador más concatena
00:00:08
cosas en la consola, las concatena
00:00:10
pues algunos ya habéis
00:00:12
hecho esto, ¿no?
00:00:14
la suma es
00:00:16
y habéis hecho la concatenación
00:00:17
del mensajito
00:00:21
con el contenido de la variable
00:00:22
¿vale? algunos ya habéis hecho esto
00:00:24
para que lo que me muestre por la consola
00:00:26
quede un poco más bonito
00:00:28
ya queda la suma es 8
00:00:31
que parece que bueno
00:00:34
y también algunos
00:00:35
lo que a lo mejor
00:00:37
habéis hecho es, siguiente paso
00:00:40
no usar esta variable
00:00:42
intermedia, en lugar de
00:00:44
guardar el resultado en una
00:00:46
variable intermedia y luego mostrar la variable
00:00:48
a lo mejor
00:00:50
con una variable intermedia
00:00:51
a lo mejor algunos lo que habéis hecho es
00:00:53
voy a pasarle al system out y a la suma
00:00:55
Directamente
00:00:58
Y a pasarle la suma, ¿no?
00:00:59
Por ejemplo, algunos a lo mejor habéis
00:01:01
Obviado esta línea
00:01:03
Y habréis puesto aquí
00:01:05
Y habéis puesto aquí
00:01:09
Número 1
00:01:12
Más número 2
00:01:15
Yo prefiero pasarle
00:01:17
La variable
00:01:19
Yo declaro la variable de resultados
00:01:20
Efectivamente
00:01:23
Por un lado es más organizado
00:01:26
quizá, y el código se hace más claro
00:01:28
porque si tú, el que ve este código
00:01:30
se ve aquí ya directamente
00:01:32
una variable resultado, además con el
00:01:34
nombre bien elegido, resultado
00:01:36
pues ya sabe que hay tres datos con los que juega
00:01:37
las dos entradas y la salida
00:01:40
que la tiene ahí, y cada vez que
00:01:42
vea esa variable por algún lado sabe que se refiere
00:01:44
a eso, si no
00:01:46
ya de buenas a primeras no sabe muy bien
00:01:47
que este código va a tener un resultado, lo va
00:01:50
a tener que ver luego aquí cuando lo vea, entonces
00:01:52
está bien para que el código sea más legible
00:01:53
una variable para cada cosa
00:01:56
y ya no solo eso, sino que nos pueden salir
00:01:57
luego efectos secundarios, porque bueno
00:02:00
con esto así puesto
00:02:01
no pasa nada
00:02:04
no pasa nada porque el programa te sigue mostrando
00:02:05
la suma, recordad que esto
00:02:08
es una expresión suma y como yo
00:02:10
aquí tengo un número entero y otro número
00:02:12
entero, esta de aquí
00:02:14
pues la suma
00:02:15
de dos enteros es un entero
00:02:18
luego el sistema me va a mostrar la suma
00:02:20
entonces yo vuelvo a hacer la prueba con esta
00:02:22
variación que he hecho quitándole esto, pues la he querido
00:02:24
quitar, vuelvo a hacer la prueba
00:02:26
de este código, a ver si sigue
00:02:28
funcionando, y le digo
00:02:30
3 y 4, 7, ah pues
00:02:31
sigue funcionando, con este cambio que he hecho
00:02:34
vale, pero yo como estoy todavía
00:02:36
en fase de mantenimiento de este código
00:02:38
lo estoy manteniendo, voy a hacerle otro
00:02:39
cambio, que es, como
00:02:42
ojo, es muy feo
00:02:44
que me dé el 7 sin más, yo el 7 que es
00:02:46
3 más 4
00:02:48
3 menos 4 más 5
00:02:49
o sea, el 7 que es
00:02:52
mejor si me dice
00:02:53
la suma es
00:02:55
para que tú veas que lo que te está mostrando
00:02:56
es la suma
00:02:59
bueno, pues entonces, a ver
00:03:00
me estáis haciendo caso todos, incluso los que no les veo
00:03:03
las caras
00:03:05
porque es que solo veo las caras a los de adelante
00:03:07
pero de la segunda fila para atrás no veo las caras de nadie
00:03:08
vale
00:03:11
bueno, sois todos guapos
00:03:13
pero vamos
00:03:15
lo interesante es que me hagáis caso y me escuchéis
00:03:16
por Dios santo bendito
00:03:19
porque
00:03:20
La zona de atrás está maldita
00:03:21
Los que se ponen atrás
00:03:25
Suelen suspender siempre
00:03:27
Conclusión, romped la tradición
00:03:29
¿Vale?
00:03:31
Los que os ponéis atrás
00:03:32
Escuchadme y atendedme
00:03:34
¿Vale?
00:03:37
Y si no veis
00:03:39
O no oís porque no grito
00:03:40
O el sitio no os gusta porque no se ve nada
00:03:42
Pues ya movemos la mesa
00:03:45
Hacemos lo que haga falta
00:03:46
¿Vale? Pero por favor, los de atrás que me escuchen
00:03:47
y me atienden igualmente.
00:03:50
Porque si no, van a suspender.
00:03:51
¿Vale?
00:03:53
Bueno, pues entonces,
00:03:55
no aprovechen la coyuntura.
00:03:56
Callado.
00:03:58
Vale.
00:03:59
Bueno, pues entonces,
00:04:00
esta variante de código que hemos hecho,
00:04:03
poniendo aquí directamente la expresión,
00:04:05
nos ha funcionado.
00:04:08
Y así no uso una variable intermedia.
00:04:10
Bueno, vale.
00:04:12
Pero ahora resulta que seguimos haciendo modificaciones.
00:04:14
Porque un código, una vez, Mario,
00:04:16
o no, Andoni quería decir
00:04:19
no, Mario
00:04:21
pero Mario se movía pero estaba callado
00:04:25
y tú estabas quieto pero hablabas
00:04:27
o sea, tú peor
00:04:30
silencio, vale
00:04:30
y todos los que hablen también, por favor
00:04:33
vale, entonces
00:04:35
este código ya está hecho y funciona
00:04:37
pero una aplicación cuando está hecha
00:04:42
y ya funcionando, desplegada en un servidor
00:04:43
ejecutándose, no se le ha acabado
00:04:46
la vida, ese código
00:04:48
seguirá ahí para las
00:04:50
modificaciones que nos vayamos
00:04:52
dando cuenta que interesa hacer
00:04:54
porque son más bonitas, entonces
00:04:56
el usuario de este programa me dice
00:04:57
oye, que me diga el 7 sin más no me gusta
00:04:59
porque yo no sé si se refiere
00:05:02
a la suma, se refiere al factorial
00:05:04
se refiere a la potencia
00:05:06
no lo sé, porque si yo le meto 2 y 2 y me saca
00:05:07
4, que me ha hecho, 2 elevado a 2
00:05:10
2 más 2, dicen, este programa
00:05:12
vale, funciona
00:05:14
pero por favor arreglalo un poco
00:05:15
y que me diga, la suma es 7
00:05:17
para que yo vea que está sumando
00:05:20
no pasa nada, vamos a cambiarte el programa
00:05:22
vamos a cambiártelo, porque un programa se va actualizando
00:05:25
todos los software tienen sus versiones, la 1, la 2, la 3
00:05:28
vale, pues entonces venimos aquí
00:05:32
y hacemos alegremente
00:05:35
no pasa nada, como yo sé lo de la concatenación
00:05:37
te hago, la suma es
00:05:40
y concateno, vale
00:05:43
Y ya está, y ha actualizado el programa
00:05:47
¿Vale?
00:05:50
¿Está claro?
00:05:52
¿Nadie tiene nada que decirme?
00:05:54
Por supuestísimo
00:06:00
Estáis absolutamente solos
00:06:01
Solo tenéis el ordenador
00:06:03
No tenéis ningún tipo de internet
00:06:04
Ni de documentación, ni de nada
00:06:06
Más que las que yo os dé
00:06:07
¿Vale?
00:06:09
¿Nadie tiene nada que decirme?
00:06:11
¿Me refiero a esto que he escrito?
00:06:12
Muy bien dicho
00:06:13
Vale, entonces yo he hecho una actualización
00:06:17
Así alegremente
00:06:20
Y ahora me pongo a hacer las pruebas
00:06:21
De este código
00:06:23
¿Estáis situados y conectados?
00:06:24
Como alguna vez me hagáis ser relacionados con esto
00:06:27
No os explico lo que os hago
00:06:29
Porque es muy doloroso
00:06:32
¿Vale?
00:06:34
¿Eh?
00:06:36
Efectivamente
00:06:39
Vamos a hacer la prueba a ver qué pasa
00:06:40
Muy bien
00:06:42
Introduja número entero
00:06:43
3, 3
00:06:45
La suma es 33
00:06:47
O sea, poniendo un string para concatenar
00:06:48
Claro, yo me creo
00:06:51
Que lo que he hecho es simplemente
00:06:53
Que muestre un mensaje antes y luego ya la suma
00:06:54
Y le ha cagado
00:06:57
¿Por qué le ha cagado?
00:06:58
Porque ya sabemos cómo funciona el operador
00:07:00
Concatenación en las
00:07:02
Él va de izquierda a derecha
00:07:04
Lo primero que hace, esto y esto
00:07:06
Como esto es un string
00:07:09
la concatenación
00:07:10
el operador suma entre esto y esto
00:07:13
será una concatenación
00:07:15
con lo cual medida la suma es 3
00:07:16
y ahora ya
00:07:19
a ese 3 me concatena
00:07:21
lo que venga después que es otro 3
00:07:23
entonces el efecto es la suma es
00:07:24
33 y no lo es
00:07:27
la suma es 6
00:07:28
entonces ¿cuál ha sido aquí
00:07:29
el problema?
00:07:33
claro, no poner paréntesis
00:07:34
porque las expresiones se evalúan siempre
00:07:36
de izquierda a derecha, de izquierda
00:07:39
a derecha, a menos que yo
00:07:41
ponga un paréntesis, que entonces lo que gana es el paréntesis
00:07:43
entonces yo lo primero que quería
00:07:45
que se hiciera, era esta suma
00:07:47
esto es lo primero que quería que se hiciera
00:07:49
esta antes que esta
00:07:51
entonces si quiero que esta se haga
00:07:52
antes que esta, tengo que poner un paréntesis
00:07:55
y desde el momento
00:07:57
en que pongo aquí
00:07:59
un paréntesis
00:08:01
ya he cambiado
00:08:02
el orden
00:08:05
en el que
00:08:06
se evalúan las sumas
00:08:08
en esta expresión, primero
00:08:10
la del paréntesis
00:08:12
como es número, número
00:08:13
eso sí que es una suma entera
00:08:16
6, 7, la que sea
00:08:17
y ahora una vez esta suma
00:08:19
hecha, ya va esta
00:08:22
y esta ya sí que es cadena
00:08:24
número
00:08:26
cadena número es concatenación
00:08:27
concatenación, pues ahora ya
00:08:30
con este arreglo
00:08:32
esto ya, si vuelvo a hacer
00:08:33
la misma prueba, 3, 3, este ya sí
00:08:36
¿vale?
00:08:39
bueno, pues este error podríamos haberlo tenido
00:08:43
vale, entonces todas estas cosas
00:08:45
que estoy diciendo están claras hasta aquí bien
00:08:49
muy bien
00:08:51
¿qué otro error
00:08:53
ahora ya de ejecución?
00:08:57
bueno, el otro, el error que he dicho antes
00:08:59
cuando decía la suma es 33
00:09:01
no era un error de
00:09:02
ejecución, porque el programa
00:09:05
no ha fallado, el programa ha hecho
00:09:07
exactamente lo que tenía que hacer
00:09:09
Si tú le has dicho que haga esto, sin paréntesis, pues él ha cogido y te ha hecho eso. Luego el error que hemos visto antes no era un error de ejecución, era un error de funcionamiento del programa, de que el código estaba mal hecho, ¿vale? Hacía otra cosa, pero se ejecutaba perfectísimamente.
00:09:10
lo que pasa es que hacía otra cosa
00:09:30
bueno
00:09:32
ese mal funcionamiento
00:09:34
porque el código estaba mal
00:09:37
porque hacía otra cosa diferente a la que yo le pedía
00:09:38
lo hemos arreglado con el paréntesis
00:09:41
vale, bueno vamos a hacer ahora
00:09:43
vamos a forzar un error
00:09:45
de ejecución
00:09:46
el error de ejecución es otro tipo de error, es un error que yo arranco
00:09:48
el programa y ¡paf! explota, ha fallado
00:09:51
es distinto que yo ejecute
00:09:53
el programa y funcione perfectamente
00:09:55
pero lo que haga no es lo que yo quiero
00:09:57
es distinto eso a que yo ejecute el programa
00:09:59
y pum, explote, es distinto
00:10:01
esto último que he dicho es error
00:10:03
de ejecución, lo anterior no
00:10:05
es error, es que el programa
00:10:07
está mal diseñado, nada más
00:10:09
bueno, pues por ejemplo
00:10:11
algunos habéis encontrado algún error de ejecución
00:10:12
con este código
00:10:16
que dice
00:10:17
algo así, imaginaos que
00:10:20
ahora ya este código compila
00:10:21
pero este de compilación no tiene, vamos a volver a ejecutarlo
00:10:23
introduzca un número
00:10:26
entero. Y a mí se me va
00:10:27
la mano cualquier cosa y pongo
00:10:29
7 y algo que no es
00:10:31
un número entero. Cualquier cosa que no es
00:10:33
un número entero. Por ejemplo, he puesto 7
00:10:35
y griega. ¿Vale?
00:10:37
Algo que no es un número entero.
00:10:39
Y le doy yo aquí a Enter.
00:10:42
¡Pum! Esto sí es
00:10:44
un error de ejecución.
00:10:45
Aquí el programa ha petado y se ha parado.
00:10:47
¿Vale? Entonces este,
00:10:50
errores de ejecución nos van a salir muchos.
00:10:51
Según vayamos haciendo cosas, un montón.
00:10:53
entonces tenemos que arreglar el código
00:10:55
claro, para que este error
00:10:58
entonces
00:11:00
tú esto lo has vivido antes, ¿a que sí?
00:11:00
claro, y lo vamos a vivir muchísimo
00:11:04
lo vamos a vivir mucho
00:11:06
errores de ejecución hay un montón
00:11:08
depende de lo que hayamos hecho mal
00:11:10
claro, y cuando nos pase
00:11:12
nos va a salir este rollo rojo
00:11:14
y la aplicación se habrá
00:11:16
parado, se acabó, como veis no me pide
00:11:18
el siguiente, ya no me lo pide
00:11:20
la aplicación se detuvo, no hay programa
00:11:22
ya, termínate
00:11:24
¿vale? entonces ahora nos toca
00:11:26
a nosotros la siguiente parte, importante
00:11:28
en la que tenemos que ir cogiendo soltura poco a poco
00:11:31
que es, uy
00:11:32
¿cómo interpreto yo de esas líneas rojas
00:11:33
qué es lo que ha pasado
00:11:37
y cómo lo arreglo?
00:11:38
pues estas líneas rojas, aunque parezcan
00:11:40
una cosa rara
00:11:42
estas líneas rojas nos dan mucha información
00:11:44
primero
00:11:46
en la primera línea
00:11:48
nos dicen
00:11:51
algo relacionado
00:11:53
con lo que ha pasado
00:11:54
un término relacionado con lo que ha pasado
00:11:57
entonces normalmente
00:11:59
de ahí ya, de lo que nos dice ahí en inglés
00:12:01
algo ya
00:12:03
entendemos
00:12:05
entonces input mismatch
00:12:06
input entrada
00:12:08
mismatch es que no encaja, que no casa
00:12:10
pues la entrada no casa
00:12:12
entonces ya con eso
00:12:15
alguna información nos da de que
00:12:17
el problema es la entrada del dato
00:12:19
la entrada no casa
00:12:21
ya casi con eso
00:12:22
podríamos deducirlo y decir
00:12:24
y tanto que no casa, esto no es un número entero
00:12:26
¿vale? entonces cada vez que veáis
00:12:28
un input mismatch
00:12:30
exception, es porque
00:12:33
estáis leyendo del teclado
00:12:34
y el dato que en la ejecución habéis metido
00:12:36
no es el tipo
00:12:39
de dato que espera el objeto
00:12:41
lector que lee, si yo
00:12:42
aquí pongo un next in
00:12:44
¿vale? si yo
00:12:46
aquí pongo next in
00:12:48
es que no hay tutía, tengo que poner
00:12:50
un entero, menos 12, 13
00:12:52
14, un entero
00:12:55
y si yo no pongo un entero, pongo
00:12:56
7,8 o pongo hola que tal
00:12:58
pongo algo que no sea un entero, va a salir
00:13:00
el input mismatch y se va a parar la aplicación
00:13:02
y se acabó, vale
00:13:05
entonces las sentencias de lectura
00:13:06
del teclado pueden
00:13:08
generar errores de ejecución
00:13:10
que paran la aplicación si yo no meto
00:13:12
bien el dato, vale
00:13:14
bueno, pues esos errores de ejecución
00:13:16
son
00:13:19
se llaman así
00:13:20
input mismatch
00:13:23
entonces ya que nos vaya sonando
00:13:24
que nos vaya sonando cuando veamos esto
00:13:26
cuando veamos esto es
00:13:28
el que ejecutó el código
00:13:30
metió algo escrito
00:13:32
que no correspondía con lo que
00:13:33
el lector esperaba
00:13:36
si aún así
00:13:37
tenemos dudas
00:13:40
no somos capaces de encontrar
00:13:42
por donde van los tiros
00:13:44
pues esta línea roja nos siguen ayudando
00:13:45
entonces uno va bajando, va bajando, va bajando
00:13:47
va bajando hasta que llega
00:13:49
a la primera referencia
00:13:52
al código que ha hecho él
00:13:54
porque esto es escáner, escáner, escáner
00:13:55
veis, estos son programas Java
00:13:57
que ya están hechos, la clase escáner es una clase
00:13:59
que ya está hecha, la hemos hecho nosotros
00:14:01
entonces aquí no tiene sentido que nos metamos
00:14:03
porque no vamos a entender nada
00:14:05
y llegamos hasta, uy
00:14:06
ejercicio 1.java, esta sí la he hecho yo
00:14:09
aquí está mi error
00:14:12
entonces vamos bajando, a veces será bajar hasta 5
00:14:13
a veces será bajar hasta 127
00:14:16
porque si una clase se va llevando a otra, a otra, a otra
00:14:18
vale, pues entonces, en cuanto uno pinche aquí
00:14:21
pinche aquí, paz, el entorno de desarrollo
00:14:23
el entorno de desarrollo, que es el que deja de la tarea, el entorno
00:14:26
te lleva a la línea que provocó ese error de ejecución
00:14:29
y entonces ya, entre el mismatch
00:14:33
la entrada no casaba y que me dice, fue cuando hice eso
00:14:35
y decimos, seguro que hemos ejecutado
00:14:39
esto metiendo algo que no era un número entero, por ejemplo
00:14:42
entonces, no hay nada que arreglar en el código
00:14:45
Lo que hay que decirle al usuario es
00:14:47
No introduzcas
00:14:49
A Pepito Pérez
00:14:51
Es lo único que hay que hacer
00:14:53
No hay alguna forma, seguro que sí
00:14:54
De hecho iba a decir
00:14:56
Esto que estoy diciendo es con matices y con pinzas
00:14:59
Porque tenemos una manera
00:15:02
Que veremos en el tema de excepciones
00:15:03
De que la aplicación
00:15:05
No se pare, aunque esto se lo metas mal
00:15:07
Y se vaya por otro camino
00:15:09
¿Vale?
00:15:11
Si tenemos esa opción
00:15:13
De algún lector,
00:15:14
colocar el lector de tal manera
00:15:15
de que elimine lo que viene al rato.
00:15:17
A ver, lo que podemos hacer es,
00:15:21
en lugar de next int,
00:15:22
usar otro método
00:15:24
que te lea la cadena entera.
00:15:25
Sea lo que sea.
00:15:27
Y luego tú ya por código
00:15:28
de esa cadena extraes
00:15:29
la parte que te interese.
00:15:30
Pero tenemos que meternos
00:15:31
por código en la cadena
00:15:33
y ya operar, hacer lo que sea.
00:15:34
¿Vale?
00:15:35
Pero con next int
00:15:37
te va a saltar
00:15:38
si no metes un número entero.
00:15:39
Positivo o negativo, da igual.
00:15:41
Pero te va a saltar.
00:15:42
Siempre.
00:15:43
Eso no hay alternativa.
00:15:44
Bueno, se llama
00:15:45
Nextline, pero sí es eso
00:15:48
Con Nextline tú lees la cadena entera y no te salta nunca
00:15:49
Porque cualquier cadena que metas se la traga
00:15:52
Pero luego esa cadena ya tú
00:15:54
Tienes que operar con ella, ¿vale?
00:15:56
Bueno, esos son los errores que
00:15:59
Y de este programa es que no tiene más
00:16:01
Vuelta de hoja que darle
00:16:04
¿Alguna duda con esto?
00:16:05
No, vale, pues entonces
00:16:12
Este otro es igual
00:16:14
lo que pasa es que
00:16:16
en lugar de dos datos de entrada
00:16:18
son tres, luego tres variables
00:16:20
en lugar de int
00:16:22
son decimales
00:16:25
luego double
00:16:27
y en lugar
00:16:29
de hacer la operación suma
00:16:31
hay que hacer la operación promedio
00:16:32
pero la operación promedio
00:16:34
pues ya sabemos como es
00:16:35
la suma dividida entre el total
00:16:38
este hecho así
00:16:39
en plan rápido
00:16:42
pues habréis hecho algo así
00:16:43
Ahora ya no se me olvida marcar esto
00:16:47
Vale, como son tres números
00:16:57
Tres variables
00:17:02
¿De qué tipo? Para guardar números decimales
00:17:04
Pues tres variables de Abel
00:17:06
Num1
00:17:07
Num2
00:17:10
Num3
00:17:12
¿Cómo voy a leer del teclado?
00:17:14
Pues un escáner
00:17:17
¿Vale?
00:17:18
Ya el
00:17:26
Ahora pido del teclado
00:17:27
Voy a copiar y pegar para ahorrarme
00:17:30
Vale, habréis hecho aquí num1, num2, num3
00:17:32
Y en lugar de next in, como aquí lo que queremos es un next double
00:17:55
Ahora, la variable resultado
00:18:00
Pues la variable resultado también en un double, claro
00:18:12
La variable de resultado que va a tener
00:18:15
Justo la suma de las tres
00:18:18
Efectivamente, num1
00:18:21
Claro, fuera del paréntesis
00:18:25
Más num2, más num3
00:18:27
Y todo esto entre 3
00:18:29
Este es el promedio, ¿verdad?
00:18:32
Obviamente, si no ponemos el paréntesis
00:18:35
Todos sabemos por matemáticas
00:18:37
Claro, que como la división es prioritaria
00:18:39
Respecto a la suma y resta
00:18:44
Haría primero esta división
00:18:46
Y luego esto ya lo sumaría con esto y con esto
00:18:47
Eso no es la media
00:18:50
Entonces tenemos que arreglarlo poniendo paréntesis
00:18:52
Vale
00:18:54
Y ya está
00:18:57
Ahora mostramos el resultado y se acabó
00:19:01
La media, perdón
00:19:08
Para abrir el visor del explorador
00:19:17
Que él lo tiene cerrado
00:19:18
El visor del explorador
00:19:19
¿A qué te refieres?
00:19:22
La estructura de las carpetas
00:19:24
Ah, bueno
00:19:25
A ver, siempre podéis, si se os han cambiado las ventanas
00:19:28
En window perspective le das a reset
00:19:31
Y te pone la inicial
00:19:33
Ya con la estructura inicial
00:19:36
Luego tú ya si la quieres volver a retocar
00:19:37
Vale, media
00:19:39
Más result
00:19:41
Bueno, pues en este caso
00:19:43
Este programa es así tal cual
00:19:48
Y habiendo hecho el primero
00:19:51
Este nos habrá dado problemas
00:19:52
Porque es lo mismo pero con números dabel
00:19:55
Entonces uno lo prueba
00:19:57
y hace algunas pruebas
00:19:59
para ver si funciona
00:20:04
aquí, siguiente cosa
00:20:05
que uno se tiene que acordar
00:20:08
para que no le den errores de ejecución
00:20:10
por ejemplo, vamos a hacer la prueba
00:20:11
introduzca número entero
00:20:14
8.9
00:20:16
¡pum!
00:20:18
vale, claro
00:20:20
¿por qué uno no se tiene que quedar parado aquí?
00:20:22
porque se acuerda, porque lo ha memorizado y lo ha estudiado en casa
00:20:24
que
00:20:26
para meter el método next double
00:20:27
el dabble que tú le metes lo espera con una coma
00:20:30
¿vale?
00:20:33
porque aquí no se escribe, esto no es código Java
00:20:35
esto es lo que tú metes desde el teclado
00:20:37
y luego ya aquí
00:20:39
cuando llegamos al código Java, aquí
00:20:41
este next dabble ya coge eso
00:20:43
lo convierte en un dabble
00:20:45
patatín, si lo metiéramos directamente
00:20:47
desde aquí, que es código Java
00:20:49
aquí sí que tiene que ser el punto, porque para Java
00:20:50
la coma no significa nada
00:20:53
aquí sí sería el punto
00:20:55
pero cuando metemos por teclado es otra cosa
00:20:56
Pero cuando vamos por teclado se lo estamos dando a este
00:20:58
Y este lo espera con coma
00:21:00
¿Vale?
00:21:02
Bueno, pues es el primer error que os puede haber salido a lo mejor
00:21:04
Al hacer esta prueba, que cuando habéis hecho la prueba de ejecución
00:21:06
Os haya salido
00:21:09
Esto que me han metido no es un double
00:21:10
Porque no lo es, para él
00:21:12
No lo es para él
00:21:13
Vale, entonces si se lo ponemos bien
00:21:15
7 con 9
00:21:17
5 con 9
00:21:20
Y 5 con 4
00:21:22
Ahora ya sí, media
00:21:24
¿Vale?
00:21:26
vale, lo que pasa, a ver, es una media muy fea
00:21:27
porque me da con todas las cifras decimales
00:21:30
de precisión que admite
00:21:32
el dabble, que son un montón
00:21:34
uno lo puede redondear, vale
00:21:35
que es lo que te he encargado a ti, que lo investigaras
00:21:37
porque yo no me acuerdo del parámetro
00:21:40
para darle el formato, ¿lo has encontrado ya?
00:21:42
pues, ¿lo has hecho con
00:21:44
el printf o lo has hecho con format o cómo lo has hecho?
00:21:46
con
00:21:49
decimal format
00:21:49
vale, pues, o sea, aquí
00:21:53
de la clase decimal
00:21:56
punto format
00:21:58
decimal en mayúscula
00:21:59
ah decimal format la clase enterita
00:22:01
vale y un método de esa clase
00:22:05
decimal format punto
00:22:08
bueno espérate que te lo miro
00:22:10
es que
00:22:11
vale
00:22:13
instancias aquí
00:22:20
vale
00:22:21
bueno no lo voy a poner
00:22:21
porque complica
00:22:27
demasiado pero tú úsalo si quieres
00:22:29
para tus propios programas vale
00:22:31
pero no lo voy a poner porque no quiero
00:22:33
liar, vale
00:22:35
lo único que digo hasta ahora es que
00:22:37
si esto no le gusta a uno
00:22:39
pues puede buscar una manera
00:22:41
de que solo a efectos
00:22:44
de mostrarse en pantalla, solo a efectos
00:22:45
de mostrarse, te muestre
00:22:48
solo dos truncado, pero solo a efectos
00:22:49
de mostrarse, la variable
00:22:52
la variable result
00:22:54
seguirá siendo dable con todos
00:22:56
sus decimales, por supuesto, es solo a efectos de mostrarse
00:22:58
y para eso hay clases que lo
00:23:00
hacen como esa que ha encontrado ella
00:23:02
hay un método de java
00:23:03
printf que tú le puedes
00:23:05
dar unos parámetros y te lo muestra
00:23:08
redondeado, eso ahora mismo
00:23:10
no nos metemos en ello para no
00:23:12
liar, pero bueno, si a uno lo quiere
00:23:13
investigar como ella, pues que lo investigue
00:23:15
pero no
00:23:17
no lo metemos, ¿vale?
00:23:18
vale, bueno
00:23:27
¿estamos todos sincronizados
00:23:29
en este punto?
00:23:32
nadie está perdido, ¿no?
00:23:35
vale, entonces ahora mismo todos tendríais
00:23:37
que poder hacer programas de este tipo
00:23:39
sencillos, pues que reciben
00:23:41
datos de entrada, operan con ellos y muestran
00:23:43
el resultado, vale
00:23:45
en ese punto estamos, recibimos datos, operamos y muestramos
00:23:46
el resultado, muy bien
00:23:49
vale, vámonos
00:23:50
a
00:23:54
esto de aquí
00:23:55
es una tontería
00:24:00
es solo ya que estamos haciendo next in, next double
00:24:01
pues para ilustrar que también
00:24:04
puedo leer boolean con next boolean
00:24:06
vale
00:24:08
Entonces, esto lo voy a escribir
00:24:09
Yo ahora rápidamente, pero no tienes
00:24:11
Solamente para mostrar que el next boolean
00:24:13
También se puede usar
00:24:15
Y luego ya os ponéis a hacer el 4
00:24:16
Que ya
00:24:19
Incorpora lo que vimos ayer al final de la clase
00:24:19
A ver si os sale
00:24:23
Venga, vámonos al 3
00:24:25
Vamos a, rápidamente
00:24:27
El ejercicio 3
00:24:30
Ejercicio 3, venga
00:24:31
Vale, a ver
00:24:40
este ejercicio dice solamente
00:24:44
leer por teclado
00:24:46
una variable boolean, esto está solo
00:24:48
para que no estemos, para que
00:24:50
veamos que el objeto scanner
00:24:52
este, pues puede leer muchos tipos de datos
00:24:54
solo para eso, pero es una tontería
00:24:56
que lea una variable boolean
00:24:58
que se supone que
00:25:00
representa eso
00:25:02
y luego mostrar
00:25:03
el contenido de esa variable boolean
00:25:05
a continuación de ese texto, entonces
00:25:08
vamos a una variable booleana
00:25:10
y ahora
00:25:12
vale, pues una variable
00:25:13
boolean, ya sabemos que es ese tipo de dato
00:25:20
y ahora
00:25:21
esto tiene que ver, elección de los
00:25:23
nombres, por enésima vez
00:25:26
siempre bien elegidos
00:25:27
entonces este enunciado ya nos dice
00:25:29
esta variable es para decir
00:25:32
si un estudiante ha aprobado o no
00:25:34
bueno, pues acostumbrémonos
00:25:35
a usar nombres de variables
00:25:38
explicativas asociadas
00:25:40
a lo que significan, entonces una variable boolean
00:25:42
es en casi la que más
00:25:44
importa que el nombre
00:25:46
esté bien explicado. Porque una variable
00:25:48
boolean expresa una condición, expresa si algo
00:25:50
se cumple o no. Entonces, es casi más
00:25:52
importante una variable boolean que su
00:25:54
nombre esté bien elegido. Venga, pues
00:25:56
en este caso, boolean, aprobado. Es el nombre
00:25:58
que le vamos a dar a la variable.
00:26:00
Aprobado, que puede ser
00:26:03
true o false.
00:26:04
¿Vale?
00:26:06
Vale. Bueno, pues entonces,
00:26:07
ahora esta variable no está
00:26:10
por definir.
00:26:12
Está para guardar o
00:26:14
true o false, pero también no tiene
00:26:16
valor, hay que dárselo, bueno pues la aplicación
00:26:18
dice que se lo des por teclado
00:26:20
pues otra vez
00:26:22
del escáner, porque desde el momento que metemos
00:26:24
algo por teclado, ahora mismo nosotros
00:26:26
usamos el escáner, pues usemos el escáner
00:26:28
pues venga, creo que ya había
00:26:30
hecho un copia y pega antes, pues no era
00:26:32
de esto, vale
00:26:34
copiamos y pegamos el escáner
00:26:35
porque vamos a leer por teclado
00:26:42
yo el escáner
00:26:44
lo suelo crear fuera con
00:26:48
con un private static
00:26:50
escáner, lo creo, fuera del main
00:26:52
vale, pero yo todavía no lo menciono así
00:26:53
porque claro, eso tiene que ver con
00:26:56
bueno, hay muchas cosas que
00:26:57
¿por qué pones private? ¿por qué pones static?
00:26:59
para entenderlo habría que explicar un montón de cosas
00:27:01
entonces, lo ponemos dentro todo ahora mismo
00:27:04
todo dentro del main
00:27:06
y ya está, ¿vale?
00:27:06
venga, pues entonces dice
00:27:10
la información de esta variable la lees por
00:27:11
¿qué?
00:27:14
el escáner va arriba
00:27:17
¿cómo que el escáner va arriba?
00:27:18
Pero no entiendo, ¿qué me querías decir?
00:27:24
Lo mismo que te dije yo, que lo hacen en la vista
00:27:25
y que lo pongan fuera.
00:27:27
Yo ahora mismo prefiero que lo pongan...
00:27:29
A ver, hacedlo como queráis, pero yo prefiero que lo pongáis
00:27:31
dentro, porque de ponerlo fuera
00:27:33
adentro hay implicaciones que no
00:27:35
podemos entender cuáles serían.
00:27:37
Ahora mismo no afecta para lo que estamos haciendo.
00:27:39
Pero yo ahora mismo,
00:27:42
de cara a ir
00:27:43
incorporando los conocimientos por fases,
00:27:44
lo pongo dentro y no hago ninguna
00:27:47
referencia a la diferencia que hay de ponerlo dentro y fuera.
00:27:49
Si lo ponéis fuera vosotros, vale,
00:27:52
pero no penséis en nada relacionado
00:27:53
a por qué lo pongo fuera
00:27:56
eso ya cuando ya lleguemos
00:27:57
vale
00:27:58
pero eso sí, como os pase algo por ponerlo fuera
00:27:58
me diréis
00:28:03
vale
00:28:04
entonces
00:28:06
el programa me dice, oye tienes que leerlo por teclado
00:28:09
vale, pues venga
00:28:12
vamos a leer por teclado aprobado
00:28:13
es decir, la asignación va a ser leída
00:28:15
por teclado
00:28:17
el objeto lector es capaz de leer
00:28:18
un boolean por teclado
00:28:21
Igual que está capaz de leer un int y un double
00:28:23
Pues sí, porque si yo cotilleo
00:28:25
Los métodos, veo que tiene un next boolean
00:28:27
Veo que tiene un next boolean
00:28:29
Lo tiene
00:28:31
Entonces es capaz
00:28:32
Claro, aquí la pregunta es
00:28:34
¿Y qué tengo que poner yo?
00:28:36
Aquí
00:28:38
Pues vamos ahora cuando hagamos las pruebas
00:28:38
Bueno, una TED
00:28:43
Lo has deducido tú
00:28:46
O sea, lo has
00:28:48
Vale
00:28:49
Vamos a poner un mensajito
00:28:51
Para que al menos no se quede ahí tonto
00:28:55
Introduzca
00:28:56
Voy a poner Boolean
00:29:00
Para que se quede ahí abierto
00:29:00
Introduzca Boolean
00:29:02
Y ahora
00:29:04
El programa dice que
00:29:06
Mostremos
00:29:08
El estudiante ha aprobado una interrogación
00:29:09
Y luego ya el resultado del Boolean
00:29:12
Pues venga, entonces este programa termina así
00:29:14
El
00:29:17
¿Dónde estoy?
00:29:20
el estudiante
00:29:22
alumno, lo que sea
00:29:28
ha aprobado
00:29:30
y luego dice que
00:29:32
concatene directamente
00:29:33
con true o false
00:29:36
lo que es lo mismo, con el resultado de la variable
00:29:37
¿no?
00:29:40
¿está claro?
00:29:43
esta sentencia de aquí
00:29:44
esta sentencia es concatenación
00:29:45
de toda esta cadena
00:29:48
de texto con lo que contenga aprobado
00:29:50
aprobado que va a contener, true o false
00:29:52
con lo cual o me va a mostrar
00:29:55
al estudiante aprobado
00:29:56
true o el estudiante
00:29:59
aprobado false, eso es lo que sé que me va a mostrar
00:30:00
porque aprobado solo tiene o true o false
00:30:03
luego este código
00:30:05
no tiene nada
00:30:08
raro, la única
00:30:10
gran duda que nos surge es
00:30:12
como le meto yo el boolean
00:30:14
vale, vamos a hacer pruebas
00:30:16
el código compila y tiene sentido
00:30:18
introduzco un boolean, lo meto
00:30:20
con next boolean, lo guardo aquí
00:30:22
y luego el estudiante ha aprobado, lo concateno con lo que
00:30:24
tenga aprobado que será o true o false
00:30:26
no puede tener otras cosas que eso
00:30:28
vale, vamos a
00:30:29
hacer la primera
00:30:32
prueba de este código
00:30:34
introduzca boolean
00:30:36
si le metemos
00:30:42
true directamente, lo entenderá
00:30:44
como el boolean true
00:30:46
pues sí, tiene la pinta de que sí
00:30:47
vamos a volver a ejecutar
00:30:50
introduzca boolean, si le pongo
00:30:51
falso, ¿él lo va a interpretar como el boolean
00:30:54
falso y asignarlo a aprobado?
00:30:56
Pues sí.
00:30:59
Luego, para meter directamente a un
00:31:00
boolean el valor true, tecleo true.
00:31:02
Ya está. Para meter directamente
00:31:04
a un boolean el valor falso, tecleo falso.
00:31:06
Y si le meto
00:31:09
una T, que es algo que tú te has
00:31:10
sacado de la manga así por las buenas.
00:31:12
No,
00:31:15
la T no le sirve para nada. Dice que es
00:31:16
T. El T
00:31:18
no tiene nada que ver con un valor boolean.
00:31:20
¿Vale?
00:31:22
Vamos a probar otra cosa. Y si yo le pongo esto, tampoco. Porque uno podría haber pensado, oye, pero 6 mayor que 4 es una expresión que yo puedo evaluar como un Boolean. Ya, pero eso Java. Eso Java. Esto no es código Java. Esto es lo que yo meto por consola. ¿Vale? ¿Veis?
00:31:23
es decir
00:31:54
yo aquí a esta expresión
00:31:55
le podría poner
00:31:58
le podría poner esto
00:32:00
y esto es válido porque esto es una expresión
00:32:07
java que se evalúa como
00:32:10
true y aprobado
00:32:12
sería true, le puedo poner
00:32:14
esto, pero eso no significa
00:32:16
que cuando yo
00:32:18
meta el valor del boolean a través del
00:32:20
next boolean, aquí puedo poner una expresión java
00:32:22
porque esto no es java, esto es lo que
00:32:24
yo meto a través de la consola
00:32:26
y para que
00:32:28
yo he hecho de otra forma
00:32:30
si, si, si, dime
00:32:31
he puesto primero un double
00:32:35
y luego lo he asignado al Boolean
00:32:36
si es mayor que 5
00:32:39
y luego ya he mostrado el Boolean
00:32:41
y he puesto en la condición del free
00:32:45
que si es true
00:32:47
o si ha probado
00:32:49
si es false, es true
00:32:50
si, eso está bien hecho
00:32:51
pero lo que pasa es que has hecho otro programa
00:32:54
el que
00:32:56
O sea, como te decía, leer por teclado una variable Boolean.
00:32:58
Tú has leído por teclado la nota,
00:33:01
que es otra forma de hacerlo más intuitiva.
00:33:03
Lo que pasa es que este enunciado estaba así para
00:33:06
ejemplificar el Next Boolean, para que no nos asuste que el
00:33:09
Next Boolean existe.
00:33:12
Entonces, leer el teclado la variable Boolean, ¿vale?
00:33:13
Vale, entonces, ¿qué quiero decir con esto?
00:33:21
Que no confundáis lo que uno mete por la consola con código
00:33:23
Java.
00:33:29
lo que uno mete por la consola
00:33:29
se lo traga este de aquí
00:33:31
y eso no es código Java, es una cadena
00:33:33
de texto y luego ya hará con él lo que tenga que hacer
00:33:35
es como cuando liamos con NextDouble
00:33:37
cuando liamos con NextDouble tenemos que
00:33:39
poner 3,9
00:33:41
3,9 no es Java, pero es lo que
00:33:43
NextDouble necesita para luego convertirlo
00:33:45
a 3.97, ¿vale?
00:33:47
bueno
00:33:51
entonces en este caso
00:33:51
pues este código ya tendría un poco más sentido
00:33:54
si le decimos
00:33:56
así al tío, introduzca si ha aprobado
00:33:59
true
00:34:01
o no
00:34:02
y así le damos al tío
00:34:04
un poquito más de indicaciones
00:34:07
y ahora ya este programa, pues bueno, ya tiene más sentido
00:34:08
lo
00:34:11
lo ejecutamos
00:34:12
introduzca si ha aprobado
00:34:16
o no, venga, ha aprobado
00:34:19
true, el estudiante
00:34:21
ha aprobado, vale, pues bueno, es para
00:34:23
trabajar con Boolean en la consola, que no nos
00:34:25
suenen
00:34:27
raros, vale
00:34:29
Pues ahora sí
00:34:32
Ahora, saltamos al 4
00:34:33
Ahora ya
00:34:36
Leemos una variable entera
00:34:38
Que representa una edad
00:34:40
Y ahora
00:34:42
Ahora el resultado es
00:34:44
Eres mayor de edad
00:34:46
Y luego tiene que aparecer
00:34:50
True o false
00:34:51
¿Qué tendrá que aparecer?
00:34:53
Depende del dato de entrada
00:34:55
True, si el dato de entrada era mayor de 18
00:34:56
Mayor o igual
00:35:00
O false si no
00:35:01
Entonces esto ya involucra
00:35:01
Lo que vimos ayer
00:35:04
De
00:35:06
Descanso por favor
00:35:07
Pero tú no estás hablando
00:35:14
Tú estás ahí sentado
00:35:16
¿Quién es el que está tan cansado?
00:35:18
Tú has sido
00:35:21
El de descanso por favor, ¿quién ha sido?
00:35:22
No, no, yo, yo
00:35:24
Pues no tienes motivos para estar cansado
00:35:25
Todavía yo que estoy hablando
00:35:27
Sí, vamos a parar ahora
00:35:29
De verdad
00:35:32
no me seáis niñas de un añito
00:35:33
vale
00:35:35
pues
00:35:37
este cuarto ejercicio
00:35:38
ya tiene que ver
00:35:41
con esto último
00:35:42
que dijimos ayer
00:35:45
con esto último
00:35:48
y ahora aquí ya sí que paramos
00:35:49
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 9
- Fecha:
- 24 de septiembre de 2024 - 18:30
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 35′ 53″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 150.86 MBytes