第4章流程控制语句_选择结构_case函数。
1. 使用case函数计算分段函数。
注:先使用set语句或select语句给自变量x赋初值。
运行成功的程序。
declare @x numeric(18, 2)
declare @y numeric(18, 2)
set @x = 9
set @y = case
when ( x > 0 and @x < 10 ) then ( 1 / x + abs(@x) )
when ( x >=10 and @x < 20) then sqrt(3 * x) -2
when @x > 20 then @x * x + 2 * x + 2
else -999
end if @y <>999
begin
select @y as 函数值为
endelse
begin
select '自变量x值非法'
end 程序运行结果。
2. 在购买某物品时,若标名的价钱x在下述范围内,所付钱y按对应折扣支付:
注:先使用set语句或select语句给自变量x赋初值。
运行成功的程序。
declare @x numeric(18, 2)
declare @y numeric(18, 2)
set @x = 1547
set @y = case
when @x > 0
and @x < 1000 then @x
when @x >=1000 and @x < 2000 then 0.9 * x
when @x >=2000 and @x < 3000 then 0.8 * x
else 0.7 * x
end select @y as 支付金额。
程序运行结果。
3. 用set语句或select语句输入一个成绩等级(a~e之一),用print语句和case函数输出相应分数段。分数段与等级的关系:
a: [90,100]
b: [80, 90)
c: [70,80)
d: [60,70)
e: 60以下。
例如:运行程序时,若输入a,则输出:你的成绩在[90,100]之间。
运行成功的程序。
declare @grade char(1)
declare @result nvarchar(250)
set @grade = a'
set @result = case
when upper(@grade) =a' then '你的成绩在[90,]之间。'
when upper(@grade) =b' then '你的成绩在[80,]之间。'
when upper(@grade) =c' then '你的成绩在[70,]之间。'
when upper(@grade) =d' then '你的成绩在[60,]之间。'
when upper(@grade) =e' then '60以下' else '你输入的分数等级非法'
end print @result
程序运行结果。
4. 编一程序输入上网时间并计算上网费用,计算方法如下:
同时为了鼓励上网,每月收费最多不超过150元。
提示:首先使用case函数根据三个时间段计算出费用,然后用if语句对超过150元的费用设置为150。
运行成功的程序。
declare @hour int
declare @money numeric(18, 2)
set @hour = 5
set @money = case
when ( case when @hour < 10 then 30
when @hour >=10 and @hour < 50 then 30 + hour - 10 ) 2.5
when @hour >=50 then 30 + 50 - 10 ) 2.5 + hour - 50 ) 2
end 150 then 150
else ( case when @hour < 10 then 30
when @hour >=10 and @hour < 50 then 30 + hour - 10 ) 2.5when @hour >=50 then 30 + 50 - 10 ) 2.5 + hour - 50 ) 2 end )
end select @money
程序运行结果。
5. 若基本工资大于800元,涨原工资的20%;若小于800元大于400元,涨原工资的15%;若小于400元,涨原工资的10%。编程实现:
使用set语句或select语句输入基本工资,计算涨工资后的工资数。
运行成功的程序。
declare @salary numeric(18,2)
set @salary=800
set @salary=
case when @salary<400 then @salary*1.1
when @salary<800 then @salary*1.15
else @salary*1.2
endselect @salary
程序运行结果。
6. 有一分段函数,如下:
当0 ≤x<20, y=10+x
当20 ≤x<50, y=30
当50 ≤x<60, y=30
当 x≥60, y=0
当x<0, y无值,x为不合法。
编写程序,使用set语句或select语句输入数据给x,用print语句输出相应的y值。
运行成功的程序。
declare @x numeric(18, 2)
declare @y varchar(250)
set @x = 98
set @y =
casewhen @x >=0 and @x < 20 then cast(10 + x as varchar)
when @x >=20 and @x < 60 then cast(30 as varchar) varchar)
when @x >=60 then cast(0 as else '数据错误,请重新输入
end print @y
程序运行结果。
选择结构Case函数
第4章流程控制语句 选择结构 case函数。1.使用case函数计算分段函数。注 先使用set语句或select语句给自变量x赋初值。2.在购买某物品时,若标名的价钱x在下述范围内,所付钱y按对应折扣支付 注 先使用set语句或select语句给自变量x赋初值。3.编一程序输入上网时间并计算上网费用...
函数作业4函数单调性
函数作业4 函数单调性。知识网络 1 函数单调性的定义,2 证明函数单调性 3 求函数的单调区间。4 利用函数单调性解决一些问题 5 抽象函数与函数单调性结合运用。典型例题 例1 1 则a的范围为 d a b c d 提示 21 0时该函数是r上的减函数。2 函数 是单调函数的充要条件是 a a b...
作业8函数
10 某隧道长2150m,通过隧道的车速不能超过m s。一列有55辆车身长都为10m的同一车型的车队 这种型号的车能行驶的最高速为40m s 匀速通过该隧道,设车队的速度为xm s,根据安全和车流的需要,当时,相邻两车之间保持20m的距离 当时,相邻两车之间保持m的距离。自第1辆车车头进入隧道至第5...