Está en la página 1de 2

Universidad Nacional de Salta Programación Numérica

Facultad de Ciencias Exactas Cálculo Numérico


Departamento de Informática Año: 2023

Trabajo Práctico N° 1
Análisis de Algoritmos

Ejercicio Nº 1: Calcular el costo temporal en el mejor, peor caso, y caso promedio del
siguiente algoritmo:

CONST n =...; (* num. maximo de elementos de un vector *)


TYPE vector = ARRAY [1..n] OF INTEGER;

FUNCTION Buscar(VAR a:vector;c:INTEGER):INTEGER;


VAR j: INTEGER;
BEGIN
j:= 1;
WHILE (a[j]<c) AND (j<n) DO
j:= j+1
END;
IF a[j]=c THEN
RETURN j
ELSE
RETURN 0
END
END {Buscar};

Ejercicio Nº 2: Calcular el costo temporal de los siguientes algoritmos:


i)
FUNCTION Producto(n,m: Integer): Integer;
VAR i,prod: integer;
BEGIN
Prod:= 0;
For i:=1 to n do
Prod:= prod+m;

Producto:= prod
END; {Producto}

ii)
FUNCTION Producto(n,m: Integer): Integer;
VAR
i,j,prod: Integer;
BEGIN
Prod:= 0;
For i:=1 to n do
For j:= 1 to m do
Prod:= prod+1;

Producto:= prod
END; {Producto}

1
Universidad Nacional de Salta Programación Numérica
Facultad de Ciencias Exactas Cálculo Numérico
Departamento de Informática Año: 2023

iii)
FUNCTION Producto_ruso(n,m: Integer): Integer;
VAR
prod:integer;
BEGIN
Prod:= 0;
While m >0 do
begin
If Odd(m) then
Prod:= prod+n;

n:= n+n; {para no utilizar n:=2*n}


m:= m DIV 2;
end; {while}
Producto_ruso:= Prod;
END; {Producto_ruso}

Ejercicio Nº 3: Calcular el costo temporal de los siguientes algoritmos:


i)
Factorizar_x_Gauss(A; n)
Definir L(n,n),U(n,n)
Sea U=A
Para k = 1 hasta n-1, hacer
L(k,k) = 1
Para i = k+1 hasta n, hacer
L(i,k) = U(i,k)/U(k,k)
U(i,k) = 0
Para j = k+1 hasta n, hacer
U(i,j) = U(i,j) − L(i,k) · U(k,j)
L(n,n) = 1
Retornar {L,U}

ii)

EvaluarPol (a[]; x; N);


Bloque
Valor = 0
Para I desde 0 hasta N, hacer
Potencia = 1
Para J desde 1 hasta I, hacer
Potencia = Potencia * x;

Valor = Valor + a[i] * Potencia;

Retornar { Valor }
Fin_bloque;

También podría gustarte