IDL強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言教學(xué)課件_第1頁(yè)
IDL強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言教學(xué)課件_第2頁(yè)
IDL強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言教學(xué)課件_第3頁(yè)
IDL強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言教學(xué)課件_第4頁(yè)
IDL強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ù)處理開(kāi)發(fā)語(yǔ)言(66頁(yè))怎樣思想,就有怎樣的生活I(lǐng)DL強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言(66頁(yè))IDL強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言(66頁(yè))怎樣思想,就有怎樣的生活——強(qiáng)大的交互式數(shù)據(jù)處理開(kāi)發(fā)語(yǔ)言內(nèi)容語(yǔ)法基礎(chǔ)程序設(shè)計(jì)圖形系統(tǒng)與圖像處理IDL集成開(kāi)發(fā)HelloWho例子分析以及源文件創(chuàng)建PROHelloWho;PRO用于定義一個(gè)過(guò)程,HelloWho是過(guò)程名;表示注釋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)行過(guò)程中其值始終不會(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)行過(guò)程中其值可以發(fā)生變化的數(shù)據(jù)。變量名是指變量起的名字,變量的功能是用來(lái)存儲(chǔ)各種數(shù)據(jù)類型的常量。變量的命名規(guī)則:變量名由英文字母、數(shù)字、下劃線和符號(hào)$組成,而且必須以英文字母開(kāi)頭,長(zhǎng)度最多不超過(guò)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)“!”開(kāi)頭。自定義系統(tǒng)變量,使用DEFSYS臨時(shí)存儲(chǔ)于內(nèi)存中的變量,用來(lái)存放操作或程序運(yùn)行過(guò)程中的各種類型的原始數(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ǔ)言類型、變量類型定義通過(guò)后綴名、‘’、COMPLEX來(lái)2、變量需要先定義后調(diào)用、語(yǔ)言不區(qū)分大小寫(xiě)3、變量類型動(dòng)態(tài)改變4、了解類型轉(zhuǎn)換函數(shù)5、認(rèn)識(shí)IDL命令行、通過(guò)鍵盤↑、↓可以看前后面輸入的命令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開(kāi)始,到各維數(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;講第一列中從第三行開(kāi)始的元素賦值為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開(kāi)始,區(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)行過(guò)程中,數(shù)據(jù)成員個(gè)數(shù)和類型可能發(fā)生變化數(shù)據(jù)成員:結(jié)構(gòu)體中的每一個(gè)變量、數(shù)組、結(jié)構(gòu)體程序運(yùn)行過(guò)程中,命名結(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集成開(kāi)發(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過(guò)程中,只有一個(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過(guò)程中,表達(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)開(kāi)始時(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ǔ)言過(guò)程過(guò)程建立過(guò)程調(diào)用格式1:PRO過(guò)程名語(yǔ)句序列

END格式2:PRO過(guò)程名[,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n]

命令序列

END格式1:過(guò)程名()格式2:過(guò)程名[,參數(shù)1,···,參數(shù)n][,關(guān)鍵字1,···關(guān)鍵字n]過(guò)程與自定義函數(shù)區(qū)別:自定義函數(shù)最后一個(gè)語(yǔ)句要返回一個(gè)函數(shù)值;調(diào)用過(guò)程時(shí)只需把參數(shù),[關(guān)鍵字]直接放在過(guò)程后面即可。參數(shù)和關(guān)鍵字參數(shù)過(guò)程和函數(shù)可以接受兩種類型的數(shù)據(jù),參數(shù)和關(guān)鍵字參數(shù):函數(shù)和過(guò)程相互調(diào)用時(shí),進(jìn)行相互傳輸和交換的數(shù)據(jù)。功能:實(shí)現(xiàn)數(shù)據(jù)在過(guò)程和函數(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ù)和過(guò)程相互調(diào)用時(shí),進(jìn)行相互傳輸和交換的數(shù)據(jù)。功能:也實(shí)現(xiàn)數(shù)據(jù)在過(guò)程和函數(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ò)程名關(guān)鍵字1,···關(guān)鍵字n=關(guān)鍵字變量n

命令序列

END參數(shù)和關(guān)鍵字的傳遞傳遞方式分為按值傳遞和按地址傳遞僅僅把參數(shù)和關(guān)鍵字的傳遞給相應(yīng)的函數(shù)和過(guò)程的形參。在函數(shù)或過(guò)程運(yùn)行過(guò)程中所有對(duì)參數(shù)的和關(guān)鍵字的操作,在函數(shù)和過(guò)程調(diào)用結(jié)束后不影響參數(shù)和關(guān)鍵字的原值。

按值傳遞按地址傳遞按值傳遞的數(shù)據(jù)有常量、數(shù)組元素、結(jié)構(gòu)體成員、系統(tǒng)變量和表達(dá)式(不包含變量)把參數(shù)和關(guān)鍵字的傳遞給相應(yīng)的函數(shù)和過(guò)程的形參。在函數(shù)或過(guò)程運(yùn)行過(guò)程中所有對(duì)參數(shù)的和關(guān)鍵字的操作,在函數(shù)和過(guò)程調(diào)用結(jié)束后直接影響參數(shù)和關(guān)鍵字的原值。按地址傳遞的數(shù)據(jù)變量名、結(jié)構(gòu)名和指針變量-范圍全局變量全程變量:是指整個(gè)程序運(yùn)行過(guò)程中,始終有效的變量

系統(tǒng)變量公共變量根據(jù)來(lái)源分為內(nèi)部系統(tǒng)變量和自定義系統(tǒng)變量。系統(tǒng)變量的名稱均由感嘆號(hào)“!”開(kāi)頭。自定義系統(tǒng)變量,使用DEFSYS自定義公共變量:格式:COMMON公共變量模塊,變量1,···,變量n公共變量一旦被定義,就可以在任意程序中進(jìn)行引用,但是需要先聲明,后引用,聲明的格式與定義的格式相同。局部變量局部變量:是指整個(gè)程序運(yùn)行過(guò)程中,僅在程序中局部有效的內(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開(kāi)發(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ǔ)法過(guò)程、函數(shù)及其調(diào)用關(guān)鍵字、參數(shù)全局變量、局部變量程序相互調(diào)用IDLDE環(huán)境、程序調(diào)試內(nèi)容語(yǔ)法基礎(chǔ)程序設(shè)計(jì)圖形系統(tǒng)與圖像處理IDL集成開(kāi)發(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ì)象變量->方法過(guò)程名[,參數(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ì)象變量的過(guò)程功能:調(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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論