2017-12-10 9 views
1

私のAdaプログラムでは、2種類のランダムを作成したいと思います:範囲内のランダムな整数と定義したランダムな型。私が持っている私のexplampleで :1つのAdaプログラムに複数のランダムタイプがありますか?

type servizio is (piscina, spa, entrambi); 
type tempo is range 2..5; 

は、私は次のようにランダムなインスタンスを作成しようとしました:

package servizio_random is new Ada.Numerics.Discrete_Random(servizio); 
use servizio_random; 
G : Generator; 

package tempo_random is new Ada.Numerics.Discrete_Random(tempo); 
use tempo_random; 

私はランダム "SERVIZIO" を使用したいのですが私の主な仕事では、特定のタスク(task type cliente (ID: cliente_id; tipo: servizio);)の "テンポ"ランダム。 まあ私の質問です:これを行う方法?複数の発電機が必要ですか?すべてのコードをメインタスクに入れようとしましたが、ジェネレータが表示されないというエラーが表示されました。また、私はclienteタスクに "テンポ"ランダムを入れて、別のジェネレータを(タスクのスコープ内で)定義しましたが、成功しませんでした。 関数Random(G)を使用し、使用する乱数型( "cliente"または "tempo")を選択する方法は?これはどのように機能しますか? ありがとうございます。

+0

質問を編集して「タスクの範囲内で別の発電機を定義しても成功しない」と説明してください。コンパイラのエラーメッセージは何ですか? (失敗したソースコードも良いでしょう、さもなければ我々はちょうど推測している) –

答えて

6

複数の発電機は問題ありません。

しかし、あなたはおそらく使用句を省略し、修飾名を使用し、

G1 : servizio_random.Generator; 
G2 : tempo_random.generator; 

のような、その後必要に応じて、G1またはG2のいずれかから、あなたのランダムなデータを取得したいです。

+0

それは動作します!ありがとうございました! –

関連する問題