VB陣列問題,vb陣列問題

2022-11-06 20:36:57 字數 5676 閱讀 8929

1樓:師琦巧鹹易

3一共4個;一維0,1,2;所以上面可以變成下面這樣dima(0

to3,0to

5)as

integer

',0,

5)as

integer

'',-2

to1;預設情況下

陣列下標從0開始

dima(3,1

也4個三維6個

',二維-2,-1,

-2to1

vb陣列問題

2樓:匿名使用者

正規答案應該是c,a、b的成員個數都超過9個,d的資料型別不對。

歪解答案是d,single佔4位元組,integer佔2位元組,c佔了36位元組,而d佔了18位元組,一半。至於小數,題目給的資料都只有2位有效數字,integer完全放的下,乘10 。因為要求「不能浪費空間」,所以我省下了18位元組(嚴格的說不是,跟陣列結構有關),所以d符合要求 o__o"…

3樓:匿名使用者

c 三行,每行三個資料,就必須要乙個二維陣列不能浪費空間,就是說每維的上界減下界加1必須等於3還有,陣列中存的數是小數,申明就必須是single你看吧.哪個合適

vb陣列問題

4樓:匿名使用者

教你一點關於隨機數的知識

語法 rnd[(number)]

可選的 number 引數是 single 或任何有效的數值表示式。

返回值如果 number 的值是 rnd 生成

小於 0 每次都使用 number 作為隨機數種子得到的相同結果。

大於 0 序列中的下乙個隨機數。

等於 0 最近生成的數。

省略 序列中的下乙個隨機數。

說明 rnd 函式返回小於 1 但大於或等於 0 的值。

number 的值決定了 rnd 生成隨機數的方式。

對最初給定的種子都會生成相同的數列,因為每一次呼叫 rnd 函式都用數列中的前乙個數作為下乙個數的種子。

在呼叫 rnd 之前,先使用無引數的 randomize 語句初始化隨機數生成器,該生成器具有根據系統計時器得到的種子。

為了生成某個範圍內的隨機整數,可使用以下公式:

int((upperbound - lowerbound + 1) * rnd + lowerbound)

這裡,upperbound 是隨機數範圍的上限,而 lowerbound 則是隨機數範圍的下限。

注意 若想得到重複的隨機數序列,在使用具有數值引數的 randomize 之前直接呼叫具有負引數值的 rnd。使用具有同樣 number 值的 randomize 是不會得到重複的隨機數序列的。

生成a位數的隨機數 int((10 ^ a - 10 ^ (a - 1) + 1) * rnd + 10 ^ (a - 1))

randomize 語句

初始化隨機數生成器。

語法 randomize [number]

可選的 number 引數是 variant 或任何有效的數值表示式。

說明 randomize 用 number 將 rnd 函式的隨機數生成器初始化,該隨機數生成器給 number 乙個新的種子值。如果省略 number,則用系統計時器返回的值作為新的種子值。

如果沒有使用 randomize,則(無引數的)rnd 函式使用第一次呼叫 rnd 函式的種子值。

注意 若想得到重複的隨機數序列,在使用具有數值引數的 randomize 之前直接呼叫具有負引數值的 rnd。使用具有同樣 number 值的 randomize 是不會得到重複的隨機數序列的。

randomize 語句示例

本示例用 randomize 語句初始化隨機數生成器。由於忽略了數值引數, 所以 randomize 用 timer 函式的返回值作為新的隨機數種子值。

dim myvalue

randomize ' 對隨機數生成器做初始化的動作。

myvalue = int((6 * rnd) + 1) ' 生成 1 到 6 之間的隨機數值。

5樓:匿名使用者

private sub command1_click()dim s(20) as string, m as stringdim i as integer, j as integer, k as integer

randomize

m = ""

for i = 1 to 20

l = int(rnd * 10) + 1s(i) = ""

for j = 1 to l

s(i) = s(i) + chr(int(rnd * 26) + 97)

next

if len(m) < len(s(i)) then m = s(i)

if i mod 5 = 0 then

print s(i)

else

print s(i);

for k = 1 to 10 - len(s(i))print " ";

next

end if

next

print m

end sub

vb定義陣列

6樓:阿豪呦

有兩種方法定義陣列:

1.知道陣列的元素個數,那麼直接定義

dim a(9) as integer

2. 暫時不知道元素個數,或者該陣列應用在多個地方,那麼如下定義

dim a() as integer

在使用的時候,再重定義一下就可以了

redim a(9)

dim|private|public    陣列名(維數及大小) as 型別

dim|private|public    定義陣列作用域

維數及大小               即陣列是幾維陣列以及每個維的大小型別

資料型別                  陣列的型別'

如 dim a  (2,3)  as stirng 二維陣列 ,大小是2*3   型別為字元型

擴充套件資料:

一.對於vb的陣列,表示陣列元素時應注意:

(1)下標要緊跟在陣列名後,而且用圓括號括起來(不能用其他括號)。

(2)下標可以是常量,變數,或表示式,但其值必須是整數(如果是小數將四捨五入為整數)。

(3)下標必須為一段連續的整數,其最小值成為下界,其最大值成為上界。不加說明時下界值預設為1。

二.宣告陣列時,在陣列名之後跟乙個用括號括起來的上界。

上界不得超過 long資料型別的範圍(-2,147,483,648 到 2,147,483,647)。

例如,下列陣列宣告可出現、在模組的宣告段:

dim counters (14) as integer '15 個元素。

dim sums (20) as double '21 個元素。

為建立公用陣列,直接用 public 取代 dim。

public counters (14) as integer

public sums (20) as double

在過程之中同樣的宣告使用 dim:

dim counters (14) as integer

dim sums (20) as double

第乙個宣告建立了乙個有 15 個元素的陣列,其索引號從 0 到 14。

第二個宣告建立了乙個有 21 個元素的陣列,其索引號從 0 到 20。預設的下界為 0。

為了規定下界,用關鍵字 to 顯式提供下界(為 long資料型別):

dim counters (1 to 15) as integer

dim sums (100 to 120) as string

在前述宣告中,counters 的索引值範圍從 1 到 15,而 sums 的索引值範圍從 100 到 120。

7樓:

和普通陣列一樣

dim a(x)

或dim a(x to y)

8樓:匿名使用者

dim a(),x as integer

x=100

redim a(x)

vb 輸出陣列問題

9樓:

原因在array語句,這語句會把陣列初始化,即變成下標從0——7,共八個元素。所以**無法執行。

你不能這樣給陣列賦值

可以這樣更改

option explicit

option base 1 '加一條 語句private sub form_click()dim a(), i, k, t as integerprint "插入前:";

'刪除redim a(1 to 9)語句

a = array(4, 6, 8, 10, 12, 14, 16, 18)

for i = 1 to 8

print a(i);

next

for k = 1 to 8

if a(k) = 10 then exit fornext

for k = 7 to k step -1a(k + 1) = a(k)

next

a(k) = 11

print '增加一條語句

print "插入後"; '移動語句到這裡for k = 1 to 8

print a(k); '更改一下

next

end sub

vb陣列的問題 20

10樓:網海1書生

split拆分出來的陣列,是固定從0開始的(即使你強制指定陣列下標初值,它也是0開始的),所以正常情況下,for i = 0 to ubound(dkey)是不會出錯的,如果出錯,那你的**肯定有問題,但問題並不在你列出的**中,而是在其他**中。

補充一點,在split前陣列是不需要redim的,當然這樣做了也不會出錯,只是就像脫褲子放屁一樣純屬多餘了。

11樓:難得糊塗

將ret = split(st, ",")改成ret = split("," & st, ",")就可以了

dkey(0)雖然存在,不過是個空值。

請採納!謝謝!

12樓:

dkey = ret 陣列賦值是錯誤的。

修改為下面語句試試

for i=lbound(ret) to ubound(ret)

13樓:匿名使用者

個人感覺樓上的講的書生講的正確,如果你認為是少了乙個陣列的話,在要拆分的字串後加乙個空字元就行了嘛,或者從1-x和0-(x-1)是一樣的

vb陣列比較問題

14樓:陽光的雷咩咩

vb6 還是 vb.net, 如果是後者說明.net版本。

vb的陣列問題

15樓:

因為你這樣定義:dim a(1 to 20) as string * 10,每個元素都是10個字元,不存在哪個字元長。

兩處修改:

dim a(1 to 20) as string還有:else

print a(i),

用分號會區別不開,要用逗號。

VB怎麼宣告陣列,VB中陣列怎麼定義

如果有規律就可以用for next 來賦值,如果沒有規律,資料又很多的話,就從檔案裡面讀。 dim 陣列名 as int new int vb中陣列怎麼定義 大野瘦子 是這麼定義的 陣列中的第一個元素的下標稱為下界,最後一個元素的下標稱為上界,其餘的元素連續地分佈在上下界之間,且陣列在記憶體中也是用...

VB如何除去陣列中相同的數,VB 陣列中去掉相同的數

具體思路 實現2次迴圈,乙個陣列迴圈2次,外迴圈陣列,得出乙個值a,然後內迴圈,將a與自身所在的陣列的值對比一次,計算出現次數或者設定為空,如果計算出現次數可以計算次數大於2時候,進行刪除操作。如果設定為空,等於進行刪除操作。具體 如下 option explicit function delete...

VB一維陣列轉二維陣列

arrm 0,0 3 arrm 0,1 0 這個是向陣列arrm 的第0排的第0個位址賦值3和向陣列arrm的第0排第1個位址賦值0 這個沒有為什麼的,你愛高興給他賦值幾就賦值幾,就像你想給小孩幾元錢就給幾元,那是你的事。至於0,00,1是二維陣列的下標,即數學中的座標。看下圖你就明白了。就如你的a...