u = l * v;
m = 32;
f = m + v;
返回頁首
解決方案域
我們的設計目標是能夠按照變量和約束條件表示上述關系。
約束條件將在變量之間指定和實施某種特定關系。變量保留值并可能參與一個以上的約束條件。例如:add(x, y, z) 指定變量 x、y 和 z 的相互關系為 x + y = z;multiply(x, y, z) 指定關系 x*y = z;constant(5, x) 指定 x 的值必須為 5。我們將把上述約束條件組合起來,以構成能夠表示整個方程式的約束網絡。
我們創建了兩個變量 — c 和 f,并且用我們的約束網絡將它們鏈接在一起。
variable c = new variable();
variable f = new variable();
cfconverter(c, f);
cfconverter 是攝氏-華氏網絡。該網絡按如下方式生成。
variable u = new variable();
variable k = new variable();
constant c1 = new constant(9, k);
multiply m1 = new multiply(c, k, u);
variable l = new variable();
constant c2 = new constant(5, l);
variable v = new variable();
multiply m2 = new multiply(v, l, u);
variable m = new variable();
constant c3 = new constant(32, m);
add a = new add(v, m, f);
變量 u、v、k、l、m 使用 add、multiply 和 constant 這些約束條件(對應于我們在前面分解該方程式的方式)相關聯。在這樣的網絡上,如果我們現在可以設置 c 的值,則我們應當能夠看到 f 的值被計算出來;反之亦然。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/