2014-04-21 46 views
0

我想通過創建一個2d CHARACTER數組來打印Fortran77中的圖形。 x值是恆定的(我的文件中的行數),我的y值將由用戶輸入。我初始化所有的值爲空格,但我不確定如何用我的文件中的點填充二維數組(例如-1和100,2和200)以及如何提示用戶輸入高度。有任何想法嗎?在Fortran77中打印圖表?

代碼:

 SUBROUTINE PLOT(L,S) 
     INTEGER*8 L 
C S = the variable that the user gives for y length, user defined (not sure how to do yet) 
     CHARACTER H(L,S) 

C 
C LOCAL VARIABLES 
C 
     INTEGER I 

     DO 100 I=1, S 
     H(I,I) = ' ' 
100 CONTINUE 

     RETURN 
     END 

我的數據文件:

1  100 
2  200 
3  300 
4  400 
5  500 
+0

2014年你真的需要Fortran 77嗎?無論如何,你知道如何打開一個文件,以及如何從標準輸入(鍵盤)進行基本讀取,所以我們有一個地方可以開始? –

+0

我認爲這沒有正確標記,這不是一個陰謀問題,而是一個讀/寫問題。 @VladimirF:雖然新代碼可能不應該在F77中開發,但可能存在我們不知道的兼容性問題,比如對遺留代碼進行一些修復。 – Miguel

+0

爲什麼你想在2014年生成一個ASCII圖?你可以調用PGPLOT庫並生成更好的圖。另一個圖書館是DSLIN。你可以安裝gnuplot並在那裏繪圖 – Jagte

回答

0

下面是一些基本的讀寫:

要在文件中讀取名爲data_inN線和變量xy,z每行:

open(unit=10,file='data_in',status='old') 
do i=1,N 
    read(10,*) x(i), y(i), z(i) 
end do 
close(10) 

要寫入尺寸N每個變量xyz到名爲data_out文件:

open(unit=10,file='data_out',status='unknown') 
do i=1,N 
    write(10,*) x(i), y(i), z(i) 
end do 
close(10) 

採取xyz從鍵盤輸入(標準輸入,*)問用戶之前:

do i=1,N 
    write(*,*) 'Please input element number ', i, ' of variables x, y and z, respectively' 
    read(*,*) x(i), y(i), z(i) 
end do 

在這三種情況下,readwrite中的第一個選項是輸入/輸出單元,或者用一個數字(在打開帶有該標識符的文件後使用10)帶有星號*,這表示「標準輸入/輸出「,這種情況下的終端提示。第二種選擇,我在所有情況下都使用星號*表示格式。 *是「as given」的格式。