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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2016, 17:48   #1
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию Случайные числа в таблице

Нужно вывести на экран таблицу случайных вещественных чисел размером NxM ячеек.

1. Значения N и М задаются случайным образом от 5 до 20.
2. Значения ячеек заполняются случайными вещественными числами от -100*Y до 100*Z, где Y = 8, Z = 0

Примечание:
1. Перевод вещественного числа в строку осуществляется функцией FloatToStr.
2. Случайное число можно сгенерировать функцией Random.
serge-first вне форума Ответить с цитированием
Старый 30.03.2016, 18:01   #2
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Примерно накинул и застрял, что куда))):

Код:
procedure TForm1.FormCreate(Sender: TObject);
var col, row, n, m:integer;
begin
  randomize;
  n:=random;
  m:=random;
  StringGrid1.ColCount:=n;
  StringGrid1.RowCount:=m;
  for Col:=0 to StringGrid1.ColCount-1 do
  for Row:=0 to StringGrid1.RowCount-1 do
    StringGrid1.Cells[ Col , Row ]:=IntToStr(random);
  StringGrid1.Width := StringGrid1.DefaultColWidth * StringGrid1.ColCount;
  StringGrid1.Height := StringGrid1.DefaultRowHeight * StringGrid1.RowCount;
end;

end.
serge-first вне форума Ответить с цитированием
Старый 30.03.2016, 18:34   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
n:=random(16)+5;
m:=random(16)+5;

StringGrid1.Cells[ Col , Row ]:=FloatToStr(-800*random);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2016, 09:57   #4
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
n:=random(16)+5;
m:=random(16)+5;

StringGrid1.Cells[ Col , Row ]:=FloatToStr(-800*random);
Спасибо, разобрался)
serge-first вне форума Ответить с цитированием
Старый 01.04.2016, 13:55   #5
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
var Col, Row, N, M: integer;
begin
  randomize;
  N:=random(16)+5;
  M:=random(16)+5;
  StringGrid1.ColCount:=N;
  StringGrid1.RowCount:=M;
  for Col:=0 to StringGrid1.ColCount-1 do
  for Row:=0 to StringGrid1.RowCount-1 do
  StringGrid1.Cells[Col,Row]:=FloatToStr(-800*random); // -100*Y до 100*Z, Y = 8, Z = 0
  StringGrid1.Width := StringGrid1.DefaultColWidth * StringGrid1.ColCount;
  StringGrid1.Height := StringGrid1.DefaultRowHeight * StringGrid1.RowCount;
end;

end.
serge-first вне форума Ответить с цитированием
Старый 01.04.2016, 13:57   #6
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

А теперь мне нужно изменить таблицу в таблицу размером 6x6, при этом вывести случайные целые числа от -1 до 2
serge-first вне форума Ответить с цитированием
Старый 01.04.2016, 14:02   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А включить процессор в процессорной подставке?

Random без параметра возвращает вещественное число 0<=Random<1.
Random с целым положительным параметром возвращает целое число 0<=Random(n)<n

В коде выше все есть, константы поменять
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 01.04.2016 в 14:05.
Аватар вне форума Ответить с цитированием
Старый 01.04.2016, 14:19   #8
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А включить процессор в процессорной подставке?
Ты чет попутал, метнулся сделал!
П.С. простите если обидел
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 01.04.2016, 15:55   #9
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
Ты чет попутал, метнулся сделал!
П.С. простите если обидел
Не ругайтесь, пожалуйста.

А я, это я двоечник, не получается у меня.
serge-first вне форума Ответить с цитированием
Старый 01.04.2016, 16:03   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Смотри. Функция F возвращает числа от 0 до 1. А нужно от A до B (B > A). Расширяем (сжимаем) интервал F*(B-A) и сдвигаем его G=F*(B-A)+A. Теперь функция G возвращает числа в интервале от A до B. В твоем случае Random*3-1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Случайные числа Toa Microsoft Office Excel 6 30.11.2013 18:45
Случайные числа bogdan333 C++ Builder 9 12.04.2012 13:48
Случайные числа. Си. meta Помощь студентам 1 31.05.2011 01:48
случайные числа NeVerSS Общие вопросы Delphi 3 01.10.2010 22:22
Случайные числа severin Помощь студентам 8 02.02.2010 17:35