*我做了一個較早的帖子來做我的任務,我設法得到很多讚賞的幫助,但我再次卡住。我絕不會試圖完成我的功課,或者我只是不理解它。該任務告訴我'在你的代碼中,你應該定義一個包含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