1

モジュールでメニュー関数を作成し始めたところですが、致命的なエラーが発生し、エラーが多すぎます。今のところコードはとても単純なので、これはおそらく複数ではなく1つの小さな間違いが原因だと思います。

誰かアイデアがありますか?

以下は私がこれまでに持っているものです。明らかに私は始めたばかりですが、なぜ問題があるのか​​すでに驚いています。本当にありがとう!

また、私はモジュールに少し慣れていないので、これがそれをコンパイルする方法であるかどうかを教えてもらえますか?g95 themenu.f95 -o ba ??

ありがとう。

 MODULE themenu
    IMPLICIT NONE

    INTEGER:: choices, opt
    opt=choices()

     CONTAINS

    INTEGER FUNCTION choices ()
    INTEGER:: opt

    DO
        PRINT*, "1: Add an item manually"
        PRINT*, "2: Add item(s) from a file"
        PRINT*, "3: Add random item from list of top ten list"
        PRINT*, "4: Print list with totals"
        PRINT*, "5: Sort list alphabetically"
        PRINT*, "6: Sort list by price"
        PRINT*, "7: Write list to file"
        PRINT*, "8: EXIT"
        PRINT*, " "
        PRINT*, "Please make your selection (enter a number): "
        READ*, opt
        IF (opt>=1 .AND. opt<=8)EXIT
        PRINT*, "INVALID CHOICE. MUST BE A NUMBER 1-8. PLEASE TRY AGAIN!"
    END DO
    choices=opt
    END FUNCTION
    END MODULE

ありがとう!このモジュールを使用するプログラムは、これまでのところ次のようになっています。

PROGRAM listman
USE themenu
IMPLICIT NONE
END PROGRAM
4

1 に答える 1

5

モジュールに代入ステートメントを含めることはできません。データ型の仕様とCONTAINSプロシージャを含むセクションのみです。

MODULE themenu
CONTAINS
    INTEGER FUNCTION choices ()
    IMPLICIT NONE
    INTEGER:: opt
    ....
    END FUNCTION
END MODULE

PROGRAM listman
USE themenu
IMPLICIT NONE
INTEGER :: opt
opt=choices()
END PROGRAM
于 2011-04-05T07:43:08.273 に答える