UNIVERSIDAD DE CONCEPCIÓN FACULTAD DE INGENIERÍA AGRÍCOLA DEPTO. DE AGROINDUSTRIAS Juan Carlos Sandoval Avendaño PAUTA PRUEBA N° 1 LENGUAJE DE PROGRAMACIÓN INGENIERÍA CIVIL AGRÍCOLA NOMBRE :___________________________________________ PTOS. :________ TIEMPO MÁXIMO : 1 HORA 40 MINUTOS FECHA : Lu 05/06/06 (1) Escriba un programa en pascal que calcule y muestreß con # decimales y usando color azul, el área E œ È=Ð= +ÑÐ= ,ÑÐ= -Ñ de un triángulo cuyos lados son de longitud +ß ,ß -ß ingresados por el usuario, donde = œ +,# Þ (15 puntos) Solución: Program AreaTriangulo; Uses Crt; Var Area, s, a, b, c : real; Prod : real; Begin ClrScr; Repeat Write('a : '); Readln(a); Until a>0; Repeat Write('b : '); Readln(b); Until b>0; Repeat Write('c : '); Readln(c); Until (c>0); s:=(a+b+c)/2; Prod:=s*(s-a)*(s-b)*(s-c); if Prod>=0 then begin Area:=sqrt(Prod); TextColor(Blue); Writeln('Area = ',Area:0:2); end else Writeln('No se puede calcular el End. Pág. 1 Área'); (2) Anote los valores de la variables en el siguiente programa, suponiendo que los valores ingresados son X œ &ß Y œ #ß Z œ %. Use un ? si el valor es indefinido. X Y Z PROGRAM Numeros; _? _? _? VAR X, Y , Z : INTEGER; _? _? _? BEGIN _? _? _? READ(X,Y,Z); _5 _2 _4 X : =X*Y+Z; 14 _2 _4 X : = X MOD Z; _2 _2 _4 Z : = Y div 2; _2 _2 _1 Y : = X * X + 10; _2 14 _1 X : = (X-10)-1 div 3; -8 14 _1 WRITELN(X,Y,Z); -8 14 _1 END. -8 14 _1 (10 puntos) (3) Reescriba el siguiente programa arreglando los errores de sintaxis. PROGRAM PRE-CERTAMEN CONST W=5 var Cuatro, UNO, Cero : Integer; BEGIN READ(CUATRO; CERO; UNO) CUATRO = CUATRO + CERO + W; IF CUATRO =< UNO THEN CUATRO = UNO; ELSE UNO = CUATRO; IF CERO < 0 THEN WRITE('CERO ES POSITIVO') WRITELN('CERO ES NEGATIVO ) END; (10 puntos) Solución: PROGRAM PRE_CERTAMEN; CONST W = 5; var Cuatro, UNO, Cero : Integer; BEGIN READ(CUATRO, CERO, UNO); CUATRO := CUATRO + CERO + W; IF CUATRO <= UNO Pág. 2 THEN CUATRO := UNO {eliminar ; } ELSE UNO := CUATRO; IF CERO < 0 THEN WRITE('CERO ES POSITIVO'); WRITELN('CERO ES NEGATIVO') END. (4) Muestre cuál es la salida exacta después de ejecutar el siguiente programa: PROGRAM PRUEBA; CONST SALUDO = '¿Cómo estás?'; VAR PERIMETRO, AREA : REAL; s, j : Integer; begin Perimetro : = 3.1415; Area : = 6.36; s:=0; For j:=1 to 4 do begin s:=s - sqr(j); writeln(j,' ':4,s); end; Writeln('Saludo',Saludo); writeln; Write('Area = ',Perimetro : 0 : 1); writeln('Area = ',Area : 4 : 1); end. (10 puntos) Solución: En el cuadro siguiente la primera línea sólo es escrita para ubicarnos en la columna correspondiente; no aparece en pantalla al momento de ejecutar el programa. 123456789012345678901234567890 1 -1 2 -5 3 -14 4 -30 Saludo¿Cómo estás? Area = 3.1Area = 6.4 Pág. 3 (5) Escriba un diagrama de flujo y el programa en pascal asociado que permita calcular y mostrar por pantalla 8 ! "# ß con $ 8 "!, donde el 3 3œ$ usuario es obligado a ingresar un valor de 8 admisible. (15 puntos) Solución: Diagrama de Flujo: Pág. 4 Programa en Pascal: Program Sumatoria; Var Suma : real; n, i : 3..9; Begin Repeat Write('Ingrese n : '); Readln(n); Until (n>3) and (n<10); Suma:=0; for i:=3 to n do Suma:=Suma+1/sqr(i); Writeln('Sumatoria = ',Suma:0:6); End. Pág. 5