Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Parcial A
Parcial A
i := 1; readln (num);
while (arr[i] <> arr [i+1]) and (i <= M) do if (num <= 10) and (num >= 0) then
i := i+1; begin
c) if i <= M then case num of
writeln('exito') 0, 1, 2, 3 :
else writeln('fracaso'); d) writeln ('insuficiente')
end;
i := 1; writeln ('suficiente')
while (i <= M) and (arr[i] <> arr [i+1]) do end;
i := i+1; writeln ('fuera de rango')
d) if i <= M then
writeln('exito') readln (num);
else writeln('fracaso'); if (num <= 10) then
if (num >= 0) then
i := 1; case num of
while (i < M) and (arr[i] <> arr [i+1]) do e) 0, 1, 2, 3 :
i := i+1; writeln ('insuficiente')
e) if i <= M then else writeln ('suficiente')
writeln ('exito') end
else writeln ('fracaso'); else writeln ('fuera de rango')
1
Ejercicio 5 Dado el siguiente programa: Ejercicio 8 Dado el siguiente programa, ¿cuál afirmación es co-
PROGRAM Ejercicio (output); rrecta?
VAR entero, valor : Integer; program iter(input,output);
var x,i: integer;
PROCEDURE pascal (entero : Integer; begin
VAR resultado : Integer); x:= 1;
VAR valor : Integer; for i:= 5 downto 1 do
BEGIN x:= i * x;
valor := 2 * entero + resultado; write(x);
entero := entero + valor; end.
resultado := resultado + entero;
a) el programa no compila
END;
b) el programa produce un error de ejecución
BEGIN c) el programa imprime 120
entero := 1; d) el programa imprime 5 20 60 120 120
valor := 0; e) el programa no imprime nada
pascal (entero, valor);
writeLn (entero, valor);
valor := valor + 1; Ejercicio 9 Dadas las siguientes declaraciones:
pascal (valor, entero);
CONST N = ...; {un entero mayor que 0}
writeLn (entero, valor)
TYPE Arreglo = ARRAY[1..N] OF Integer;
END.
VAR b : Arreglo; i : Integer;
La salida correcta es:
a) 1 3 Indicar cuál de los siguientes códigos inicializa correctamente un
14 4 arreglo de enteros de modo que las celdas de índice impar contengan
b) 1 3 el entero 1 y las otras contengan el entero 0. La constante N puede
1 4 ser par o impar.
c) 1 0
5 3 FOR i := 1 TO N DIV 2 DO
d) 1 2 BEGIN
3 3 a) b[i*2] := 0;
e) 1 2 b[i*2+1] := 1
END
14 3
FOR i := 1 TO N DO
Ejercicio 6 Dada la siguiente declaración de subprograma: if i mod 2 = 0 then
PROCEDURE Parcial (valorReal: Real;
b) b[i] := 0
else
valorEntero: Integer;
b[i] := b[i-1] + 1
VAR Resultado: Real);
¿Cuál de las siguientes invocaciones NO es correcta? (donde num es FOR i := 1 TO N DIV 2 DO
de tipo Integer y arg es de tipo Real) Todas las variables han BEGIN
sido correctamente inicializadas. c) b[i*2] := 0;
a) Parcial (num, 3, arg); b[i*2-1] := 1
END
b) Parcial (5*num, trunc (6.2), arg);
c) Parcial (arg, 3, arg);
FOR i:= 1 TO N DO
d) Parcial (num, 3, 2.0); d) b[i] := i mod 2
e) Parcial (1, 3, arg);
FOR i:= 1 TO N DIV 2 DO
e) b[i*2] := 0
Ejercicio 7 Dado el siguiente programa, indique cuál de las si-
guientes afirmaciones es correcta:
program ej1; Ejercicio 10 Dadas las siguientes instrucciones
var i,a,b : integer;
A) while condicion1 do
begin
cuerpo1
a := 4;
for i := 1 to 5 do
B) repeat
begin
cuerpo2
b := i;
until condicion2
while (b < a) and (a-b > 2) do
b := b + 1; ¿Cuál de las siguientes afirmaciones NO es correcta?
if b < a then a) cuerpo1 puede no ejecutarse nunca.
write('WOW', ' ')
b) A termina cuando condicion1 es falsa.
else write(i * b, ' ')
end c) B termina cuando condicion2 es verdadera.
end. d) cuerpo2 se ejecuta al menos una vez.
e) cuerpo1 se ejecuta al menos una vez.
a) el programa escribe 1 4 9 16 25
b) el programa escribe WOW WOW WOW WOW 25
c) el programa escribe WOW WOW 9 16 25
d) el programa escribe WOW WOW WOW 16 25
e) el programa escribe WOW WOW WOW WOW WOW
2
Ejercicio de Resolución
El puntaje máximo por este ejercicio es 10 puntos (no resta puntos).
Este ejercicio debe resolverse en la carátula.
En este ejercicio se evaluará, además de la lógica correcta, la utilización de un buen estilo de programación de acuerdo a los criterios
impartidos en el curso. De esta manera se tendrá en cuenta entre otros conceptos: indentación apropiada, correcta utilización de las
estructuras de control, código elegante y legible, eficiencia de los algoritmos, etcétera.
Escriba la función:
function poseeSumaPrecede (a : Arreglo) : boolean;;
que dado un arreglo, determina si posee alguna celda cuyo valor sea igual a la suma de todos los valores almacenados en las celdas anteriores
a ella.
Ejemplos para N = 5:
a Resultado
[7,5,3,2,1] FALSE
[1,2,1,2,1] FALSE
[1,1,8,6,4] TRUE
[1,2,3,6,4] TRUE
[1,1,1,1,4] TRUE