版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
IDL強(qiáng)大的交互式數(shù)據(jù)處理開發(fā)語(yǔ)言(66頁(yè))怎樣思想,就有怎樣的生活I(lǐng)DL強(qiáng)大的交互式數(shù)據(jù)處理開發(fā)語(yǔ)言(66頁(yè))IDL強(qiáng)大的交互式數(shù)據(jù)處理開發(fā)語(yǔ)言(66頁(yè))怎樣思想,就有怎樣的生活——強(qiáng)大的交互式數(shù)據(jù)處理開發(fā)語(yǔ)言內(nèi)容語(yǔ)法基礎(chǔ)程序設(shè)計(jì)圖形系統(tǒng)與圖像處理IDL集成開發(fā)HelloWho例子分析以及源文件創(chuàng)建PROHelloWho;PRO用于定義一個(gè)過程,HelloWho是過程名;表示注釋name='';定義一個(gè)字符串變量等于空,可以看到IDL為強(qiáng)語(yǔ)言類型、其中字符用‘’或“”read,name,prompt='inputyourname:';按提示信息輸入姓名;讀取輸入信息到字符串變量中。查看幫助(鼠標(biāo)懸停)、F1print,‘Hello,’,name,‘!’;依次輸出Hello、輸入的姓名和!;向控制臺(tái)輸出End;結(jié)束數(shù)據(jù)類型DataType基本數(shù)據(jù)類型組合數(shù)據(jù)類型常量Constants整型常量浮點(diǎn)型和雙精度常量十進(jìn)制BytenB12B,34BIntegernornS12,12S,425,425SUnsignedIntegernUornUS12U,12USLongnL12L,94LUnsignedLongnUL12UL,94UL64-bitLongnLL12LL,94LLUnsigned64-bitLongnULL12ULL,94ULL常量:是指運(yùn)行過程中其值始終不會(huì)發(fā)生變化的數(shù)據(jù)。n.102..n
.102n.n
10.2nE10EnEsx
10E5n.Esx
10.E-3.nEsx.1E+12n.nEsx
2.3E12雙精度的與浮點(diǎn)型的形式類似,把D換成E即可復(fù)數(shù)常量字符常量
復(fù)數(shù)由實(shí)部和虛部?jī)刹糠纸M成,實(shí)部和虛部都可以是浮點(diǎn)數(shù)或者雙精度浮點(diǎn)數(shù),格式為COMPLEX(實(shí)部,虛部)或者COMPLEX(實(shí)部)如:COMPLEX(1.2,2),COMPLEX(102.8)
用定界符號(hào)括起來(lái)的任意字符,又稱字符串。定界符號(hào):‘’,“”配對(duì)使用‘
Hithere"
定界符號(hào)是字符串一部分,用另一個(gè)'I'mhappy'0到7打頭時(shí)用‘’
“129”變量Variables變量:是指運(yùn)行過程中其值可以發(fā)生變化的數(shù)據(jù)。變量名是指變量起的名字,變量的功能是用來(lái)存儲(chǔ)各種數(shù)據(jù)類型的常量。變量的命名規(guī)則:變量名由英文字母、數(shù)字、下劃線和符號(hào)$組成,而且必須以英文字母開頭,長(zhǎng)度最多不超過128個(gè)字符,中間不能有空格。
EOF、6A、_36、AB、abcd
系統(tǒng)變量?jī)?nèi)存變量根據(jù)來(lái)源分為內(nèi)部系統(tǒng)變量和自定義系統(tǒng)變量。系統(tǒng)變量的名稱均由感嘆號(hào)“!”開頭。自定義系統(tǒng)變量,使用DEFSYS臨時(shí)存儲(chǔ)于內(nèi)存中的變量,用來(lái)存放操作或程序運(yùn)行過程中的各種類型的原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果。
內(nèi)存變量的創(chuàng)建及其類型轉(zhuǎn)換
非強(qiáng)數(shù)據(jù)語(yǔ)言,變量的屬性是動(dòng)態(tài)改變的
整型為短整型,注意使用L
var=5
為整型
var=var*2.0
變?yōu)楦↑c(diǎn)
NaNIDL>myvar=32L;定義短整形變量IDL>myvar1=32LL;定義長(zhǎng)整形形變量IDL>HELP,myvar;顯示變量myvar的信息IDL>HELP,MYVAR1;顯示變量myvar1的信息IDL>myvar3=1.2DIDL>myvar*=myvar3IDL>mystr4=‘8’IDL>myvar5=myvar+long(mystr4)IDL>myvar6=COMPLEX(2.0,5.0D)從執(zhí)行結(jié)果可以看到1、IDL語(yǔ)言為非強(qiáng)語(yǔ)言類型、變量類型定義通過后綴名、‘’、COMPLEX來(lái)2、變量需要先定義后調(diào)用、語(yǔ)言不區(qū)分大小寫3、變量類型動(dòng)態(tài)改變4、了解類型轉(zhuǎn)換函數(shù)5、認(rèn)識(shí)IDL命令行、通過鍵盤↑、↓可以看前后面輸入的命令I(lǐng)DL命令行、類型、變量練習(xí)數(shù)組Arrays數(shù)組格式數(shù)組創(chuàng)建數(shù)組:一組有序數(shù)據(jù)的集合,由一組名字相同,而下標(biāo)不同的多個(gè)元素組成數(shù)組元素:數(shù)組中的每一個(gè)元素。一個(gè)數(shù)組元素又相當(dāng)于一個(gè)內(nèi)存變量格式:數(shù)組名:[下標(biāo)列表]
數(shù)組名:是數(shù)組的名字,其命名的規(guī)則與變量命名規(guī)則相同。下標(biāo)列表:表示數(shù)組中數(shù)組元素的位置,可以是常量、變量、數(shù)組或表達(dá)式;下標(biāo)列表中下標(biāo)要用逗號(hào)。1.數(shù)組的直接創(chuàng)建法格式:數(shù)組名:[表達(dá)式表]
表達(dá)式表:數(shù)組中數(shù)組元素的值。數(shù)組元素的總數(shù)等于各維數(shù)組的元素個(gè)數(shù)的乘積。數(shù)組各維下標(biāo)的計(jì)數(shù)從0開始,到各維數(shù)組元素個(gè)數(shù)減少1結(jié)束只能創(chuàng)建一維數(shù)組到三維數(shù)組
一維6個(gè)元素myArray[6]:myArray=[212,532,96,25,67,78]
二維2行3列二維數(shù)組myArray[3,2]:myArray=[[1,2,3],[4,5,6]]
三維數(shù)組myArray[3,2,2]:2行(2維)3列(1維)2層(3維)
myArray=[[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]array[n,m]表示n列m行(與其他語(yǔ)言有別),按行排列,0為下標(biāo)起點(diǎn)2.數(shù)組的函數(shù)創(chuàng)建法數(shù)組引用1.數(shù)組名
功能:直接用數(shù)組的名字調(diào)用整個(gè)數(shù)組,使所有數(shù)組元素一起參加各種運(yùn)算2.數(shù)組[下標(biāo)列表]
即數(shù)組名[下標(biāo)],直接調(diào)用下標(biāo)列表指定的數(shù)組元素。3.數(shù)組[(D11:D12[,…,D81:D82])]
在指定下標(biāo)范圍內(nèi),用數(shù)組名[下標(biāo)]格式,直接調(diào)用局部數(shù)組元素4.(數(shù)組表達(dá)式)[下標(biāo)列表]
直接調(diào)用下標(biāo)列表指定的數(shù)組元素一起參加“數(shù)組名表達(dá)式指定的運(yùn)算”數(shù)組函數(shù)格式:MAX(數(shù)組[,MIN=變量])輸出最大值,最小值存儲(chǔ)在變量中格式:MIN(數(shù)組[,MIN=變量])輸出最小值,最大值存儲(chǔ)在變量中格式:N_ELEMENTS(數(shù)組)輸出數(shù)組中元素個(gè)數(shù)。格式:MEAN(數(shù)組,[/DOUBLE])計(jì)算數(shù)組平均值格式:VARIANCE(數(shù)組,[/DOUBLE])計(jì)算數(shù)組方差格式:STDDEV數(shù)組,[/DOUBLE])計(jì)算數(shù)組標(biāo)準(zhǔn)差……數(shù)組練習(xí)IDL>myvar=[[1,2,3],[4,5,6]];直接創(chuàng)建法定義兩行三列數(shù)組IDL>print,myvar;顯示整個(gè)數(shù)組IDL>print,myvar[2,0];顯示第一行第三列的數(shù)組元素IDL>print,myvar[*,0];顯示第一行數(shù)組元素IDL>myvar2=indegen(9,6);創(chuàng)建6行9列的二維數(shù)組其值為0~53IDL>myvar3=indegen+10;所有的元素值都加10賦給同維數(shù)組myvar3IDL>myvar2[0,2:*]=600;講第一列中從第三行開始的元素賦值為600IDL>index=[[0,2],[0,3],[0,5]];創(chuàng)建下標(biāo)數(shù)組IDL>myvar5=total((myvar*2+6)[index]);數(shù)組下標(biāo)index中三個(gè)元素參加運(yùn)算IDL>myvar6=MEAN(myvar2);數(shù)組平均值1、了解數(shù)組的直接創(chuàng)建法和函數(shù)創(chuàng)建法2、數(shù)組下標(biāo)從0開始,區(qū)別于其他語(yǔ)言列行3、數(shù)組元素的調(diào)用4、數(shù)組函數(shù)調(diào)用,避免用循環(huán)結(jié)構(gòu)體Structures結(jié)構(gòu)體:由一組不同類型的變量、數(shù)組、結(jié)構(gòu)體組合而成的復(fù)合數(shù)據(jù)類型匿名結(jié)構(gòu)(AnonymousStructures)署名結(jié)構(gòu)(NamedStructures)程序運(yùn)行過程中,數(shù)據(jù)成員個(gè)數(shù)和類型可能發(fā)生變化數(shù)據(jù)成員:結(jié)構(gòu)體中的每一個(gè)變量、數(shù)組、結(jié)構(gòu)體程序運(yùn)行過程中,命名結(jié)構(gòu)時(shí)所用的定義,不能改變。匿名結(jié)構(gòu)體創(chuàng)建格式1:結(jié)構(gòu)體變量={成員1:表達(dá)式1,成員2:表達(dá)式2,…,成員n:表達(dá)式n,}
格式2:結(jié)構(gòu)體變量=CREATE_STRUCT(‘成員1’,表達(dá)式1,[,···,’成員n’,表達(dá)式n,[,結(jié)構(gòu)體變量2,···])
格式3:結(jié)構(gòu)體變量=CREATE_STRUCT([‘成員1’,···,’成員n’],表達(dá)式1,···,表達(dá)式n,[,結(jié)構(gòu)體變量2,···])
格式4:結(jié)構(gòu)體變量={結(jié)構(gòu)體名}署名結(jié)構(gòu)創(chuàng)建格式1:結(jié)構(gòu)體變量={結(jié)構(gòu)名,成員1:表達(dá)式1,成員2:表達(dá)式2,…,成員n:表達(dá)式n}
格式2:結(jié)構(gòu)體變量=CREATE_STRUCT{‘成員1’,表達(dá)式1,[,…,’成員n’,表達(dá)式n,[,結(jié)構(gòu)體變量2,···],NAME=‘結(jié)構(gòu)名’}
格式3:結(jié)構(gòu)體變量=CREATE_STRUCT{[‘成員1’,···,’成員n’],表達(dá)式1,···,表達(dá)式n,[,結(jié)構(gòu)體變量2,···],NAME=‘結(jié)構(gòu)名’}結(jié)構(gòu)體賦值結(jié)構(gòu)體調(diào)用格式1:結(jié)構(gòu)體變量.成員=表達(dá)式格式2:結(jié)構(gòu)體變量={結(jié)構(gòu)體名,表達(dá)式,···}僅僅對(duì)于署名結(jié)構(gòu)體結(jié)構(gòu)體變量.成員結(jié)構(gòu)體練習(xí)IDL>xStruct={NAME:’xiaoming’,AGE:20}IDL>yStruct=CREATE_STRUCT('NAME','xiaohong','AGE',18)IDL>zStruct=zStruct=CREATE_STRUCT(['NAME','AGE'],'xiaohua',18)IDL>p=CREATE_STRUCT('A',1,'B','xxx')IDL>p=CREATE_STRUCT('FIRST',0,p,'LAST',3)IDL>pp=CREATE_STRUCT('pp',8,p)IDL>S={ST,TagA:100,TagB:200}IDL>S1={ST,5,6}1、了解結(jié)構(gòu)體的匿名、署名創(chuàng)建。指針PointerIDL的指針與其他語(yǔ)言的指針有很大的不同,它不是指向存儲(chǔ)的地址而僅僅是一個(gè)輕型的指向一個(gè)堆變量的引用(指針變量)。堆變量可以動(dòng)態(tài)分配(數(shù)據(jù)類型和數(shù)組維數(shù)),這意味著傳遞指針變量就相當(dāng)于傳遞動(dòng)態(tài)數(shù)據(jù)。PointerReferencePointerDataPointerinHeapVariables指針創(chuàng)建指針調(diào)用指針的釋放格式:指針變量=PTR_NEW([變量])x=30myptr=PTR_NEW(x)格式:*指針變量*myptr格式:PTR_FREE指針變量,…,指針變量nPTR_FREE,myptr使用之后,不要忘記及時(shí)釋放運(yùn)算符數(shù)值型運(yùn)算符關(guān)系型運(yùn)算符邏輯型表達(dá)式()圓括號(hào)+加++自加–
減–
–
自減*乘/除法^乘方<求小于
>求大于
[]數(shù)組或下標(biāo)#矩陣列乘##矩陣行乘·
結(jié)構(gòu)體成員操作PRINT,10<25<80<5<29;輸出:5EQ等于(equal)
LT小于(lessthan)
GT大于(greaterthan)
NE不等于LE小于等于GE大于等于~邏輯非運(yùn)算
&&邏輯與運(yùn)算||邏輯或運(yùn)算總結(jié)了解數(shù)據(jù)類型、基本類型變量定義創(chuàng)建數(shù)組、結(jié)構(gòu)體、指針基本運(yùn)算符號(hào)IDL源文件、IDL命令行、有效利用幫助內(nèi)容語(yǔ)法基礎(chǔ)程序設(shè)計(jì)圖形系統(tǒng)與圖像處理IDL集成開發(fā)程序設(shè)計(jì)的基本結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)語(yǔ)句序列A語(yǔ)句序列B條件表達(dá)式?語(yǔ)句序列A語(yǔ)句序列BYN
條件表達(dá)式?語(yǔ)句序列AYN循環(huán)執(zhí)行多次依據(jù)不同條件執(zhí)行不同語(yǔ)句依據(jù)語(yǔ)句排列先后,依次執(zhí)行選擇控制IF語(yǔ)句格式1:IF表達(dá)式THEN語(yǔ)句1[ELSE語(yǔ)句2]格式2:IF表達(dá)式THENBEGIN
語(yǔ)句序列1ENDIF[ELSEBEGIN
語(yǔ)句序列2ENDELSE]
IF表達(dá)式1THENBEGINIF表達(dá)式2THENBEGIN
語(yǔ)句序列1ENDIFELSEBEGIN
語(yǔ)句序列2ENDELSEENDIFELSEBEGINIF表達(dá)式3THENBEGIN
語(yǔ)句序列3ENDIFELSEBEGIN
語(yǔ)句序列4ENDELSEENDELSEIF語(yǔ)句的嵌套IF練習(xí)PRO
IFTEST
READ,PROMPT='inputx=',x
ifxLE
0
THEN
BEGINy=5*x^2+3
ENDIF
ELSE
BEGINy=5*x^2-3
ENDELSE
print,'y=',yENDCASE語(yǔ)句格式:CASE表達(dá)式OF
表達(dá)式1:BEGIN
語(yǔ)句序列1END
表達(dá)式2:BEGIN
語(yǔ)句序列2END
……
表達(dá)式n:BEGIN
語(yǔ)句序列nEND[ELSE:BEGIN
語(yǔ)句序列n+1END]ENDCASE執(zhí)行CASE過程中,只有一個(gè)語(yǔ)句序列被執(zhí)行。CASE練習(xí)PRO
CASETESTname=''read,name,prompt='inputyourname:'CASEnameOF
'Larry':PRINT,'Stooge1'
'Moe':PRINT,'Stooge2'
'Curly':PRINT,'Stooge3'
ELSE:PRINT,'NotaStooge'
ENDCASE
ENDSWITCH語(yǔ)句格式:SWITCH表達(dá)式OF
表達(dá)式1:BEGIN
語(yǔ)句序列1END
表達(dá)式2:BEGIN
語(yǔ)句序列2END
……
表達(dá)式n:BEGIN
語(yǔ)句序列nEND[ELSEBEGIN
語(yǔ)句序列n+1END]ENDSWITCH執(zhí)行SWITCH過程中,表達(dá)式的值與第幾個(gè)表達(dá)式的值相等,就執(zhí)行與它相應(yīng)語(yǔ)句序列和它后面的所有語(yǔ)句序列。BREAKSWITCH練習(xí)PRO
switchtestx=2
SWITCHxOF
1:BEGIN
PRINT,'one';&break
END
2:BEGIN
PRINT,'two';&break
END
3:BEGIN
PRINT,'three'
;&break
END
4:BEGIN
PRINT,'four'
;&break
END
ELSE:BEGIN
PRINT,'other';&break
END
ENDSWITCHEND循環(huán)控制WHILE語(yǔ)句CONTINUE語(yǔ)句格式1:WHILE表達(dá)式DO語(yǔ)句格式2:WHILE表達(dá)式DOBEGIN
語(yǔ)句序列AENDWHILE格式:CONTINUE用在循環(huán)語(yǔ)句中,用于終止本次循環(huán),轉(zhuǎn)向WHILE進(jìn)行下一次循環(huán)WHILE表達(dá)式1DOBEGIN
語(yǔ)句序列1IF表達(dá)式2THENBEGIN
語(yǔ)句序列2CONTINUEENDIFENDWHILEBREAK語(yǔ)句FOR語(yǔ)句格式:BREAK用在循環(huán)語(yǔ)句中,用于無(wú)條件退出包含該BREAK語(yǔ)句的最內(nèi)層循環(huán),轉(zhuǎn)向執(zhí)行該層循環(huán)語(yǔ)句ENDWHILE后面的語(yǔ)句。WHILE表達(dá)式1DOBEGIN
語(yǔ)句序列1IF表達(dá)式2THENBEGIN
語(yǔ)句序列2BREAK
語(yǔ)句序列3ENDIFENDWHILE格式1:FOR變量=初值,終值[,步長(zhǎng)]DO語(yǔ)句格式2:FOR變量=初值,終值[,步長(zhǎng)]DOBEGIN
語(yǔ)句序列AENDFOR變量用于控制循環(huán)次數(shù);初值是循環(huán)開始時(shí),變量的初始值;終止是循環(huán)結(jié)束時(shí),變量的終止值。WHILE、CONTINUE、BREAK練習(xí)PRO
whiletestyn=""WHILE
1
DO
BEGIN
READ,PROMPT="inputX=?",x
READ,PROMPT="inputY=?",y
PRINT,x,"+",y,"=",x+y
READ,PROMPT="GOON(YorN)",ynyn=STRUPCASE(yn)
IFynEQ
"Y"
THEN
BEGIN
CONTINUE
ENDIF
ELSE
BEGIN
BREAK
ENDELSEENDWHILEENDIF、CONTINUE、BREAK練習(xí)PRO
FORTESTFORI=1,10
DO
BEGIN
;Ifodd,startnextiteration:
IF(IEQ
1)THEN
CONTINUE
IF(IEQ
5)THEN
BREAK
PRINT,IENDFOR
ENDREPEAT語(yǔ)句GOTO語(yǔ)句格式1:REPEAT語(yǔ)句UNTIL表達(dá)式格式2:REPEATBEGIN
語(yǔ)句序列
ENDREPUNTIL表達(dá)式功能:循環(huán)執(zhí)行語(yǔ)句序列若干次,直到表達(dá)式的值為真,結(jié)束循環(huán);
REPEAT語(yǔ)句中的語(yǔ)句序列至少執(zhí)行一次。格式:GOTO,標(biāo)號(hào)功能:程序的執(zhí)行無(wú)條件轉(zhuǎn)向標(biāo)號(hào)所定的語(yǔ)句,用于強(qiáng)行退出循環(huán)或建立出口;
GOTO語(yǔ)句只能從循環(huán)語(yǔ)句的循環(huán)體中轉(zhuǎn)到循環(huán)語(yǔ)句的外面;反之,則不允許。REPEAT、GOTO練習(xí)PRO
REPEATTESTi=1REPEAT
BEGIN
PRINT,i
GOTO,Jump1ENDREP
UNTIL(iGT
1)Jump1:Print,"outtherepeat"END自定義函數(shù)自定義函數(shù)建立自定義函數(shù)調(diào)用格式1:FUNCTION函數(shù)名語(yǔ)句序列
RETURN,表達(dá)式
END格式2:FUNCTION函數(shù)名[,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n]
命令序列
RETURN,表達(dá)式
END格式1:函數(shù)名()格式2:函數(shù)名([,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n])逗號(hào),區(qū)別于其他語(yǔ)言過程過程建立過程調(diào)用格式1:PRO過程名語(yǔ)句序列
END格式2:PRO過程名[,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n]
命令序列
END格式1:過程名()格式2:過程名[,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n]過程與自定義函數(shù)區(qū)別:自定義函數(shù)最后一個(gè)語(yǔ)句要返回一個(gè)函數(shù)值;調(diào)用過程時(shí)只需把參數(shù),[關(guān)鍵字]直接放在過程后面即可。參數(shù)和關(guān)鍵字參數(shù)過程和函數(shù)可以接受兩種類型的數(shù)據(jù),參數(shù)和關(guān)鍵字參數(shù):函數(shù)和過程相互調(diào)用時(shí),進(jìn)行相互傳輸和交換的數(shù)據(jù)。功能:實(shí)現(xiàn)數(shù)據(jù)在過程和函數(shù)之間的相互傳遞。1.參數(shù)一般要有確定的順序和類型;2.參數(shù)在使用時(shí),一般是必選項(xiàng);3.參數(shù)使用時(shí)可以是確定的常量、變量、函數(shù)、數(shù)組、結(jié)構(gòu)、指針或?qū)ο?,或者它們組成的有確定值的表達(dá)式;4.參數(shù)在使用時(shí),必須先定義,再使用;5.參數(shù)在使用時(shí),參數(shù)的個(gè)數(shù)、類型和順序要和定義時(shí)一致。關(guān)鍵字關(guān)鍵字:函數(shù)和過程相互調(diào)用時(shí),進(jìn)行相互傳輸和交換的數(shù)據(jù)。功能:也實(shí)現(xiàn)數(shù)據(jù)在過程和函數(shù)之間的相互傳遞或者使某些運(yùn)行環(huán)境配置生效。1.關(guān)鍵字的順序是任意的2.關(guān)鍵字在使用時(shí),一般是可選項(xiàng);3.關(guān)鍵字使用時(shí)可以是確定的常量、變量、函數(shù)、數(shù)組、結(jié)構(gòu)、指針或?qū)ο?,或者它們組成的有確定值的表達(dá)式;4.關(guān)鍵字在使用時(shí),必須先定義,再使用;5.關(guān)鍵字在使用時(shí),順序是可以任意的格式:PRO/FUNCTION過程名關(guān)鍵字1,···關(guān)鍵字n=關(guān)鍵字變量n
命令序列
END參數(shù)和關(guān)鍵字的傳遞傳遞方式分為按值傳遞和按地址傳遞僅僅把參數(shù)和關(guān)鍵字的傳遞給相應(yīng)的函數(shù)和過程的形參。在函數(shù)或過程運(yùn)行過程中所有對(duì)參數(shù)的和關(guān)鍵字的操作,在函數(shù)和過程調(diào)用結(jié)束后不影響參數(shù)和關(guān)鍵字的原值。
按值傳遞按地址傳遞按值傳遞的數(shù)據(jù)有常量、數(shù)組元素、結(jié)構(gòu)體成員、系統(tǒng)變量和表達(dá)式(不包含變量)把參數(shù)和關(guān)鍵字的傳遞給相應(yīng)的函數(shù)和過程的形參。在函數(shù)或過程運(yùn)行過程中所有對(duì)參數(shù)的和關(guān)鍵字的操作,在函數(shù)和過程調(diào)用結(jié)束后直接影響參數(shù)和關(guān)鍵字的原值。按地址傳遞的數(shù)據(jù)變量名、結(jié)構(gòu)名和指針變量-范圍全局變量全程變量:是指整個(gè)程序運(yùn)行過程中,始終有效的變量
系統(tǒng)變量公共變量根據(jù)來(lái)源分為內(nèi)部系統(tǒng)變量和自定義系統(tǒng)變量。系統(tǒng)變量的名稱均由感嘆號(hào)“!”開頭。自定義系統(tǒng)變量,使用DEFSYS自定義公共變量:格式:COMMON公共變量模塊,變量1,···,變量n公共變量一旦被定義,就可以在任意程序中進(jìn)行引用,但是需要先聲明,后引用,聲明的格式與定義的格式相同。局部變量局部變量:是指整個(gè)程序運(yùn)行過程中,僅在程序中局部有效的內(nèi)存變量任何程序中的局部變量,不管其名稱是否相同。均僅在本程序內(nèi)部有效,即進(jìn)入程序生效,退出程序取消,并自動(dòng)釋放其所占有的內(nèi)存空間。PRO
MainVar=10
Sub
PRINT,'Var=',VarENDPRO
SubVar=11
PRINT,'Var=',Var
ENDVar=11Var=10全局變量相互調(diào)用練習(xí)PRO
SetPeople
COMMONSetPeopleInformation,MyName,MyAge,MySex,MyTimeMyName=''MyAge=0B
READ,PROMPT="Name;",MyName
READ,PROMPT="Age;",MyAge
READ,PROMPT="Sex;",MySexMyTime=SYSTIME()ENDPRO
GetPeople
COMMONSetPeopleInformation,MyName,MyAge,MySex,MyTime
PRINT,'Name;',MyName
PRINT,'Age;',MyAge
PRINT,'Sex;',MySex
PRINT,'Time;',MyTimeENDPRO
PeoplesetpeoplegetpeopleENDIDL開發(fā)環(huán)境控制臺(tái)工程管理代碼編輯區(qū)程序和運(yùn)行IDL源文件創(chuàng)建、編輯1、文件→新建→IDL源文件2、Ctrl+N3、工具欄按鈕PRO
MessageHellovar=DIALOG_MESSAGE('HelloWorld!!',/INFORMATION)END例如:建立一個(gè)間的HelloWorld的小程序后綴為.pro程序的編譯程序運(yùn)行1.COMPILEHelloWorld2工具欄按鈕1.RUNHelloWorld3菜單運(yùn)行→編輯2工具欄按鈕
3菜單運(yùn)行→運(yùn)行總結(jié)IDL程序設(shè)計(jì)基本語(yǔ)法過程、函數(shù)及其調(diào)用關(guān)鍵字、參數(shù)全局變量、局部變量程序相互調(diào)用IDLDE環(huán)境、程序調(diào)試內(nèi)容語(yǔ)法基礎(chǔ)程序設(shè)計(jì)圖形系統(tǒng)與圖像處理IDL集成開發(fā)數(shù)據(jù)可視化
直接圖形法Drawdirectlytodevice
(screen,printer,etc.)Veryfast對(duì)象圖像法AdvancedinteractivityOpenGLacceleratedgraphicsTrue3-DrenderingObject-orientedprogramming直接圖形法圖形設(shè)備顏色表格式:SET_PLOT,‘設(shè)備代碼’格式:DEVICE,關(guān)鍵字功能:把當(dāng)前設(shè)備設(shè)定為設(shè)置為‘設(shè)備代碼’指定的設(shè)備功能:設(shè)置當(dāng)前圖形設(shè)備的特性格式:TVLCT,紅色分量數(shù)組,綠色分量數(shù)組,藍(lán)色分量數(shù)組格式:MODIFYCT,顏色表索引變量,紅色分量數(shù)組,綠色分量數(shù)組,藍(lán)色分量數(shù)組窗口系統(tǒng)格式:WINDOW,[,窗口索引變量][,TITLE=標(biāo)題變量][,XPOS=變量1][,YPOS=變量2][,XSIZE=變量3][,YSIZE=變量4]。。。功能:建立一個(gè)指定屬性的窗口格式:WEST[,窗口索引變量]功能:窗口激活格式:WDELETE[,窗口索引變量[,…]]功能:窗口的刪除對(duì)象對(duì)象圖形法格式:OBJ_NEW([類名[,屬性關(guān)鍵字1=屬性值1,…屬性關(guān)鍵字n=屬性值2]])功能:建立一個(gè)指定屬性的對(duì)象,其返回值是一個(gè)對(duì)象格式:OBJ_DESTROY,對(duì)象變量功能:刪除對(duì)象變量指定的對(duì)象,并釋放其所占的內(nèi)存空間格式:對(duì)象變量->方法過程名[,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n]格式:對(duì)象變量->函數(shù)名([,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n])功能:調(diào)用對(duì)象變量的過程功能:調(diào)用對(duì)象變量的函數(shù)圖形系統(tǒng)由窗口類IDLgrWindow創(chuàng)建窗口對(duì)象格式1:窗口對(duì)象名=OBJ_NEW(‘IDLgrWindow’,COLOR_MODEL=0)格式2:窗口對(duì)象名->SetProperty,COLOR_MODEL=0格式3:窗口對(duì)象名->[IDLgrWindow::]Draw[,視圖對(duì)象名]格式4:窗口對(duì)象名->[IDLgrWindow::]Cleanup圖像—直接圖形系統(tǒng)顯示
使用圖像查詢函數(shù)QUERY_*,查詢圖像。使用圖像讀入函數(shù)READ_*,讀入圖像。使用DEVICE命令設(shè)置顯示模式對(duì)于偽彩色,使用LOAD,XLOAD,TVLC
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級(jí)數(shù)學(xué)上冊(cè)一看魔術(shù)-乘法的初步認(rèn)識(shí)信息窗2補(bǔ)充習(xí)題青島版六三制(含答案)
- 2025產(chǎn)品運(yùn)輸合同范文
- 2025的燈飾采購(gòu)合同范本
- 2025年佳木斯貨運(yùn)從業(yè)資格證考試卷
- 耐振型溫度計(jì)行業(yè)深度研究報(bào)告
- 上海戲劇學(xué)院《動(dòng)物解剖學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海外國(guó)語(yǔ)大學(xué)賢達(dá)經(jīng)濟(jì)人文學(xué)院《地圖學(xué)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海體育大學(xué)《Web應(yīng)用開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 乘除法和加減法混合運(yùn)算說(shuō)課稿
- 2025電影或電視劇的版權(quán)轉(zhuǎn)讓合同范本
- 二年級(jí)安全教育期末測(cè)試題
- 2022電大《建筑材料(A)》期末試題及答案
- 團(tuán)隊(duì)合作能力和創(chuàng)新團(tuán)隊(duì)建設(shè)試題100分標(biāo)準(zhǔn)答案
- 22秋中傳媒《傳播學(xué)概論》作業(yè)考核答卷
- 商務(wù)英語(yǔ)視聽說(shuō)知到章節(jié)答案智慧樹2023年山東外國(guó)語(yǔ)職業(yè)技術(shù)大學(xué)
- 西安東原地產(chǎn)品牌年度推廣方案
- C++程序設(shè)計(jì)智慧樹知到答案章節(jié)測(cè)試2023年咸陽(yáng)師范學(xué)院
- 五年級(jí)上冊(cè)道德與法治課件-第8課第四課時(shí) 影響深遠(yuǎn)的漢字人教部編版
- GB/T 23604-2009鈦及鈦合金產(chǎn)品力學(xué)性能試驗(yàn)取樣方法
- 第1章 大數(shù)據(jù)可視化概述
- 2023年湖南交通職業(yè)技術(shù)學(xué)院教師招聘考試筆試題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論