各位高手,请教一下,如何让a,b,c,d随机取1,2,3,4四个整数,但不会重复,
麻烦讲解一下解答中各命令和字符的含义,谢谢!!

解决方案 »

  1.   

    呵呵;试试这个;var L : string;
    begin
    a := randomfrom(['1'.'2'.'3'.'4']);L := randomfrom(['1'.'2'.'3'.'4']);
    while L = a then
     L := randomfrom(['1'.'2'.'3'.'4']);
    end;
    B := L;L := randomfrom(['1'.'2'.'3'.'4']);
    while (L = a) or (L = b) then
     L := randomfrom(['1'.'2'.'3'.'4']);
    end;
    c := L;L := randomfrom(['1'.'2'.'3'.'4']);
    while (L = a) or (L = b) or (L = c) then
     L := randomfrom(['1'.'2'.'3'.'4']);
    end;
    D := L;
      

  2.   

    错了;应该是:var L : string;
    begin
    a := randomfrom(['1','2','3','4']);L := randomfrom(['1','2','3','4']);
    while L = a do
     L := randomfrom(['1','2','3','4']);
    end;
    B := L;L := randomfrom(['1','2','3','4']);
    while (L = a) or (L = b) do
     L := randomfrom(['1','2','3','4']);
    end;
    c := L;L := randomfrom(['1','2','3','4']);
    while (L = a) or (L = b) or (L = c) do
     L := randomfrom(['1','2','3','4']);
    end;
    D := L;
      

  3.   

    var
      s:set of 1..4;
    s:=[];
    a:=RandomFrom([1,2,3,4]);
    s:=s+[a];
    repeat 
     b:=RandomFrom([1,2,3,4]);
    undilt not (b in s);
    s:=s+[b];
    repeat 
     c:=RandomFrom([1,2,3,4]);
    undilt not (c in s);
    s:=s+[c];
    repeat 
     d:=RandomFrom([1,2,3,4]);
    undilt not (d in s);
    s:=s+[b];