[Pascal] Losowanie liczb z przedziału

Witam

Mam napisać program które będzie losował liczbę z przedziału (m,n). Napisałem program, ale raz losuje liczbę z przedziału a raz z poza przedziału. Co jest nie tak?

program zadanie_domowe2;

uses crt;

var

   m,x,n:integer;

begin

   clrscr;

   randomize;

   writeln('Podaj poczatek przedzialu');

   readln(m);

   writeln('Podaj koniec przedzialu');

   readln(n);

   x:=random(n)+m;

   writeln(x);

   readln();

end.
program zadanie_domowe2;

uses crt;

var

   m,x,n:integer;

begin

   clrscr;

   randomize;

   writeln('Podaj poczatek przedzialu');

   readln(m);

   writeln('Podaj koniec przedzialu');

   readln(n);

   x:=random(n-m)+m;

   writeln(x);

   readln;

end.

trochę inny, z zastosowaniem pętli repeat until

program zadanie_domowe2;

uses crt;

var

	m,x,n:integer;

begin

	clrscr;

	randomize;

	writeln('Podaj poczatek przedzialu');

	readln(m);

	writeln('Podaj koniec przedzialu');

	readln(n);

	repeat

		x:=random(n)+m;

	until (x>=m) and (x<=n);

	writeln(x);

	readln;

end.

Zależy jeszcze co chce osiągnąć autor czy ma tylko raz losować czy wiele razy, można to też zrobić w pętli for z początkiem i końcem pętli w n i m.

Jak wiadomo w matematyce mamy przedziały otwarte (m, n) lub domknięte

x:= Random(n-m-1)+m+1; dla (m, n) 

x:= Random(n-m)+m; dla 
x:= Random(n-m)+m+1; dla (m, n> 

x:= Random(n-m+1)+m; dla

A Ciebie jaki przedział interesuje? :slight_smile:

Zamknięty

Odzywam się jeszcze, bo odpowiedziałeś dwuznacznie na moje niefortunne pytanie :wink:

Zapomniałem dodać, abyś wybrał sobie (i zastosował w programie) jeden przedział z czterech podanych przeze mnie, który pasuje do treści zadania

Zamknięty: wnioskuję, że chodzi Ci o ten ostatni, czyli obustronnie do** mknięty**

Zamknięty może również sugerować “zamknięty wątek”, ale o tym to chyba już nie nam decydować :slight_smile:

chodziło mi o zamknięty przedział :slight_smile: