Sei sulla pagina 1di 5

Ingeniería en Mecatrónica - Computación I

Examen Final – Primera Parte

Nombre del alumno:

Analizar, diseñar, codificar,, compilar y ejecutar un programa en lenguaje C necesario para la


resolución del siguiente problema.

1. Un Centro de Investigación cuenta con una estación meteorológica que ha registrado los datos que a
continuación se detallan:

Año Mes Día Fecha Máxima Mínima Media Tiempo Humedad Relativa %
2018 8 10 20180810 24.9 6 15.45 Despejado 60.6
2018 10 1 20181001 27.8 8.7 18.25 Despejado 60.8
2018 9 5 20180905 24.5 2.2 13.35 Despejado 53.2
2018 10 10 20181010 19.9 9.2 14.55 Despejado 63.1
2018 10 15 20181015 23.2 7 15.1 Despejado 60.6
2018 10 20 20181020 25.7 6.6 16.15 Nublado 60.8
2018 8 1 20180801 25.8 8.5 17.15 Despejado 54.2
2018 8 5 20180805 21.7 4.9 13.3 Despejado 63.1
2018 9 20 20180920 24.6 3.3 13.95 Despejado 73.7
2018 10 5 20181005 28.3 6.7 17.5 Despejado 54.2
2018 9 10 20180910 23.7 -0.2 11.75 Despejado 53.1
2018 8 15 20180815 24.9 6.2 15.55 Despejado 62.1
2018 8 20 20180820 24 3.1 13.55 Despejado 51.4
2018 8 25 20180825 22.3 5 13.65 Despejado 60.6
2018 8 30 20180830 17.8 10.6 14.2 Nublado 56.7
2018 9 1 20180901 22.8 8.5 15.65 Nublado 50.3
2018 9 15 20180915 23.4 2.9 13.15 Despejado 79.7
2018 9 25 20180925 31.1 14.5 22.8 Despejado 60.4
2018 9 30 20180930 29.9 14.7 22.3 Despejado 53.4

Se requiera un programa que permita:


1.1. Crear un archivo binario para almacenar las temperaturas.
1.2. Agregar más registros al archivo.
1.3. Visualizar
sualizar los registros existentes.
1.4. Buscar y mostrar un registro (accediendo de manera directa).
1.5. Modificar un registro específico proporcionando su número (accediendo de manera directa).
directa)
1.6. Eliminar un registro específico proporcionando su número (accediendo de manera directa).
directa)
1.7. Ordenar el archivo por el campo “Fecha” y almacenarlo
almacenarlo en un segundo archivo.
1.8. Calcular y mostrar el promedio total de temperaturas y porcentaje de humedad relativa.
1.9. Calcular y mostrar el promedio mensual de temperaturas y porcentaje de humedad relativa.
1.10. Desarrollar una operación para visualizar los registros
registros existentes en el archivo creado en el punto
1.7.. Se pretende que se modifique la operación del punto 1.3 para que contemple este nuevo
requerimiento, de manera de reutilizar el código existente.

A continuación se presentan algunas pantallas de muestras


muestras del programa solicitado:

=== MENU ===

1. Crear archivo de temperaturas


2. Agregar mas registros
3. Visualizar registros existentes
4. Buscar y mostrar un registro
5. Modificar un registro
6. Eliminar un registro
7. Procesar y mostrar promedio total
to de temperaturas
8. Procesar y mostrar promedio mensual de temperaturas
9. Ordenar el archivo por el campo fecha y almacenarlo en otro archivo
10. Salir
Opcion:

1 de 5
Ingeniería en Mecatrónica - Computación I
Examen Final – Primera Parte

Nombre del alumno:

** Mostrando datos del archivo PRINCIPAL de temperaturas **


--------------------------------------------------------------------------------------------------
|Reg.| Anio | Mes | Dia | Fecha | TMax | TMin | TMedTMed | Tiempo | Por. Hum. Rel. |
--------------------------------------------------------------------------------------------------
| 1| 2018 | 8 | 10 | 20180810 | 24.90 | 6.00 | 15.45 | Despejado | 60.60 |
| 2| 2018 | 100 | 1 | 20181001 | 27.80 | 8.70 | 18.25 | Despejado | 60.80 |
| 3| 2018 | 9 | 5 | 20180905 | 24.50 | 2.20 | 13.35 | Despejado | 53.20 |
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------

>> Ingrese el Nro. de Registro que desea buscar y mostrar: 2

** Mostrando datos del registro buscado **


--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
|Reg.| Anio | Mes | Dia | Fecha | TMax | TMin | TMed | Tiempo | Por. Hum. Rel. |
--------------------------------------------------------------------------------------------------
| 2| 2018 | 10 | 1 | 20181001 | 27.80 | 8.70 | 18.25 | Despejado | 60.80 |
--------------------------------------------------------------------------------------------------

*** PROMEDIO
EDIO TOTAL DE LAS TEMPERATURAS Y PORCENTAJE DE HUMEDAD RELATIVA ***

+ PROMEDIOS TOTALES
- Prom. TMax. 25.73 | Prom. TMin. 5.63 | Prom. TMed. 15.68 | Prom. HR. 58.20

*** PROMEDIO MENSUAL DE LAS TEMPERATURAS Y PORCENTAJE DE HUMEDAD RELATIVA ***

+ Anio 2018 | Mes 8


- Prom. TMax. 24.90 | Prom. TMin. 6.00 | Prom. TMed. 15.45 | Prom. HR. 60.60
+ Anio 2018 | Mes 10
- Prom. TMax. 27.80
0 | Prom. TMin. 8.70 | Prom. TMed. 18.25 | Prom. HR. 60.80
+ Anio 2018 | Mes 9
- Prom. TMax. 24.50 | Prom. TMin. 2.20 | Prom. TMed. 13.35 | Prom. HR. 53.20

** Mostrando datos del archivo ORDENADO de temperaturas **


--------------------------------------------------------------------------------------------------
|Reg.| Anio | Mes | Dia | Fecha | TMax | TMin | TMed | Tiempo | Por. Hum. Rel. |
--------------------------------------------------------------------------------------------------
| 1| 2018 | 8 | 10 | 20180810 | 24.90 | 6.00 | 15.45 | Despejado | 60.60 |
| 2| 2018 | 9 | 5 | 20180905 | 24.50 | 2.20 | 13.35 | Despejado | 53.20 |
| 3| 2018 | 10 | 1 | 20181001 | 27.80 | 8.70 | 18.25 | Despejado | 60.80 |
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------

=== MENU ===

1. Crear archivo de temperaturas


2. Agregar mas registros
3. Visualizar registros existentes
4. Buscar y mostrar un registro
5. Modificar un registro
6. Eliminar un registro
7. Procesar y mostrar promedio total de temperaturas
8. Procesar y mostrar promedio mensual de temperaturas
9. Ordenar el archivo por el campo fecha y almacenarlo en otro archivo
10. Salir
Opcion: 5

>> Ingrese el Nro. de Registro que desea buscar y modificar: 3

** Mostrando datos del registro a modificar **


--------------------------------------------------------------------------------------------------
|Reg.| Anio | Mes | Dia | Fecha | TMax | TMin | TMed | Tiempo | Por. Hum. Rel. |
--------------------------------------------------------------------------------------------------
| 3| 2018 | 9 | 5 | 20180905 | 24.50 | 2.20 | 13.35 | Despejado | 53.20 |
--------------------------------------------------------------------------------------------------
------------------------------------------------------------------------

Anio:
2 de 5
Ingeniería en Mecatrónica - Computación I
Examen Final – Primera Parte

Nombre del alumno:

=== MENU ===

1. Crear archivo de temperaturas


2. Agregar mas registros
3. Visualizar registros existentes
4. Buscar y mostrar un registro
5. Modificar un registro
6. Eliminar un registro
7. Procesar y mostrar promedio total de temperaturas
8. Procesar y mostrar promedio mensual de temperaturas
9. Ordenar el archivo por el campo fecha y almacenarlo en otro archivo
10. Salir
Opcion: 6

>> Ingrese el Nro. de Registro que desea buscar y ELIMINAR: 2

** Mostrando datos del registro a ELIMINAR **


--------------------------------------------------------------------------------------------------
|Reg.| Anio | Mes | Dia | Fecha | TMax | TMin | TMed | Tiempo | Por. Hum. Rel. |
--------------------------------------------------------------------------------------------------
| 2| 2018 | 10 | 1 | 20181001 | 27.80 | 8.70 | 18.25 | Despeja
Despejado | 60.80 |
--------------------------------------------------------------------------------------------------
Realmente esta seguro de eliminar este registro? (Si-s
(Si No-n):

Luego de lo anterior, es necesario incorporar


incorpora estos nuevos requerimientos,, a saber:
saber

2. Controles:
2.1. Verificar que el año sea un número entero superior a 1900.
2.2. Verificar que el mes sea un número entero entre 1 y 12.
2.3. Verificar que el día sea un número entero y que esté relacionado al año y mes que se acaban de
ingresar. Es decir:
2.3.1. No puede aceptarse un día superior a 31.
2.3.2. No puede aceptarse un día superior a 30 en los meses que no tienen más de 30 días.
2.3.3. Para el mes de febrero deberá hacerse un control aún mayor,
mayor únicamente aceptando 29 días
para los años bisiestos, para todos los demás años un máximo de 28.
2.4. La fecha resultante no puede superar la fecha del momento en que se está ejecutando el
programa.
2.5. Verificar que la Temperatura Máxima sea un número (puede ser con decimales).
decimales)
2.6. Verificar que la Temperatura Mínima sea un número (puede ser con decimales).
decimales)
2.7. Verificar que la Temperatura Media sea un número (puede ser con decimales).
decimales)
2.8. Verificar que la Humedad Relativa sea un número
nú (puede ser con decimales).
decimales)
2.9. Verificar que el tiempo sólo puede ser una de estas opciones:
2.9.1. Nublado.
2.9.2. Soleado.
2.9.3. Lluvioso.
2.9.4. Despejado.
2.9.5. Tormentoso.
2.10. En todos los casos donde se solicite el número de registro, debe ser un número entero,
mayor a 0. Deberá manejarse rse correctamente la situación cuando el número ingresado sea mayor a
la cantidad de registros que posee el archivo.
2.11. En todos los casos anteriores,
anteriores, cuando se solicita que sea un número, se debe interpretar
que cualquier otro carácter o combinación de ellos no debe ser permitido y ese error deberá
administrarse correctamente.
3. Gráfico de datos: Este requerimiento implicar procesar archivos y generar gráficos con GNUPlot. Con
relación a ello, lo que se desea es que el programa genere 2 archivos de texto necesarios para graficar:
3.1. Uno con extensión “.plt” con las instrucciones para que GNUPlot grafique una línea de datos con la
Temperatura Media, dado un año y mes específico
específico ingresado por el usuario del programa. Donde el
eje X serán los días del mes y el eje Y las temperaturas registradas.

3 de 5
Ingeniería en Mecatrónica - Computación I
Examen Final – Primera Parte

Nombre del alumno:

3.2. El segundo archivo con extensión “.txt” será utilizado por el primero y tendrá el lote de datos a
graficar.
3.3. Lo que se pretende es que al ingresar a GNUPlot se escriba lo siguiente load
‘temperaturamedia-año- -mes.plt’ y se genere un gráfico de este tipo (puede tener sutiles
diferencias, aclarando que tanto en el nombre del archivo de instrucciones como en el gráfico, Año
y Mes deben serer remplazados por los datos ingresados por el usuario):

4. Dale tu toque innovador:


4.1. Piensa en cuestiones innovadoras y dale tu toque personal al programa. Lo que pienses, no
deberían tenerlo los demás programas. Dicho de otro modo, desarrolla tu potencial creativo,
llevando a la práctica algo que haga que tu programa sea innovador y consistente.
4.2. Optimiza cuestiones que con el paso de los días habrás observado en tu código.
4.3. Perfecciona y adapta ideas de lo que viste del código de los demás en la terea de evaluación
e entre
pares.
4.4. No tienes limitaciones, pero la consistencia y funcionalidad del programa no debe verse afectada.
4.5. Debes administrar tu tiempo, ya que sabes que tienes un tiempo límite.
límite
5. Asimismo, desde
esde el Centro de Investigación nos han comunicado la necesidad de incorporar un nuevo
dato a los registros diarios de la Estación Meteorológica, el cual consiste en los milímetros de
precipitaciones diarias.. Es decir, nos han comunicado que originalmente omitieron informarnos que los
registros de temperaturas
uras se conforman de este modo:

Año Mes Día Fecha Máxima Mínima Media Tiempo Hum. Rel. % Precipitación (mm)
2018 8 10 20180810 24.9 6 15.45 Despejado 60.6 0.2
2018 10 1 20181001 27.8 8.7 18.25 Despejado 60.8 7.6
2018 9 5 20180905 24.5 2.2 13.35 Despejado 53.2 0.0
2018 10 10 20181010 19.9 9.2 14.55 Despejado 63.1 0.0
2018 10 15 20181015 23.2 7 15.1 Despejado 60.6 25.2
4 de 5
Ingeniería en Mecatrónica - Computación I
Examen Final – Primera Parte

Nombre del alumno:

5.1. Se deberá
eberá tener en cuenta que el nivel de precipitaciones es un número real mayor o igual que
cero. Este control deberá instrumentarse.

5.2. A partir de lo anterior, es necesario reformular todo el programa desarrollado hasta este momento
para contemplar esta situación en cada una de las siguientes operaciones:
operaciones
5.2.1. Creación del archivo.
5.2.2. Agregar registros al archivo.
5.2.3. Visualizar los registros existentes.
existen
5.2.4. Buscar y mostrar un registro (accediendo de manera directa).
5.2.5. Modificar un registro específico proporcionando su número (accediendo de manera
directa).
5.2.6. Eliminar un registro específico proporcionando su número (accediendo de manera
directa).
5.2.7. Ordenar el archivo por el campo “Fecha” y almacenarlo en un segundo archivo.
5.2.8. Calcular y mostrar el Promedio Total de:
5.2.8.1. Temperaturas: Mínima, Media y Máxima,
5.2.8.2. Porcentaje de humedad relativa, y
5.2.8.3. Precipitaciones.
5.2.9. Calcular y mostrar el Promedio Mensual de:
5.2.9.1. Temperaturas: Mínima,
Mí Media y Máxima,
5.2.9.2. Porcentaje de humedad relativa, y
5.2.9.3. Precipitaciones.

Este Examen Final se complementará de una Segunda Parte, que será presentada el día fijado para
el examen, donde se incorporaránán nuevos requerimientos.
requerimientos El día
ía del examen deberá
deber presentarse
esta Primera Parte y la Segunda Parte.

Nota: Para la resolución de los ejercicios se podrán utilizar las


la herramientas:

Dev C++,, la cual puede descargarse en:


https://sourceforge.net/projects/orwelldevcpp/files/latest/download

CodeBlocks, la cual puede descargarse en:


CodeBlocks
http://codeblocks.codecutter.org/CodeBlocks
http://codeblocks.codecutter.org/CodeBlocks-EP.zip

5 de 5

Potrebbero piacerti anche