create or replace PROCEDURE CALCULA_SEQ_FIBONACCI
(
p_INDICE IN FLOAT
)
AS
v_N1 FLOAT := 0;
v_N2 FLOAT := 1;
v_RESP FLOAT := 0;
v_INDICE FLOAT := p_INDICE;
BEGIN
CASE
WHEN v_INDICE <= 0 THEN RETURN; -- ÍNDICE COMEÇA EM 1
WHEN v_INDICE = 1 THEN
DBMS_OUTPUT.PUT_LINE(v_N1); -- NÚM IGUAL A 0
WHEN v_INDICE > 1 THEN
DBMS_OUTPUT.PUT_LINE(v_N1); -- NÚM IGUAL A 0
DBMS_OUTPUT.PUT_LINE(v_N2); -- NÚM IGUAL A
ELSE
DBMS_OUTPUT.PUT_LINE(v_N1);
DBMS_OUTPUT.PUT_LINE(v_N2);
END CASE;
FOR v_COUNT IN 2..v_INDICE LOOP
v_RESP := v_N1 + v_N2;
v_N1 := v_N2;
v_N2 := v_RESP;
DBMS_OUTPUT.PUT_LINE(v_RESP);
END LOOP;
END;
SET SERVEROUTPUT ON;
EXECUTE CALCULA_SEQ_FIBONACCI(45);