0

vdm++で乱数ジェネレーターを実装しました。しかし、私はシードをコンピューターからの時刻にしたかったのです。c++関数と同等のvdm++関数があるかどうか誰かが知っていますtime(NULL)か?

ありがとうございました。

4

1 に答える 1

3

システム時刻を取得するための組み込み lib は存在しませんがtime(NULL)、VDM 用の Overture IDE を使用している場合、Java でそのような関数を作成してモデルにリンクするのは簡単です。

Overture ユーザー ガイドには、これに関するセクションがあります: 14.1 Overture から使用する独自の Java ライブラリを定義する。

次のようなシステム時間を提供する Java クラスを含む jar ファイルを作成する必要があります。

public class SystemTime
{
    public static Value time()
    {
        return new RealValue(System.currentTimeMillis());
    }
}

そして、その VDM の対応物:

class SystemTime

operations
public static time : () ==> real
time() == is not yet specified;

end SystemTime

次に、jar ファイルと vdm ファイルを次のようにプロジェクト内に配置します。 Project root/ lib/ systemtime.jar systemtime.vdmpp

これで、VDM オペレーション SystemTime`time() を使用してシステム時間を取得できるようになりました。

于 2012-12-04T16:15:20.070 に答える