Re: [問題] if是不是函數
※ 引述《zxvc (眾生都是未來佛)》之銘言:
: ※ 引述《yauhh (喲)》之銘言:
: : <cut />
: : C 的 if 意思確實是這樣子. 對同一個事實q而言,p是true,q就跟著是true.
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 這句話就錯了。
: p q p->q
: 1 0 0
: 0 0 1
: p是true,q沒有跟著是true。
: [恕刪]
==============================================================================
如果針對 C 程式語言來講, 前面已有網友提到 if(a) 跟 function procedure foo(x)
形式雖同, 但其實不稱為 function statement 而是被指定為特定的 keyword 稱為
if statement.
在程式語言上, if(a) 不會被 compiler 認定為這是一個 function statement.
===========================
如果是一段片段程式
input x;
if (x > 0) then y=x else y=-x ;
output y;
這片段程式 敘述了 input x 與 output y 的關係, y 對 x 的結果符合
數學上的下列 y=fun(x) 函數關係:
-- x , x > 0;
fun(x) = :
:
-- -x , x < = 0;
這個片段程式 代表一個 function block ; y = fun(x) 的等效計算敘述.
===================================================================
input output
-----------------------
p q | fun(p,q)
===================
0 0 | 1
0 1 | 1
1 0 | 0
1 1 | 1
符合此真值表關係的 功能(函數) fun(p,q) 被稱為 p -> q implied function.
fun(p,q) 在此 當然是符合數學上函數的關係.
Note: p q 是 fun(p,q) 的 輸入 (是自變數, 不是依變數) 不是 輸出.
=======================================================================
流程圖對 decision block 的說法是 conditional branch , 因條件不同而改
變執行次序, 執行不同的 statement.
if (condition .EQ. true) then s1 else s2;
實況是程式語言的 if statement 由 conditional brach 基本指令來實現.
若是 procedure oriented PL , branch 指明的是執行時的次序步驟.
=======================================================================
View point 不同, 詮釋會因而有異, 還是講好適用範圍會比較好.
推
09/29 10:53, , 1F
09/29 10:53, 1F
推
09/29 11:41, , 2F
09/29 11:41, 2F
推
09/29 11:58, , 3F
09/29 11:58, 3F
→
09/29 11:59, , 4F
09/29 11:59, 4F
→
09/29 12:00, , 5F
09/29 12:00, 5F
→
09/29 12:01, , 6F
09/29 12:01, 6F
p -> q 是數學或邏輯上的 implied function , 不是程式語言裡的
if (p) then do {q} 這種 conditional branch instruction (statwment).
※ 編輯: ggg12345 來自: 140.115.4.12 (09/29 12:08)
推
09/29 12:15, , 7F
09/29 12:15, 7F
推
09/29 23:27, , 8F
09/29 23:27, 8F
推
10/20 05:35, , 9F
10/20 05:35, 9F
討論串 (同標題文章)
PLT 近期熱門文章
PTT數位生活區 即時熱門文章