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,方法中改變了答原資料...