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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 22:37   #1
osipoff
Новичок
Джуниор
 
Регистрация: 14.03.2013
Сообщений: 1
Сообщение Рандом

Прошу помощи, не могу разобраться как в паскале сделать такой рандом от -10,5 до 20,5
osipoff вне форума Ответить с цитированием
Старый 31.05.2013, 00:24   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Попробуйте random(32) - 10.5.
Шаг будет 1, т.е. числа -10.5, -9.5, -8.5 и т.д.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 31.05.2013, 02:43   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А если надо все дейтвительные числа в диапазоне [-10,5;20,5], то например:
Код:
 
var rnd:Double;
 Randomize;
...
...
 rnd:=31*Random-10.5;  // Random без параметров возвращает дробное число от 0 до 1
...
Исправил. Сразу не увидел, что от минус 10,5.

Последний раз редактировалось type_Oleg; 31.05.2013 в 19:13.
type_Oleg вне форума Ответить с цитированием
Старый 31.05.2013, 17:01   #4
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию

Можно еще делать рандом -105 ... +205 и потом это число разделить на 10
revizor вне форума Ответить с цитированием
Старый 31.05.2013, 18:44   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от revizor Посмотреть сообщение
Можно еще делать рандом -105 ... +205 и потом это число разделить на 10
Если нам нужны целые числа, то -10.5 никак не получится.
А если нужны дробные, никогда не будет 0.05.
Как видим, предложенный метод не выдерживает никакой критики.
s-andriano вне форума Ответить с цитированием
Старый 01.06.2013, 23:00   #6
MisterDie
1100001001
Пользователь
 
Аватар для MisterDie
 
Регистрация: 25.01.2013
Сообщений: 49
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
предложенный метод не выдерживает никакой критики.
Почему?

Код:
//PascalABC.NET

var
  a: real;

begin
  a := random(-105, 205) / 10;
  write(a);
end.
З.Ы. Извините, не заметил сразу, что нужны числа с большим количеством знаков после запятой
МаГиЯ
мАгИя
МаГиЯ

Последний раз редактировалось MisterDie; 01.06.2013 в 23:04.
MisterDie вне форума Ответить с цитированием
Старый 01.06.2013, 23:03   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Цитата:
Сообщение от MisterDie Посмотреть сообщение
Почему?
Потому что шаг будет слишком большой.
Хотя мы же не знаем, что именно нужно ТСу (а он молчит как партизан).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рандом Mortimoro PHP 4 18.06.2012 22:34
РАНДОМ kilogram PHP 3 12.05.2012 14:24
рандом ZoomHz Общие вопросы C/C++ 1 10.07.2011 20:22
Рандом Ya_Aston Помощь студентам 4 17.12.2010 22:43
Рандом mansp Общие вопросы C/C++ 1 12.12.2010 15:18