Delphi中的low(陣列)是什么意思

2023-02-06 18:10:03 字數 4553 閱讀 8520

1樓:

high(x)函式返回引數的取值範圍內的最大值,其型別為x,或x的

索引。x既可以是一個型別標識,也可以是一個變數,其型別必須為下面之一:

變數型別 high(x)的返回值

-------------------------------------------

序數型別 這一型別的最高取值

陣列型別 陣列索引的最大值

字串型別 這一字串宣告過的長度

動態陣列 返回實際元素個數的負值

字串引數 返回實際元素個數的負值

示例:function sum( var x: array of double): double;

vari: word;

s: double;

begin

s := 0;

for i := 0 to high(x) do s := s + x[i];

sum := s;

end;

low(x)的含義可以參考上面的描述,但正好相反。

2樓:遷石

low(陣列) 是陣列定義中的那個最小下標

delphi中 low(myarray[i])to high(myarray[i]) 是什麼意思?

3樓:日日多金量化程式設計

low(陣列變數) 指某陣列的最小下標

high(陣列變數) 指某陣列的最大下標

4樓:偷心賊使

遍歷陣列的意思,從定義陣列的第一位到最後一位

delphi中陣列是如何用的?

5樓:陽光上的橋

定義一個一維護陣列:

vari:integer;

a1: array [1..100] of integer;

這樣定義以後,就有a1[1]~a1[100]這樣的100個整型變數可以使用,當然陣列的元素也可以是其它的任何型別。

陣列的初始化一般使用迴圈語句,例如:

for i:=1 to 100 do a1[i]:=0;

定義二維陣列的語法例子:

vari,j:integer;

a2:array [1..10, 1..10] of integer;

這樣定義以後a2陣列的元素是二維的,比如a2[1,1]~a2[10,10],總共10*10=100個元素

二維陣列的初始化和一維非常類似,例如:

for i:=1 to 10 do for j:=1 to 10 do a2[i,j]:=0;

delphi簡單的一個問題low high

6樓:

low(arr1)陣列的下界,就是陣列最小下標。high(arr1)就是上界,就是最大下標。因為 程式開始設定了動態陣列arr1的大小 setlength(arr1,10) 因此arr1的陣列長度為10.

for i:=low(arr1) to high(arr1) dobegin

arr1[i]:=i+1;

arr2:=copy(arr1,1,3);

memo1.text:=inttostr(arr1[1]);

就是 i從low(arr1) 到 high(arr1)進行迴圈:low(arr1)=0,high(arr1)=9,因為預設動態陣列的下標是從0開始,10個元素,那麼最後一個下標就是9。

每一次迴圈 arr1[i]:=i+1;

而arr2=copy(arr1,1,3)意思是從arr1陣列下標為1開始拷貝3個元素給arr2.

例如arr1=[1,2,3,4,5,6,7,8,9,10]那麼arr2就是[2,3,4]

delphi二維陣列如何定義

7樓:匿名使用者

在 delphi (object pascal 語言)中,使用 array 關鍵字進行陣列定義。

如果需要定義二維陣列可以採取以下定義形式:

一、靜態陣列定義

靜態陣列定義,通常用於陣列元素的數目確定的情況。定義形式如下:

示例:type

//定義二維陣列型別

tmultiarr = array[1..3,1..3] of string;

varmultiarr: tmultiarr;

//定義 行12*列12 的 integer 陣列

intarr: array[1..12] of array[1..12] of integer;

//定義 行5*列5 的 string 陣列

strarr: array[1..5,1..5] of string;

二、動態陣列定義

動態陣列常用於當陣列的元素數目不確定的時候,其定義形式如下:

samarr: array of array of integer; //定義二維陣列,陣列元素不確定

type tmessagegrid = array of array of string; //定義二維陣列型別,陣列元素不確定

var msgs: tmessagegrid; //宣告一個二維陣列型別變數

二維動態陣列的元素數目,可以通過 setlenth 來動態指定,示例**如下:

procedure tform1.button3click(sender: tobject);

type tmultiarr = array of array of string;

vara: tmultiarr;

i, j: integer;

s: string;

begin

setlength(a, 10);

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

begin

setlength(a[i], i);

for j := low(a[i]) to high(a[i]) do

a[i, j] := inttostr(i) + ',' + inttostr(j) + ' ';

end;

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

begin

s := '';

for j := low(a[i]) to high(a[i]) do

s := s + ' ' + a[i, j];

memo1.lines.add(s);

end;

end;

**執行截圖:

8樓:匿名使用者

a: array [0..1] of array [0..9] of integer;

或 a: array of array of integer;

9樓:匿名使用者

兩種形式,任選其一,例如:

amatrix : array[1..10] of array[1..50] of real;

bmatrix : array[1..10, 1..50] of real;

delphi中函式返回陣列問題

10樓:暢夏侯嵐

你定義的函式不是返回陣列型別的,只是返回一個word//首先定義一個陣列型別

type

tarr = array of integer;

//然後定義返回這個陣列型別的函式

function strsplit(strsplit,str:string):tarr ;

varstr: array[1..2] of integer;

i: integer;

begin

str[1]:=0;

str[2]:=1;

for i:= 1 to 2 do

result[i]:=strl[i];

end;

應該可以的,你再試試看

11樓:己聞楣

方法有二:

1、返回動態陣列(如樓上意見),但需要在給陣列元素賦值之前,申請空間,呼叫setlength,樓上的忽略了這句,必然出現資料訪問異常;呼叫setlength也有兩種方案,其一是每收集一個,就申請擴大一次,再來賦值,其二是批量申請一批,例如一批幾百個,在未超越幾百個時,可以隨時賦值,當達到資料長度極限時,再次批量申請,最後根據實際收集到的元素個數,重新設定一次長度。

2、返回足夠大的靜態陣列,要求預先定義一個足夠大的陣列型別和變數(根據需要而定,例如假設檔案不大,估計不會超過1萬個數兒,就定為10000),以變數作為引數傳入(var傳指標),函式處理時可以隨意賦值,但需要通過返回值指明實際上收集到的元素個數。

delphi中的陣列型別和集合型別有什麼區別?

12樓:匿名使用者

陣列相對於集合,最大的特徵是陣列中的每個資料都要佔記憶體,不管你用還是不用。

集合對於陣列,最大的特徵是集合裡的東西都是唯一的,不允許重複。

你可以這麼理解:集合就是個位變數,有就是標記為1,沒有就是標記為0,集合中的每一個成員具體分配到哪一位上去,那是編譯器的事,你直接拿成員來用就好了。

C語言程式設計中陣列的定義,c語言陣列的定義

這種題目一般不希望設計記憶體管理。所以一般都是進可能給一個比較大的陣列。例如a 10 表示位數不會超過十,你輸入的時候需要個索引記錄a陣列有效的位數。使用的時候,只使用有效位數。肯定會有一段記憶體不用的。或多或少。這就是陣列儲存動態資料特點。如果記憶體管理的話,你設計個增量比如5.一旦索引告訴你10...

delphi中如何通過按鈕把我輸入的資料插入到數

控制元件 adoquery11 連資料庫2 輸入語句select from 資料庫的資料表名3 設定為truedatasource1連控制元件adoquery1edit1 欄位wordedit2 欄位passwordbutton1dbgrid 檢視輸入的內容 adoquery1.insert ado...

JS傳遞的陣列引數在方法中居然不是陣列型別你敢信

截圖截全一點,一段一段的上下文都不知道是什麼。本地測試沒問題。你在仔細找找 另外補充一句console.dir 可以顯示一個物件所有的屬性和方法 js引數傳遞陣列物件,修改此引數,會影響原陣列嗎 會不會修改原數 組需要看你的函式裡面的方法改變沒有改變原陣列的資料,舉個例子 回1,方法中改變了答原資料...