Document

Anuncio
Algorítmica y Complejidad
Curso 2012 / 2013
Examen Final
2 de julio de 2013
Apellidos...............................................................................................................................
Nombre .......................................................................... Nº de Matrícula ..........................
EJERCICIO 1
(5 puntos)
(35 minutos)
Indicar la cota superior de complejidad (O-grande) en función de N para el procedimiento
“Prueba” que aparece en cada caso. Se supone que hay un programa principal, que no se
muestra, en el que aparecen las definiciones necesarias.
procedure Prueba (N : natural) is
begin
if N > 10 then
x := 2 * N;
else
for i in 1..N loop
x := 2 * N;
end loop;
end if;
end Prueba;
O(
)
procedure Prueba (N : natural) is
begin
if N > 10 then
x := 2 * N;
else
for i in 1..N-1 loop
for j in 1..N loop
x := 2 * N;
end loop;
end loop;
end if;
end Prueba;
O(
procedure Prueba (N : natural) is
begin
if N > 10 then
for i in 1..N loop
x := 2 * N;
end loop;
else
for i in 1..N-1 loop
for j in 1..N loop
x := 2 * N;
end loop;
end loop;
end if;
end Prueba;
O(
)
)
procedure Prueba (N : natural) is
begin
for i in 1..n loop
for j in 1..i loop
x := 2 * N;
end loop;
end loop;
end Prueba;
O(
)
procedure Prueba (N : natural) is
begin
x := 0;
loop
x := x + N;
exit when x > 100;
end loop;
end Prueba;
O(
)
procedure Prueba (N : natural) is
begin
x := 0;
loop
x := 1 + (2 * x);
exit when x > N;
end loop;
end Prueba;
O(
)
procedure Prueba (N : natural) is
procedure vueltas is
begin
for i in 1..N loop
for j in 1..N loop
x := x + 1;
end loop;
end loop;
end vueltas;
begin
x := 1;
if n > 10 then
vueltas;
else
for i in 1..N loop
vueltas;
end loop;
end if;
end Prueba;
O(
)
procedure Prueba (N : natural) is
begin
x := 0;
loop
x := x + (2 * N);
exit when x > 100;
end loop;
end Prueba;
O(
)
procedure Prueba (N : natural) is
A : array (1..100) of integer;
begin
x := N;
for i in A'range loop
A(i) := N + x;
x := x + 1;
end loop;
end Prueba;
O(
)
procedure Prueba (N : natural) is
procedure vueltas is
begin
for i in 1..N loop
for j in 1..N loop
x := x + 1;
end loop;
end loop;
end vueltas;
begin
x := 1;
if n < 10 then
vueltas;
else
for i in 1..N loop
vueltas;
end loop;
end if;
end Prueba;
O(
)
Descargar