Saltar navegación

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

Ejercicio 1 (Tenerife) 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.

26 visualizaciones

Descargar la transcripción

Hola a todos, esta vez vídeo sin imágenes porque estoy muy cansada y no tengo buena cara. 00:00:01
Creo que es la cuarta vez que empiezo el vídeo, así que lo voy a intentar hacer lo más rápido posible 00:00:08
y de tirón porque no lo quiero editar. Así que si hablo rápido o me repito, lo siento. 00:00:15
En este vídeo voy a explicar cómo han hecho diferentes alumnos el programa número 1, 00:00:20
que es el que tenía que abrir un archivo 00:00:26
que se llama, bueno, miento 00:00:29
en tenerife.zip tenéis una carpeta comprimida 00:00:32
con varios archivos 00:00:35
os lo voy a enseñar 00:00:37
estos son los archivos 00:00:40
la carpeta tenerife tenía dos decenas de archivos 00:00:43
cada uno de ellos tiene el número del año 00:00:48
del 2000 al 2019 y .txt 00:00:51
Si hago doble clic podéis ver que el archivo tiene el aspecto que se ve en el examen. 00:00:55
Son como tres columnas, en la primera columna viene la fecha y luego un espacio, la temperatura máxima para esa fecha y luego otro espacio, este, y la temperatura mínima para esa fecha. 00:01:01
Se pide que el programa, el usuario, le introduzca uno de los valores y devuelva ciertos datos. 00:01:18
Queda dos. Pues tiene que devolver la temperatura máxima más alta y más baja, que es decir, de esta columna del centro. 00:01:24
Luego tiene que devolver la temperatura mínima más alta y más baja para la columna de la derecha. 00:01:32
Y luego tiene que devolver la media de las máximas, que es la del centro, y la media de las mínimas, que es la de la derecha. 00:01:39
Y luego tiene que hacer la media de las dos que acaba de deciros, de estas dos superiores. 00:01:47
Tiene que hacer la media, de la máxima media a la mínima media. 00:01:51
Y por último, tiene que decir cuál es la mayor diferencia de temperatura que hay en un mismo día. 00:01:56
Por ejemplo, en este primer día hay 6,70, diferencia de temperatura entre la máxima y la mínima. 00:02:02
Pues hay que buscar la mayor diferencia en algún día. 00:02:11
Vale, lo minimizo y os lo explico. 00:02:15
Vamos a ver varios ejemplos. El más fácil de entender voy a utilizar el de Raquel. 00:02:17
Raquel utiliza tres ArrayList que son de string, los tiene aquí, para guardar las fechas, 00:02:43
los mínimos y los máximos 00:02:50
y luego otras variables locales 00:02:52
para ir guardando datos temporales 00:02:54
fijaros que 00:02:56
Raquel abre el escáner 00:02:58
y le pregunta al usuario 00:03:00
cuál va a ser el archivo 00:03:02
y luego 00:03:04
a ver dónde está 00:03:05
simplemente pide 00:03:09
la ruta del archivo 00:03:12
en el caso de Raquel tengo que ponerle 00:03:13
la ruta donde está mi 00:03:16
archivo 00:03:18
y luego lo abre y no comprueba en ningún momento si el archivo existe 00:03:19
lo que podría dar un lugar a un error 00:03:25
luego voy a comprobar para que lo veáis 00:03:26
si yo le pongo aquí cualquier nombre 00:03:29
2001.txt 00:03:34
que no lo va a encontrar 00:03:37
y da una excepción y el programa acaba de mala manera 00:03:38
eso no es lo que tenía que hacer 00:03:42
tenían que acabar bien 00:03:44
se tenían que controlar las excepciones 00:03:45
entonces Raquel no lo controla 00:03:47
la solución en el programa 00:03:50
es que yo ponga 00:03:52
no puedo usar las teclas 00:03:54
porque si no paro la grabación 00:03:56
la solución es que yo ponga mi ruta 00:03:57
en este caso está una carpeta hacia arriba 00:03:59
o sea dos puntos 00:04:02
luego tenerife 00:04:04
la barra y por ejemplo 00:04:05
2001.txt 00:04:08
y me devuelve a temperatura 00:04:11
todo lo que he pedido excepto lo último 00:04:14
Tiene las máximas, las mínimas, las medias, la intermedia 00:04:16
Pero falta el valor máximo de diferencia 00:04:20
Entre máximo y mínimo diario 00:04:23
Bien, ¿qué hace el de Raquel? 00:04:25
Lee cada línea, la parte, la línea en una array de string 00:04:28
Aquí 00:04:32
Y la separa por los espacios 00:04:33
Y esa parts, que podría llamarse de otra manera 00:04:36
Que tiene las partes 00:04:39
En la posición 0 tiene la fecha 00:04:40
Que lo guarda en parte 1 00:04:43
Se podría haber llamado fecha 00:04:45
En Parts 1 tiene el máximo y en Parts 2, posición 2, tiene el mínimo. 00:04:46
Y por eso lo guarda en la lista de fechas de máximos y mínimos con el ADD. 00:04:53
Y luego directamente lo calcula. 00:04:59
La parte interesante del ejercicio de Raquel es que tiene una función CalcularMedia 00:05:05
que la utiliza tanto para calcular la media de la lista de los máximos 00:05:11
como calcular la media de la lista de los mínimos. 00:05:15
Y lo mismo ocurre con una función que se llama calcular máxima, 00:05:18
que la usa para máximos y para mínimos. 00:05:21
Y luego lo mismo una que tiene calcular mínimo. 00:05:25
Entonces, ¿qué me gusta del ejercicio de Raquel? 00:05:28
Que ha reutilizado la misma función para máximos y para mínimos. 00:05:29
Y luego tiene aquí simplemente un cálculo en el que hace la suma de las dos medias, 00:05:33
La divide entre 2 y lo último que hace es imprimirlo y cerrar el fichero. 00:05:38
Vamos a ver cómo son las funciones. 00:05:47
Fijaros, recibe un ArrayList de String, se llama CalcularMedia. 00:05:49
No le importa si es el ArrayList de máximos o de mínimos. 00:05:54
Y vamos, podría hacerlo hasta con las flechas. 00:05:58
Entonces, empieza con los contadores a 0, el de la media está bien. 00:06:00
Para cada uno de los is, que se supone que son los strings que hay en la lista, hace un doble parse doble y lo convierte a doble. 00:06:06
Lo suma en el valor de la media y va contando las líneas. 00:06:17
Cuando termina, devuelve la media más el partido por el contador. 00:06:22
el problema es que tiene esto 00:06:26
que si alguno de los archivos tuviera un valor 00:06:30
que no pudiera pasarse a doble 00:06:33
porque yo podía haber puesto 00:06:34
archivos con errores en el examen 00:06:36
daría error 00:06:39
y el programa se quedaría colgado 00:06:40
hay que controlar 00:06:42
si se hace bien el parseo 00:06:44
aquí 00:06:46
calcular máxima 00:06:47
que está bien, que explica lo que recibe 00:06:50
que es una write list 00:06:52
y devuelve la máxima 00:06:54
bien, inconvenientes 00:06:56
que pone el máximo inicialmente a cero 00:06:59
no es buena idea del todo 00:07:01
porque 00:07:03
podrían ser temperaturas negativas 00:07:04
y entonces el máximo estaría saliendo mal 00:07:07
porque estaría guardando un cero 00:07:09
¿de acuerdo? 00:07:10
nada, funciona muy fácil 00:07:12
para cada i, que es un string que está en la lista 00:07:13
primero lo comparte 00:07:17
lo convierte a doble 00:07:18
lo guarda en la variable comprobar 00:07:21
y comprueba 00:07:23
si comprobar es mayor que el máximo 00:07:24
si es mayor, lo guarda como el nuevo máximo 00:07:26
asigna comprobar 00:07:29
y por último devuelve máximo 00:07:30
el calcular mínimo funciona exactamente igual 00:07:32
solo que está haciendo 00:07:35
comprobando si lo que lee 00:07:37
lo que ha parseado a doble 00:07:38
porque aquí lo parsea 00:07:40
lo coge del array list y lo convierte en doble 00:07:42
comprueba si es menor que el mínimo 00:07:45
si es menor que el mínimo 00:07:47
guarda esa variable comprobar 00:07:48
en el mínimo y por último lo devuelve 00:07:51
hasta aquí el de Raquel 00:07:53
que funciona y hace lo que pide 00:07:54
aunque no cubre ninguna excepción 00:07:56
ahora cierro el de Raquel 00:08:00
y vamos a ver el de María 00:08:04
que es muy diferente 00:08:06
el de María 00:08:08
cuando yo lo ejecuto 00:08:14
voy a ponerme donde está el programa principal 00:08:17
aquí 00:08:20
aquí tenéis como lo ponía inicialmente la ruta 00:08:21
que poner resources, doble barra, tenerife 00:08:26
doble barra y lo concatena 00:08:28
con lo que diga el usuario 00:08:30
que es el nombre del archivo 00:08:32
o ruta donde está 00:08:34
o sea, sería el nombre del archivo 00:08:35
¿de acuerdo? y no funciona 00:08:38
entonces lo he cambiado y he tenido que poner en Linux 00:08:40
resources barra 00:08:42
contraria, barra tenerife 00:08:44
y lo compate, es el único cambio que 00:08:46
he hecho, vale, lo voy a ejecutar 00:08:47
para que veáis que funciona 00:08:50
porque tiene una parte interesante 00:08:52
el de María 00:08:54
voy a ponerle un nombre de archivo 00:08:55
como he hecho antes con Raquel 00:08:58
que no exista 00:09:00
por ejemplo 200.txt 00:09:01
María me dice que el archivo no existe 00:09:04
que prueba de nuevo, no falla 00:09:08
me va pidiendo nombres de archivos hasta que existan 00:09:09
si yo le pongo 2001.txt 00:09:12
me devuelve los valores y termina 00:09:15
y me lo devuelve todo 00:09:18
lo que he pedido, máximos, mínimos 00:09:20
incluso cuál es el día 00:09:22
en el que hay mayor diferencia de temperaturas, que es este. 00:09:24
Esta parte no recuerdo si la he modificado yo o no, ya no me acuerdo. 00:09:31
Bien, el código, que no me quiero enrollar. 00:09:38
Vale, María tiene una función, tiene una particularidad, y es fijaros lo que devuelven sus métodos. 00:09:42
métodos. Devuelven a raíz de dobles, porque resulta que los métodos de María te devuelven 00:09:50
todo de una vez. Te devuelven el máximo, el mínimo y la media. El nombre no es muy 00:09:55
adecuado, que lo ha llamado GetMaximas. Yo le he cambiado el nombre haciendo unas pruebas. 00:10:01
Yo lo hubiera llamado... Mira, le voy a cambiar el nombre para que quede más claro. Vale, 00:10:05
ese refactor 00:10:11
y me estoy enrollando 00:10:13
yo lo llamaría getMax 00:10:14
min 00:10:16
average 00:10:18
¿por qué? 00:10:20
porque devuelve las tres cosas 00:10:25
así como está haciendo yo pruebas y lo he puesto así 00:10:27
entonces que devuelve el máximo 00:10:29
y la mínima y la media 00:10:31
¿vale? pero solo lo hace 00:10:33
para las máximas, ojo 00:10:35
entonces inicialmente se crea 00:10:37
un array de tres en los que los valores por defecto 00:10:39
son 0, 100 y 0 00:10:41
donde la posición cero, como dice el comentario, sería la máxima. 00:10:43
Esta es la posición baja, el mínimo, por eso lo ponen a 100 00:10:50
porque supone que cualquier valor va a ser más pequeño que 100. 00:10:54
Y la media. 00:10:57
¿Cómo mejoraría yo esto? 00:11:00
Cogiendo el primer elemento de los que hay en la lista 00:11:02
y usándolo como máximo y mínimo temporal. 00:11:04
Aún así le funciona. 00:11:09
Porque como no hay valores extremos, no hay nada que esté a menos 50 o que esté a más 50. 00:11:11
Bueno, está bien, me he enrollado. 00:11:17
Va contando las líneas y para cada vector que tiene en la lista de entradas, 00:11:20
porque María guarda las tres cosas en la lista, guarda la fecha, el máximo y el mínimo. 00:11:26
Entonces el vector lo que tiene es las tres cosas. 00:11:33
Entonces la posición donde está la máxima es la 1. 00:11:36
así que lo parsea a un doble igual que ha hecho Raquel pero aquí solamente con la posición 1 00:11:38
lo guarda en leído y ahora comprueba si el leído es mayor que la temperatura que tenía guardada como máxima en este array 00:11:45
y luego comprueba si el leído es menor que la temperatura que tenía guardada como mínima 00:11:54
porque en la posición 1 está la mínima que sería aquí 00:12:01
y además lo suma en temperaturas máximas en el vector en la posición 2 00:12:04
así que va comprobando si es mayor que la máxima que es esta 00:12:10
mayor que la mínima que es esta 00:12:15
y lo va sumando a las medias 00:12:17
y cuando termina lo divide 00:12:19
lo que ha ido guardando aquí en la segunda posición del vector 00:12:22
en la segunda posición 2 00:12:26
es que lo divide lo que ha sumado entre el contador 00:12:27
y lo devuelve 00:12:30
Así que obtiene las tres cosas, máximo, mínimo y media. 00:12:31
¿Qué pasa? Que tiene una función muy similar, esta, que devuelve un array list, perdón, que recibe un array list con toda la lista de entradas y que devuelve un array de tres de dobles. 00:12:37
Y funciona exactamente igual, solo que en vez de mirar la posición uno de los vectores, si os acordáis, voy a poner esto, ella guarda en un vector las tres cosas. 00:12:48
entonces la posición 1 son los máximos 00:13:01
la posición 2 son las fechas 00:13:04
así que lo hace todo para la posición 2 00:13:06
así que coge lo que hay en la posición 2 de la entrada 00:13:09
para todas las entradas 00:13:12
lo pasea a doble 00:13:14
lo guarda en leído 00:13:16
y va comprobando si leído es mayor 00:13:18
que la posición 0 00:13:20
que es donde está la máxima 00:13:22
y si lo es lo guarda 00:13:24
en las temperaturas mínimas 00:13:26
yo llamaría valores mínimas 00:13:28
o datos para mínimas, no lo sé 00:13:32
y luego si leído es menor 00:13:34
lo guarda como mínima 00:13:36
y luego lo va sumando 00:13:37
en la posición del vector 00:13:38
donde guarda toda la suma 00:13:41
y una vez acabado 00:13:44
lo divide por las líneas que ha ido contando 00:13:45
pues eso se podía hacer 00:13:48
en una única función 00:13:50
y luego lo mismo 00:13:51
tiene esta otra función 00:13:53
que es interesante, que es la getDiferencia 00:13:56
que no lo había hecho raquel que hace coge la raíz y por ahora inicialmente la diferencia inicial 00:13:58
es cero va a pensar que tenemos una máxima y una mínima iguales no sabemos de qué fecha es así 00:14:06
esto entonces lo hizo no lo ha modificado es el original de maría entonces para cada vector con 00:14:12
los tres valores fecha mayor máxima y mínima que hay en la lista coge el de la posición 1 que es la 00:14:19
máxima, lo guarda en max, luego coge el de la posición 2, lo guarda en mínimo y comprueba 00:14:27
si el restar esos dos es mayor que la diferencia que había inicialmente, que es esta que había 00:14:34
guardado como cero. Si eso se cumple, entonces lo que va a hacer es que en diferencia mayor 00:14:40
guarda máximo menos en mínimo. Y como sabe la fecha que está en la posición cero, pues 00:14:45
la guarda. Guarda fecha diferencia igual a lo que hay en entrada 0. Así que va 00:14:55
guardando la diferencia y la fecha. Y cuando termina lo devuelve todo en un 00:15:00
string junto. Devuelve la diferencia, que es un doble con formato con dos decimales, 00:15:04
y la fecha, que es un string. Entonces, ¿cómo funciona su código principal? 00:15:11
Aquí tenemos el do while por el que puede estar leyendo archivos hasta que le das 00:15:18
un archivo válido que está guay y luego comprueba si el archivo no existe si el 00:15:23
archivo no existe saca un mensaje por la pantalla de error 00:15:29
cuando llegamos aquí es que se supone que ya el archivo existe así que hace un 00:15:36
try que es lo que no hacía raquel e intenta abrir un escáner con el nombre 00:15:41
del archivo y aquí te una raíz donde va guardando todos los datos entonces mientras haya líneas 00:15:47
coge la siguiente línea next line y con el método split lo separa por los espacios y eso lo guarda 00:15:58
en un vector que se llama entrada que es un vector string que inicialmente va a tener tres 00:16:04
inconvenientes que tiene esto 00:16:09
que podrían venir en el archivo 00:16:14
líneas incorrectas que no tuvieran 00:16:16
las dos temperaturas y no lo sabríamos 00:16:20
y eso no se está controlando 00:16:22
tendría que controlarse 00:16:24
cuando se calculan las máximas 00:16:26
y la mínima, debería hacer un try 00:16:28
para ver que no sale del vector 00:16:30
vale, cuando ha leído 00:16:32
la entrada, le añade a la raíz de entrada 00:16:34
y luego lo cierra 00:16:36
y aquí tiene sus variables donde va a guardar los valores 00:16:37
las máximas, las mínimas y llama sus funciones 00:16:41
al que obtiene máxima, mínima ya veréis para las máximas 00:16:44
luego la misma función pero que lo hace para las mínimas 00:16:48
y luego la media de temperaturas y demás 00:16:52
y lo imprime todo 00:16:54
y aquí tiene la excepción que solo tiene una 00:16:55
que es algo ha salido mal 00:16:58
y ahora voy a enseñar el que ha hecho Lucía 00:17:00
el que ha hecho Lucía 00:17:05
utiliza también dos ArrayList 00:17:12
solo dos, no tres, no tienen de las fechas 00:17:17
y guarda las temperaturas máximas y las mínimas 00:17:19
y también cuenta las líneas 00:17:23
y Lucía lo hace todo el rato con tres variables globales 00:17:25
entonces todos sus métodos usan esas variables 00:17:28
lo primero que hace es comprobar 00:17:32
cuál es la opción del usuario 00:17:34
introduce el año y si no está entre 2000 y 2019 te dice que el año está mal 00:17:36
te obliga a que pongas un año de 2000 a 2019 porque sabe que no existe el 00:17:43
archivo y leer archivo es un método que le llega el año y lo que hace es leerlo 00:17:48
inicialmente lucia lo tenía así pero a mí no me funciona en linux he tenido que 00:17:57
cambiar la ruta. Así que solo tengo que poner el año. Y lee el archivo y hace lo mismo. 00:18:01
Mientras haya líneas, va añadiendo las líneas que lee. Pero no lee toda la línea. Lucia 00:18:11
lee la fecha, que la tira, no la usa, como no la quiere para nada, simplemente la lee. 00:18:17
La primera palabra separada por un espacio. Luego aquí lee la máxima y la guarda en 00:18:22
máxima y aquí lee la mínima y la guarda en mínima pero las guarda como string y 00:18:27
además cuenta las líneas y dice que ha quitado líneas vacías porque le daba 00:18:32
error 00:18:37
cierra el lector y gestiona dos excepciones una que no encuentra la 00:18:40
excepción y luego cualquier otra por si cualquier otro tipo de problema hace una 00:18:46
excepción genérica. Y aquí pasa algo parecido. 00:18:50
Fijaros en este código de este método, que es un calcular temperatura máxima 00:18:59
superior. Y luego hay aquí otra, a ver si la veo, 00:19:04
calcular temperatura mínima superior, que son exactamente iguales. Recorre 00:19:12
un ArrayList y calcula cuál es el máximo y el mínimo. Lo que pasa es que como uso 00:19:19
variables globales, aquí lo hace para la lista de temperaturas máximas. Entonces para 00:19:24
cada string que está en temperaturas, comprueba si pasándolo a doble es mayor que la temperatura 00:19:28
máxima superior, que inicialmente la pone a cero, ¿vale? Y si es así, lo guarda y es 00:19:37
su nuevo máximo. Da todas las vueltas y devuelve el que ha guardado como máximo. Lo mismo 00:19:43
hace con los mínimos 00:19:48
va recorriendo y va guardando 00:19:50
el mínimo temporal 00:19:52
hasta que lo devuelve, pero es que funciona 00:19:54
igual el mínimo para los mínimos 00:19:56
estas funciones podían haberse 00:19:58
hecho reutilizado 00:20:00
como ha hecho 00:20:02
Raquel, reutilizar las funciones 00:20:04
pero claro, tenían que recibir como argumento la 00:20:06
raíz 00:20:08
y luego calcula 00:20:08
la media, que simplemente 00:20:12
lo recorre, pero llama 00:20:14
la variable global 00:20:16
y la media de las mínimas 00:20:17
y la intermedia 00:20:20
hace la media 00:20:25
y de las máximas ya hace la media de la mínima 00:20:27
que podía haber reutilizado 00:20:30
las funciones que ya tenía antes 00:20:32
para calcular la media 00:20:33
y no tener que volver a hacerlo 00:20:36
el código 00:20:37
y aquí lo mismo 00:20:38
calcula la diferencia en mayor temperatura 00:20:42
recorriendo las dos listas 00:20:44
a la vez 00:20:46
y va comparando cada uno de la lista 00:20:46
con el siguiente del otro lado de la lista 00:20:49
en el caso de Lucía 00:20:52
se asegura siempre que se leen 00:20:56
que siempre hay dos 00:20:57
porque como está haciendo 00:20:58
next y next al leer 00:21:01
aquí 00:21:03
aquí siempre lee el máximo 00:21:03
y luego lee el mínimo 00:21:08
si no pudiera hacer un leer 00:21:09
pues daría una excepción 00:21:12
así que aquí no va a llegar ese fallo, siempre va a tener dos. 00:21:14
¿Y cómo funciona? Pues hace un try en la que llama a leer archivo 00:21:19
y con el valor, el valor que recibe leer archivo es lo que sea leer opción usuario. 00:21:24
Este método devuelve el nombre del archivo, 2009 o 2017. 00:21:32
Hace un catch si ha habido un problema de number former exception y hace otro catch. 00:21:38
esas excepciones 00:21:44
si saltan el programa 00:21:47
no debería continuar 00:21:49
porque en el caso de Lucía 00:21:51
cuando hay un error 00:21:53
después de coger la excepción 00:21:54
imprime cosas porque puede imprimirlas 00:21:56
no sé si ahora voy a saber repetir el error 00:21:59
no, no voy a saber 00:22:01
no me acuerdo como lo conseguí 00:22:02
vale, y mi variante 00:22:05
que tiene un error 00:22:11
yo todavía no lo he conseguido arreglar 00:22:14
por eso lo del vídeo tardío 00:22:15
este es mi variante 00:22:16
vale 00:22:18
¿qué he variado? 00:22:22
pues primero que he añadido uno de lista fechas 00:22:24
para saber en qué fecha 00:22:26
es el día que 00:22:28
hay la mayor diferencia de temperaturas 00:22:30
he mantenido el leer 00:22:32
opción usuario 00:22:34
el file, vale, y aquí está la diferencia 00:22:37
yo he usado 00:22:40
he mantenido su código en el que se calcula 00:22:42
el cual es la máxima 00:22:45
Pero, le he cambiado el nombre, le he llamado CalcularTemperaturaMáxima y recibe una ArrayList. 00:22:48
Eso quiere decir que lo puedo hacer para la lista de máximas o para la lista de mínimas. 00:22:53
Lo primero que hace es comprobar si la lista no está vacía, por si acaso venía el archivo vacío. 00:22:58
Entonces, si la lista está vacía, va a lanzar una excepción de NullPointerExcepción, 00:23:03
porque me he encontrado algo apuntando un Null que yo no me lo esperaba, porque no debía estar vacío. 00:23:08
y por eso mi método puede lanzar un null pointer exception 00:23:15
si todo va bien, si no está vacío 00:23:19
tomo el primer elemento de la array list como máximo temporal 00:23:21
entonces le pido a la lista que me coja el get0 00:23:24
y eso lo guardo como mi lista se supone que es de dobles 00:23:28
pero me está dando error, ahí es donde me falla y todavía no he podido arreglarlo 00:23:34
entonces yo pongo la lista get0 que es un doble 00:23:38
lo guardo como temperatura máxima 00:23:40
Y ahora, para cada doble que está en mi lista, que se llama temperatura, compruebo si la temperatura es mayor que la máxima. 00:23:42
Si es mayor, pues la nueva temperatura máxima es temperatura. 00:23:50
Y lo devuelvo. Eso es el código de Lucía. 00:23:54
Solo he cambiado el argumento que recibe y la gestión de el que esté vacío y de cómo cojo el primero. 00:23:56
Ahora, tiene un calcular temperatura mínima que es exactamente igual. 00:24:06
recibo un ArrayList y puede devolver un null pointer exception, compruebo que no está vacío y 00:24:10
cojo el primer elemento de la lista como mínimo. Entonces tengo una variable que es temperatura 00:24:16
mínima, es temporal mientras doy vuelta y ahí lo que guardo es el get cero. Entonces para todos los 00:24:20
que hay en la lista, que eso incluye el cero, voy comprobando si la temperatura es menor que la 00:24:26
mínima. Si es así, lo machaco. Esto es lo que he quitado del código de Lucía y lo mismo he hecho 00:24:31
para la media que recibo una rey list entonces me va el mismo método para la media de las máximas 00:24:39
y la media de las mínimas y es igual compruebo si está vacío y luego las voy sumando y las divido 00:24:44
entre el tamaño de la lista porque le puedo preguntar a la lista cuántos elementos tiene 00:24:53
no me hace falta contarlos 00:24:58
y luego la temperatura intermedia 00:25:00
nada 00:25:04
como Lucía la tiene 00:25:07
la he mantenido 00:25:09
y solamente que en vez de hacer los cálculos 00:25:10
llamo a calcular temperatura media 00:25:12
de la lista 1 00:25:14
a calcular temperatura media de la lista 2 00:25:15
y lo divido entre 2 00:25:18
recibe lista 1 y lista 2 por argumentos 00:25:19
lo intento 00:25:22
y si algo no va bien 00:25:24
hago un catch de no poner excepción 00:25:26
porque calcular temperatura media 00:25:28
si lista está vacía 00:25:30
va a devolver un null pointer excepción 00:25:32
entonces al menos tengo una de las dos listas vacía 00:25:34
lo que hago es lanzar la excepción 00:25:37
al programa superior para que la gestione 00:25:38
y si todo va bien 00:25:40
pues devuelvo la media 00:25:42
vale 00:25:45
y calcular la diferencia 00:25:48
de mayor temperatura 00:25:49
aquí tengo que tener un error 00:25:52
porque Lucía ha hecho 00:25:56
un número de líneas 00:26:01
aquí lo voy a hacer 00:26:03
eso está mal hecho 00:26:04
debería hacerlo 00:26:05
con lista 00:26:10
punto 6 00:26:11
lista 1.6 00:26:14
como en principio 00:26:17
las dos tienen el mismo tamaño 00:26:18
si no le robo el que ha llegado antes 00:26:20
le pregunto a la lista 1 00:26:21
cuál es su tamaño 00:26:23
y mientras de I0 00:26:24
hay menor que el tamaño 00:26:27
calculo el valor de la lista 1 menos el valor de la lista 2 00:26:28
y si esa diferencia que acabo de calcular, calculada 00:26:35
es mayor que la diferencia temporal 00:26:40
pues entonces lo guardo 00:26:43
y me guardo en qué posición estoy 00:26:45
que estoy en la posición Y de la raíz 00:26:47
inicialmente pongo la diferencia a 0 00:26:49
entonces cuando termino de dar vueltas 00:26:53
devuelvo la diferencia mayor temporal 00:26:57
y lo concateno con el string del día 00:27:00
y obtengo la fecha 00:27:03
hago fechas.get con la posición temporal 00:27:05
hay algo que se me ha olvidado contar 00:27:09
o no sé si lo he contado 00:27:11
si se lo he contado 00:27:16
que tanto el máximo como el mínimo 00:27:17
cojo el primer elemento de la lista 00:27:19
no supongáis que vuelva a ser el máximo o el mínimo 00:27:20
excepto la media 00:27:24
que por defecto puedo dejar un 0 00:27:25
si se calcula y todas son cero, pues devolvería un cero o devolvería error. 00:27:28
Entonces, ¿qué hace? Hago un try, pero dentro del try he metido la lógica de leer archivo. Si todo 00:27:34
va bien, entonces me imprimirá el calcular temperatura máxima de las máximas, el de las 00:27:44
mínimas, y aquí voy llamando a todas las funciones. Y si hubiera un error, saltaría el catch. Puede 00:27:49
salta el catch en number format exception, cuando haya un problema con el formato o una excepción 00:27:55
general. Y ya está. Muchas gracias por atender. Espero que haya quedado claro que hay varias 00:28:03
maneras de hacerlo y que en todas habría que haber comprobado las excepciones, que no lo hemos comprobado casi. 00:28:11
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:
26
Fecha:
2 de junio de 2022 - 2:22
Visibilidad:
Público
Centro:
IES LOPE DE VEGA
Duración:
28′ 20″
Relación de aspecto:
1.78:1
Resolución:
1148x646 píxeles
Tamaño:
190.76 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