Está en la página 1de 4

Fundamentos de Informática. Enero 2008.

EUITI-UPM
Apellidos:
Nombre:
Nº Mat:
Especialidad:

Ejercicio 2. 2 puntos-20 minutos


Escribir en el lugar reservado bajo cada programa lo que cada uno de ellos mostraría
exactamente en pantalla. Si hubiese algún error, indicarlo sucintamente.
#include<stdio.h> #include<stdio.h>

void main(void) void Duplica(int a);


{ void main(void)
int x,y=0; {
for(x=1;x<3;x++) int a=3;
{ Duplica(a);
while(y<3) printf("%d\n",a);
{ }
printf("%d%d",x,y); void Duplica(int a)
y++; {
} a=a*2;
} }
}

#include<stdio.h> #include<stdio.h>

void main(void) void main(void)


{ {
int i=0; float a=3;
char cad[]="Hola que tal"; float *p,*q,*k;
while(cad[i]!='\0') p=&a;q=p;k=p;
{ *q=a*2;
if(cad[i]=='a') a=*k+3;
printf("%c%d ",*(cad+i),i); *k=a*a;
i++; printf("A=%f",a);
} }
}

#include<stdio.h> // Supongase que en el fichero


// Prueba.txt estan los datos
void main(void) // 1 -3 12 4
{ #include<stdio.h>
int i;
int vector[5]={1,2,3,4,5}; void main(void)
for(i=1;i<=5;i++) {
printf("%d ",vector[i]*i); FILE* f;
} int dato;
f=fopen("Prueba.txt","r");
while(fscanf(f,"%d",&dato)==1)
{
dato%=2;
printf("%d ",dato);
}
fclose(f);
}
Fundamentos de Informática. Enero 2008. EUITI-UPM
Apellidos:
Nombre:
Nº Mat:
Especialidad:

Ejercicio 3. 2.5 puntos-30 minutos


Se desea hacer un programa de ayudas matemáticas para un investigador. Dicho
programa debe hacer dos cosas:
1. Escribir todas los combinaciones posibles de tres letras (a, b y c) mediante un
triple bucle anidado, incluyendo las de repetición e indicar el número total de
combinaciones escritas.
2. Hacer una función (serie) que escriba la serie 1 0 2 5 4 10 8… (con un bucle)
hasta el numero de términos que indique el usuario. Esta función devolverá,
como valor de retorno al programa principal, la suma de todos los términos
escritos

Notas.
 Como se puede ver, la serie dada se compone de dos series mezcladas.
Una de ellas, se forma a partir de 1, multiplicando por 2 cada término
anterior: 1 2 4 8 16…. La otra serie empieza en 0 y cada término se
obtiene sumando 5 al anterior: 0 5 10 15…
 La función serie recibirá como argumento de entrada el número de
términos que el usuario desee que tenga la serie, y devolverá como valor
de retorno la suma total de los términos escritos.
 No se empleará para ninguno de los dos casos ningún tipo de array.
 El programador decidirá el tipo de la función y su argumento.

Ejemplo de salida por pantalla, el usuario teclea solo un 10 después de la pregunta:

aaa
aab
aac
aba
abb
abc
aca
acb
acc
…..
cca
ccb
ccc

Numero de combinaciones: 27

Escriba cuantos terminos desea de la serie 1 0 2 5 8 10...


10
1 0 2 5 4 10 8 15 16 20
La suma de sus terminos vale: 81
Fundamentos de Informática. Enero 2008. EUITI-UPM
Apellidos:
Nombre:
Nº Mat:
Especialidad:
Ejercicio 4. 2.5 puntos-30 minutos

Completar el siguiente programa para que:


- Lea desde el teclado las medidas diarias de un sensor de temperatura que
proporciona valores cada minuto (1440 al día) y las almacene en el vector temp.
- Calcule e imprima en la pantalla la temperatura media del día. Esta media se
puede calcular en el mismo bucle que se utiliza para pedir las medidas.
- Calcule la temperatura máxima del día (tmax) y la hora a la que ocurre con el
formato hora:minuto, por ejemplo, a las 12:35. Para ello se utilizará una función
llamada maxima_del_dia a la que hay que pasar cinco argumentos: el vector
temp, su dimensión, y las variables tmax, hora y minuto en las que se guardarán
los cálculos realizados por la función.

#include <stdio.h>
#define DIM 1440

//completar prototipo
void maxima_del_dia (

void main()
{
//declaraciones
float temp[DIM], tmax;

int hora, minuto;

//solicitud de datos y calculo de la media

//mostrar la media

//invocar la funcion maxima_del_dia

//mostrar resultados
printf("La temperatura maxima es %f\n", tmax);
printf("y ocurre a las %02d:%02d\n", hora, minuto);
}

//funcion por la otra cara


Fundamentos de Informática. Enero 2008. EUITI-UPM
Apellidos:
Nombre:
Nº Mat:
Especialidad:

Ejercicio 5. 2.5 puntos, 30 minutos.


Se desea crear un programa que compare dos cotas, siendo cada cota definida por el
nombre del lugar y su altitud respecto al nivel del mar en metros.
Se le pedirá al usuario el nombre y la altitud de cada una de las cotas, datos que serán
almacenados en dos variables de tipo la estructura dada en código. A continuación se
calculara el lugar de máxima altitud, mostrando tanto su nombre como su altura. Esto
ultimo se puede hacer bien directamente en el cuerpo de la función main, o bien
utilizando una función que se le pasan dos parámetros (las dos cotas) y devuelve la cota
máxima.
Nombre cota: Madrid
#include <stdio.h> Altitud cota: 700
typedef struct Nombre cota: Lugo
{ Altitud cota : 734.5
char nombre[100];
float altitud; Maximo: 734.5000 Lugar=Lugo
}cota;
//si se programa una funcion, aqui prototipo y por la otra cara el cuerpo

main()
{
//declararacion de variables

//solicitar al usuario las cotas

//calculo del maximo

printf("Maximo: %f Lugar: %s\n",cotamax.altitud,cotamax.nombre);


}

También podría gustarte