Помогите пожалуйста решить задачу : Вводятся 6 чисел, не превышающих 49. Программа также генерирует 6 различных чисел от 1 до 49 и сообщает, сколько из них пользователь угадал.
Артемий
18.05.2007 1:08
В чем затруднение?Для генерации используй randomize; random(49);
status
18.05.2007 2:09
Вводить числа я так понимаю лучше в 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;
Если да, то как эти числа сравнить с ведёнными и покозать результат?
status
19.05.2007 15:30
status
21.05.2007 20:48
help me please!
Артемий
21.05.2007 21:12
А обязательно нужно работать с формой?Командная строка нельзя?
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;
status
24.05.2007 3:16
...и сообщает, сколько из них пользователь угадал.
это можно определить через Memo а то я с этой компонентой никогда не работал?
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);