[PASCAL] Wyświetlanie napisu w losowo wybranym miejscu


(Rog1201) #1

Wyświetlanie napisu w losowym miejscu to banał. Ale jaj mam ograniczenie. Napis ten moge wyswietlić tylko i wyłącznie w oknie o wymiarach (1,30,20,50). Czy random może działać tak, że losuje liczby z przedziału nie od zera tylko od wybranej przeze mnie liczby? Jeśli tak to proszę o napisanie takiego polecenia?


([alex]) #2
function rand(min,max:Integer):Integer;

begin

   Result:=min+random(max-min+1);

end;

(Rog1201) #3

A czy byłbyś tak miły i mógłbyś napisać mi procedurkę spełniającą to polecenie, bo nigdy jeszcze nie korzystałem z takiego min i max:

na 1/4 ekranu w lewym dolnym rogu wyświetla się niebieskie tło a na tym tle wyświetla się 20 razy napis Pascal w losowo wybranych miejscach.


([alex]) #4

Wykorzystując funkcje którą podałem wcześniej:

var Liczba_z_zakresu_30_50:Integer;

Liczba_z_zakresu_30_50:=rand(30,50);

(Rog1201) #5

to banał ale jak mam do dyspozycji cały ekran :slight_smile: ale tu poruszam się w prostokącie i wg tego co podajesz przy randomie można uzyć 2 liczb (to 30 i 50) ale mi w programie błąd wsykakuje jak pisze random(30,50). Nie możesz tego tak łopatologicznie rozpisać bo nie rozumiem jednak :wink: DZIĘKI BARDZO


([alex]) #6

Czy widzisz różnice pomiędzy rand(30,50) a random(30,50) ?

Funkcje rand podałem wcześniej.


(Rog1201) #7

zamuliłem bo myślałem, że to to samo, ale w każdym razie przy rand wyświetla mi unknown identifier. Wpisuje normalnie y:=rand(30,50); a na poczatku mam zdefiniowane var y:integer. Co jeszcze robie źle?


([alex]) #8

Dodaj pomiędzy:

program jakis_tam;

a

begin

funkcje którą wcześniej podałem lub użyj bezpośrednio:

y:=TenTekstZamienNaMinimalnaLiczbeZakresu+random(TenTekstZamienNaMaksymalnaLiczbeZakresu-TenTekstZamienNaMinimalnaLiczbeZakresu+1);

(Sned) #9

Czy to mam rozumieć że lewy górny róg okna to x:=1; y:=30; a prawy dolny to x:=20; y:=50 ? Masymalna ilość kolumn w trybie tekstowym =80, a wierszy 25 (40). Program jest łatwy, ale wyjaśnij mi wątpliwości. xmax=80; ymax=25