Помощь - Поиск - Пользователи - Календарь
Полная версия: Файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
eugenek
сформировать типизированный файл целых чисел, получаемых с помощью датчика случайных чисел.
volvo
Поиск используй, это уже было...
eugenek
Так правильно?
      
Program Lab_46;
Uses Crt;
Var
f: file of integer; {файл целого типа}
r :integer; {количество чисел вносимых в файл}
l :integer; {нижний диапазон}
h :integer; {верхний диапазон}
i,j : integer;
begin
clrscr;
readln®;
readln(l);
readln(h);
assign(f, 'f_int.plb');
rewrite(f);
randomize;
for i:=1 to r do begin
j:=(random(h-l))+l;
write(f,j);
end;


close(f);



end.

klem4
Похоже на правду smile.gif только мне кажется, чтобы получить случайное число в интервале от left до right надо делать вот так :

rnd := left + random(right-left) + 1;


а у тебя полчается рандомное число от 0 до Right-left насколько я понимаю.
volvo
Цитата(klem4 @ 24.08.05 17:11)
мне кажется, чтобы получить случайное число в интервале от left до right надо делать вот так :
rnd := left + random(right-left) + 1;

Не совсем... Надо делать вот так:
rnd := left + random(right-left+1);
Посмотри например, как делать число в интервале 2 .. 9 ? Нужно
Цитата
2 + Random(8)
, а не
Цитата
2 + Random(7) + 1
... При твоем способе получится число из интервала (left+1) .. right, число left ты уже не получишь...
Цитата(klem4 @ 24.08.05 17:11)
а у тебя полчается рандомное число от 0 до Right-left насколько я понимаю.
:no:
Получался интервал left .. (right-1)
klem4
Прошу прощения, я не смог отличить букву l от единички smile.gif))))) , у автора ведь тоже самое написано, только у меня еще + 1

значит надо вот так :
rnd := left + random(right-left+1);
eugenek
Цитата(volvo @ 24.08.05 18:22)
Не совсем... Надо делать вот так:
rnd := left + random(right-left+1);



Действительно..., спасибо, учту.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.