24小时热门版块排行榜    

查看: 443  |  回复: 1

mkluowen

铜虫 (小有名气)

[求助] 求高手修正

新手,这段程序运行后没设想中的结果,求哪位高手给修改一下。十万火急

Private Sub Form_Click()
Dim ix%, iy%, iz%, nx%, ny%, nz%, N01x#, N01y#, N01z#, C0x1#, C0y1#, C01z#
Dim baindex01, baindex02, natome, namol, index0, index1 As Integer
    baindex01 = 1
    baindex02 = 2
    natom = 0
    namol = 0
    index0 = 1
    index1 = 2
    nd01 = 0
    nb01 = 0
    na01 = 0
    natom = 0
    nmole = 0
    N01x = 0
    N01y = 0
    N01z = 0
    C01x = 0.8773
    C01y = -0.5773
    C01x = 0.6773
Dim boxx, boxy, boxz As Double
    boxx = 4.91
    boxy = 4.91
    boxz = 4.91
    Open "E:\NaCl.dat" For Output As 1
Dim Na01x(), Na01y(), Na01z(), Cl01x(), Cl01y(), Cl01z() As Double
nx = Val(InputBox("输入nx", "nx must be integer and 0<nx<100", "1"  ))
ny = Val(InputBox("输入ny", "ny must be integer and 0<ny<100", "1" ))
nz = Val(InputBox("输入nz", "nz must be integer and 0<nz<100", "1" ))

ReDim Na01x(nx), Na01y(ny), Na01z(nz), Cl01x(nx), Cl01y(ny), Cl01z(nz)
    For ix = 1 To nx
    For iy = 1 To ny
    For iz = 1 To nz
    Na01x(ix) = N01x + (ix - 1) * boxx
    Na01y(iy) = N01y + (iy - 1) * boxy
    Na01z(iz) = N01z + (iz - 1) * boxz
    Cl01x(ix) = C01x + (ix - 1) * boxx
    Cl01y(iy) = C01y + (iy - 1) * boxy
    Cl01z(iz) = C01z + (iz - 1) * boxz
    Write #1, natom, namol + 1, "1", Na01x(ix), Na01y(iy), Na01z(iz)
    Write #1, natom, namol + 1, "2", Cl01x(ix), Cl01y(iy), Cl01z(iz)
    Next iz
    Next iy
    Next ix
    Close #1
   
    End Sub

[ Last edited by mkluowen on 2013-5-5 at 10:11 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ausir

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
mkluowen: 金币+5, ★★★很有帮助 2013-05-16 15:48:50
不是很清楚你想计算出怎样的结果。 但是这段程序的语法上并没有错什么。可以稍作更改的是变量定义语句,就是把所有的变量都必须声明,而不是只定义一行中的最后一个。这个采用Dim 是使用%,#或Integer, Double等没有区别。

Private Sub UserForm_Click()
Dim ix%, iy%, iz%, nx%, ny%, nz%, N01x#, N01y#, N01z#, C0x1#, C0y1#, C01z#
Dim baindex01 As Integer, baindex02 As Integer, natome As Integer, namol As Integer, index0 As Integer, index1 As Integer
Dim boxx#, boxy#, boxz As Double
Dim Na01x#(), Na01y#(), Na01z#(), Cl01x#(), Cl01y#(), Cl01z() As Double
   
baindex01 = 1
baindex02 = 2
natom = 0
namol = 0
index0 = 1
index1 = 2
   
nd01 = 0
nb01 = 0
na01 = 0
natom = 0
nmole = 0
   
N01x = 0
N01y = 0
N01z = 0

C01x = 0.8773
C01y = -0.5773
C01x = 0.6773
   
boxx = 4.91
boxy = 4.91
boxz = 4.91

Open "E:\NaCl.dat" For Output As 1
   
nx = Val(InputBox("输入nx", "nx must be integer and 0<nx<100", "1")
ny = Val(InputBox("输入ny", "ny must be integer and 0<ny<100", "1")
nz = Val(InputBox("输入nz", "nz must be integer and 0<nz<100", "1")

ReDim Na01x(nx), Na01y(ny), Na01z(nz), Cl01x(nx), Cl01y(ny), Cl01z(nz)
   
For ix = 1 To nx
    For iy = 1 To ny
        For iz = 1 To nz
            Na01x(ix) = N01x + (ix - 1) * boxx
            Na01y(iy) = N01y + (iy - 1) * boxy
            Na01z(iz) = N01z + (iz - 1) * boxz
            Cl01x(ix) = C01x + (ix - 1) * boxx
            Cl01y(iy) = C01y + (iy - 1) * boxy
            Cl01z(iz) = C01z + (iz - 1) * boxz
            
            Write #1, natom, namol + 1, "1", Na01x(ix), Na01y(iy), Na01z(iz)
            Write #1, natom, namol + 1, "2", Cl01x(ix), Cl01y(iy), Cl01z(iz)
        Next iz
    Next iy
Next ix

Close #1

MsgBox "Done"
   
End Sub

这个好像是计算了一个立方体的顶点坐标和平移后的坐标。
2楼2013-05-14 13:13:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mkluowen 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +29 医学老男孩 2026-08-13 63/3150 2026-08-15 22:12 by 医学老男孩
[基金申请] 时间戳又变了8-15 +12 archvillain 2026-08-15 23/1150 2026-08-15 20:47 by foyo404
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +8 majunge000 2026-08-11 10/500 2026-08-15 18:55 by Equinoxhua
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 22/1100 2026-08-14 23:45 by Noways
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[硕博家园] 请教兼职经验 +3 是阿文鸭 2026-08-09 3/150 2026-08-14 12:07 by HER12025
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见