| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 719 人关注过本帖
标题:一元二次的问题
只看楼主 加入收藏
gengxu0523
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-6-5
收藏
 问题点数:0 回复次数:9 
一元二次的问题
a=val(alltrim(thisform.text1.value))
b=val(alltrim(thisform.text2.value))
c=val(alltrim(thisform.text3.value))
d=b^2-4*a*c
do case
case d>0
f=(0-b)+sqrt(d)/2*a
g=(0-b)-sqrt(d)/2*a
thisform.label1.caption=f
thisform.label2.caption=g
case d=0
e=(0-b)/2*a
thisform.label1.caption=e
case d<0
thisform.label1.caption="error"
endcase
运行时提示:此属性数据类型无效
不知道哪错了
2011-06-27 20:33
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:0 
thisform.label1.caption=f   &&此属性数据类型(f)是不是应该是字符型的?
2011-06-27 20:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1.三個文本框本身可以接受數値數據,不用如此麻煩轉換。
2.Caption屬性必須是字符型,用TRANSFORM()函數轉換,例如ThisForm.Label1.Caption = TRANSFORM((0-b)+sqrt(d)/2*a, "9999.99")
3.做除法運算記得檢查除數是否爲零!

授人以渔,不授人以鱼。
2011-06-28 00:38
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
a=val(alltrim(thisform.text1.value))
b=val(alltrim(thisform.text2.value))
c=val(alltrim(thisform.text3.value))
*若三个系数初始值为数值型的,则可以简单写成
*a=thisform.text1.value
*b=thisform.text2.value
*c=thisform.text3.value
d=b^2-4*a*c
do case
  case a=0 and b=0 and c=0
    thisform.label1.caption='恒等式,无数多个解'
    thisform.label1.visible=.t.
    thisform.label2.visible=.f.
  case a=0 and b=0 and c#0
    thisform.label1.caption='恒不等式,无解'
    thisform.label1.visible=.t.
    thisform.label2.visible=.f.
  case a=0 and b#0
    thisform.label1.caption='一元一次方程,唯一解x='+alltrim(str(-c/b,12,4))
    thisform.label1.visible=.t.
    thisform.label2.visible=.f.
  case d>0
    thisform.label1.caption='x1='+alltrim(str((-b+sqrt(d))/(2*a),12,4))
    thisform.label2.caption='x2='+alltrim(str((-b-sqrt(d))/(2*a),12,4))
    thisform.label1.visible=.t.
    thisform.label2.visible=.t.
  case d=0
    thisform.label1.caption='x1=x2='+alltrim(str((-b+sqrt(d))/(2*a),12,4))
    thisform.label1.visible=.t.
    thisform.label2.visible=.f.
  case d<0
    thisform.label1.caption='x1='+alltrim(str(-b/(2*a),12,4))+'+'+alltrim(str(sqrt(-d)/abs(2*a),12,4))+'i'
    thisform.label2.caption='x2='+alltrim(str(-b/(2*a),12,4))+'-'+alltrim(str(sqrt(-d)/abs(2*a),12,4))+'i'
    thisform.label1.visible=.t.
    thisform.label2.visible=.t.
endcase

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2011-06-29 15:32
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
虎哥久未露面,别来无恙。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-06-30 09:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你們這樣寫,試試在文本框中敲點用字母或漢字開頭的東西進去看有什麽後果?寫程序最關鍵的地方,是交互式輸入時如何確保得到正確的數據!

授人以渔,不授人以鱼。
2011-07-01 12:27
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
给控件初始化赋值就可以避免楼上所说的情况发生,例如在init事件中写入ThisForm.Text1.Value=0,Text1控件就不能录入字母了。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-07-01 21:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 7楼 hu9jj
是的,這樣能滿足要求。實現的手段有很多(比如在按鍵事件檢測、離開事件檢測、允許輸入非數字字符但自動過濾排查等等手段,都是可以的),但我想指出,學程序設計,必須要培養考慮到方方面面的習慣,否則是白學。

[ 本帖最后由 TonyDeng 于 2011-7-2 11:14 编辑 ]

授人以渔,不授人以鱼。
2011-07-02 11:12
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
以下是引用TonyDeng在2011-7-1 12:27:53的发言:

你們這樣寫,試試在文本框中敲點用字母或漢字開頭的東西進去看有什麽後果?寫程序最關鍵的地方,是交互式輸入時如何確保得到正確的數據!
既然是设计,就要在确保万无一失的情况下运行。在设计时留下安全隐患,运行时去救火,可不好。当然,意外情况会发生,程序可以考虑意外情况,利用容错技术。TonyDeng是一个高手,佩服。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2011-07-02 13:30
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
以下是引用hu9jj在2011-6-30 09:37:50的发言:

虎哥久未露面,别来无恙。
还好,谢谢关心。胡兄弟生意兴隆了!

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2011-07-02 13:33
快速回复:一元二次的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023257 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved