1樓:暢夏侯嵐
你定義的函式不是返回陣列型別的,只是返回乙個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;
應該可以的,你再試試看
2樓:己聞楣
方法有二:
1、返回動態陣列(如樓上意見),但需要在給陣列元素賦值之前,申請空間,呼叫setlength,樓上的忽略了這句,必然出現資料訪問異常;呼叫setlength也有兩種方案,其一是每收集乙個,就申請擴大一次,再來賦值,其二是批量申請一批,例如一批幾百個,在未超越幾百個時,可以隨時賦值,當達到資料長度極限時,再次批量申請,最後根據實際收集到的元素個數,重新設定一次長度。
2、返回足夠大的靜態陣列,要求預先定義乙個足夠大的陣列型別和變數(根據需要而定,例如假設檔案不大,估計不會超過1萬個數兒,就定為10000),以變數作為引數傳入(var傳指標),函式處理時可以隨意賦值,但需要通過返回值指明實際上收集到的元素個數。
delphi 函式返回值的定義問題
3樓:木頭家的柏修斯
樓主:對的。
你可以自己試試麼,不用經常去問人的,呵呵。。。
在窗體上加入乙個tmemo和乙個tbutton在implementations後的部分加入如下**:
function sum(a,b:integer):integerbegin
a:=a+1;
b:=b+1;
result:=a+b;
end;
procedure tform1.button1click(sender:tobject)
vara,b:integer;
begin
a:=3;
b:=4;
memo1.lines.add('a+b='+inttostr(sum(a,b)));//輸出了一行「a+b=7」
memo1.lines.add('a='+inttostr(a)+',b='+inttostr(b));//輸出了一行「a=3,b=4」
end;
還請深刻體會delphi中的函式與過程引數問題~這是基礎問題哈~
4樓:偷心賊使
//i,j是兩個引數,後面是返回值的型別,用result來返回值//如下:呼叫是:myfun(5,6) ,返回值是:6.
function myfun(i,j: integer):integer;
begin
if i > j then
result := i
else
result := j;
end;
5樓:一人一碗
function myfun(i,j:integer):integer;
begin
result:=0;
for ii:=i to j do
result:=result+ii;
end;
這樣可以求出自然數列中從i到j這些數的和。
6樓:匿名使用者
後面的integer定義函式的返回值是整形,括號裡的integer定義函式的兩個引數i,j為整形。
例如下面函式,求兩數之和
function tform1.myfun(i, j: integer): integer;
begin
result:= i+j; //返回值為兩個引數的和
end;
我們可以在button的單擊事件呼叫它
procedure tform1.button1click(sender: tobject);
vari: integer;
begin
i:= myfun(3, 5); //呼叫函式求3和5的和,結果賦值給整形變數i
showmessage('兩數之和為:'+ inttostr(i)); //輸出函式計算的結果
end;
delphi裡function怎麼返回多個值
7樓:匿名使用者
delphi 裡 function 返回多個值,可以考慮以下方法:
一、函式的返回值使用 記錄 record 、陣列 array 等資料型別。 示例**如下:
type
tmydata = record 先定義乙個record有三個返回值
data1: string;
data2: string;
data3: string;
end;
//定義 function的**
function tform1.myfunction(parm: string): tmydata;
var mydata1: tmydata;
begin
mydata1.data1:= 'this is data1:';
mydata1.data2:= 'this is data2:';
mydata1.data3:= 'this is data3:';
result:= mydata1; //傳回為乙個記錄record
end;
二、函式的引數使用 var 引用引數。示例**如下:
function abc(var aa,bb,cc:double):string;//返回3個double值,1個string值
varret: iwantdata;
begin
aa:=1.234;
bb:=2.021;
cc:=3.333;
result:='';
end;
delphi取餘問題,Delphi中的Mod 取模 是什麼意思
如果你是說負數也要取到正數的餘數?很簡單,取x的絕對值。如 x abs x mod y 但是即使使用了絕對值。求得的餘數依然是4,當x為正整數時,餘數才能為 124。因為當前的x超過了整數的最大值所以被錯誤的轉換為了乙個負數 211403004。使用該負數求餘自然為 4。如果你想要求得餘數為 124...
C裡返回值為int型別陣列的函式如何定義
int 實際上是乙個類,它的基類是array.實際上,所有的陣列型別都是類,而且基類是array.int arr new int 10 實際上是建立了int這種型別的乙個物件,只是微軟為了讓大家習慣,就使用了類似c 的陣列定義方式。你的補充問題是不是這個意思 arr randques randque...
運算子函式過載的返回值型別問題,c中為什麼賦值運算子過載返回型別是引用
引數型別 大家都bai知道運算子du 過載函式的引數類zhi型必須是引用型別,這dao是為什麼呢。內拿我們最常用的賦值運 容算符過載來說,如果引數型別不是引用型別,那麼傳參時就需要乙個物件的副本,將實參複製到形參,這種複製是淺複製,並不會為形參分配記憶體空間,這就導致如果類中有指標型別,形參和實參的...