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. Программа из университетского учебника.
А мне очень нравится пример из DRKB. Правда он здесь уже в моей интерпритации.
procedure FillVariation(var variation:string); var i: integer; begin variation := ''; for i := 1 to 6 do begin insert(chr(i), variation, random(i)); end; end;
В строку Variation записываются различные символы в различные места. А потом для того чтобы получить рандомные неповторяющиеся значения достаточно сделать так: ord(Variation[i]); Для твоего примера это может выглядеть так:
program sportlotto;
{$APPTYPE CONSOLE}
var i:1..6;q,previous: byte; variation:string;
begin randomize; variation := ''; previous:=0; for i := 1 to 6 do begin if i=6 then q := previous+random((i-1)*8+9-previous)+1 else q := previous+random(i*8-previous)+1; previous:=q; insert(chr(q), variation, random(i)); end;
for i:=1to 6do writeln('Nr.',i:2,ord(Variation[i]):6); readln; end.
Хотя они тут не очень уж и случайные получились...