Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Ejercicio 3 (Bombones) Examen 3ª Evaluación Programación - 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 2 de junio de 2022 por Cristina M.

82 visualizaciones

Descargar la transcripción

Hola a todos. Último vídeo. Este es el programa que ha dado como más dolor de cabeza y no era tan difícil. 00:00:01
Tenía dos cosas. Una, que pedía que utilizases un... ¿un hazmat? No pedía. A ver... 00:00:09
Sí, lo pedía, almacenar un hazmat. De repente he dicho, ¿por qué? Y lo decían todos. Sí, no lo pedía. 00:00:19
Vale, la idea es que yo quería regalar bombones y quería un programa que me los repartiera. 00:00:26
Entonces, el programa debería preguntarme cuántos alumnos juegan y cuántos bombones máximo tendrá cada alumno. 00:00:30
Entonces, si yo digo que quiero N alumnos y M bombones, ¿vale? 00:00:37
Desde ese archivo CSV, tiene que leerlo una sola vez y amanecer en un hashtag en nombre de los alumnos que yo ya he dicho. 00:00:42
O sea, si he dicho 7, 7 alumnos y una cantidad aleatoria de bombones, máximo M por alumno. 00:00:50
Entonces me va a preguntar un nombre, lo voy a teclear y me va a decir si tiene bombones o no. 00:00:58
Y que manejo excepciones, que es no hay bombones para ti. 00:01:03
Y que tenga en cuenta si hay problemas al leer el archivo. 00:01:08
Vale, pues vamos allá. 00:01:11
He cogido, hay varios que están bien. 00:01:13
Y he hecho de manera diferente, pero como ya es tarde, 00:01:19
Voy a coger el que es más sencillo, que en este caso es el de María y que además le funciona. 00:01:22
Os cuento. 00:01:30
El programa hace un try para leer del teclado y pregunta cuántos alumnos juegan. 00:01:34
Entonces guarda el número de alumnos, el entero que yo haya escrito. 00:01:43
Y luego cuántos bombones y también me lo guarda en el entero. 00:01:47
lee la siguiente línea 00:01:51
imagino que por lo del salto 00:01:53
y dice que el file 00:01:54
está en resources participantes 00:01:59
he cambiado porque estaba diferente 00:02:01
pero era eso, estaba en su carpeta 00:02:03
de resources 00:02:05
si os abriera 00:02:06
el archivo original lo tiene aquí 00:02:10
al lado de programa 2.3 00:02:11
está el resources 00:02:14
creo que está aquí 00:02:16
¿Dónde lo he visto? Ah, no, aquí no se ve, en el LED no se ve, pero fuera sí se ve, tiene los ausis. 00:02:17
Bueno, me la ha mandado ella. Está guay que los archivos vengan en vuestro propio programa, 00:02:24
no te hagan que estar buscando donde los tengo yo en el ordenador. 00:02:29
Vale, ha utilizado un file reader, coge un lector con el file reader de archivo y el buffer reader. 00:02:33
Estuve probando con el random, pero al final no le funcionaba. 00:02:42
A Guillermo le funciona el random y lee aleatoriamente, pero tuvo problemas al final, 00:02:47
entonces como no está terminado, no quiero marearos con él, con la solución. 00:02:53
Vale, aquí tiene una raíz gris para guardar la lista de alumnos que va a leer, 00:02:59
porque solo la va a leer una vez. 00:03:03
Así que, vale, tiene un string que es línea donde lee la línea. 00:03:08
entonces aquí lo que hace María es eliminar las partes que no le interesan 00:03:13
así que para cada línea que hay en el buffer que es distinta de null 00:03:19
la lee, si es distinta de null, mientras sea distinta de null la lee 00:03:24
así que la línea que la tiene aquí leída utiliza el split para separarla por comas 00:03:30
y lo guarda en contenido, que es un array de string 00:03:36
Así que tendrá un array de tantos nombres y apellidos como tenga el alumno. 00:03:40
Y aquí ha utilizado este método para quitar las comillas. 00:03:45
Coge el primer nombre, o sea, porque si fuese María Luisa, cogería María. 00:03:50
Así que coge a María y coge un substring de María. 00:03:58
Entonces le quita el primer carácter, porque sabe que hay comillas, ¿vale? 00:04:01
y luego 00:04:05
si os fijáis en Substream, que no he pinchado 00:04:06
ahora no lo recuerdo 00:04:10
lo que le está diciendo es la longitud que quiere de la cadena 00:04:11
le dice donde empieza 00:04:13
y donde termina 00:04:15
aquí me equivoco 00:04:18
entonces 00:04:20
le está preguntando 00:04:23
al nombre que está en contenido 0 00:04:28
cuál es su longitud y le he quitado 00:04:30
una, entonces le está quitando 00:04:32
la última comilla. Entonces si mide la longitud 7, le dice que va a coger 6 caracteres y como 00:04:34
empieza en la segunda posición, pues se salta la primera comilla. Entonces como ya tiene 00:04:43
el nombre, en alumnos lista, que es un array, lo añade. Así que tiene una lista de alumnos 00:04:47
donde solo están los nombres y va contando las líneas que tiene. Y aquí es donde usa 00:04:54
hazmat y un contador. Un contador para ver, ahora os lo enseño, cuántos alumnos, 00:05:00
cuántos bombones, cuántos bombones o alumnos se han metido en la lista. 00:05:06
Así que empieza con cero. Por ahora no tiene ningún alumno metido en la lista y 00:05:12
el número de alumnos es el número que he dicho yo. Entonces, mientras no haya metido en la 00:05:17
lista suficientes alumnos, va a buscar una posición aleatoria y la posición, que 00:05:22
es un entero, lo utiliza multiplicando las líneas que hay en el ArrayList, que le podría 00:05:27
haber preguntado el tamaño, de acuerdo al ArrayList, lo multiplica por un random de 00:05:38
0 a 1 y lo convierte en entero. Entonces sale una posición en concreto. Puede ser la 14, 00:05:42
la 15, no sabe quién está en esa posición. Así que le pregunta a la lista que le dé 00:05:51
esa posición, hace un get de esa posición y guarda el nombre que puede ser Raquel o 00:05:57
Alejandro y va a guardar los bombones que hay para ti. ¿Cuántos bombones? Pues el 00:06:04
máximo y lo multiplica por el math.random y lo convierte entero. Entonces para saber 00:06:12
si hay alguien con ese nombre, está muy bien comentado, lo comprueba y si no está lo añado 00:06:18
y le da el contador de bombones para saber cuántos personas lleva, perdón, el contador 00:06:24
de personas. Y si estaba, pues vuelve al inicio del bucle sin haber sumado al contador. Entonces, 00:06:28
le pregunta al alumnosMap, que es el HashMap, con el método containsKey, si existe una 00:06:34
clave que se llame nombre. Entonces, si no existe, lo que hace es meterlo. Mete el nombre 00:06:41
y los bombones que hay para ese alumno 00:06:48
y suma el contador de alumnos 00:06:50
entonces si lo ha metido 00:06:53
ahora ya ha repartido bombones a un alumno 00:06:55
así que va a seguir dando vueltas 00:06:58
hasta que los tenga todos 00:06:59
aquí es cuando estaba probando con el random 00:07:00
cierra el lector, cierra el buffer 00:07:05
y voy a poner aquí 00:07:11
yo aquí he puesto un punto 00:07:13
un breakpoint 00:07:14
para poder ejecutarlo viendo que alumnos 00:07:16
se han metido en la en la lista entonces dice escribe el nombre del alumno lo lee 00:07:18
por teclado y ahora comprueba si es el nombre de alumno está en el hasma 00:07:24
entonces está lo imprime y dice cuántos le han tocado y si no está lanza la 00:07:31
excepción no hay bombones para ti no hay bombones para ti lo siento te han tocado 00:07:36
bombones. Y aquí tiene las excepciones que está 00:07:41
controlando. Primero, si metes una letra en vez de un número, cuando te pregunta 00:07:48
número de bombones. Luego, si no encuentra el archivo y 00:07:53
luego si lanzó la excepción. Si lanzó la excepción lo que hace es que imprime por 00:07:58
la consola de errores la excepción convertida a string. Y luego cualquier 00:08:03
otra excepción por si acaso. Algo ha salido mal. Así que lo voy a ejecutar con el debug. 00:08:09
Programa 3. Bien, me voy al output. ¿Cuántos alumnos juegan? Y le digo 6. ¿Y cuántos bombones 00:08:14
máximos tiene cada uno? Voy a poner 9. Vale, entonces me vuelvo al programa y me dice, 00:08:38
Escribe el nombre de alumno comprobado, porque se supone que ya ha repartido los bombones. 00:08:48
Os voy a enseñar que los ha repartido. 00:08:53
Fijaros que estas son las variables que hay en este programa. 00:09:03
Y aquí está alumnosMap. 00:09:06
En alumnosMap tiene 5, de 0 a 5, quiere decir exactamente los alumnos que he pedido, 6. 00:09:08
aquí, ah mira 00:09:15
este es un error 00:09:19
que le he colado 00:09:22
vale 00:09:22
en la posición 1 00:09:24
por ejemplo, la clave es Lucía 00:09:28
y le ha tocado un bombón 00:09:30
y a 00:09:32
María ha tocado 7 00:09:33
a Antonio han tocado 7 00:09:35
cada alumno le ha tocado 00:09:37
una cantidad, es decir, yo pensaba 00:09:39
que iba a coger el nombre solo con un espacio 00:09:41
ah, porque usa las comas, es verdad 00:09:43
es hasta donde llegaba la 00:09:46
la coma, lo separó por comas 00:09:48
está en nombre complejo 00:09:50
y a mí me han tocado dos 00:09:51
y esto es un error 00:09:53
porque deberían, o sea, un error 00:09:55
porque no debería haber leído 00:09:58
alguien que no sea un 00:09:59
¿cómo se dice? 00:10:02
un nombre, no tiene letras 00:10:04
he puesto números 00:10:06
vale, nos dezo 00:10:07
vale, entonces me dice, escribe el nombre por el teclado 00:10:09
Y voy a poner 00:10:12
A Lucía 00:10:15
Así que me voy a salir 00:10:17
Y lo voy a poner con mayúsculas 00:10:18
Porque no he fijado 00:10:20
Y con tilde 00:10:21
Ay, es que no me he quedado ahí 00:10:28
Es que me... 00:10:35
Ahora 00:10:38
No me ha salido el mensaje todavía 00:10:38
No sé si va a fallar 00:10:41
Porque he escrito antes de tiempo 00:10:43
Sí, he escrito antes de tiempo 00:10:45
Y el programa se ha quedado tontado 00:10:47
Un segundo que lo vuelvo a arrancar 00:10:49
Vale, entonces ahora 00:10:51
Si el nombre que he puesto es Roberto 00:10:54
Anda 00:10:56
Os juro que me funcionaba 00:10:59
Ah, bueno 00:11:01
Es que ya lo pienso 00:11:09
Vale, entonces estoy siguiendo 00:11:11
Es que cuando estudiaba en Google no me acordaba 00:11:15
Ya he leído el nombre 00:11:16
Si os fijáis 00:11:19
El nombre lo ha leído en nombre alumno 00:11:21
Que está por aquí 00:11:23
Que es Roberto 00:11:26
y si os fijáis en alumnos más 00:11:27
le he colado otro error 00:11:30
que es este en la posición 1 00:11:32
o sea que le he colado yo un dato que no está bien 00:11:33
porque tiene letras 00:11:36
pero aquí está Roberto 00:11:37
estoy en este punto 00:11:38
va a comprobar si alumno más contiene 00:11:40
esa clave 00:11:43
le doy al siguiente paso 00:11:45
entonces sí que está 00:11:46
y como sí que está va a imprimir el nombre del alumno 00:11:48
no ha tocado tantos bombones 00:11:50
y ha terminado 00:11:52
si voy a la salida 00:11:55
aquí tenéis, a Roberto le han tocado 00:11:56
tres bombones 00:11:58
y si lo vuelvo a ejecutar 00:11:59
¿cuántos aún nos juegan? 00:12:03
cuatro 00:12:13
bombones, ocho 00:12:13
nombre de alumno, Pepe 00:12:15
y me dice, no hay bombones para ti, lo siento 00:12:17
te han tocado bombones 00:12:20
y ya está 00:12:21
si yo cambiara el nombre 00:12:23
del archivo o eliminara el archivo 00:12:26
me saltaría 00:12:28
el Final Fund Exception 00:12:30
y si yo quito 00:12:32
el punto de ruptura 00:12:35
y lo vuelvo a ejecutar 00:12:36
una prueba que no la he hecho antes 00:12:38
¿cuántos aún nos juegan? 00:12:40
le digo una T 00:12:45
me dice 00:12:46
no has metido un número entero 00:12:50
y el programa termina correctamente 00:12:52
simplemente me dice que no he metido un número entero 00:12:54
gracias 00:12:56
Valoración:
  • 1
  • 2
  • 3
  • 4
  • 5
Eres el primero. Inicia sesión para valorar el vídeo.
Idioma/s:
es
Autor/es:
Cristina Moreno Ruiz
Subido por:
Cristina M.
Licencia:
Reconocimiento - Compartir igual
Visualizaciones:
82
Fecha:
2 de junio de 2022 - 2:03
Visibilidad:
Público
Centro:
IES LOPE DE VEGA
Duración:
13′ 04″
Relación de aspecto:
1.78:1
Resolución:
1148x646 píxeles
Tamaño:
85.54 MBytes

Del mismo autor…

Ver más del mismo autor

Comentarios

Para publicar comentarios debes entrar con tu nombre de usuario de EducaMadrid.

Comentarios

Este vídeo todavía no tiene comentarios. Sé el primero en comentar.



EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid