0

FORTRANで学校向けのプログラムを書いています。ユーザーがいくつかの成績を入力するプログラムを作成する必要があります。その数の成績では、プログラムがユーザーに何度も成績を入力するように促す必要があります。次元変数を使用すると思いますが、方法がわかりません。

これまでのところ、明らかなコンパイル エラーがあります。

INTEGER :: NumGrades
REAL :: GradeAverage
INTEGER :: N

WRITE (*,*) 'Enter Number of grades: '
READ (*,*) NumGrades
N = NumGrades

REAL, Dimension(N) :: Grade

WRITE (*,*) 'Enter the individual grades: '
READ (*,*) Grade

どんな助けでも大歓迎です!

4

1 に答える 1

1

課題の期限が過ぎていないと仮定すると、割り当てを使用できます。基本的に、変数を初期化した後に配列サイズを指定できます。

INTEGER :: NumGrades
REAL :: GradeAverage !Not exactly sure what this is used for in this snippet
REAL, DIMENSION(:), ALLOCATABLE :: Grade
INTEGER :: i !Used for loop counters    

WRITE (*,*) 'Enter Number of grades: '
READ (*,*) NumGrades

allocate(Grade(NumGrades)) !size(Grade) == NumGrades or whatever you inputted

WRITE (*,*) 'Enter the individual grades: '
!DO i = 1, NumGrades
    READ(*, *) Grade(i)
!END DO

GradeAverage = sum(Grade) / size(Grade) !Just thought I'd throw this in

ディメンション (:) は、コンピューターにまだ定義されたサイズがないことを知らせます。

または、メモリの制約を気にしない場合は、配列サイズを最大整数値に設定できます。

あなたの任務のためにこれを手に入れてください!

編集 - そうそう、deallocate(Grade) を忘れないでください。

于 2014-08-31T02:48:26.050 に答える