2015-01-29 29 views
5

Używam robota Fenuc Karel do przydzielenia klasy, która używa odmiany Pascala, jednak nasz robot jest w latach 1991-1993, zanim dodali losowe(). Czy ktoś wie, jak uzyskać losową liczbę na starej implementacji systemu Pascal? Zauważ, że ze względu na nazwy zmiennych wieku nie może być więcej niż 8 znaków, a liczby nie mogą zliczyć 255Losowa liczba w roku 1991 Pascal

+0

Bycie dos nie jest powodem, dla którego nie ma Losowego. Jeśli chcesz lepszej odpowiedzi, podaj dokładną implementację. Wiele będzie miało niestandardowe wersje. W totalnej sytuacji awaryjnej możesz użyć implementacji Free Passcala Mersenne Twister. –

+0

Już stwierdziłem, która wersja pascala jest tak blisko, jak tylko mogę dostać, to 1991-1993 KAREL, która jest odmianą pascala stworzoną przez FANUC do użytku w ich robotach przemysłowych. Nie ma losowych jako predefiniowana rutyna. – HDeffo

Odpowiedz

1

Jeśli jest to wersja paslandu borland, możesz użyć bloków asm { … }, które pozwoliłyby uzyskać wartość z RTC, który jest wystarczająco przypadkowy dla wielu celów i celów. Biorąc pod uwagę zmienną losową:

asm { 
    xor ax, ax; 
    int 1ah; 
    mv random, al; 
} 

Daje to ostatnie 8 bitów wartości zegara czasu rzeczywistego.

Oprócz tego można szukać generowania liczb pseudolosowych na starych komputerach, np. C64; chociaż będziesz musiał przenieść kod na paskal.

Aktualizacja: Wygląda na to, Fanuc Karel (mam nadzieję, że to jest) ma rutynę GET_TIME, chociaż nie jestem pewien, co to oznacza.

+0

Bycie FENUC KAREL i odmiana funkcji paskowych nie są obsługiwane i zamiast tego używają procedur. Jest bardzo mało predefiniowanych procedur i nie jestem świadomy tego, który może uzyskać aktualny zegar. Jeśli znasz rutynę, aby uzyskać zegar w FENUC KAREL, byłaby to idealna metoda. – HDeffo