變量定義後就可以給它配置設定資料。dmis語言中可用于指派的指令包括:assign、value、prompt、read。
注意:每執行一次指派指令,變量中存儲的原資料都會被覆寫掉。
把資料配置設定給已定義的變量裡,格式如下:
變量名稱=assign/表達式
變量名稱:一個已定義的變量名。
表達式:一個數字常量,一個字元串,一個算術表達式,一個邏輯表
達式或一個内部函數。
1.dmis指派的主字為assign
不像c語言中,指派直接變量 = 表達式子,dmis的文法為
varname = assign/表達式.
例如,假設之前聲明過一個整型變量tempint,指派的語句為
tempint = assign/50
或者表達式
tempint = assign/25*2
或者包含其它函數的
tempint = assign/sqrt(2500)
結果都是把50這個值賦給了變量tempint.
例如前面聲明了字元串變量tempstr
tempstr = assign/'helloworld'
或者其它函數的表達式
tempstr = assign/concat('hello','world') concat是字元串聯接函數
運作結果,tempstr的值為字元串helloworld.
dmis提供先前聲明的變量的指派。變量可以從定義參數(例如,obtain)獲得,設定為測量結果(例如,value),或者配置設定值(例如,assign)。
先前聲明和指派的變量可以替換任何dmis語句中正确資料類型的任何參數(例如數值,文字文本字元串或标簽)。字元串(類型char)變量可以替換dmis文法中的任何單引号(撇号)字元串。
example
$$
$$ the following example demonstrates substituting a character variable for a
$$ literal text string parameter
decl/global,char,80,mytext
mytext=assign/'this is my text message to the operator'
text/oper,mytext
2.指派運算符
(1)數學指派運算符
數學指派運算符提供用數學運算符來給變量指派的能力。
數學指派語句使用下列數學運算符:
a) + addition 加
b) - subtraction or negation 減
c) * multiplication 乘
d) / division 除
e) ** exponentiation 乘方
一個數學表達式還可以包括由圓括号包圍的其他數學表達式構成的項。dmis允許在數學表達式中實數和整數類型混合出現。對于混合的運算,dmis在執行運算前把整數轉換成實數。運算結果的變量必須聲明成希望的資料類型。
(2)關系運算符
對于向量,隻允許使用比較算符.eq.和.ne.。
(3)邏輯運算符
邏輯指派運算符提供了用邏輯關系運算符來給變量指派的能力。
邏輯指派語句使用下列邏輯算符:
note: a logical expression may also contain elements consisting of other expressions enclosed in parentheses.
examples of the use of the logical assignment statements are as follows:
decl/global,bool,outtol,y,quit
decl/global,intgr,p,q
decl/global,real,cirdia
executable statements
outtol=assign/(cirdia .gt. 0.02)
quit=assign/.false.
y=assign/.not.(p .lt. q)
if/(p .lt. q)
endif
(4)字元指派運算符
字元指派運算符用于把字元串或子串給一個變量指派。
字元指派語句能夠使用下列字元函數:
assign語句例子
1. 把一個變量(oldvar)裡的資料拷貝到另一個變量(newvar)裡。
newvar=assign/oldvar
如果拷貝的變量類型不同則需要添加轉換函數。
decl/local,real,realvar
decl/local,char,50,charvar
$$把實數變量轉換成字元型變量
charvar=assign/str(realvar)
$$把字元轉換成實數
realvar=assign/val(charvar)
2. 把數字輸入變量
number=assign/3
3. 把字元輸入變量
$$注意用單引号
charvar=assign/’abcd’
4. 把數學公式的計算結果輸入到變量
$$計算半徑radius的圓面積
area=assign/3.1415*(radius* radius)
5. 把邏輯判斷結果輸入到變量
$$如果formvar大于0.05得到1否則得到0
outoftolvar=assign/(formvar.gt.0.05)
打開自學習,記錄程式。
1.變量資料區輕按兩下變量名稱,輸入數值或字元,自學習會生成指派語句:
2.如果字元串指派要寫到單引号裡面
3.如果想轉換變量類型需要調用一些特殊函數,可以在變量數值輸入框裡右鍵就會彈出各種函數.
例子
$$輸出正弦值(裡面的函數是将度轉化為弧度)
knptr1 = assign/sin(dtor(30))
$$輸出正切值(裡面的函數是将度轉化為弧度)
knptr1 = assign/tan(dtor(45))
$$算平方根
knptr1 = assign/sqrt(4)
$$3.5取整,無4舍5入,結果是3
knptn1 = assign/int(3.5)
$$3.5取整,有4舍5入,結果是4
knptn2 = assign/nint(3.5)
$$求最小值
knptr1 = assign/mn(4,3,2,1)
$$求最大值
knptr1 = assign/mx(1,2,3,4)
$$輸入ascii碼,輸出字母,65對應a
knptc1 = assign/chr(65)
$$合并字元串,輸出123456789
knptc1 = assign/concat('123','456','789')
$$字元串用分隔符分開,取第2個,這裡第2個是b 。
knptc3 = assign/elemnt(2,'\','a\b\c\d\e\f')
$$後一個字元串在前一個内部的起始位置
knptn1 = assign/indx('12345678','45')