2017-12-10 1 views
1

In meinem Ada-Programm möchte ich zwei Arten von Zufall erstellen: eine zufällige Ganzzahl in einem Bereich und einen zufälligen Typ, den ich definiert habe. In meinem explample ich habe:Mehrere zufällige Typen in einem Ada-Programm?

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

Ich habe versucht, die zufälligen Instanzen zu erstellen, wie folgt:

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

und

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

Ich möchte die zufällige "servizio" verwenden, in meiner Hauptaufgabe, während das "Tempo" zufällig in einer bestimmten Aufgabe (task type cliente (ID: cliente_id; tipo: servizio);). Nun meine Frage ist: Wie geht das? Brauche ich mehrere Generatoren oder nur einen? Ich habe versucht, den ganzen Code in die Hauptaufgabe zu setzen, aber ich habe den Fehler, dass der Generator nicht sichtbar ist (vielleicht weil ich zwei "verwenden"). Ich habe auch versucht, das "tempo" zufällig in die Client-Aufgabe zu bringen und dort einen anderen Generator zu definieren (im Bereich der Aufgabe), aber ohne Erfolg. Wie benutze ich die Funktion Random (G) und wähle den zufälligen Typ ("cliente" oder "tempo") aus? Wie funktioniert das? Danke.

+0

Bitte bearbeiten Sie Ihre Frage, um zu erklären, "um dort einen anderen Generator zu definieren (im Aufgabenbereich), aber ohne Erfolg" - wie ist es nicht gelungen? Welche Compiler-Fehlermeldungen? (Der fehlerhafte Quellcode wäre auch gut, ansonsten raten wir einfach) –

Antwort

6

Mehrere Generatoren ist in Ordnung.

Aber Sie wollen wahrscheinlich die Verwendung Klauseln verzichten und qualifizierte Namen verwenden, wie

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

dann aus Ihren Zufallsdaten erhalten entweder G1 oder G2, je nach Bedarf.

+0

Es funktioniert! Vielen Dank! –

Verwandte Themen