delphi從陣列中任取,例如從1至9隨機取數進行付值

2022-03-15 09:19:57 字數 3517 閱讀 2844

1樓:匿名使用者

試編寫示例**如下:

procedure tform1.btn1click(sender: tobject);

const

arr:array[1..10] of string[11]=('13622220001',

'13622220002','13622220003','13622220004',

'13622220005','13622220006','13622220007',

'13622220008','13622220009','13622220010');

vari:integer;

begin

randomize;

i := trunc(10 * random + 1);

showmessage('當前隨機抽取的號碼是:'+arr[i]);

end;

執行截圖:

2樓:匿名使用者

procedure tform1.button1click(sender: tobject);

vararrint: array[0..9] of integer;

i: integer;

begin

randomize;//隨機

i := random(9);//隨機產生9以內的數arrint[i] := i;

end;

delphi中的陣列賦值

3樓:暖流中的魚

//下次把問題描述清楚

;裡面的值是無規律的

那麼我想的到辦法只有這樣。

你說:陣列的大小是10000,

是指b陣列(10000個無規律的數成)

(你怎麼去設10000個無規律的數?

還是就是指a陣列呢,就是你想要10000個數,這些是隨機的這樣賦值

只要這樣即可:}

const

num = 10000; //陣列的大小

vara: array[1..num] of integer;

i: integer;

begin

randomize;

for i := 1 to num do

a[i] := random(num) + 1;

end;

4樓:匿名使用者

a[5]:=random(100);

random表示取出隨機數。

以上表示式是表示a[5]的值在0~100之間的隨機數。

5樓:

vara:=array[1..5] of integer=(1,2,3,4,5)

只有全域性變數才能賦初始值,而且5個值都要賦滿

6樓:約等於沒有

人家好像問的問題是怎麼在宣告變數的時候賦上初值。

好像delphi不支援的吧。我只知道可以這樣寫。

const

a:array[0..3] of integer = (1,2,3,4);

但這個是常量,變數的話不清楚應該怎麼一下子把一個陣列賦上值。

7樓:匿名使用者

a:=array[1,2,3,4,5] of integer;

delphi中random取不重複的隨機數。

8樓:匿名使用者

1、前面0的問題是因為(假定你現在輸入的是5,即num為5),陣列長度為5,但是隨機數取值是random(5+1),也就是隨機數值是從0-5一共6個數,那自然有一個取不到。

2、改成random(num)的時候,for k:=0 to i do個人感覺應該是for k:=0 to i-1 do

3、隨機數演算法有很多簡單的方法,比goto什麼簡單的多,比如最常見的偽演算法

a.建立陣列x[n],並對每個元素賦值(比如說隨機數在0-n之間),那就x[0]=0、x[1]=1至x[n]=n;

b.從x[0]開始至x[n],將元素隨機與x[0-n]之間的任意一個數字交換

如果是delphi2010以上,也有tdictionary這類東西

9樓:匿名使用者

你每次取的是0-5這6個數字,只儲存其中5個顯示出來,肯定有一個數字沒有。

就像第2次裡面沒有5一樣。

為什麼要用 goto ,continue就可以了

10樓:匿名使用者

看起來程式一般情況下是死迴圈不了的.就是要求輸入的num要不小於2,不然程式會出錯的.

11樓:匿名使用者

加入判斷就行了,如果已經有這個數,重新取。直到找到不重複的。

12樓:匿名使用者

初始化時將陣列置為了0。由於你for k:=0 to i do 這個地方迴圈向後推了一位,導致當隨機到0時,總是檢查到0已存在,從而導致第一次不可能出現0這種情況。

這個地方應該改為for k:=0 to i-1 do

改成l:x:=random(num)出現死迴圈的原因跟前面一樣,都是for k:=0 to i do的問題。迴圈到最後一次了,只剩下0沒有被賦值,而又一直檢測到0已存在。

13樓:匿名使用者

你好,你的問題我來幫你解決:

我針對你的需求,再根據你的**最了一些優化和改進,並且實測通過!

我將整個測試原始檔上傳上來!

其實還可以將這個**弄成獨立的函式,使其能重複應用!

14樓:匿名使用者

其實,不用使用這麼多迴圈,搞得太複雜。你可以參照這個帖子

delphi 顯示陣列內容,一個陣列裡面有10個數值,我要showmassage出來裡面的有內容

15樓:匿名使用者

試編寫示例**如下:

procedure tform1.button1click(sender: tobject);

varintarray: array[0..9] of integer;

i: integer;

begin

randomize;

for i := low(intarray) to high(intarray) do

begin

intarray[i] := random(10000);

end;

for i := low(intarray) to high(intarray) do

begin

showmessage(format('當前陣列第 %d 個,數值為:%d',[i, intarray[i]]));

end;

end;

執行結果圖:

16樓:囚籠山人六

showmessage(inttostr(陣列名[0])+inttostr(陣列名[1])+..........)

從0,1,2,3,4,5,6,7,8,9中任取不同的數

從0,抄1,2,3,襲4,5,6,7,8,9中任取七個不同的數,有c7 10種方法,若七個數的中位數是6,則只需從0,1,2,3,4,5,選3個,從7,8,9中選3個不同的數即可,有c36 c33種方法,則這七個數的中位數是6的概率p c36 c33c 710 16 故答案為 16 0,1,2,3,...

php中怎樣從陣列中隨機取元素出來呢

它的用法也很簡單 array rand arr num arr 用來取元素的陣列 num 隨機取下標的個數其中第二個引數 num 是可選的,預設為1 注意 它的返回值在第二個引數大於 1 的時候是一個陣列 當第二個引數不設或者傳值 1 的時候是一個下標。簡單的示例 如下 1 第二個引數不傳值的情況 ...

數學競賽題 從1,2,3,4,5,6,7,8,9中任取n個數

4.n的最小值為5 證明如下 應想到,被10整除意味著n個數中任意取出來的數之和只能為10 20 30 40.1 首先用特殊法排除 n取1,2,3,4都不滿足條件 若n取4,則取這四個數為9,8,7,6 這4個數中,10 任意兩數之和 20,30 任意三數之和 40,所以無論怎麼取都不可能取出被10...