回 帖 发 新 帖 刷新版面

主题:编程风格考查(过1个+10分)

请写出下面3种类型的变量与"零值"比较的if语句.
在这里,"零值"对于布尔类型变量是指false, 对于real类型变量是指0.0, 对于指针类型变量是指空指针.

integer类型变量a与"零值"比较的if语句是:
if a=0

if a<>0

请写出下面3个变量与"零值"比较的if语句:
1.布尔类型变量f
2.real类型变量k
3.指针类型变量s

风格不良的答案没有分.

回复列表 (共15个回复)

沙发

1、
非0值:IF f 
0值: IF NOT f

板凳

2、
0值:IF (k > -1E-6) AND (k < 1E-6)
非0值:IF (k < -1E-6) OR (k > 1E-6)

3 楼

布尔类型变量f
if(f)

if(!f)

real类型变量k
if(k<0.0)

if(k>0.0)

指针类型变量s
if(s==NULL)

if(s!=NULL)

4 楼

1、if f then .... else ....
2、if k=0.0 then .... else ....
3、基本不用,好象是:
if s=NUL then .... else ....

5 楼

1.布尔类型变量f
if f
if not f
2.real类型变量k
if abs(k)<1e-6
if abs(k)>1e-6
3.指针类型变量s
if s=null
if s<>null

6 楼

正解:
1.
if f
if not f
2.
if abs(k)>1e-6
if abs(k)<1e-6
3.
if s=nil
if s<>nil

7 楼

请问楼主,问什么这样的就是好风格??

我只是问问,并没有猜疑。。

8 楼

[quote]请问楼主,问什么这样的就是好风格??

我只是问问,并没有猜疑。。[/quote]

1.
if f
if not f
相比
if f=true
if f=false
来讲既少写了程序代码, 又节约了作比较的时间.

2.
千万不要把real类型变量与任何小数直接比较, 因为real型在操作多次之后会出现误差, k的理论值是0时, 实际值可能是0.00000001.

3.
空指针是nil.
本人建议: 
1.在程序开始时把这个程序使用的所有指针赋值为nil.
2.在对指针操作时, 先判断指针是否为nil.
2.在释放指针指向的内存之后立刻将指针赋值为nil.

9 楼


哦!谢谢了!!楼主,你真厉害!!

10 楼

楼主:请问如何把整数(integer)转实数??(我每次转均有误差~~)
例如:当x=98时,我把它直接转为实数y时显示值为97.99999,如何使其无误差?

我来回复

您尚未登录,请登录后再回复。点此登录或注册