Saltar navegación

20260925 Ejercicios_1 - 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 25 de septiembre de 2026 por Raquel G.

3 visualizaciones

Descargar la transcripción

Vale, pues venga, vamos a arrancar aquí, venga, pues vamos, venga, pues ejercicio 1, por ahora nosotros hacemos cada ejercicio en un fichero distinto, vale, nos vamos a organizar así, pues bueno, a ver, yo en mi caso cuando los vaya a corregir aquí, 00:00:00
Vosotros organizados de otra manera, pero bueno, os recomiendo que ahora mismo hagáis cada ejercicio en un ficherito distinto 00:00:48
y así lo tenéis más organizado, no tenéis efectos secundarios de un código en otro, etc. 00:00:56
Pues venga, cada ejercicio o cada programa, porque para nosotros ahora cada ejercicio es un programa. 00:01:01
Llegará un momento en que ya no. 00:01:09
Cada ejercicio será una aplicación que tenga diferentes programas, clases que se llaman entre sí, etc. 00:01:11
Ahora mismo cada ejercicio es un programa 00:01:16
Pues venga, vámonos con el primero 00:01:19
De nuevo recordamos que ahora mismo 00:01:20
Para nosotros programa y clase 00:01:23
Son sinónimos 00:01:25
Dentro de poco ya 00:01:26
Esa sinonimia, si es que eso se puede decir 00:01:27
Desaparecerá 00:01:31
Porque no es así 00:01:33
Pero ahora mismo con lo que sabemos sí 00:01:34
Pues venga, ejercicio 00:01:36
Uno 00:01:39
Marco aquí el main 00:01:40
Y esto es 00:01:43
Lo que tenemos que escribir sí o sí 00:01:47
Aunque todavía no entendamos por qué 00:01:49
Para empezar a tirar un código 00:01:52
¿Vale? Aunque todavía no entendamos por qué 00:01:54
Eso es lo que tenemos que escribir sí o sí 00:01:56
Para empezar a tirar código, vale 00:01:58
Pues el código que vamos a tirar 00:01:59
¿Qué tiene que hacer? 00:02:02
Dale, ábrete, aquí 00:02:06
Vale 00:02:08
Eh... 00:02:08
Ah, que está aquí, vale 00:02:12
Tiene que, programa en Java 00:02:13
Que lea por teclado dos variables enteras 00:02:16
enteras y muestre su suma en pantalla. Cuando uno lee un enunciado, primero lo lee un montón 00:02:18
de veces hasta que entienda exactamente lo que tiene que hacer. En este ejemplo es una 00:02:25
línea, un enunciado sencillo, no tenemos que leerlo 50 veces hasta que entendamos lo 00:02:30
que queremos hacer, pero en otros casos, claro que tenemos que leer un enunciado unas cuantas 00:02:35
veces hasta que entendemos lo que hay que hacer. Incluso si tiene un montón de requisitos 00:02:42
de cosas, pues lo normal es leerlo 00:02:47
¿hay una tercera cosa? 00:02:50
no se ha ido todavía 00:02:52
ahora hay más 00:02:53
bueno 00:02:54
incluso esas sucesivas lecturas 00:02:56
las hacemos con un lápiz y papel al lado 00:03:01
para organizarnos, ah vale, aquí 00:03:03
esto me lo va a pedir varias veces 00:03:05
vale, vale, una primera organización 00:03:07
bueno, ya he entendido exactamente lo que tiene que hacer 00:03:09
¿que hay algo que no entiendo 00:03:11
sobre lo que tengo que hacer? 00:03:13
a la persona que me ha propuesto 00:03:15
esa aplicación, ese ejercicio, ese enunciado, le pido los detalles. 00:03:17
Todo esto de lo que hablo es la fase de análisis 00:03:22
que en un caso como este se traduce en leerlo y decir 00:03:25
pues ya lo he entendido. En otro contexto se traduce en un proceso muy largo 00:03:29
que involucra a un montón de personas hasta que por fin se detalla exactamente 00:03:33
que tiene que hacer el programa. En este caso, ese proceso ha terminado 00:03:37
porque ya hemos entendido lo que hay que hacer. Uy, voy a tener que leer del 00:03:41
teclado, bien, ya automáticamente 00:03:45
hago la conexión, voy a necesitar el objeto 00:03:47
escáner, muy bien 00:03:49
ahora, voy a necesitar 00:03:50
dos números 00:03:53
aquí hasta que me lo, hasta me dice 00:03:55
que van a ser dos variables 00:03:57
voy a necesitar dos datos, dos datos 00:03:59
pues dos variables, vale, dos variables 00:04:01
ahí, ¿de qué tipo? 00:04:03
es que ya me lo está diciendo, si no lo podría decidir 00:04:05
yo, vale, si me dice 00:04:07
escribir un programa en Java 00:04:09
que 00:04:11
te introduzca cuántas veces has hecho 00:04:12
no sé qué, ahí no te dice que 00:04:15
esa variable sea entera 00:04:17
pero tú dices, algo que cuenta 00:04:19
es entero, es 2, 3, 5 00:04:21
no es 7,8 00:04:23
entonces en este caso es que ni siquiera tenemos 00:04:24
que tomar decisiones nosotros, porque uno lo está 00:04:27
diciendo, pero muchas veces tenemos que tomarlas 00:04:29
bueno, pues en nuestro caso 00:04:31
leer por teclado dos numeritos enteros 00:04:32
uy, dos variables, ahí tendrán que estar 00:04:35
muy bien, leer por teclado, ¿qué significa? 00:04:37
que su valor en lugar de 00:04:40
asignárselo así tal cual a capón por código 00:04:41
voy a tener que solicitarlo 00:04:43
al usuario, ah que bien 00:04:45
eso ya lo sé hacer, lo he hecho varias veces 00:04:47
y no tengo ya que pensar sobre ello 00:04:49
porque ya me lo he aprendido, sé como se hace 00:04:51
¿vale? porque programar se basa en 00:04:53
ir incorporando conocimientos 00:04:55
e írtelos dejando 00:04:58
ya dentro grabados 00:04:59
y luego ya ser capaz de componer el puzzle 00:05:00
¿vale? o sea programar 00:05:03
es componer el puzzle con los 00:05:05
conocimientos que yo ya voy aprendiendo 00:05:07
luego, la memoria es fundamental 00:05:09
¿vale? la memoria es fundamental 00:05:12
porque hay que aprenderse las cosas 00:05:15
y hay que tenerlas ahí 00:05:16
si no, no puedes tirar de esos conocimientos 00:05:17
tú puedes buscar en internet 00:05:20
o buscar en una IA 00:05:22
una duda concreta 00:05:23
¿vale? pero esa duda te ha surgido 00:05:25
después de que tú ya te has hecho tu mapa mental 00:05:27
has compuesto lo que tú ya sabes 00:05:29
y tienes un boceto de las cosas 00:05:31
a partir de ahí ya puedes 00:05:33
consultar dudas concretas 00:05:35
¿vale? entonces 00:05:37
Nosotros ahora mismo ya sabemos perfectamente de memoria qué tipos de datos tenemos, cómo se declaran las variables y además sabemos perfectamente cómo leer un valor por teclado para asignarse a una variable. 00:05:39
Pues ese conocimiento ya tiene que estar en nuestra cabeza, no necesitamos, si tenemos que consultarlo, ya vamos muy mal, porque entonces ya el resto de la pelota no va a funcionar, se nos va a hacer ahí una pelota, quiero decir, enorme. 00:05:52
bueno, pues entonces, pues 00:06:07
y luego tendré que mostrar 00:06:09
la suma, sé mostrar, sí, tengo un 00:06:12
sistema de println, sé mostrar 00:06:13
tengo que hacer una suma de números y hacerla 00:06:15
sí, conozco el operador suma, sé hacerla 00:06:18
vale, pues efectivamente sabemos 00:06:19
hacer todo lo que hay aquí, ahora 00:06:21
se trata de componerlo 00:06:23
ya está, componer ese puzzle porque 00:06:25
sabemos hacerlo todo, entonces uno va 00:06:27
identificando, ah, aquí voy a necesitar hacer esto 00:06:29
ah, sí, esto se hace así, aquí voy a 00:06:31
necesitar esto, ah, sí, esto se hace así 00:06:33
Y este así, esto se hacía así 00:06:35
Es porque lo tenemos en la cabeza 00:06:37
Metido, ¿vale? 00:06:39
Pues venga, vamos a componer aquí ese puzzle 00:06:41
Y decimos 00:06:43
Eran dos variables enteras 00:06:44
Pues ya está, sé declarar dos variables enteras 00:06:46
Num1 y num2 00:06:49
Vale 00:06:51
Tengo que mostrar una suma 00:06:53
¿Vale? 00:06:56
Mi resultado final va a ser este 00:06:58
Mostrar una suma 00:06:59
Este va a ser mi resultado 00:07:01
Entonces 00:07:03
los programas en general 00:07:04
este es un ejemplo muy sencillo 00:07:08
que igual no lo ilustra mucho 00:07:10
pero uno no programa en línea 00:07:13
pa pa pa hago esto y ahora esto 00:07:15
y ahora esto y ahora esto 00:07:17
lo normal de hecho es que tú empieces a tirar desde el final 00:07:18
tiras desde el final 00:07:21
que es 00:07:23
mi programa con que tiene que concluir 00:07:23
que espera el usuario 00:07:27
de mi programa 00:07:29
el usuario espera de tu programa 00:07:30
Que tú muestres la suma de dos números 00:07:33
Pues tú tiras de ahí 00:07:35
Esto es lo que el usuario espera 00:07:36
Que tú muestres la suma de dos números 00:07:39
Y ahora ya, para conseguir eso 00:07:40
Empiezas a 00:07:43
Hacer los pasos previos 00:07:44
Vale, pues esto es lo que yo tengo 00:07:46
Que hacer, mostrar la suma de dos números 00:07:49
Vale, sé hacer la suma 00:07:51
De dos números, este más este otro 00:07:53
Sé mostrarla 00:07:55
Claro, ahora tengo que 00:07:56
Ver si con esto he completado 00:07:59
Lógicamente no, ya me lo dice el compilador 00:08:01
El compilador me dice 00:08:03
Oye, perdona, num1 y num2 no tienen nada 00:08:04
Claro, claro, es que me falta 00:08:06
Ahora ya 00:08:08
Hacerme la pregunta 00:08:10
¿De dónde sacan num1 y num2 los valores? 00:08:12
Los sacan del teclado 00:08:15
Vale, pues me voy ahí 00:08:15
Entonces, este que es un programa 00:08:17
De 4 o 5 líneas 00:08:20
¿No es el mejor 00:08:23
Para ilustrar eso? 00:08:24
Hola, dime 00:08:26
Estamos haciendo un grupo de los delegados 00:08:27
para el tema de los baños 00:08:29
Esperaos segunditos 00:08:30
si no quieres salir en pantalla 00:08:32
Bueno, pues estaba diciendo 00:08:34
este ejemplito de programa 00:08:37
que son cuatro cosas, quizá no es el más 00:08:39
ilustrativo de lo que os quiero transmitir ahora 00:08:41
pero lo que os quiero transmitir 00:08:43
es que aunque un programa 00:08:45
lo que acaba siendo al final 00:08:47
es una secuencia de acciones 00:08:49
no se construye en secuencia 00:08:50
Ah, tengo que hacer esto 00:08:53
vale, no se construye en secuencia 00:08:55
su diseño, su construcción 00:08:57
pues la vas haciendo por iteraciones sucesivas, te vas aproximando 00:08:59
y normalmente el punto de partida es el final, que es a dónde necesito llegar 00:09:03
a dónde necesito llegar, aquí necesitamos llegar a que se muestre un mensaje 00:09:08
luego un sistema de println y que ese mensaje sea una suma de dos números 00:09:15
que tendré que tener declarados previamente, quiero llegar aquí 00:09:20
Vale, ahora, ¿qué acciones tengo que tomar para llegar aquí? 00:09:25
En este caso, la única acción que tengo que tomar es dar valor a estas variables, 00:09:30
porque ya me lo está diciendo el compilador. 00:09:34
Yo, estupendo, te hago esto, ¿qué es lo que tú quieres hacer? 00:09:37
Yo te lo hago, pero me falta el valor de las variables. 00:09:39
Vale, pues entonces, ¿cuál es la pieza que tenemos que insertar aquí dentro? 00:09:43
Pues la pieza que tenemos que insertar aquí dentro es la de darle valor a las variables. 00:09:47
num1 igual a lo que sea 00:09:51
y num2 igual a lo que sea 00:09:54
genial 00:09:58
ya hemos puesto otra pieza 00:10:00
en nuestro rompecabezas 00:10:02
que es, ah, me falta darle valor 00:10:04
ya hemos puesto una pieza 00:10:06
pero hemos dejado dos agujeritos negros 00:10:07
por completar 00:10:10
el agujerito negro de y aquí que 00:10:11
y el agujerito negro de aquí que 00:10:13
vamos haciendo bocetos 00:10:15
y en cada boceto 00:10:17
que hacemos pues tendrá una parte que todavía 00:10:20
no hemos resuelto, vale 00:10:22
pues ahora vamos a atacar esa parte 00:10:24
vale, que tengo yo que asignar 00:10:26
a estas variables, me voy a 00:10:28
denunciar dos, es que no me acuerdo, dos valores 00:10:30
solicitados por teclado 00:10:32
vale, pues yo sé como 00:10:34
asigno una variable, un valor 00:10:36
solicitado por teclado, que es 00:10:38
a través de un objeto 00:10:40
que yo me tendré que 00:10:42
crear previamente, a través 00:10:44
de un objeto, sé que yo puedo hacer 00:10:46
esto, y esto porque me 00:10:48
lo sé de memoria, ese ladrillo 00:10:50
lo conozco y lo puedo usar aquí porque 00:10:52
me lo sé, vale 00:10:54
y sé que aquí tengo que hacer 00:10:56
lo mismo, vale 00:10:58
vale, sé que 00:11:02
por aquí van las cosas, pero 00:11:04
claro, esta cosita de aquí 00:11:06
que es 00:11:09
la que llama esto 00:11:10
para leer el número, esta cosita, ya me 00:11:12
falta el último de los ladrillos 00:11:14
que es, oye, cuidado 00:11:16
que me estoy acordando 00:11:18
que esta cosa de aquí 00:11:20
Necesita ser declarada 00:11:22
Necesita ser declarada 00:11:24
Vale, pues ese es el último ladrillo que queda 00:11:25
El último escollo que nos queda 00:11:28
Es esta sentencia 00:11:30
Que usa esta cosa de aquí 00:11:32
La tenía que tener declarada, es verdad 00:11:33
Si no la tenía declarada antes no funcionaba 00:11:36
Pues ya pongo el ladrillo 00:11:38
Que queda 00:11:40
Y esto pues también me lo sé de memoria 00:11:40
Y sé que se hacía de esta manera 00:11:43
Y digo, ¿y por qué me salía rojo? 00:11:46
Ah, porque esto 00:11:56
Por esto que ya aprendí 00:11:57
y que voy a entender más adelante, ahora no puedo, esto que ya aprendí, que cuando le doy un tipo de dato que él no sabe dónde está, 00:11:58
porque int sabe dónde está, que no sabe dónde está, tengo que decirle dónde está, y eso, aunque no entiendo nada de por qué se lo digo así, 00:12:09
aunque no entiendo nada, me he aprendido por ahora, que era así como había que decírselo, ¿vale? 00:12:17
bueno, pues ahora sí que parece que todos los ladrillos 00:12:28
del programa están 00:12:33
he partido 00:12:34
del final, mi programa 00:12:36
tiene que mostrar una suma 00:12:38
de números 00:12:40
y he empezado a construirlo 00:12:41
esa suma de números, si no recibe 00:12:43
un valor previamente 00:12:46
es imposible 00:12:47
que se obtenga, pues ya me he hecho 00:12:49
la siguiente pregunta, ¿y cómo reciben el valor? 00:12:52
ah, por teclado, vale 00:12:55
pues pongo esto, muy bien 00:12:56
Y esto para ponerlo, ¿me hacía falta algo? Sí, me hacía falta lo de arriba, muy bien. Vale, entonces ahora llega el momento de, hemos pasado la fase de compilación exitosamente, porque esto no tiene errores de compilación y ahora viene el momento de la fase de ejecución. 00:12:58
¿Vale? Insisto, eso es un ejemplo muy sencillito, pero me interesa un poquito los detalles de alguna manera del proceso mental que tenéis que en general seguir, ¿vale? Porque el vacío de tengo que hacer un programa que hace un montón de cosas, uno se enfrenta al vacío de y ahora tengo que empezar a escribir código, uno tras otro, uno tras otro. 00:13:18
Pues no, no escribo código uno tras otro, primero me sitúo en, ¿cómo tiene que acabar esto? Tiene que acabar mostrando un valor, este valor, muy bien, este valor, ¿cómo lo consigo? ¿Y qué necesito? Necesitas para construirlo tres variables, venga, las declaro y así vamos, ¿vale? 00:13:39
¿Qué ibas a preguntar? 00:13:58
Ah, el import ese de arriba. 00:14:01
Esto. 00:14:04
¿Vale? Necesario 00:14:06
para poder 00:14:08
usar esto en Java. 00:14:09
¿Vale? Ya lo entenderemos más adelante. 00:14:11
Repito. 00:14:13
¿Era para que mostrase...? 00:14:14
Para que mostrase, no. 00:14:18
Esta sentencia lo que hacía era 00:14:20
quedarse esperando, 00:14:21
dejar al programa a la espera 00:14:23
de que alguien llegue y meta un número. 00:14:25
cuando ese alguien ha llegado y ha metido 00:14:27
un número en el teclado numérico 00:14:29
ese numerito, pum, se almacena 00:14:31
aquí y ya saltamos a la siguiente 00:14:33
sentencia 00:14:35
¿vale? entonces la fase de compilación 00:14:36
la habríamos pasado porque 00:14:40
este programa no tiene errores de compilación 00:14:41
sino el compilador me avisaría 00:14:43
con sus rayados en rojos raros 00:14:45
vale 00:14:47
ahora vamos a hacer 00:14:49
una primera ejecución 00:14:51
pues venga, ejecutamos 00:14:53
esto a ver qué hace y mi consola se ha perdido un momento ahí está mi consola vale entonces claro 00:14:55
yo he hecho el programa yo soy programador soy desarrollador entonces yo veo aquí este cursor 00:15:13
aquí pataleando y como yo soy desarrolladora soy hecho el programa sé que esto significa que el 00:15:21
programa está ahí esperando 00:15:27
y además incluso sé que está esperando un número 00:15:28
porque he hecho yo el código 00:15:31
pero claro, a un usuario le das este programa 00:15:32
y el 00:15:35
programa arranca y hay ahí un cursor 00:15:37
parpadeando y dice, ¿qué me han dado? 00:15:39
¿qué es esto? ¿vale? ¿qué me han dado? 00:15:41
con lo cual, primera cosa que 00:15:43
tenemos ahora que corregir 00:15:45
de la cual nos ha informado la ejecución 00:15:46
vamos a poner un mensajito 00:15:49
¿qué menos que poner un mensajito? 00:15:51
bueno, pues 00:15:53
en lugar de seguir ejecutando voy a pararlo 00:15:53
directamente a lo bestia 00:15:56
con el botoncito rojo de aquí 00:15:58
¡pum! 00:16:00
aborto este programa a lo bestia 00:16:03
terminado, ya me dice que está terminado 00:16:05
y voy a arreglar eso 00:16:07
que eso no es que sea un error del programa 00:16:09
pero hombre, lo convierte 00:16:10
en un código 00:16:13
menos 00:16:14
amable para el que lo va a usar y por tanto 00:16:16
seguramente menos vendible 00:16:18
¿qué he identificado que me falta? 00:16:20
un mensajito aquí, que menos 00:16:22
un mensajito 00:16:24
Introduzca un entero 00:16:26
Vale 00:16:29
Y ahora 00:16:32
Una vez que he introducido el primer entero 00:16:36
Tiene sentido un segundo mensaje 00:16:39
Antes de que se quede esperando para el otro 00:16:42
Introduzca otro entero 00:16:44
Joder 00:16:51
Si es que ya los tiene muy fácil 00:16:52
Llega el viernes a última hora 00:16:56
Al patio a berrear 00:16:57
y tan anchos que se quedan 00:16:59
vale 00:17:01
y ahora ya el programa 00:17:03
el programa va a mostrar la suma 00:17:05
pero ya que estamos haciéndolo elegante 00:17:09
ya que estamos haciéndolo elegante 00:17:12
vamos a aprovechar 00:17:13
para hacerlo 00:17:16
más elegante y que le diga 00:17:17
la suma es 00:17:19
entonces yo soy muy lista y digo 00:17:20
voy a concatenar el mensajito 00:17:23
la suma es 00:17:26
voy a concatenarlo ya con esta suma 00:17:27
para que me muestre todo 00:17:30
la suma es concatenado con la suma 00:17:33
pues venga 00:17:37
y ya dejamos el programa muy bonito 00:17:38
la suma es 00:17:41
este va a ser mi mensajito 00:17:44
y lo voy a concatenar con lo que viene después 00:17:46
que se supone que es la suma de los números 00:17:49
venga, hacemos la prueba otra vez 00:17:52
Ahora el usuario, el que está haciendo la fase de pruebas 00:18:00
Ya dice, bueno, esto ya es otra cosa 00:18:05
Ya sé lo que tengo que hacer 00:18:07
¿Con qué lo quieres sumar? 00:18:10
Con 10 00:18:12
Venga 00:18:13
Introduzca otro, a ver qué hace con esos dos 00:18:14
La suma es 4.510 00:18:17
Pues lógicamente algo ha fallado en nuestro programa 00:18:21
Porque la suma no es 4.510 00:18:26
La suma es 55 00:18:30
Entonces, el que está haciendo el testing de nuestro programa 00:18:32
El que está haciendo el testing de nuestro programa 00:18:37
Dice, mira, me han pasado un programa para pruebas 00:18:44
Que es una birria total 00:18:47
Entonces ya empiezas a estar jodido 00:18:49
¿Vale? 00:18:51
Pero bueno, te dan otra oportunidad y te dicen 00:18:52
Venga, anda, revísalo 00:18:55
Vale 00:18:55
Entonces, vamos a ver 00:18:57
¿Cómo es que esto? 00:19:00
Si yo he puesto aquí la suma de un entero y de otro entero 00:19:01
hombre, una suma cuando tiene un número delante y otro número detrás 00:19:04
ya sabemos que funciona como la suma aritmética 00:19:10
pero esto no me ha hecho la suma aritmética 00:19:12
casualmente lo que me ha hecho es 00:19:16
por lo que veo la concatenación 00:19:18
me ha concatenado 45 y 10 00:19:20
¿por qué? 00:19:24
si el más hemos dicho siempre 00:19:25
que cuando tiene un número delante y otro detrás 00:19:27
funciona como suma 00:19:30
claro, pero es que digo 00:19:33
ojo, es que mi expresión 00:19:36
no es esta sola 00:19:38
la expresión que yo he puesto es todo 00:19:39
¿vale? 00:19:42
me estoy quedando 00:19:44
me estoy quedando 00:19:46
para tratar 00:19:54
de entender el problema 00:19:56
me he obcecado 00:19:58
y estoy mirando esto, esto está bien 00:19:59
escrito, esto es la suma de un número 00:20:02
y otro número, operador más 00:20:04
con número delante y número detrás 00:20:06
es una suma. Me obceco, me obceco, 00:20:08
me obceco, ¿vale? 00:20:10
De nuevo, este es un ejemplo sencillo, 00:20:12
pero trato de ilustrar el proceso 00:20:14
natural. Me obceco el que el problema 00:20:16
está aquí. Digo, no, 00:20:18
aquí no está el problema. Normalmente 00:20:20
los problemas están en zonas 00:20:22
distintas a donde estamos buscando. 00:20:24
Esto está 00:20:28
perfectamente escrito como suma 00:20:28
de número uno y número dos. 00:20:30
Claro, es que yo tengo que ampliar mi visión 00:20:32
y decir, vamos a ver. 00:20:34
Bien, esto no es una única, la expresión no es esto y ya, la expresión es más grandota, mi expresión es toda esta, esta es mi expresión, esta es la que se está evaluando, la que se está evaluando es toda, una expresión con tres operandos, vale, pues voy a mirar la expresión entera, no esto, la expresión entera, esto es un trocito, la expresión se evalúa en su totalidad, no un trocito. 00:20:35
Vale, entonces ahora ya empezamos a entender lo que decimos. 00:21:02
Vamos a ver. 00:21:04
Vamos a recordar que la máquina virtual de Java, 00:21:06
cuando tiene una expresión en la que tiene muchas operaciones, 00:21:08
si hay paréntesis, hace primero los paréntesis. 00:21:12
Pero si no hay paréntesis, va de izquierda a derecha. 00:21:15
¿Vale? Esa es la regla. 00:21:19
Si hay paréntesis, primero los paréntesis. 00:21:21
Luego, si hay operandos mezclados de multiplicaciones y sumas, 00:21:23
primero las multiplicaciones. 00:21:27
y luego cuando eso ya está resuelto 00:21:28
de izquierda a derecha 00:21:31
entonces aquí no tiene mezclas de multiplicaciones 00:21:32
ni divisiones, ni sumas 00:21:35
porque todos son sumas, con lo cual 00:21:37
prioridad igual, y no tiene paréntesis 00:21:38
con lo cual esta expresión 00:21:41
se va a evaluar de izquierda a derecha 00:21:43
sí o sí, no hay otra 00:21:45
vale, pues vamos a evaluarla de izquierda a derecha 00:21:46
lo primero que hace es ejecutar 00:21:49
este más de aquí 00:21:51
este es el primero que ejecuta 00:21:52
y este más que tiene 00:21:54
string en un lado o cadena 00:21:56
y número en otro 00:22:00
cuando el operador más tiene 00:22:01
cadena en un lado y número en otro 00:22:04
sabemos que se convierte 00:22:06
automáticamente en concatenador 00:22:08
vale, luego la máquina virtual 00:22:10
lo primero que hace es esta suma 00:22:12
que es una concatenación y nos muestra 00:22:14
la suma es 00:22:16
1 que es 45 00:22:17
el número que sea 00:22:20
y ya tenemos ahí una cadena 00:22:21
que es la concatenación de la suma es 00:22:23
num convertido a cadena 00:22:26
porque ya sabemos que funciona así el concatenador 00:22:28
lo que no sea cadena lo convierte a lo bestia 00:22:30
y el resultado, otra cadena 00:22:33
ya tenemos la primera parte de la expresión resuelta 00:22:36
la suma es 45 00:22:40
seguimos evaluando la expresión 00:22:42
operador más 00:22:44
será suma o concatenación 00:22:46
depende de lo que tenga cada lado 00:22:49
¿qué tiene a la izquierda? 00:22:50
una cadena, la cadena 00:22:53
la suma es 45, la que ha 00:22:55
obtenido de esta concatenación 00:22:57
tiene una cadena, con lo cual 00:22:58
esto de nuevo se convierte en concatenación 00:23:01
porque tiene en uno de los 00:23:03
dos lados una cadena, vale 00:23:05
pues concatena, la suma es 45 00:23:07
concaténalo con un 2, lo que sea 00:23:09
entonces es justo 00:23:11
el resultado que nos ha salido 00:23:13
la suma es 45, 10 00:23:14
porque ha ejecutado como 00:23:17
concatenación los dos máses 00:23:18
vale 00:23:20
Bueno, pues ya hemos entendido el problema. ¿Soluciones posibles? Pues muchas. ¿No tiene alguna? Claro, una solución. A ver, ojo, quiero que hagas primero esto, porque si haces primero esto, vas a hacerme la suma, porque tienes número y número. 00:23:22
Primero esto, pues para alterar el orden natural de izquierda a derecha, ya está, ¿vale? 00:23:43
Para darlo, ya está, solucionado, ¿vale? 00:23:52
Bueno, pues cuidado con estas tonterías porque se van anidando luego problemas y estas cosas las hacéis mal y suspenso. 00:24:02
por ejemplo, habría muchas soluciones 00:24:12
esta funcionaría, no hace falta, bueno vamos a probarla 00:24:17
no tardamos nada, pero bueno, funcionaría 00:24:20
la suma es 8, efectivamente 00:24:23
otra solución perfectamente puede ser 00:24:26
voy a guardar mi resultado en otra variable distinta 00:24:29
num1 más num2 00:24:31
mi resultado se ha guardado aquí 00:24:34
y ahora muestro mi resultado 00:24:37
Vale, pues ya está, también 00:24:40
Perfectamente válido 00:24:45
Porque el resultado ya lo tengo como suma 00:24:46
Ya lo tengo bien hecho, es una suma 00:24:50
Y lo muestro, vale, efectivamente 00:24:51
Pues esto también 00:24:54
Me lo hará bien 00:24:56
5 y 8, 13 00:24:57
Vale 00:25:00
O podríamos poner el mensaje antes 00:25:01
Y luego la suma después 00:25:06
Por ejemplo 00:25:07
Podríamos haber optado por hacer esto 00:25:10
Y nos habríamos encontrado con ese problema 00:25:11
Primero muestro el mensajito 00:25:13
Pero sin el salto de línea 00:25:15
La suma es 00:25:17
Y ahora pongo después 00:25:21
Num1 00:25:24
Más num2 00:25:26
Y no me habría hecho falta esta variable 00:25:29
Esto también funcionaría 00:25:33
La suma es, me lo muestra primero 00:25:35
Y luego después me muestra esto 00:25:37
Esto no hay duda de que es un número 00:25:39
Porque es número más número 00:25:40
pues esto también me lo haría bien. 00:25:43
¿Vale? 00:25:48
Si tengo 4 y tengo 8, pues la suma es 12. 00:25:49
¿Vale? 00:25:53
Bueno, pues aprendizaje de este ejercicio. 00:25:57
Quedarse uno bien en la cabeza, 00:26:00
lo de leer por teclado, 00:26:02
para usarlo ya con soltura sin tener que pensar. 00:26:04
Y cuidar el tema del operador suma, 00:26:07
porque se comporta con doble personalidad 00:26:10
en función de lo que esté sumando. 00:26:12
¿Vale? Vale. ¿Alguna duda, aunque os parezca que sea tonta de este ejercicio? ¿Todo el mundo tiene claro? 00:26:19
No le causan ningún conflicto, que lo ha entendido y ya está. Aunque de partidas no haya sabido hacerlo solo, ha quedado claro. 00:26:38
bueno 00:26:46
pues 00:26:48
os recuerdo que esta es una 00:26:50
incorporación de cosas 00:26:52
entonces 00:26:54
no dejéis que se acumule 00:26:56
nada, no dejéis que se acumule nada 00:26:59
porque luego ya es muy complicado 00:27:01
volver a ponerse al día 00:27:03
si vais al día sin ningún problema 00:27:04
pues ya está, y luego 00:27:07
la cosa se complica mucho, sobre todo en segundos 00:27:08
se complica mucho 00:27:11
y sigue siendo importante 00:27:12
ser un buen desarrollador 00:27:15
a ver 00:27:17
el otro que decíamos 00:27:20
programa que lea 00:27:22
tres variables y calcule su 00:27:26
promedio 00:27:28
vale, pues es que esta ya, habiendo entendido lo anterior 00:27:29
es que de esta 00:27:34
hay poco que 00:27:35
decir, vale 00:27:36
lo vamos a hacer 00:27:39
rápidamente, por si surgiera algo 00:27:42
sobre la marcha que nos genere 00:27:43
algún tipo de duda 00:27:45
Pero vamos, este tiene poco que decir 00:27:46
Ya rápidamente, como vamos a leer del teclado 00:27:52
Ya rápidamente plantamos lo del escáner 00:28:02
Porque ya lo tenemos entendido y no tenemos ni que pensarlo 00:28:05
Plantamos ya lo del escáner 00:28:08
Porque ya avanzamos que hay que leer del teclado 00:28:11
¿Cuántas variables? Tres 00:28:14
¿De qué tipo? Dabble 00:28:16
Pues ala, declaramos tres dabble 00:28:17
Num1, num2, num3 00:28:21
3 dabel aquí declaradas 00:28:24
vamos a leerlas del teclado 00:28:26
pues num1 00:28:28
es que num1 00:28:31
pues igual ponemos los mensajitos 00:28:33
para hacer copia y pega 00:28:35
pues scan 00:28:36
y nos acordamos otra cosa que ya tenemos 00:28:38
que tener aprendida 00:28:41
que cuando yo quiero leer un número 00:28:42
decimal lo leo así 00:28:45
con next dabel 00:28:47
número dabel perdón si no sería un next float 00:28:48
pero bueno 00:28:51
Vamos a, vale, y ahora como ya hemos avanzado, que si no ponemos el mensaje delante, el programa queda más feo que yo que sé, pues introduzca número decimal, ala, ya está, y esto mismo lo vamos a hacer otras dos veces más, para el numerito 2 y el numerito 3, vale. 00:28:52
Y ahora lo único que me dice esto es que muestre, que calcule la media y luego la muestre. 00:29:25
Pues venga, vamos a hacer literalmente lo que dice. 00:29:35
Vamos a calcular la media. 00:29:38
La media es la suma de los tres números dividido entre tres. 00:29:41
Como los números son decimales, vamos a guardar un decimal, tiene todo el sentido del mundo. 00:29:45
A menos que me digan redondéala. 00:29:50
Vamos a guardarla en un decimal. 00:29:52
Vale, dámelo. 00:29:54
Dar el resultado. La suma de los tres, aquí lógicamente es fundamental poner los paréntesis. Aquí, lógicamente, si uno se come los paréntesis por escribir rápido, la expresión cambia completamente. 00:29:55
porque lo primero que haría sería esta división 00:30:23
esta es la primera que haría 00:30:26
y luego al resultado de esta división le sumaría esto 00:30:28
que no tiene nada que ver 00:30:32
nosotros queremos primero hacer la suma de los tres 00:30:33
pues aquí sí que es obligatorio poner los paréntesis 00:30:37
aquí no es opcional 00:30:41
ahora 00:30:42
este resultado va a ser un double con decimales 00:30:45
porque la suma de double es double 00:30:50
yo lo estoy dividiendo entre 3 que es entero 00:30:53
pero recordamos de nuevo 00:30:56
que cuando en una operación mezclamos 00:30:58
decimales y enteros 00:31:00
el entero queda promocionado a decimal 00:31:01
por lo cual la máquina virtual 00:31:03
aunque le hayamos puesto un 3 00:31:06
que él lo va a guardar como entero 00:31:08
en cuanto ve 00:31:10
que forma parte de una expresión 00:31:12
en la que hay un decimal 00:31:14
dice, cuidado, que tú eres 3.0 00:31:15
en realidad 00:31:19
no pasa nada, 3 y 3.0 00:31:19
representan la misma cantidad 00:31:22
rápidamente lo promociona 00:31:25
decimal, decimal entre decimal 00:31:27
decimal, va al decimal sin problemas 00:31:29
¿vale? 00:31:31
lógicamente de nuevo 00:31:34
si yo lo quiero redondear 00:31:35
digo, espera que yo soy muy chula 00:31:38
y yo quiero redondear 00:31:40
la media entero 00:31:41
y me voy a lo cómodo y digo 00:31:42
pues ah, que no lo estáis viendo 00:31:44
si yo digo no, pero yo la media 00:31:46
aunque me salga 37,2 00:31:48
yo la quiero en entero 00:31:50
Pues ahí que lo guardo en variable entera 00:31:51
Y ya está 00:31:55
No, si queremos redondear 00:31:55
Y guardar en entero 00:31:58
Tendremos que hacerlo de otra manera 00:31:59
Ahora podemos a lo mejor plantearnoslo hacer 00:32:01
Pero desde luego esto no tiene sentido hacerlo 00:32:04
Como ya sabemos 00:32:07
Porque un resultado dable 00:32:08
No puede asignarse 00:32:11
A una variable entera 00:32:12
No puede 00:32:15
Aunque al revés sí 00:32:16
Si este fuera un resultado 00:32:18
int, yo podría guardarle 00:32:21
una label, pero 00:32:23
el caso que me ocupa 00:32:25
no es ese 00:32:26
luego, si yo quisiera redondear, tendría que planteármelo 00:32:27
de otra manera, desde luego así no 00:32:31
vale, pues 00:32:33
se supone que he hecho la media vía bien 00:32:35
y la puedo mostrar 00:32:37
el promedio 00:32:39
result 00:32:44
ala 00:32:48
Vamos a hacer la primera prueba 00:32:53
Introduzca número decimal 00:32:55
Aquí de nuevo para ya dejar de perder tiempo 00:33:02
Tenemos también que acordarnos 00:33:05
Recordaros que hay muchas cosas de las que tenéis que acordaros 00:33:07
Porque luego cuando estamos haciendo algo ya más complicado 00:33:09
Es que esto no me sale 00:33:15
Es que no has puesto la coma 00:33:16
Es que no has puesto no sé qué 00:33:18
Cosas que se supone que tenéis que saber 00:33:19
Entonces cuando eso ocurre me enfado mucho por dentro 00:33:21
Por fuera no lo exteriorizo 00:33:24
Pero por dentro sí 00:33:25
Entonces si estoy muy enfada por dentro 00:33:26
Os pongo los exámenes mucho más difíciles 00:33:27
Y os suspendo más 00:33:29
Entonces es importante 00:33:31
Que vayáis aprendiendo las cosas 00:33:32
Para no enfadarme 00:33:36
Pues venga, número decimal 00:33:36
Aquí nos acordamos que 00:33:39
Le he puesto un enter 00:33:40
Y ya la he cagado 00:33:43
Porque, espera, voy a 00:33:44
Voy a parar el programa y le voy a ejecutar otra vez 00:33:46
Vale, introduzca 00:33:52
Número decimal 00:33:53
Pues 67, 00:33:54
coma 5 00:33:56
porque el método next double 00:33:58
esta acción 00:34:00
esta acción 00:34:02
esta acción de aquí 00:34:04
espera 00:34:06
que le pasemos 00:34:08
la parte decimal con coma 00:34:10
porque él no 00:34:12
se le ocurre pensar que si somos programadores 00:34:14
se cree que somos humanos normales 00:34:16
y en las matemáticas de toda la vida usamos comas 00:34:18
para la parte decimal 00:34:20
entonces él espera con coma y luego ya lo cambiará por dentro 00:34:21
el programa ya lo cambiará y lo pondrá con su punto 00:34:24
vale, introduzca número decimal, magnífico 00:34:26
introduzca otro 00:34:29
estupendo 00:34:30
introduzca otro 00:34:32
este 00:34:34
también le va a valer, no hace falta que ponga 00:34:36
8,0 00:34:38
vale, no hace falta que ponga 8,0 00:34:39
porque ya sabemos que de int a double 00:34:42
él lo cambia 00:34:45
automáticamente, si yo le meto 8 00:34:46
él 00:34:48
primero lo guarda como el entero 8 00:34:50
porque por defecto un número así a palo seco 00:34:52
lo guarda como entero, pero cuando luego se lo asigne 00:34:54
a la variable num3 que es double 00:34:56
cuando luego se lo asigne a esta 00:34:58
ya lo promocionará 00:35:00
al coma cero 00:35:03
pues venga, ala 00:35:04
el promedio es 00:35:06
pues sí, seguramente sea este el promedio 00:35:07
seguramente 00:35:10
lo que pasa es que es verdad que hay una cosa que no nos gusta 00:35:11
y es que, jolines 00:35:14
acortamelo 00:35:15
o quítame la parte decimal lo que decidamos 00:35:17
o decidimos 00:35:20
a cortarlo a dos cifras 00:35:22
o decidimos quitar la parte decimal 00:35:23
vamos a probar a hacer las dos cosas 00:35:25
simplemente para dejarlo más bonito 00:35:27
el usuario va a decir 00:35:30
que programa tan mal depurado 00:35:32
me obligas a mí a redondear 00:35:34
porque yo cuando 00:35:36
si yo estoy haciendo un promedio de precios 00:35:37
te lo estoy pidiendo a ti para apuntarlo yo en mi factura 00:35:39
yo no voy a poner 00:35:42
30,96666 00:35:43
me estás obligando a mí a redondearlo 00:35:45
dámelo tú redondeado 00:35:47
Pues bueno, vamos a parar aquí un momentito 00:35:49
Y ahora 00:35:52
Nos planteamos cómo hacerlo 00:35:52
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
3
Fecha:
25 de septiembre de 2026 - 13:58
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
35′ 57″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
144.01 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid