您的位置:首页 > 数据库

源码-印度式乘法口诀表(“双十九”)的PL/SQL实现

2016-07-13 16:44 274 查看
感觉所谓的写程序,更多的时候是“改”程序。

不过,好的程序应该具有很好的扩展性,改改参数、常数、运算符什么的,就可以产生新的功能。

代码如下:

--使用FOR循环打印“双十九”乘法口诀表(印度乘法口诀表)
DECLARE
v_Number1 NUMBER(3);  --外层循环变量
v_Number2 NUMBER(3);  --内存循环变量
BEGIN
FOR v_Number1 IN 1..19 --开始外层循环
LOOP
--进行内存循环
FOR v_Number2 IN 1..v_Number1
LOOP
--打印口决内容
--第十行缩进,使得输出更美观
DBMS_OUTPUT.PUT  (v_Number1||'*'||v_Number2||'='||v_Number1*v_Number2||'    ');
END LOOP;
--输出换行
DBMS_OUTPUT.PUT_LINE('');
END LOOP;
END;


运行结果:(格式是个问题)

1*1=1

2*1=2 2*2=4

3*1=3 3*2=6 3*3=9

4*1=4 4*2=8 4*3=12 4*4=16

5*1=5 5*2=10 5*3=15 5*4=20 5*5=25

6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

10*1=10 10*2=20 10*3=30 10*4=40 10*5=50 10*6=60 10*7=70 10*8=80 10*9=90 10*10=100

11*1=11 11*2=22 11*3=33 11*4=44 11*5=55 11*6=66 11*7=77 11*8=88 11*9=99 11*10=110 11*11=121

12*1=12 12*2=24 12*3=36 12*4=48 12*5=60 12*6=72 12*7=84 12*8=96 12*9=108 12*10=120 12*11=132 12*12=144

13*1=13 13*2=26 13*3=39 13*4=52 13*5=65 13*6=78 13*7=91 13*8=104 13*9=117 13*10=130 13*11=143 13*12=156 13*13=169

14*1=14 14*2=28 14*3=42 14*4=56 14*5=70 14*6=84 14*7=98 14*8=112 14*9=126 14*10=140 14*11=154 14*12=168 14*13=182 14*14=196

15*1=15 15*2=30 15*3=45 15*4=60 15*5=75 15*6=90 15*7=105 15*8=120 15*9=135 15*10=150 15*11=165 15*12=180 15*13=195 15*14=210 15*15=225

16*1=16 16*2=32 16*3=48 16*4=64 16*5=80 16*6=96 16*7=112 16*8=128 16*9=144 16*10=160 16*11=176 16*12=192 16*13=208 16*14=224 16*15=240 16*16=256

17*1=17 17*2=34 17*3=51 17*4=68 17*5=85 17*6=102 17*7=119 17*8=136 17*9=153 17*10=170 17*11=187 17*12=204 17*13=221 17*14=238 17*15=255 17*16=272 17*17=289

18*1=18 18*2=36 18*3=54 18*4=72 18*5=90 18*6=108 18*7=126 18*8=144 18*9=162 18*10=180 18*11=198 18*12=216 18*13=234 18*14=252 18*15=270 18*16=288 18*17=306 18*18=324

19*1=19 19*2=38 19*3=57 19*4=76 19*5=95 19*6=114 19*7=133 19*8=152 19*9=171 19*10=190 19*11=209 19*12=228 19*13=247 19*14=266 19*15=285 19*16=304 19*17=323 19*18=342 19*19=361

彩蛋:

使用FOR循环打印“双九九”加法口诀表
DECLARE
v_Number1 NUMBER(3);  --外层循环变量
v_Number2 NUMBER(3);  --内存循环变量
BEGIN
FOR v_Number1 IN 1..19 --开始外层循环
LOOP
--进行内存循环
FOR v_Number2 IN 1..v_Number1
LOOP
--打印口决内容
--第十行缩进,使得输出更美观
DBMS_OUTPUT.PUT  (v_Number1||'+'||v_Number2||'='||(v_Number1+v_Number2)||'    ');
END LOOP;
--输出换行
DBMS_OUTPUT.PUT_LINE('');
END LOOP;
END;

--创建为员工加薪的过程
CREATE OR REPLACE PROCEDURE AddEmpSalary(p_Ratio NUMBER,p_EmpNo NUMBER)
AS
BEGIN
IF p_Ratio>0 THEN         --判断传入的参数是否大于0
--如果大于0,则更新Emp表中的数据
UPDATE scott.emp3 SET sal2=sal2*(1+p_Ratio) WHERE EMPNO=p_EmpNo;
END IF;
--提示加薪成功。
DBMS_OUTPUT.PUT_LINE('加薪成功!');
END;


运行结果:

1+1=2

2+1=3 2+2=4

3+1=4 3+2=5 3+3=6

4+1=5 4+2=6 4+3=7 4+4=8

5+1=6 5+2=7 5+3=8 5+4=9 5+5=10

6+1=7 6+2=8 6+3=9 6+4=10 6+5=11 6+6=12

7+1=8 7+2=9 7+3=10 7+4=11 7+5=12 7+6=13 7+7=14

8+1=9 8+2=10 8+3=11 8+4=12 8+5=13 8+6=14 8+7=15 8+8=16

9+1=10 9+2=11 9+3=12 9+4=13 9+5=14 9+6=15 9+7=16 9+8=17 9+9=18

10+1=11 10+2=12 10+3=13 10+4=14 10+5=15 10+6=16 10+7=17 10+8=18 10+9=19 10+10=20

11+1=12 11+2=13 11+3=14 11+4=15 11+5=16 11+6=17 11+7=18 11+8=19 11+9=20 11+10=21 11+11=22

12+1=13 12+2=14 12+3=15 12+4=16 12+5=17 12+6=18 12+7=19 12+8=20 12+9=21 12+10=22 12+11=23 12+12=24

13+1=14 13+2=15 13+3=16 13+4=17 13+5=18 13+6=19 13+7=20 13+8=21 13+9=22 13+10=23 13+11=24 13+12=25 13+13=26

14+1=15 14+2=16 14+3=17 14+4=18 14+5=19 14+6=20 14+7=21 14+8=22 14+9=23 14+10=24 14+11=25 14+12=26 14+13=27 14+14=28

15+1=16 15+2=17 15+3=18 15+4=19 15+5=20 15+6=21 15+7=22 15+8=23 15+9=24 15+10=25 15+11=26 15+12=27 15+13=28 15+14=29 15+15=30

16+1=17 16+2=18 16+3=19 16+4=20 16+5=21 16+6=22 16+7=23 16+8=24 16+9=25 16+10=26 16+11=27 16+12=28 16+13=29 16+14=30 16+15=31 16+16=32

17+1=18 17+2=19 17+3=20 17+4=21 17+5=22 17+6=23 17+7=24 17+8=25 17+9=26 17+10=27 17+11=28 17+12=29 17+13=30 17+14=31 17+15=32 17+16=33 17+17=34

18+1=19 18+2=20 18+3=21 18+4=22 18+5=23 18+6=24 18+7=25 18+8=26 18+9=27 18+10=28 18+11=29 18+12=30 18+13=31 18+14=32 18+15=33 18+16=34 18+17=35 18+18=36

19+1=20 19+2=21 19+3=22 19+4=23 19+5=24 19+6=25 19+7=26 19+8=27 19+9=28 19+10=29 19+11=30 19+12=31 19+13=32 19+14=33 19+15=34 19+16=35 19+17=36 19+18=37 19+19=38


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: