Departamento de Informtica Universidad Tcnica Federico Santa Mara

  • Slides: 8
Download presentation
Departamento de Informática Universidad Técnica Federico Santa María Programación de Computadores (IWI-131) Ejercicios Certamen

Departamento de Informática Universidad Técnica Federico Santa María Programación de Computadores (IWI-131) Ejercicios Certamen 1: Luis Pizarro Q. Luis. Pizarro@inf. utfsm. cl www. labmc. inf. utfsm. cl/~lpizarro/IWI-131

Pauta Control 1 n Ud. tiene un sueldo base de $500. 000, pero le

Pauta Control 1 n Ud. tiene un sueldo base de $500. 000, pero le descuentan 10% por su AFP y 8. 5% por su previsión de salud. Suponga que deposita en su cuenta de ahorros la tercera parte de lo que le queda, a un 1. 5% de interes mensual. Escriba un programa que permita conocer cuánto ha ahorrado al cabo de 1 año. PROGRAM Ahorro; CONST base = 500000; VAR mes: INTEGER; sueldoneto, cuenta: REAL; BEGIN cuenta : = 0; sueldoneto : = base * 0. 815; FOR mes : = 1 TO 12 DO cuenta : = (cuenta + sueldoneto / 3) * 1. 015; WRITELN(‘Ahorro acumulado en un año es: ’, cuenta) END. Luis Pizarro Q. © 2003 2

P 1 -C 1 -1 -2001 n Considerando las siguientes asignaciones: a: = 1;

P 1 -C 1 -1 -2001 n Considerando las siguientes asignaciones: a: = 1; b: = 2; c: = 3; d: = 4; i: = 3; j: = -5; n: = 10; s: = ‘A’; Indique el valor lógico de las siguientes expresiones: 1. 2*i >= i DIV 2 6 >= 1 TRUE 4. a - b / c * SQRT(d) 1 -2/3*2 1 - 0. 6667 * 2 1 - 1. 3334 -0. 3334 2. (i DIV 2) > (j+6) 1>1 FALSE 3. (n = 10) AND (s >= ‘A’) TRUE AND TRUE 5. (a - b) / (c * SQRT(d)) (1 - 2) / (3 * 2) -1 / 6 -0. 16667 Luis Pizarro Q. © 2003 3

P 2 -C 1 -1 -2001 n Rutee el siguiente programa PASCAL. Haga una

P 2 -C 1 -1 -2001 n Rutee el siguiente programa PASCAL. Haga una tabla indicando los resultados paso a paso. PROGRAM rutear; CONST a = 10; c = 1; VAR x, y, z: INTEGER; BEGIN x : = 0; y : = 1; z : = 2; REPEAT z : = z + c; y : = 2 * x + y + z; IF y < a THEN y : = y + 1; x : = x - 1; UNTIL z > y WRITELN(‘Valores de x, y, z: ‘, x, y, z) END. a c 10 1 x y z 0 1 2 4 3 -1 5 7 4 -2 8 9 5 -3 10 10 6 -4 9 7 -5 10 8 8 -6 9 -7 7 Valores de x, y, z: Luis Pizarro Q. © 2003 y<a z>y ----TRUE FALSE FALSE TRUE -7 7 9 4

P 3 -C 1 -1 -2001 n Una persona está estudiando un plan de

P 3 -C 1 -1 -2001 n Una persona está estudiando un plan de ahorros para los próximos 20 años. Mensualmente podría ahorrar $100. 000. Además al final de cada año piensa agregar $200. 000 al monto acumulado. El banco le ofrece 1. 5% de interés mensual, pagados al final de cada mes. De esta forma, al final del primer mes tendría 100. 000*1. 015; al final del segundo tendría (100. 000*1. 015 + 100. 000)*1. 015; y así sucesivamente. Desarrolle un programa PASCAL que permita calcular el monto total acumulado al cabo de 20 años, indicando además la cantidad ganada por concepto de intereses. PROGRAM Ahorro; VAR año, mes: INTEGER; ahorrototal, gananciamensual: REAL; BEGIN ahorrototal : = 0; gananciatotal : = 0; FOR año : = 1 TO 20 DO BEGIN FOR mes : = 1 TO 12 DO BEGIN gananciatotal : = gananciatotal + (ahorrototal + 100000) * 0. 015; ahorrototal : = (ahorrototal + 100000) * 1. 015; END; ahorrototal : = ahorrototal + 200000; WRITELN(‘La ganancia acumulada en el año ‘, año, ‘ es: ’, gananciatotal); WRITELN(‘El ahorro acumulado en el año ‘, año, ‘ es: ’, ahorrototal) END; END. Luis Pizarro Q. © 2003 5

P 4 -C 1 -1 -2001 n El siguiente programa permite calcular xn, donde

P 4 -C 1 -1 -2001 n El siguiente programa permite calcular xn, donde x es real distinto de 0, y n puede ser +, - ó 0. Reemplace c/u de las estructuras de control iterativas por una equivalente. PROGRAM calcular_potencia; VAR n, conta: INTEGER; x, potencia: REAL; solucion: BOOLEAN; BEGIN WRITE(‘Ingrese Base y Exponente: ’); READLN(x, n); solucion : = TRUE; IF n = 0 THEN potencia : = 1 ELSE IF n > 0 THEN BEGIN potencia : = 1; conta : = 0; REPEAT potencia : = potencia * x; conta : = conta + 1; UNTIL conta = n END ELSE IF x = 0 THEN BEGIN WRITELN(‘No hay solución’); solucion : = FALSE END ELSE BEGIN potencia : = 1; conta : = 0; REPEAT potencia : = potencia * x; conta : = conta + 1; UNTIL conta = n potencia : = 1 / potencia END; IF solucion THEN WRITELN(x, ‘^’, n, ’=‘, potencia) END. PROGRAM calcular_potencia; VAR n, conta: INTEGER; x, potencia: REAL; solucion: BOOLEAN; BEGIN WRITE(‘Ingrese Base y Exponente: ’); READLN(x, n); solucion : = TRUE; IF n = 0 THEN potencia : = 1 ELSE IF n > 0 THEN BEGIN potencia : = 1; FOR conta : = 1 TO n DO potencia : = potencia * x; END ELSE IF x = 0 THEN BEGIN WRITELN(‘No hay solución’); solucion : = FALSE END ELSE BEGIN potencia : = 1; conta : = 0; WHILE conta < n DO BEGIN potencia : = potencia * x; conta : = conta + 1 END; potencia : = 1 / potencia END; IF solucion THEN WRITELN(x, ‘^’, n, ’=‘, potencia) END. Luis Pizarro Q. © 2003 6

Ejercicio: Calcular N términos de la serie de Fibonacci {1, 1, 2, 3, 5,

Ejercicio: Calcular N términos de la serie de Fibonacci {1, 1, 2, 3, 5, 8, 13, 21, . . . } PROGRAM Fibonacci; VAR i, j, z, cont, N: INTEGER; BEGIN WRITE(‘Ingrese N: ‘); READLN(N); i : = 1; j : = 1; IF N = 1 THEN WRITE(i) ELSE IF N = 2 THEN WRITE(i, ’ - ‘, j) ELSE BEGIN WRITE(i, ’ - ‘, j, ’ - ‘); FOR cont : = 3 TO N DO BEGIN WRITE(i+j, ’ - ‘); z : = i; i : = j; j : = z + i END END. PROGRAM Fibonacci; VAR i, j, z, cont, N: INTEGER; BEGIN WRITE(‘Ingrese N: ‘); READLN(N); i : = 1; j : = 1; IF N = 1 THEN WRITE(i) ELSE IF N = 2 THEN WRITE(i, ’ - ‘, j) ELSE BEGIN WRITE(i, ’ - ‘, j, ’ - ‘); cont : = 2; REPEAT WRITE(i+j, ’ - ‘); z : = i; i : = j; j : = z + i; cont : = cont + 1; UNTIL cont = N END. Luis Pizarro Q. © 2003 7

Departamento de Informática Universidad Técnica Federico Santa María Programación de Computadores (IWI-131) Ejercicios Certamen

Departamento de Informática Universidad Técnica Federico Santa María Programación de Computadores (IWI-131) Ejercicios Certamen 1: Luis Pizarro Q. Luis. Pizarro@inf. utfsm. cl www. labmc. inf. utfsm. cl/~lpizarro/IWI-131