1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
begin randomize; for i:=1to 6do begin loto:=random(49)+1; writeln('Nr.',i:2,loto:6) end end.
В общем эта программа имеет недостаток в том, что не все числа могут выпасть разными. Но не это мне важно! Мне важно узнать о функции "random". Мне не понятно почему "+1"? Для чего "+1"? P.S. Программа из университетского учебника.
var s: set of byte; i, X: byte; begin { Randomize } s := []; for i := 1 to 6 do begin repeat X := random(49) + 1; until not (X in s); writeln('#', i:2, ' = ', X); s := s + [X]; end; end.
var s: set of byte; i, X: byte; begin { Randomize } s := []; for i := 1 to 6 do begin repeat X := random(49) + 1; until not (X in s); writeln('#', i:2, ' = ', X); s := s + [X]; end; end.
Volvo, Ваш код лучше чем в книге! Там вот так:
program lotto1;
uses crt; const n=6; type lotto=set of 1..49; var L:lotto; k:integer; i:1..n; z:1..49; ok:boolean;
begin randomize; L:=[]; {Инициализация множества} for i:=1to n do {Цикл выполняется 6 раз - Количество цифр в результате} begin repeat z:=random(49)+1; {Генерация случайных чисел} if z in L then ok:=false {Определение вхождения сгенерированного числа в множество} else begin {Присоединение нового числа} L:=L+[z]; ok:=true end; until ok; {Цикл repeat повторяется до тех пор, пока ok имеет значение false} end; clrscr; {Вывод шести различных случайных чисел из 49} for k:=1to 49do if k in L then write(k:4); end.