Advertisement
Guest User

przykladowe_kolo zad4

a guest
Dec 30th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Zadanie 4
  3. Rozwiązania zadań K1-K3 umieść w pakiecie i zademonstruj, że
  4. działają wszystkie funkcje i procedury w utworzonym pakiecie.
  5. */
  6. CREATE OR REPLACE PACKAGE akolinski IS  -- package specification
  7.   CURSOR cur_pracownicy IS SELECT imie, nazwisko, pensja FROM pracownicy ORDER BY pensja DESC;
  8.   PROCEDURE losowanie ( value_min INTEGER, value_max INTEGER );
  9.   PROCEDURE zad2;
  10.   PROCEDURE fib ( count_items IN NUMBER );
  11. END akolinski;
  12. /
  13.  
  14. CREATE OR REPLACE PACKAGE BODY akolinski IS
  15.     v_temp INTEGER;
  16.     v_ile INT := 3;
  17.     v_last2 INT := 0;
  18.     v_last INT := 1;
  19.    
  20.     PROCEDURE losowanie ( value_min INTEGER, value_max INTEGER ) IS
  21.     BEGIN
  22.         FOR i IN 1..6 LOOP
  23.             SELECT dbms_random.VALUE(value_min,value_max) num
  24.             INTO v_temp
  25.             FROM dual;
  26.            dbms_output.put_line('Wylosowana cyfra : ' || v_temp);
  27.         END LOOP;
  28.     END losowanie;    
  29.  
  30.     PROCEDURE zad2 IS
  31.     BEGIN
  32.       FOR v_pracownik IN cur_pracownicy
  33.       LOOP
  34.         FOR v_pracownik IN cur_pracownicy
  35.       LOOP
  36.         DBMS_OUTPUT.PUT_LINE(v_pracownik.imie || ' ' || v_pracownik.nazwisko);
  37.         EXIT WHEN v_ile = 3;
  38.       END LOOP;
  39.         EXIT WHEN v_ile = 0;
  40.       END LOOP;
  41.     EXCEPTION
  42.       WHEN CURSOR_ALREADY_OPEN THEN
  43.           DBMS_OUTPUT.PUT_LINE('Kursor jest juz otwarty.');
  44.       WHEN OTHERS THEN
  45.           DBMS_OUTPUT.PUT_LINE('Nieznany blad.');
  46.     END zad2;
  47.    
  48.     PROCEDURE fib ( count_items IN NUMBER ) IS
  49.     BEGIN
  50.     dbms_output.put_line('Ciag Fibb, ' || count_items || ' pierwszych liczb to : ');
  51.     IF
  52.         count_items >= 1
  53.       THEN
  54.         dbms_output.put_line('f(0) = 0');
  55.     END IF;
  56.     IF
  57.         count_items >= 2
  58.       THEN
  59.         dbms_output.put_line('f(1) = 1');
  60.     END IF;  
  61.     IF
  62.         count_items >= 3
  63.       THEN
  64.         v_last2 := 0;
  65.         v_last  := 1;
  66.       --Wzór: f(0)=0, f(1)=1, f( n )=f(n-1)+f(n-2).
  67.         FOR i IN 2..count_items-1 LOOP
  68.            v_temp := v_last + v_last2;
  69.            dbms_output.put_line('f('|| i ||') = '|| v_temp);
  70.            v_last2 := v_last;
  71.            v_last := v_temp;
  72.         END LOOP;
  73.     END IF;
  74.    
  75. END fib;
  76.    
  77. END akolinski;
  78. /
  79.  
  80. BEGIN
  81.   DBMS_OUTPUT.PUT_LINE('Zad1');
  82.   akolinski.losowanie(1,49);
  83.   DBMS_OUTPUT.PUT_LINE('Zad2');
  84.   akolinski.zad2;
  85.   DBMS_OUTPUT.PUT_LINE('Zad3');
  86.   akolinski.fib(10);
  87. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement