Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
_baal_
0 / 0 / 3
Регистрация: 14.07.2015
Сообщений: 104
#1

Случайные числа - Delphi

29.07.2015, 17:05. Просмотров 761. Ответов 3
Метки нет (Все метки)

Хотел спросить про генератор случайных чисел в Delphi 7 .
У меня на форме есть кнопка и Мемо при нажатии на кнопку в Мемо пишется случайное число от 11 до 21.

Delphi
1
2
3
Randomize;
A:=Randomrange(11,21);
sMemo1.Lines.add('Число '+IntToStr(A));
Проблема в том что эти числа повторяются.Как исправить это?

Delphi
1
2
3
4
Randomize;
A:=Randomrange(11,21);
if sMemo1.Lines.IndexOf( IntToStr( A ) )=-1 then
 sMemo1.Lines.add('Число '+IntToStr(A));
такой вариант не помог числа все равно повторяются.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 17:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Случайные числа (Delphi):

Записать в Memo случайные числа, и при нажатии кнопки удалить все нечетные числа
Здравствуйте! Помогите, пожалуйста, с заданием: нужно при создании формы в...

Случайные числа
Массив размерность 4х4 заполнить случайными числами в интервале . Вычислить...

Случайные вещественные числа в диапазоне
Есть RandomRange(), но он только для целых чисел, подскажите как организовать...

Задачи на случайные числа (Random)
1.Сгенерить случайное число из диапазона и вывести его на экран . 2.Вывести...

Случайные числа с условием их повторений
Здравствуйте. Подскажите пожалуйста примером кода, не могу сообразить......

Случайные числа без повторений
Ребятушки, подскажите пожалуйста. Есть i1:=RandomRange(1,100);...

3
VladWH
240 / 190 / 94
Регистрация: 01.05.2015
Сообщений: 732
29.07.2015, 17:18 #2
Лучший ответ Сообщение было отмечено _baal_ как решение

Решение

Asgard797, первый вариант - генерация всех чисел разом
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.btn1Click(Sender: TObject);
var I, N: Integer;
begin
m1.Clear; Randomize;
for I:=0 to 9 do
 begin
  repeat
   N := RandomRange(11,21);
  until m1.Lines.IndexOf( IntToStr( N ) )=-1;
  m1.Lines.Add( IntToStr( N ) );
 end;
end;
Второй вариант по одному числу
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  Form1: TForm1;
  Nums: TStringList;
..........................
procedure TForm1.FormCreate(Sender: TObject);
begin
Nums := TStringList.Create;
end;
...................................
procedure TForm1.btn2Click(Sender: TObject);
var N: string;
begin
Randomize;
if Nums.Count=10 then begin
 ShowMessage('Все числа сгенерированы!'); Exit; end;
repeat
 N := IntToStr( Random(10)+11 );
until Nums.IndexOf(N)=-1;
m1.Lines.Add( N ); Nums.Add( N );
end;
1
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
29.07.2015, 17:23 #3
А чем не устроили ответы в этой теме?
http://www.cyberforum.ru/delphi-beginners/thread1498723.html
0
NIKOLAYY
819 / 717 / 339
Регистрация: 22.09.2012
Сообщений: 4,994
29.07.2015, 20:22 #4
Ну есть еще третий вариант брать числи из массива заполненном от 11 до 21 и брать их так чтоб элементы массива не повторялись из которых береш. Тогда и цикл ненужен. Ну это плюс еще немного кода.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2015, 20:22
Привет! Вот еще темы с решениями:

Сгенерировать случайные двоичные числа в диапазоне от a до b
Помогите написать программу, даже не знаю с какой стороны к ней подойти, вот...

При нажатии на CheckBox должны сгенерироваться случайные числа .
При нажатии на CheckBox должны сгенерироваться случайные числа в 6 строк и 6...

Создать массив содержащий случайные числа в диапозоне от [-100, 100]
Далее сформировать новый упорядоченный массив по возрастанию исключая из...

Случайные величины
С помощью генератора случайных чисел (функция Random, процедура Randomize в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru