-
您似乎在使用 pascal 中的函式時犯了乙個錯誤,沒有返回正確的結果。
pascal 中的函式可以帶回乙個返回值,該值儲存在結果中(例如,C 使用關鍵字 return 返回)。
例如,以下函式始終返回 1:
function foo:integer;
beginresult:=1;
end;當您呼叫 foo 時,它會帶回乙個 1。 例如,您可以在主程式中編寫如下內容:
vari:integer;
i:=foo;
這樣,foo 的返回值 1 被分配給 i。
也可以是這樣的。
if(foo=1) then ..
此條件分支的結果始終為 true。
背景到此結束。
讓我們來看看你的函式。
function max(x,y,z:real):real;
var i,t:real;
beginif xif xi:=x;end;
我猜你的意圖是用 i 來保持最大值。 經過兩次交換後,x被替換為最大的數字,x的值被分配給i,因此i是x,y,z的最大值。 但就像我之前說的,該函式只帶回結果的值,它不知道你希望它帶回 i。
因此,您在主程式中無法獲得正確的結果。
此外,這裡沒有必要交換 x、y 和 z。 只需儲存最大值即可。
因此,請對函式進行以下更改:
function max(x,y,z:real):real;
varmax:real;
beginmax:=x;
if maxif maxresult:=max;
end;完成。
ps:下次提問時,記得把問題解釋清楚,否則很難找到問題所在。
PS再說一遍:你的學習進度夠慢的......
示例**:d編譯並執行 Elphi7。
program hanshu;
var a,b,c,m:real;
function max(x,y,z:real):real;
varmax:real;
beginmax:=x;
if maxif maxresult:=max;
end;begin
read(a,b,c);
m:=max(a,b,c)/(max(a+b,b,c)*max(a,b,b+c));
writeln(m:10:4);
readln;
end.
-
函式值型別 Integer 自然變數型別 Integer。
abs,sqr,pred,succ
函式值型別 實數 自然變數型別 整數。
sin、cos、arctan、ln、exp、sqrt 函式值型別 字元 自然變數型別 整數。
char 函式 值 型別 布林 自然變數 型別 整數。
奇數函式值型別 整數 自然變數型別 實數 截斷、捨入
函式值型別 實數 自然變數型別 實數。
sin、cos、arctan、ln、exp、abs、sqr、函式值型別、整數、自然變數型別、字元。
ORD 函式值型別 字元 自然變數型別 字元 pred, succ
函式值型別:Integer Natural 變數型別:Boolean。
ord 函式的值型別是布林 自然變數型別 Boolean pred, succ
函式值型別 Boolean Natural 變數型別檔案。
eof,eoln
奇數確定奇數和偶數。
絕對的ABS。
sqr 是平方函式。
CHR 查詢與 ASCLL 程式碼對應的字元。
ord 查詢字元的 ASCLL 程式碼。
截斷結束函式(刪除小數點)。
四捨五入。
pred 是字元 pred('b')='a'
succ 找到角色的後繼者 succ('b')='c'
-
函式具有返回值,但過程沒有。
個人觀點:流程是雞肋骨,可以用功能代替。
示例:使用函式。
program cs;
vara,b:longint;
function jiafa(c,d:longint):longint;
beginjiafa:=c+d;
end;begin
readln(a,b);
writeln(a,'+',b,'=',jiafa(a,b));
end.看看上面的加法過程。
輸入兩個數字。
例如,1 2 輸出 1+2=3
其中 jiafa 是乙個返回值為 longint 型別的函式,它本身可以看作是 longint;
功能相同,使用過程相同。
program cs;
vara,b,sum:longint;
procedure jiafa;
beginsum:=a+b;
end;begin
readln(a,b);
jiafa;
writeln(a,'+',b,'=',sum);
end.由於該程序沒有返回值,因此您必須操作全域性變數,否則會浪費工作。
真的是這個功能,一般都是用過程來讀取,設定初始值,輸出。。。
函式(尤其是遞迴呼叫)用於特定計算。
如果你不明白,書中一定有什麼東西。
-
唉。。。 其實本質沒什麼不同,只是函式支援返回值...
-
你為什麼胡說八道。
它應該是一樣的。
-
這太過分了。
有系統預設值,您也可以自己定義它們。
-
太多的 1,2 倍功能。
反比例函式。
一維陣列。 二維陣列。
很難數。
-
上面的那個,你誤解了“功能”的含義。
抱著主,聽:
為了解決複雜的問題,我們經常將乙個大型程式分成幾個相對獨立的程式模組,每個模組都用於實現乙個特定的功能。 這樣的程式塊稱為子例程。 整個程式通過使用乙個主程式作為線索並呼叫幾個子程式來解決問題。
下圖顯示了主程式和呼叫的子例程之間的關係,我們應該注意,當呼叫乙個子例程時,它總是返回到呼叫點的下乙個語句以繼續執行。 在 Pascal 中,子例程有兩種形式:函式和過程。
自定義函式必須放在其主程式的描述部分。 呼叫自定義函式就像呼叫標準函式一樣。 該函式最終返回乙個值,因此可以將該函式視為一段資料並放入表示式中。
過程:描述可以包括常量描述、變數描述、型別描述,也可以包括其他函式和過程的描述。 這個過程也可能是無法解釋的。
描述部分中定義的變數稱為區域性變數,在程序完成並返回其更高階別的程式後,這些區域性變數將全部釋放,而不會對主程式產生任何影響。
-
返回結果系統是將函式的最終值返回給呼叫它的程式。
函式必須向呼叫它的程式返回值,而過程不會向呼叫它的程式返回值。 該過程更像是乙個子程式。
-
我測試了一下。 int 和 trunc 得到的值是相同的。 但是,如果在 int 函式之前使用 inttostr,則會報錯,並且只能使用 floattostr。
而 TRUNC 前面是 inttostr 和 floattostr也許返回值型別不同,我沒有看到其他任何不同之處。
-
這兩個函式都採用整數部分,但 int 的結果是實數,trunc 的結果是整數。
如 int(trunc(
我也看過書,在網上查了一下,到處的答案都不一樣,然後我親自在freepascal上測試了上面的結果。
-
int 實際上是乙個捨入函式,四捨五入。 也就是說,trunc,雖然也是,但採用截斷方法。 即
-
int 四捨五入,即數字向下捨入到最接近的整數。 例如,int( 返回 5,int( 返回 -6,即返回值小於原始值。
frunc?它應該是截斷的,對吧?
TRUNC 被截斷,即僅刪除小數部分。 例如 trunc(return 5, int(return -5.
-
TRUNC 是截斷的,int 是向下捨入的。 它們在正數上是相同的,但在負數上卻不是。 向下捨入為 -2 並截斷為 -1,因此 int(,trunc(
-
1.定義函式的一般格式是。
function(a,b:integer):sz;(type sz=array[0..199] of byte;)
beginend;
k 的值範圍是多少?
第二個問題更簡單。
您知道嗎,例如,轉換 (2)10=(10)2 的最簡單方法是什麼?
1 0 我認為 246810....應該反過來:十進位數也是如此,例如十進位數 3、6、9、12......
-
首先定義乙個常量。
shu='0123456789abcdef'
然後,您可以用數字組合位置。
怎麼做: 問題 1:取餘數倒寫。
問題 2:增加功率。
2. 清除所有資料。 如何進入恢復:在關機狀態下,先按住“音量調高按鈕”,然後長按“關機按鈕”,開機畫面出現時鬆開,即可進入恢復。 >>>More
第一天寫寒假作業(語文+數學),第二天寫作文或日記(記得努力,手痠痛了就喊:新春哥,幫你完成作業) 第三天,上午做2篇數學試卷,下午做3篇數學試卷,第四天抄1篇(圈14節課) 第5天抄寫(圈114課) 1篇文章 寫35閱讀報告。好的,完成了。