Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2008, 18:05   #1
Dmit41683
Новичок
Джуниор
 
Регистрация: 05.12.2008
Сообщений: 1
Злость Мои функции и процедуры на Паскале

Пожалуйста помигите! Я написал на Паскале процедуру, которая генерирует любое число в заданном диапазоне! Но она работает только один раз в программе! Всё хорошо, и диапазон соблюдается, и число каждый раз новое. Однако если в одной программе для одного диапазона я два или более раз использую мою процедуру, то число будет одно и тоже!
Вот моя программа:


unit Work;
interface
uses Crt;
procedure Clean_Str(y1,y2:integer);
function RandomInteger(grun1,grun2:integer): integer;
function RandomLongInt(grun1,grun2:longint): longint;
implementation
{’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’}
procedure Clean_Str(y1,y2:integer);
const cleaner=' ';
begin
for y1:=y1 to y2 do begin gotoXY(1,y1); write(cleaner); end;
end;
{’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’}
function RandomInteger(grun1,grun2:integer): integer;
var RandomInteger_prom,diapazon:integer ;
begin
randomize;
if grun1>=grun2 then
RandomInteger:=grun1;
if grun1<grun2 then
begin
inc(grun2);
diapazon:=grun2-grun1;
RandomInteger_prom:=random(diapazon );
RandomInteger:=RandomInteger_prom+g run1;
end;
end;
{’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’}
function RandomLongint(grun1,grun2:longint): longint;
var RandomLongInt_prom,diapazon:integer ;
begin
randomize;
if grun1>=grun2 then
RandomLongInt:=grun1;
if grun1<grun2 then
begin
inc(grun2);
diapazon:=grun2-grun1;
RandomLongInt_prom:=random(diapazon );
RandomLongInt:=RandomLongInt_prom+g run1;
end;
end;
{’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’}
end.
Dmit41683 вне форума Ответить с цитированием
Старый 05.12.2008, 18:26   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

читаем help randomize, смотрим там же пример и анализируем свою программу.

Description

Randomize initializes the built-in random number generator with a random value (obtained from the system clock). The random number generator should be initialized by making a call to Randomize, or by assigning a value to RandSeed.

Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции пользователя в Паскале Alex1991 Помощь студентам 8 02.12.2008 13:11
Процедуры и функции V25 Паскаль, Turbo Pascal, PascalABC.NET 1 17.11.2008 20:02
Процедуры и функции KulOle Паскаль, Turbo Pascal, PascalABC.NET 1 26.10.2008 14:18
Задачи на Паскале. Строковые процедуры и функции Мент Паскаль, Turbo Pascal, PascalABC.NET 3 25.06.2008 13:24