IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Множества, Работа с множеством в Delphi
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


Помогите пожалуйста решить задачу : Вводятся 6 чисел, не превышающих 49. Программа также генерирует 6 различных чисел от 1 до 49 и сообщает, сколько из них пользователь угадал.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


В чем затруднение?Для генерации используй randomize; random(49);


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


Вводить числа я так понимаю лучше в ListBox?

если я правильно понимаю то код генериции 6 различных чисел :


const N=6; M=49;
var M:set of 1..M;
A:byte;
begin
Randomize;
M:=[];
for i:=1 to N do
begin
repeat
A:=Random(M)+1
until not(A in M);
M:=M+[A]
end;
end;



Если да, то как эти числа сравнить с ведёнными и покозать результат? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


cray.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


help me please!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


А обязательно нужно работать с формой?Командная строка нельзя?


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
Вводить числа я так понимаю лучше в ListBox?
Зачем же ListBox? Memo удобнее будет...

procedure TForm1.ButtonClick(Sender: TObject);
const N=6; M=49;

var
userSet, setM: set of 1 .. M;
A, i: byte;
begin
Randomize;
setM:=[];
for i:=1 to N do begin
repeat
A:=Random(M)+1
until not(A in setM);
setM := setM+[A];
end;

// Мемо должен быть заполнен перед нажатием кнопки,
// причем все числа должны быть проверены на корректность
// Здесь проверяется только равенство "выигрышной комбинации"
userSet := [];
for i := 0 to Memo2.Lines.Count - 1 do
Include(userSet, StrToInt(Memo2.Lines[i]));

if userset = setm then ShowMessage('Yes !!!')
else ShowMessage('No');

end;



Сообщение отредактировано: мисс_граффити -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


...и сообщает, сколько из них пользователь угадал.


это можно определить через Memo а то я с этой компонентой никогда не работал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Тогда вот так:

procedure TForm1.Button1Click(Sender: TObject);
const N=6; M=49;

var
setM: set of 1 .. M;
A, i: byte;
amount: integer;
begin
Randomize;
setM:=[];
for i:=1 to N do begin
repeat
A:=Random(M)+1
until not(A in setM);
setM := setM+[A];
end;

amount := 0;
for i := 0 to Memo1.Lines.Count - 1 do
if StrToInt(Memo1.Lines[i]) in setM then inc(amount);

Showmessage(inttostr(amount) + ' совпадений ... ');

end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


Благодарю за помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.09.2020 17:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name