SQL> --Student Task SQL> --Write an anonymous block that reads three values from keyboard: minval,maxval SQL> -- and stepsize. Then the anonymous block shall print all numbers from the minval SQL> --upto and including (if possible) maxval in steps of stepsize. SQL> --use (a)basic loop (b)while loop (c)for loop SQL> SQL> set serveroutput on SQL> declare 2 minval number := &minimum_value; 3 maxval number := &maximum_value; 4 stepsize number := &stepsize; 5 begin 6 loop 7 dbms_output.put_line( 8 --we need a loop counter!!!!!!!! 9 . SQL> ed Wrote file afiedt.buf 1 declare 2 minval number := &minimum_value; 3 maxval number := &maximum_value; 4 stepsize number := &stepsize; 5 loopcounter number; 6 begin 7 --initialize the loopcounter 8 dbms_output.put_line('Answer for part (a)using basic loop'); 9 loopcounter := minval; 10 loop 11 dbms_output.put_line(loopcounter); 12 loopcounter :=loopcounter+stepsize; 13 exit when loopcounter>maxval; 14 end loop; 15* end; SQL> / Enter value for minimum_value: 3 old 2: minval number := &minimum_value; new 2: minval number := 3; Enter value for maximum_value: 10 old 3: maxval number := &maximum_value; new 3: maxval number := 10; Enter value for stepsize: 2 old 4: stepsize number := &stepsize; new 4: stepsize number := 2; Answer for part (a)using basic loop 3 5 7 9 PL/SQL procedure successfully completed. SQL> ed Wrote file afiedt.buf 1 declare 2 minval number := &minimum_value; 3 maxval number := &maximum_value; 4 stepsize number := &stepsize; 5 loopcounter number; 6 begin 7 --initialize the loopcounter 8 dbms_output.put_line('Answer for part (b)using while loop'); 9 loopcounter := minval; 10 while loopcounter<= maxval 11 loop 12 dbms_output.put_line(loopcounter); 13 loopcounter :=loopcounter+stepsize; 14 end loop; 15* end; SQL> / Enter value for minimum_value: 3 old 2: minval number := &minimum_value; new 2: minval number := 3; Enter value for maximum_value: 10 old 3: maxval number := &maximum_value; new 3: maxval number := 10; Enter value for stepsize: 2 old 4: stepsize number := &stepsize; new 4: stepsize number := 2; Answer for part (b)using while loop 3 5 7 9 PL/SQL procedure successfully completed. SQL> --For loop counter has fixed stepsize which is 1. SQL> --we must use formula to calculate the number of iterations needed SQL> --to produce the required solution SQL> -- SQL> --Note: The logic of our program will be based on the number of SQL> --iterations and we will use a formula to calculate the value to be printed SQL> SQL> declare 2 minval number := &minimum_value; 3 maxval number := &maximum_value; 4 stepsize number := &stepsize; 5 upperlimit number; 6 --no need to declare the loop counter 7 -- loopcounter number; 8 begin 9 --initialize the loopcounter 10 dbms_output.put_line('Answer for part (c)using for loop'); 11 --loopcounter does not exist outsize the loop since we did not declare it 12 --loopcounter := minval; 13 upperlimit := ceil((maxval-minval)/stepsize); 14 for loopcounter in 0 .. upperlimit 15 loop 16 dbms_output.put_line(minval+(loopcounter)*stepsize); 17 end loop; 18* end; SQL> / Enter value for minimum_value: 3 old 2: minval number := &minimum_value; new 2: minval number := 3; Enter value for maximum_value: 10 old 3: maxval number := &maximum_value; new 3: maxval number := 10; Enter value for stepsize: 2 old 4: stepsize number := &stepsize; new 4: stepsize number := 2; Answer for part (c)using for loop 3 5 7 9 11 PL/SQL procedure successfully completed. SQL> -- we should not exceed 10. Ceiling rounds the number up! SQL> -- lets try to use the formula as it is SQL> ed Wrote file afiedt.buf 1 declare 2 minval number := &minimum_value; 3 maxval number := &maximum_value; 4 stepsize number := &stepsize; 5 upperlimit number; 6 --no need to declare the loop counter 7 -- loopcounter number; 8 begin 9 --initialize the loopcounter 10 dbms_output.put_line('Answer for part (c)using for loop'); 11 --loopcounter does not exist outsize the loop since we did not declare it 12 --loopcounter := minval; 13 upperlimit := (maxval-minval)/stepsize; 14 for loopcounter in 0 .. upperlimit 15 loop 16 dbms_output.put_line(minval); 17 minval := minval+stepsize; 18 end loop; 19* end; SQL> / Enter value for minimum_value: 3 old 2: minval number := &minimum_value; new 2: minval number := 3; Enter value for maximum_value: 10 old 3: maxval number := &maximum_value; new 3: maxval number := 10; Enter value for stepsize: 3 old 4: stepsize number := &stepsize; new 4: stepsize number := 3; Answer for part (c)using for loop 3 6 9 PL/SQL procedure successfully completed. SQL> r 1 declare 2 minval number := &minimum_value; 3 maxval number := &maximum_value; 4 stepsize number := &stepsize; 5 upperlimit number; 6 --no need to declare the loop counter 7 -- loopcounter number; 8 begin 9 --initialize the loopcounter 10 dbms_output.put_line('Answer for part (c)using for loop'); 11 --loopcounter does not exist outsize the loop since we did not declare it 12 --loopcounter := minval; 13 upperlimit := (maxval-minval)/stepsize; 14 for loopcounter in 0 .. upperlimit 15 loop 16 dbms_output.put_line(minval); 17 minval := minval+stepsize; 18 end loop; 19* end; Enter value for minimum_value: 3 old 2: minval number := &minimum_value; new 2: minval number := 3; Enter value for maximum_value: 10 old 3: maxval number := &maximum_value; new 3: maxval number := 10; Enter value for stepsize: 2 old 4: stepsize number := &stepsize; new 4: stepsize number := 2; Answer for part (c)using for loop 3 5 7 9 11 PL/SQL procedure successfully completed. SQL> -- we should not exceed 10. Ceiling rounds the number up! SQL> -- lets try to round down SQL> ed Wrote file afiedt.buf 1 declare 2 minval number := &minimum_value; 3 maxval number := &maximum_value; 4 stepsize number := &stepsize; 5 upperlimit number; 6 --no need to declare the loop counter 7 -- loopcounter number; 8 begin 9 --initialize the loopcounter 10 dbms_output.put_line('Answer for part (c)using for loop'); 11 --loopcounter does not exist outsize the loop since we did not declare it 12 --loopcounter := minval; 13 upperlimit := floor((maxval-minval)/stepsize); 14 for loopcounter in 0 .. upperlimit 15 loop 16 dbms_output.put_line(minval); 17 minval := minval+stepsize; 18 end loop; 19* end; SQL> / Enter value for minimum_value: 3 old 2: minval number := &minimum_value; new 2: minval number := 3; Enter value for maximum_value: 10 old 3: maxval number := &maximum_value; new 3: maxval number := 10; Enter value for stepsize: 2 old 4: stepsize number := &stepsize; new 4: stepsize number := 2; Answer for part (c)using for loop 3 5 7 9 PL/SQL procedure successfully completed. SQL> / Enter value for minimum_value: 3 old 2: minval number := &minimum_value; new 2: minval number := 3; Enter value for maximum_value: 10 old 3: maxval number := &maximum_value; new 3: maxval number := 10; Enter value for stepsize: 3 old 4: stepsize number := &stepsize; new 4: stepsize number := 3; Answer for part (c)using for loop 3 6 9 PL/SQL procedure successfully completed. SQL> spool off