Vous êtes sur la page 1sur 5

1 Prueba Teora PAUTA Programacin y Computacin (Ingeniera) Martes, 29 de Septiembre de 2010 Docentes: Danitza Altamirano U. - Julia Garrido S.

- Claudia Toledo R.
Esta evaluacin consta de 60 puntos, con 50% de exigencia, es decir, con un puntaje igual a 30 puntos obtiene la nota mnima de 4.0.

Objetivos: Analizar e implementar algoritmos en el lenguaje de programacin en Pascal, usando los comandos bsicos de condicionales (Simple, normal, anidadas) y el ciclo (For, Repetir y mientras), en la resolucin de problemas de programacin. Evaluacin: sumativa - Tiempo 90 min. Parte 1: Anlisis y Seguimiento Dado el trozo de programa en el lenguaje Pascal, responda los puntos a), b) y c).

begin a) (02 Pts.) Declare el tipo de repeat dato de las variables usadas. write(' Ingrese n= '); var read(n); n, i, nu, until ( (n>0)and(n<=12)); sn, te: r nu := 1; de := 1; Sn := 1; te :=0; for i:=1 to n do b) (03 Pts.) Describa lo que begin realiza el programa. writeln(' Te = ',nu,' / ',de,' = ',te,' y Sp= ', Sn); El programa realiza las sumas nu := nu*2; parciales de distintos trminos if(i mod 2 = 0) then de := de*(2*i+1) de una serie con la siguiente else de := de*3; forma: te := nu/de; Sn := Sn + te; el numerador es la end; potencia de 2 writeln(' Sn = ',Sn); el denominador es readkey; para los nmeros end. pares el valor denominador anterior por el termino par que se le sumo uno y en el caso de los nmeros impares es el mismo nmero del denominador por 3.

Sn = 1 +

2 22 23 24 25 + + + + + ... 3 3 * 5 15 * 3 45 * 3 405 * 3

c) (15 Pts.) Realice un seguimiento y muestre la salida para los valores de : n = -3, n=0
y n=5 usando la siguiente tabla:

n
3

(n>0) and (n<=12)


(3>0)and(3<=12) F and V F (0>0)and (0<=12) F and V F (5>0)and( 5 <=12) V and V V

nu

de

i mod 2=0

te

Sn

Salida (write)

1 mod 2=0 F 2 mod 2=0 V 3 mod 2=0

2/3

1+2/3

Te = 1/1 = 0 y Sp = 1

2 3

4 8

3*(4+1)=1 5 45

4/15 8/45

1+2/3+4/15 1+2/3+4/15+8

Te = 2/3 = 0.67 1.67 Te = 4/15 = 0.27

y Sp = y Sp =

Parte 2: Implementacin en el lenguaje Pascal Problema 1: (15 Pts.) La funcin ln x (logaritmo neperiano) puede aproximarse por Series de

Taylor como sigue: donde x es un nmero real entre -1 y 1, y n es un valor entero que indica el nmero de trminos a considerar en la Serie. Elabore un programa que tome como entrada el valor de x (validndolo) y de n(validndolo), y produzca como salida la aproximacin para la funcin ln (x+1). Dos posibilidades, obteniendo el signo determinando la potencia (-1)k-1

program ejercio_2 ; uses crt; var n,i,p,k:integer; x,pot,sum,t:real; begin repeat write('Ingrese n veces que desea que itere la sumatoria:'); readln(n); until(n>=1); repeat

program ejercio_2 ; uses crt; var n,i,p,k,j:integer; x,pot,pot1,sum,t:real; begin repeat write('Ingrese n veces que desea que itere la sumatoria:'); readln(n); until(n>=1); repeat

write(' Ingrese un valor para x es real y debe estar [-1..1]:'); readln(x); until(x>=-1) and (x<=1); sum:=0; for k:=1 to n do begin // obtiene el signo (-1)^k-1 if (k mod 2 =1) then p:=1 else p:=-1; // obtiene la potencia x^k pot:=1; for i:=1 to k do pot:=pot*x; // variable t: almacena cada trmino de la serie t:=(p*pot)/k; sum:=sum+t; writeln(' El trmino ',i,' de la serie es:=', t:7:4); end; // cierra for} writeln; writeln('La suma total es ', sum:7:4,' con ',n,' iteraciones'); readkey; end.

write(' Ingrese un valor para x es real y debe estar [-1..1]:'); readln(x); until(x>=-1) and (x<=1); sum:=0; for k:=1 to n do begin // obtiene la potencia (-1)^k-1 if k=0 then pot1:=1 else begin pot1:=1; for i:=1 to k-1 do pot1:=pot1*-1 ; end; // obtiene la potencia x^k pot:=1; for j:=1 to k do pot:=pot*x; t:=(pot1*pot)/k; sum:=sum+t; writeln(' El trmino ',i,' de la serie es:=', t:7:4); end; // cierra for writeln; writeln('La suma total es ', sum:7:4,' con ',n,' iteraciones'); readkey; end.

Problema 2 (25 Pts.) Un profesor debe calcular el promedio final la asignatura que dicta y tiene la siguiente informacin de sus alumnos: nombre y las notas de las cuatro pruebas que tom. Realice un programa en Pascal que: a) (02 Pts.) Ingrese N que representa la cantidad total de alumnos validando que sea mayor a cero y menor o igual a 60. b) (04 Pts.) Ingrese el nombre y las 4 notas parciales de cada alumno validando que las notas sean mayores o iguales a 1.0 y menores o iguales a 7.0 c) (08 Pts.) Determine e imprima el promedio de cada alumno, considerando que para calcular el promedio se elimina la nota ms baja. d) (06 Pts.) Determine e imprima el nombre del alumno que tiene el promedio ms alto. e) (05 Pts.) Calcule e imprima el nmero de alumnos aprobados. program problema2; uses crt; var nombre,nalto:string;

n,i,ap:integer; n1,n2,n3,n4,p,palto:real; begin palto:=1.0; ap:=0; repeat write('Ingrese n de alumnos:'); readln(n); until((n>0)and(n<=60)); for i:=1 to n do begin write('Ingrese nombre alumno:'); readln(nombre); repeat write('Ingrese nota1:'); readln(n1); until((n1>=1.0)and(n1<=7.0)); repeat write('Ingrese nota2:'); readln(n2); until((n2>=1.0)and(n2<=7.0)); repeat write('Ingrese nota3:'); readln(n3); until((n3>=1.0)and(n3<=7.0)); repeat write('Ingrese nota4:'); readln(n4); until((n4>=1.0)and(n4<=7.0)); // determina El promedio, sacanda La notas mnima if ((n1<=n2)and(n1<=n3)and(n1<=n4)) then p:=(n2+n3+n4)/3 else if (( n2<=n1)and(n2<=n3)and(n2<=n4)) then:=(n1+n3+n4)/3 else if ((n3<=n1)and(n3<=n2)and(n3<=n4)) then p:=(n1+n2+n4)/3 else p:=(n1+n2+n3)/3; writeln('El promedio es ',p:3:1); // obtener el nombre del alumno mayor promedio if (p>palto) then begin palto:=p; nalto:=nombre; end; if (p>=3.95) then ap:=ap+1; end; writeln('El alumno con el promedio ms alto es:',nalto); writeln('Hay ',ap,' alumnos aprobados'); readkey; end. ---------------------------------- versin 2.0 ---------------------------------------------------------------program problema2; uses crt; var nombre,nalto:string; n,i,j,ap:integer;

nota,men,s,p,palto:real; begin palto:=1.0; ap:=0; repeat write('Ingrese n de alumnos:'); readln(n); until((n>0)and(n<=60)); for i:=1 to n do begin write('Ingrese nombre alumno:'); readln(nombre); men:=7.0; s:=0; for j:=1 to 4 do begin repeat write('Ingrese nota ',j,':'); readln(nota); until((nota>=1.0)and(nota<=7.0)); if nota<men then men:=nota; s:=s+nota; end; p:=(s-men)/3; writeln('El promedio es ',p:3:1); if (p>palto) then begin palto:=p; nalto:=nombre; end; if (p>=3.95) then ap:=ap+1; end; writeln('El alumno con el promedio ms alto es:',nalto); writeln('Hay ',ap,' alumnos aprobados'); readkey; end.

Vous aimerez peut-être aussi