Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Delphi实现数组中的随机值_Delphi - Fatal编程技术网

用Delphi实现数组中的随机值

用Delphi实现数组中的随机值,delphi,Delphi,我有以下代码 const dimensions: array [1 .. 5] of string = ('100 ', '200', '300 ', '400', '500 '); 我要做的是在该数组中选择一个随机值显示在ShowMessage()上 但如何做到这一点,有人可能会说,当您从数组中选择一个随机值时?您可以使用它来选择1到5之间的值。这样做: Index := RandomRange(1, 6); 这似乎有点违反直觉,但下限是包容的,上限是非包容的 另一种方法是直接使用R

我有以下代码

const
   dimensions: array [1 .. 5] of string = ('100 ', '200', '300 ', '400', '500 ');
我要做的是在该数组中选择一个随机值显示在ShowMessage()上

但如何做到这一点,有人可能会说,当您从数组中选择一个随机值时?

您可以使用它来选择1到5之间的值。这样做:

Index := RandomRange(1, 6);
这似乎有点违反直觉,但下限是包容的,上限是非包容的

另一种方法是直接使用Random:

Index := 1 + Random(5);
您甚至可以删除数组并编写:

IntToStr(100*RandomRange(1, 6))

最简单的解决办法是

    myString := dimensions[Random(Length(dimensions))];
请记住在使用random之前初始化random种子,否则将无法获得“true”随机值

    Randomize;
    myString := dimensions[Random(Length(dimensions))];
    Showmessage(myString);

使用
RandomRange(1,5)
并将其用作数组的索引;但是显示此错误“E2003未声明的标识符:'RandomRange'”Google“delphi RandomRange”建议:“使用数学,//包含RandomRange命令的单元”好的,谢谢帮助。@mrbatch实际上,正如我在回答中解释的,该代码是错误的。该代码是错误的。数组边界为1..5。您的代码使用索引0..4。一旦你解决了它,你的答案将是我的一个子集。