PRUEBA Nº 1 * INF 627 * PROGRAMACIÓN* 2011-2 Preguntas 1

Anuncio
UNIVERSIDAD TECNOLÓGICA METROPOLITANA
FACULTAD DE INGENIERÍA
ESCUELA DE INFORMÁTICA
Profesores: Mauro Castillo Valdés
Ayudantes: Sebastián Menéndez S.
PRUEBA Nº 1 * INF 627 * PROGRAMACIÓN* 2011-2
Nombre:
Preguntas 1-2-3 : 20 puntos c/u
1. Escriba un programa en C, que permita el ingreso de una cantidad incierta de números enteros,
se finaliza el ingreso de datos con el valor cero. Se pide:
a) Determinar el total de número ingresados
b) Determinar la cantidad de números que tienen el primer y último dígito igual
c) Indicar el porcentaje de números que cumplen b) con respecto al total.
int main()
{
int num,aux;
int con=0;
int total=0;
float porc;
printf("Ingrese numero : ");
scanf("%d",&num);
while(num != 0)
{
total++;
aux = num;
while(aux > 9) //determina el primer digito
{
aux = aux / 10;
}
if(aux==num%10)
{
con++;
}
printf("Ingrese numero : ");
scanf("%d",&num);
}
printf("Cantidad total de numeros : %d\n",total);
printf("Cantidad de numeros p=u : %d\n",con);
if(total==0)
porc = 0;
else
porc = (float) con/total;
printf("Porcentaje
: %f\n",porc);
}
1
UNIVERSIDAD TECNOLÓGICA METROPOLITANA
FACULTAD DE INGENIERÍA
ESCUELA DE INFORMÁTICA
Profesores: Mauro Castillo Valdés
Ayudantes: Sebastián Menéndez S.
2. Escribir la función Evaluar(n, X), que permite evaluar la función f(x) en el valor real X,
considerando los primeros “n” términos de la serie.
X1
X2
X3
X4
X5
X6
f(x) = ---- - ---- + ---- - ---- + ---- - ---- + ...
2
3
5
8
13
21
float evaluar(int n, float x)
{
int i, j, k, num, den, C;
float sum=0;
int A = 2;
int B = 3;
int sw = 0;
for(i=1; i<=n; i++)
{
num = 1;
for(k=1; k<=i; k++)
num=num*x;
printf("num : %d\n",num);
if(i==1)
den = A;
else
{
if(i==2)
den=B;
else
{
for(j=3;j<=i; j++)
{
C=A+B; A=B; B=C;
}
den=C;
}
}
printf("de : %d\n",den);
if(sw==0)
{ sum=sum + (float)num/den; sw=1;}
else
{ sum=sum - (float)num/den; sw=0;}
}
return sum;
}
2
UNIVERSIDAD TECNOLÓGICA METROPOLITANA
FACULTAD DE INGENIERÍA
ESCUELA DE INFORMÁTICA
Profesores: Mauro Castillo Valdés
Ayudantes: Sebastián Menéndez S.
3. Escribir la función HorasTranscurridas(Hora1, Hora2), que permite determinar el tiempo
transcurrido entre la hora 1 y la hora 2. Cada hora es ingresada como un número entero en
formato hhmmss. Debe retornar un número entero en formato hhmmss.
Ejemplo:
H1 = 122347
H2 = 210750
Resultado = 084403
int TiempoTranscurrido(int Hora1, int Hora2)
{
int h1, m1, s1;
int h2, m2, s2;
int hh, mm, ss;
int tiempo = 0;
s1 = Hora1 % 100;
Hora1 = Hora1 / 100;
m1 = Hora1 % 100;
h1 = Hora1 / 100;
s2 = Hora2 % 100;
Hora2 = Hora2 / 100;
m2 = Hora2 % 100;
h2 = Hora2 / 100;
tiempo = (h2*3600 + m2*60 + s2) - (h1*3600 + m1*60 + s1);
hh = tiempo / 3600;
tiempo = tiempo % 3600;
mm = tiempo / 60;
ss = tiempo % 60;
}
tiempo = hh*1000 + mm*100 + ss;
return tiempo;
3
Descargar