时间:2021-07-01 10:21:17 帮助过:3人阅读
第二题:编写程序,根据以下公式求e的值。要求用两种方法计算:
1) for循环,计算前50项
2)while 循环,直至最后一项的值小于10-4
1 CREATE FUNCTION [dbo].[求阶乘] 2 ( @i AS BIGINT 3 ) 4 RETURNS BIGINT 5 AS 6 BEGIN 7 DECLARE @x BIGINT = 1,@y BIGINT = 1 8 WHILE @x <= @i 9 BEGIN 10 SET @y = @y * @x 11 SET @x = @x + 1 12 END 13 RETURN @y 14 END 15 GOView Code
1 CREATE PROCEDURE [dbo].[T002] 2 @FF AS bit = 0 3 AS 4 BEGIN 5 /* 6 编写程序,根据以下公式求e的值。要求用两种方法计算: 7 1) for循环,计算前50项 8 2)while 循环,直至最后一项的值小于10-4 9 PS:SQL SERVER中没有FOR循环,50!会超出BIGINT的范围,算个20意思一下 10 */ 11 DECLARE @i tinyint = 1,@x FLOAT = 1.0,@f FLOAT = 1.0 12 IF @FF = 0 13 BEGIN 14 WHILE @i <= 20 15 BEGIN 16 SET @f = @f + 1.0 / dbo.[T002.求阶乘](@i) 17 SET @i = @i + 1 18 END 19 SELECT @f 20 END 21 ELSE 22 BEGIN 23 WHILE @x >= 0.0001 24 BEGIN 25 SET @x = 1.0 / dbo.求阶乘(@i) 26 SET @f = @f + @x 27 SET @i = @i + 1 28 END 29 SELECT @f 30 END 31 END 32 GO
第三题:从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。
1 CREATE PROCEDURE [dbo].[T3] 2 @Num AS varchar (200) 3 AS 4 BEGIN 5 /* 6 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。 7 */ 8 DECLARE @S CHAR(1) = ‘1‘,@i INT = 1 9 WHILE @S <> ‘‘ 10 BEGIN 11 SET @S = SUBSTRING(@Num, @i, 1) 12 IF @S <> ‘‘ 13 BEGIN 14 SET @i = @i + 1 15 END 16 END 17 SELECT @i - 1,LEN(@Num) 18 END 19 GOView Code
SQL例题:储存过程
标签: