Vous êtes sur la page 1sur 1

Dado el siguiente bloque de cdigo, convertirlo en una funcion llamada formula gen

eral que reciba como parmetros A,B y C y devuelta un varchar con el clculo de las
races o en su contrario con el error generado.
SET SERVEROUTPUT ON;
DECLARE
varA numeric(10,2);
varB numeric(10,2);
varC numeric(10,2);
varX1 numeric(10,2);
varX2 numeric(10,2);
varX numeric(10,2);
BEGIN
varA:=2;
--Debe ser diferente de 0 para que no muestre error
varB:=5;
varC:=-4;
varX:=power(varB,2);
varX:=varX-(4*varA*varC);
varX:=sqrt(varX);
--varX:=sqrt(power(varB,2)-(4*varA*varC));
varX1:=(-varB+varX)/(2*varA);
varX2:=(-varB-varX)/(2*varA);
dbms_output.put_line('El valor de la raiz cuadrada es de: '||varx);
dbms_output.put_line('El valor de X1 es de: '||varX1);
dbms_output.put_line('El valor de X2 es de: '||varX2);
EXCEPTION
--WHEN ZERO_DIVIDE THEN
--dbms_output.put_line('Error al ejecutar la divisin por cero');
WHEN OTHERS THEN
IF SQLCODE='-1476' THEN
dbms_output.put_line('Error al ejecutar la divisin por cero(A=!0)');
ELSIF SQLCODE='-6502' THEN
dbms_output.put_line('Error al calcular una raiz negativa');
ELSE
dbms_output.put_line('OTRO Error!! ');
dbms_output.put_line('Error:'||SQLERRM); --imprimo datos
dbms_output.put_line('Cdigo:'||SQLCODE); --imprimo datos
END IF;
END;

Vous aimerez peut-être aussi