*我做了一个较早的帖子来做我的任务,我设法得到很多赞赏的帮助,但我再次卡住。我绝不会试图完成我的功课,或者我只是不理解它。该任务告诉我'在你的代码中,你应该定义一个包含5个元素的vector类型的数组。然后,您的代码 应该打开提供的.dat文件以读入五个矢量值,并且也不是单独将每个矢量读入数组中,而应该使用从1到5的循环读取所有需要的矢量。这将为您留下一个矢量数组,其格式为 ,记为Vi ,其中i代表数组中特定元素的索引。然后,您应该 执行和输出(用合适的音符输出指示其输出是)以下 算了一笔账:错误在我的向量阵列在Fortran 90
L = V1 + (V2 − V3)
M = V2 ● V4
N = V1 × V5'
到目前为止,我已经做到了这一点,我比某些更其错误的ID就像一个巨推向右方向感谢*
program assign_9_2_main
USE assign_9_2_module
type(myvector), dimension(5) :: varray
integer :: i, L, M, N
OPEN(5,FILE='vectors.dat')
READ(5,*) varray(1)
DO i = 1, 5, 1
end do
CLOSE(10)
L=varray(1)+(varray(2)-varray(3))
M=varray(2)*varray(4)
N=varray(1)*varray(5)
write(*,*) L, M, N
end program assign_9_2_main
当我编译它我得到一个错误消息说:L = VARRAY(1)+(VARRAY(2) - VARRAY(3))错误: (1)处的二进制数字运算符' - '的操作数是TYPE(myvector)/ TYPE(myvector) assign_9_2_main.f90:14.2:
M=varray(2)*varray(4)
1
Error: Operands of binary numeric operator '*' at (1) are TYPE(myvector)/TYPE(myvector)
assign_9_2_main.f90:15.2:
N=varray(1)*varray(5)
1
Error: Operands of binary numeric operator '*' at (1) are TYPE(myvector)/TYPE(myvector).
clearly i'm doing something wrong please can someone help
你确定你打算在这里使用派生类型“type(myvector)”吗?这是问题所在,因为您尚未定义如何将两个“myvector”类型相乘。 – 2015-03-18 23:48:14
您好,非常感谢您的回复。我不是肯定的,但如果我删除它,然后我得到一个错误信息: 尺寸(5):: VARRAY 错误:在(1) assign_9_2_main.f90不可分类的语句:8.17: READ(5 * )varray(1)错误:(1) – 2015-03-18 23:50:58
READ语句中的语法错误所以它需要一个类型,但可能类似'real'。所以你的声明应该是'real,dimension(5):: varray'或者等价的'real :: varray(5)' – 2015-03-18 23:57:18