用vb pset画图报错

我想用pset画y=x^(0.5)的图.PrivateSubCommand1_Click()Picture1.Scale(-Picture1.Width/200,Pict... 我想用pset 画y=x^(0.5)的图.
Private Sub Command1_Click()
Picture1.Scale (-Picture1.Width / 200, Picture1.Height / 2)-(Picture1.Width / 200, -Picture1.Height / 2)
Picture1.Line (-Picture1.Width / 2, 0)-(Picture1.Width / 2, 0) ' X轴
Picture1.Line (0, -Picture1.Height / 2)-(0, Picture1.Height / 2) ' Y轴

For x = -Picture1.Width / 2 To Picture1.Width / 2
y = x ^ 0.5
Picture1.PSet (x, y)
Next x
End Sub
一运行到y = x ^ 0.5时就报错,无效的过程调用或参数。
但y=x^k(k只要是整数,就可以画出来),不是整数就报错。
求哪位高人指点指点,感恩不尽,追加50分。
再问一句,
按理说x^(1/3)是可以让x 取负值的,为什么VB里面不允许?
展开
 我来答
玫瑰为你盛开
2009-05-28 · TA获得超过8518个赞
知道大有可为答主
回答量:820
采纳率:0%
帮助的人:0
展开全部
如果允许,则x^(1/3)*(x^(1/2))^(1/3)=x^(1/2)就会成立,这要出问题的。所以,在VB里,当幂指数不为整数时,对乘方^这个操作符中的底数干脆全部做非负数的限制了。

一○○度说的是对的,x^0.5就是x^(1/2),求x的平方根,前提是x为非负数。
y=abs(x)^0.5就可以了,abs是取绝对值。

另外,在Picture里画图,用Scale初始化坐标系后,画图过程中,就不要调用Picture的Height和Width值了,它们是相对于窗体的值,而Picture内部的是ScaleHeight和ScaleWidth,用这两个值才是理想的。

你把以下代码复制过去,运行一下看看。

Private Sub Command1_Click()
Picture1.ScaleWidth = 2000
Picture1.ScaleHeight = 100
xlen = Picture1.ScaleWidth / 2
ylen = Picture1.ScaleHeight / 2
Picture1.Scale (-xlen, ylen)-(xlen, -ylen)
Picture1.Line (-xlen, 0)-(xlen, 0) ' X轴
Picture1.Line (0, -ylen)-(0, ylen) ' Y轴
Rem 以上代码是初始化坐标系

For x = -xlen To xlen
y = Abs(x) ^ 0.5
Picture1.PSet (x, y)
Next x
End Sub
百度网友4b636fa
2009-05-28 · TA获得超过1237个赞
知道小有建树答主
回答量:866
采纳率:100%
帮助的人:1399万
展开全部
你的判断有误
y = x ^ 0.5 表示求 x 的平方根,等同于 y = Sqr(x)
负数是不能开方的,肯定是当 x 小于 0 时报错。

处理方法:
1.设法避免出现 x<0 的情况
2.或者干脆在 y = x ^ 0.5 上面添加语句 On Error Resume Next ,让VB自动忽略此错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-05-29
展开全部
发现,这个叫玫瑰花的朋友,真的很专业很热心,看了你回答的好几个问题,非常敬佩你。。。我是初学的,可以向你请教吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式