求VF高手 查看程序错误在哪

[复制链接]
查看11 | 回复3 | 2011-6-1 12:45:19 | 显示全部楼层 |阅读模式
clear
input"n:" to n
dime v(n)
for i=1 to n step 1
s=sqrt(0.0001+(0.0004+0.02*(sqrt(1.8*i-0.0001*i^2)-sqrt(1.8*(i-1)-0.0001*(i-1)^2)))^2)
a=10.05*sin(atan(0.04+0.02*(sqrt(18000*i-i^2)-sqrt(18000*(i-1)-(i-1)^2))))+1.05*cos(atan(0.04+0.02*(sqrt(18000*i-i^2)-sqrt(18000*(i-1)-(i-1)^2))))
v(i)=v(i-1)+sqrt(2*a*s)
?"结果:"+str(v(i))
endfor
cancel
是关于V=∑sqrt(2*a*s) 求和的 一个计算程序高手帮看看哪出错了谢谢了

回复

使用道具 举报

千问 | 2011-6-1 12:45:19 | 显示全部楼层
数组定义的下标是从1开始,你的循环从1开始,程序里又有v(i-1),就成了v(0),所以就出错了,你可以在开始给v(1)赋值为0,然后循环从2开始,如:input"n:" to ndime v(n)v(1)=0for i=2 to n step 1或者,我看你的程序是一个累加,你不如直接用一个变量k,不用数组:k=k+sqrt(2*a*s)?"结果:"+str(k)...
回复

使用道具 举报

千问 | 2011-6-1 12:45:19 | 显示全部楼层
主表单不存在多半是因为路径的问题,你用的是相对路径,请问1、路径设置了吗,2、是不是在与主程序同一路径,如果把表单放在forms里, do form forms/主...
回复

使用道具 举报

千问 | 2011-6-1 12:45:19 | 显示全部楼层
你的算法我不太了解,我只知道在初始值 v(1)最好要特别给值.v(i)=v(i-1)+sqrt(2*a*s)当i = 1时, 你这句这会造成读取 v(0). 而vfp数组从1开始,不是从0开始.因此,你得给v(1)特别给值; 然後循环 i 从2开始...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行