Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Para practicar informática, Guías, Proyectos, Investigaciones de Fundamentos de la Informática

Es un examen anterior para practicar

Tipo: Guías, Proyectos, Investigaciones

2024/2025

Subido el 02/12/2025

jeffry-espinoza-3
jeffry-espinoza-3 🇪🇸

1 documento

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Fonaments d’Informàtica GREFI. Grups 5
16 Abril 2024 Examen Parcial Temps estimat: 2h 30min
!
(25%)
Deseamos calcular la diferencia de edades entre bebés. Estas edades suelen darse en semanas, días y
horas. Se le pide por tanto definir un subprograma que recibe dos edades en formato SSDDHH (cada
uno como un único entero que codifica las Semanas, Días y Horas) y devuelve la cantidad de
semanas, días y horas que los diferencia.
Notas: 1) Las edades se pueden introducir en cualquier orden. 2) Puede utilizar funciones de librería
cmath
Ejemplos:
20608 20420 à Diferencia: 0 semanas, 1 dias, 12 horas
120504 160112 à Diferencia: 3 semanas, 3 dias, 8 horas.
(45%)
Se le pide hacer un programa que ayude al usuario a elegir una ruta para andar. El programa debe
pedir al usuario la distancia máxima y el desnivel (o pendiente) máximo que desea realizar. El
programa comprobará si la información introducida por el usuario es la apropiada, es decir, la
distancia en kms. pertenece al rango (0,40) y el desnivel en metros al rango [0,900]. Si la información
no es correcta se le indicará al usuario y terminará; si es correcto se leerá la información disponible de
un conjunto de rutas del archivo rutas.txt y se escribirá en un archivo de salida, results.txt, aquellas
que se ajusten a las condiciones exigidas.
En el archivo rutas.txt disponemos de la siguiente información por cada ruta:
identificador (un entero), origen (una palabra sin acentos), destino (una palabra sin acentos), distancia
en km (un real) y desnivel en metros (un real).
El programa irá leyendo la información de cada ruta del archivo de entrada y por cada ruta
comprobará si la distancia y desnivel es menor o igual a los que ha introducido el usuario. Por todas
las rutas que cumplen estas dos restricciones, el programa calculará el tiempo medio para realizar la
ruta caminando y escribirá en un fichero de salida la información de la ruta junto con el tiempo
calculado. Si no existe ninguna ruta que se ajuste a las necesidades del usuario se escribirá el mensaje
pertinente.
El programa deberá utilizar los 2 subprogramas siguientes:
1. Un subprograma que reciba la distancia y el desnivel introducidos por el usuario y devuelva si
ambos están dentro de los rangos indicados.
2. Un subprograma para hacer el cálculo del tiempo medio para realizar la ruta. El subprograma
recibirá una distancia y una pendiente y devolverá el tiempo en horas y minutos. Para implementar el
subprograma se considerará que la velocidad media es 4km/h y al tiempo resultante se añade 1 hora
por cada 300 m de desnivel. Para realizar los cálculos más exactos es conveniente calcular el tiempo
en minutos y después pasarlo a horas y minutos. Puede utilizar la función (int) para pasar de reales a
enteros, y despreciar los decimales.
Por ejemplo, si el usuario introduce una distancia máxima en kilómetros de 13 y un desnivel máximo
en metros de 700, con el siguiente contenido del archivo rutas.txt
123 PiXandri SantMedir 13 380
1550 Matadepera LaMola 6 660
4456 Collbato Montserrat 15.2 887
El programa escribirá al fichero de salida
RUTA: 123 PiXandri SantMedir 13 380 4h 31min
RUTA: 1550 Matadepera LaMola 6 660 3h 42 min
Problema 1
Se debe poner el nombre, apellidos, DNI y grupo en cada hoja que se entregue.
Cualquier hipótesis que se haga sobre un problema deberá argumentarse.
Es indispensable hacer cada problema en una hoja separada. Si algún problema no se hace, se
entregará igualmente la correspondiente hoja en blanco con sus datos personales.
Problema 2
pf2

Vista previa parcial del texto

¡Descarga Para practicar informática y más Guías, Proyectos, Investigaciones en PDF de Fundamentos de la Informática solo en Docsity!

Fonaments d’Informàtica GREFI. Grups 5 16 Abril 2024 Examen Parcial Temps estimat: 2h 30min ( 25% ) Deseamos calcular la diferencia de edades entre bebés. Estas edades suelen darse en semanas, días y horas. Se le pide por tanto definir un subprograma que recibe dos edades en formato SSDDHH (cada uno como un único entero que codifica las Semanas, Días y Horas) y devuelve la cantidad de semanas, días y horas que los diferencia. Notas: 1) Las edades se pueden introducir en cualquier orden. 2) Puede utilizar funciones de librería cmath Ejemplos: 20608 20420 à Diferencia: 0 semanas, 1 dias, 12 horas 120504 160 112 à Diferencia: 3 semanas, 3 dias, 8 horas. ( 45% ) Se le pide hacer un programa que ayude al usuario a elegir una ruta para andar. El programa debe pedir al usuario la distancia máxima y el desnivel (o pendiente) máximo que desea realizar. El programa comprobará si la información introducida por el usuario es la apropiada, es decir, la distancia en kms. pertenece al rango (0,40) y el desnivel en metros al rango [0,900]. Si la información no es correcta se le indicará al usuario y terminará; si es correcto se leerá la información disponible de un conjunto de rutas del archivo rutas.txt y se escribirá en un archivo de salida, results.txt , aquellas que se ajusten a las condiciones exigidas. En el archivo rutas.txt disponemos de la siguiente información por cada ruta: identificador (un entero), origen (una palabra sin acentos), destino (una palabra sin acentos), distancia en km (un real) y desnivel en metros (un real). El programa irá leyendo la información de cada ruta del archivo de entrada y por cada ruta comprobará si la distancia y desnivel es menor o igual a los que ha introducido el usuario. Por todas las rutas que cumplen estas dos restricciones, el programa calculará el tiempo medio para realizar la ruta caminando y escribirá en un fichero de salida la información de la ruta junto con el tiempo calculado. Si no existe ninguna ruta que se ajuste a las necesidades del usuario se escribirá el mensaje pertinente. El programa deberá utilizar los 2 subprogramas siguientes:

  1. Un subprograma que reciba la distancia y el desnivel introducidos por el usuario y devuelva si ambos están dentro de los rangos indicados.
  2. Un subprograma para hacer el cálculo del tiempo medio para realizar la ruta. El subprograma recibirá una distancia y una pendiente y devolverá el tiempo en horas y minutos. Para implementar el subprograma se considerará que la velocidad media es 4km/h y al tiempo resultante se añade 1 hora por cada 300 m de desnivel. Para realizar los cálculos más exactos es conveniente calcular el tiempo en minutos y después pasarlo a horas y minutos. Puede utilizar la función (int) para pasar de reales a enteros, y despreciar los decimales. Por ejemplo, si el usuario introduce una distancia máxima en kilómetros de 13 y un desnivel máximo en metros de 700, con el siguiente contenido del archivo rutas.txt 123 PiXandri SantMedir 13 380 1 550 Matadepera LaMola 6 6 60 4456 Collbato Montserrat 15.2 887 El programa escribirá al fichero de salida RUTA: 123 PiXandri SantMedir 13 380 4h 31min RUTA: 1550 Matadepera LaMola 6 660 3h 42 min Problema 1 Se debe poner el nombre, apellidos, DNI y grupo en cada hoja que se entregue. Cualquier hipótesis que se haga sobre un problema deberá argumentarse. Es indispensable hacer cada problema en una hoja separada. Si algún problema no se hace, se entregará igualmente la correspondiente hoja en blanco con sus datos personales. Problema 2

Fonaments d’Informàtica GREFI. Grups 5 16 Abril 2024 Examen Parcial Temps estimat: 2h 30min ( 30% ) Este programa lee una secuencia indefinida de palabras que corresponden a tres tipos de órdenes: LEER, PROGRESO y ESCRIBIR_MAX. LEER lee los datos de un ciclista que incluye nombre, velocidad y posición inicial. Se indica con comentarios si son kilómetros, metros, horas o minutos. PROGRESO calcula el progreso en metros del último ciclista leído. ESCRIBIR_MAX escribe el progreso máximo de todos los ciclistas de los que se ha calculado su progreso. Lamentablemente el código está incompleto. Hay unas marcas #n# que indican la falta de código y que necesitan ser reemplazadas para que funcione correctamente. Puede ser un símbolo (por ejemplo, #>=#), una línea de código (por ejemplo, #float xx, pi=3.1416;#) o partes de una instrucción (por ejemplo: else if #(a==0 )#. Nunca representan más de una instrucción. Escribe la lista de etiquetas sólo con el código que falta. #include using namespace std; #1# calcular_progreso(int pkm,int pm, int v, int t); #2# escribir_progreso(string n, int prm); int main(){ string command; string nom, pal, nommax = "XXXXX"; int vel; //velocidad en km/h int poskm, posm; //posicion inicial en km y metros int t; // tiempo que progresa en minutos int progr, progrmax #3# ; //posicion progreso en metros while (#4# ) { if (command == "LEER") { cin >> nom >> vel >> poskm >> pal >> posm >> pal; } else if (command == "PROGRESO") { #5# progr = calcular_progreso(poskm,posm,vel,t); if (progr > progrmax){ #6# #7# } cout << "El nombre y el progreso del corredor actual es: "; escribir_progreso(nom,progr); } else if (command == "ESCRIBIR_MAX") { cout << "El nombre del corredor con progreso maximo es: "; escribir_progreso(nommax,progrmax); } } } #1# calcular_progreso(int pkm,int pm, int v, int t){ int prm = pkm*1000 + pm; #8# //valor entero truncado return prm; } #2# escribir_progreso(string n, int prm) { cout << n << ' '; #9# #10# cout << prkm << " kms " << prmet << " metros " << endl;} Problema 3