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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2007, 11:39   #1
Димарик
Пользователь
 
Аватар для Димарик
 
Регистрация: 15.06.2007
Сообщений: 40
Вопрос Лототрон 6 из 49 - помогите!!!

написал лототрон, немогу понять почему неправильно работает..

чуть голова нелопнула. немогу понять почему бывает выпадает мееньше 6ти лотов в лотроне... :-(

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
digit= set of 0..50;
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
dig: digit;
i,n,lot: Byte;
st: String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
st:='';
n:=6;
dig:=[];
repeat
begin
lot:=random(50);

if lot in dig then
begin
n:=n+1;
Memo1.Lines.Add('Повторение числа');
end
else
Include(dig,lot);
n:=n-1;
end;
until n=0;

for i:=1 to 50 do
if i in dig then
st:=st +#9 +inttostr(i);
Memo1.Lines.Add(st);

end;
end.
Димарик вне форума Ответить с цитированием
Старый 03.10.2007, 11:52   #2
AnGrig
Пользователь
 
Регистрация: 03.10.2007
Сообщений: 10
По умолчанию

попробуй вместо lot:=random(50)
написать lot:=random(49)+1.
random(50) - это случайные числа от 0 до 49, а 0 тебе не нужен и в цикл
for i:=1 to 50 do
if i in dig then
st:=st +#9 +inttostr(i);
он не попадает
AnGrig вне форума Ответить с цитированием
Старый 03.10.2007, 11:59   #3
Димарик
Пользователь
 
Аватар для Димарик
 
Регистрация: 15.06.2007
Сообщений: 40
По умолчанию

ок. ща попробую.
Димарик вне форума Ответить с цитированием
Старый 03.10.2007, 12:01   #4
Димарик
Пользователь
 
Аватар для Димарик
 
Регистрация: 15.06.2007
Сообщений: 40
По умолчанию

большое спачибо. в етом и была причина...
- причина в выводе результата а не в формировании множетсва,
я искал проблемму нетам. а ведь думал в чем дело и реализовывал все виды циклов. :-) ... бывает.
Димарик вне форума Ответить с цитированием
Ответ


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