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