Witam mam problem i otóż chce napisać program który będzie mi losował litery od A do J napisany w turbo pascalu więc pomyślałem że zrobię to tak że będę losował liczby z zakresu od 65 do 74 w systemie DEC a później zamieniałbym to na odpowiednie znaki, jest to dobry pomysł czy w pascalu da się jakoś zrobić to inaczej?
Sposób jaki zaproponowałeś jest prosty i raczej nie ma potrzeby robienia tego inaczej.
Lecz niestety gdy próbuje wylosować liczbę z zakresu od 65 do 74 to zawsze mi brakuje którejś bo robię to tak:
wylosowana:=random(9)+65;
W takim przypadku niestety zakres jest od 0 do 8 i największa wylosowana liczba to 73 i tutaj właśnie leży problem.
Wyczytałem, że pascalowskie random losuje liczbę z zakresu <0, argument), wystarczy więc podnieść argument o jeden.
Może coś na ten wzór? Łap moją propozycje (obrazową, ten kod nie działa):
char literki[9] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’,‘G’,‘H’,‘I’,‘J’}
i=LosujLiczbe(9)
return literki
Wtedy zakres jest od 66 do 74 który nadal nie jest właściwy.
może takie coś?
literka := chr(random(ord('J') - ord('A') + 1) + ord('A'));
Czesc,
Trzeba wiecej wiary w siebie. Twoj pomysl byl ok, tylko ze potrzebowales 10 liczb a nie 9, jezeli obie liczby maja wchodzic do przedzialu.
Dzięki wszystkim ale poradziłem sobie całkiem inaczej, chciałem tego uniknąć no ale kodu jest znacznie więcej. Stworzyłem tablice i wypełniłem ją literkami od A do J i po prostu losowo się do nich odwołuje a wyniki zapisuje sobie do drugiej tablicy
wylosowana:=random(10)+64;
wylosowana:=wylosowana+abs(wylosowana=0)*10;