这样实现循环比较!(50分)

  • 主题发起人 主题发起人 小航
  • 开始时间 开始时间

小航

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好我是一个刚接触delphi的新手,这里我有个很简单的问题想向大家请教,就是有100道不同的选择题,我要随机从里面选出35道,而且还要每个题不同,且要把他们保存在一个数组里,以便后面做为不同人的考题,怎样用最简单的方法实现那/?谢谢!呵呵也许我问的题太简单但这是我这个阶段的学生的水平,不要见笑!
 
用随机数吧
请参考
http://www.delphibbs.com/delphibbs/dispq.asp?lid=534318
 
最好自己写.这样印象深些.
闲着没事顺便给你写个了例子.
var
all: array[1..100] of String;
I, cnt, ran: Integer;
select: array[1..35] of Integer;
find: boolean;
begin
for i := 1 to 100 do
all := 'NO.'+IntToStr(i);
for i := 1 to 35 do
select := 0;

Randomize;
cnt := 1;
repeat
ran := Random(100);
find := false;
for i := 1 to 35 do
if select = ran then
find := true;
if not find then
begin
select[cnt] := ran;
Inc(cnt);
end;
until cnt > 35;
for I := 1 to 35 do
begin
Memo1.Lines.Add(Format('题%d=%s', [i, all[select]]));
end;
end;
 
var
i, j, t : integer;
Q : array[1..100] of integer;
MsgText : string;
begin
for i := 1 to 100 do
begin
Q := i;
end;

for i := 1 to 35 do
begin
//在i..100中间获取一个随机数字,然后将这个随机数字为下标的数组元素
//和 i 元素相互交换。
j := i + Trunc(Random(100 - i));

//交换两个数字
t := Q[j];
Q[j] := Q;
Q := t;
end;

//显示结果
MsgText := '';
for i := 1 to 35 do
begin
MsgText := MsgText + #13 + IntToStr(Q);
end;
ShowMessage(MsgText);
 
后退
顶部