您好,欢迎访问三七文档
内容语法基础程序设计图形系统与图像处理IDL集成开发小结内容语法基础程序设计图形系统与图像处理IDL集成开发HelloWhoPROHelloWhoname=''read,name,prompt='inputyourname:';按提示信息输入姓名print,‘Hello,’,name,‘!’;依次输出Hello、输入的姓名和!endHelloWho例子分析以及源文件创建PROHelloWho;PRO用于定义一个过程,HelloWho是过程名;表示注释name='';定义一个字符串变量等于空,可以看到IDL为强语言类型、其中字符用‘’或“”read,name,prompt='inputyourname:';按提示信息输入姓名;读取输入信息到字符串变量中。查看帮助(鼠标悬停)、F1print,‘Hello,’,name,‘!’;依次输出Hello、输入的姓名和!;向控制台输出End;结束数据类型DataType数据类型字节值域创建类型函数字节Byte10~2550Bbyte()16位无符号整型UnsignedInteger20~655350Uuint()16位有符号整型Integet2-32,768~32,7670fix()32位有符号整型Long4±2^31-10Llong()64位有符号整型64-bitLong8±2^63-10LLlong64()32位无符号整型UnsignedLong40~2^32-10ULulong()64位无符号整型UnsignedLong80~2^64-10ULLulong64()浮点型Floating-point4±10^380.0float()双精度浮点型Double-precision8±10^3080.0Ddouble()复数Complex8±10^38complex(0.0,0.0)complex()双精度复数Double-precisioncomplex16±10^308complex(0.0D,0.0D)dcomplex()字符串string10~32767‘’或“”string()指针pointer4ptr_new()-对象object4obj_new()-数组array结构体structure基本数据类型组合数据类型常量Constants整型常量浮点型和双精度常量十进制BytenB12B,34BIntegernornS12,12S,425,425SUnsignedIntegernUornUS12U,12USLongnL12L,94LUnsignedLongnUL12UL,94UL64-bitLongnLL12LL,94LLUnsigned64-bitLongnULL12ULL,94ULL常量:是指运行过程中其值始终不会发生变化的数据。n.102..n.102n.n10.2nE10EnEsx10E5n.Esx10.E-3.nEsx.1E+12n.nEsx2.3E12双精度的与浮点型的形式类似,把D换成E即可复数常量字符常量复数由实部和虚部两部分组成,实部和虚部都可以是浮点数或者双精度浮点数,格式为COMPLEX(实部,虚部)或者COMPLEX(实部)如:COMPLEX(1.2,2),COMPLEX(102.8)用定界符号括起来的任意字符,又称字符串。定界符号:‘’,“”•配对使用‘Hithere•定界符号是字符串一部分,用另一个'I'mhappy'•0到7打头时用‘’“129”变量Variables变量:是指运行过程中其值可以发生变化的数据。变量名是指变量起的名字,变量的功能是用来存储各种数据类型的常量。变量的命名规则:变量名由英文字母、数字、下划线和符号$组成,而且必须以英文字母开头,长度最多不超过128个字符,中间不能有空格。EOF、6A、_36、AB@、abcd•系统变量•内存变量根据来源分为内部系统变量和自定义系统变量。系统变量的名称均由感叹号“!”开头。自定义系统变量,使用DEFSYS临时存储于内存中的变量,用来存放操作或程序运行过程中的各种类型的原始数据、中间结果和最终结果。数据类型字节创建类型函数字节Byte1Var=0BVar2=byte(Var)16位无符号整型UnsignedInteger2Var=0UVar2=uint(Var)16位有符号整型Integet2Var=0Var2=fix(Var)32位有符号整型Long4Var=0LVar2=long(Var)64位有符号整型64-bitLong8Var=0LLVar2=long64(Var)32位无符号整型UnsignedLong4Var=0ULVar2=ulong(Var)64位无符号整型UnsignedLong8Var=0ULLVar2=ulong64(Var)浮点型Floating-point4Var=0.0Var2=float(Var)双精度浮点型Double-precision8Var=0.0DVar2=double(Var)复数Complex8Var=complex(0.0,0.0)Var2=complex(Var)双精度复数Double-precisioncomplex16Var=complex(0.0D,0.0D)Var2=dcomplex(Var)字符串string1Var=‘’或Var=“”Var2=string(Var)内存变量的创建及其类型转换•非强数据语言,变量的属性是动态改变的•整型为短整型,注意使用Lvar=5为整型var=var*2.0变为浮点•NaNIDLmyvar=32L;定义短整形变量IDLmyvar1=32LL;定义长整形形变量IDLHELP,myvar;显示变量myvar的信息IDLHELP,MYVAR1;显示变量myvar1的信息IDLmyvar3=1.2DIDLmyvar*=myvar3IDLmystr4=‘8’IDLmyvar5=myvar+long(mystr4)IDLmyvar6=COMPLEX(2.0,5.0D)从执行结果可以看到1、IDL语言为非强语言类型、变量类型定义通过后缀名、‘’、COMPLEX来2、变量需要先定义后调用、语言不区分大小写3、变量类型动态改变4、了解类型转换函数5、认识IDL命令行、通过键盘↑、↓可以看前后面输入的命令IDL命令行、类型、变量练习数组Arrays数组格式数组创建数组:一组有序数据的集合,由一组名字相同,而下标不同的多个元素组成数组元素:数组中的每一个元素。一个数组元素又相当于一个内存变量格式:数组名:[下标列表]•数组名:是数组的名字,其命名的规则与变量命名规则相同。•下标列表:表示数组中数组元素的位置,可以是常量、变量、数组或表达式;下标列表中下标要用逗号。1.数组的直接创建法格式:数组名:[表达式表]•表达式表:数组中数组元素的值。•数组元素的总数等于各维数组的元素个数的乘积。•数组各维下标的计数从0开始,到各维数组元素个数减少1结束只能创建一维数组到三维数组•一维6个元素myArray[6]:myArray=[212,532,96,25,67,78]•二维2行3列二维数组myArray[3,2]:myArray=[[1,2,3],[4,5,6]]•三维数组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行(与其他语言有别),按行排列,0为下标起点2.数组的函数创建法数据类型初始化函数产生索引值函数创建字节bytarrbindgen16位有符号整型intarrindgen32位有符号整型lonarrlindgen64位有符号整型lon64arrl64indgen16位无符号整型uintarruindgen32位无符号整型ulonarrulindgen64位无符号整型ulon64arrul64indgen浮点型fltarrfindgen双精度浮点型dblarrdindgen复数complexarrcindgen双精度复数dcomplexarrdcindgen字符串strarrsindgen指针ptrarr-对象objarr-数组引用1.数组名•功能:直接用数组的名字调用整个数组,使所有数组元素一起参加各种运算2.数组[下标列表]•即数组名[下标],直接调用下标列表指定的数组元素。3.数组[(D11:D12[,…,D81:D82])]•在指定下标范围内,用数组名[下标]格式,直接调用局部数组元素4.(数组表达式)[下标列表]•直接调用下标列表指定的数组元素一起参加“数组名表达式指定的运算”数组函数格式:MAX(数组[,MIN=变量])输出最大值,最小值存储在变量中格式:MIN(数组[,MIN=变量])输出最小值,最大值存储在变量中格式:N_ELEMENTS(数组)输出数组中元素个数。格式:MEAN(数组,[/DOUBLE])计算数组平均值格式:VARIANCE(数组,[/DOUBLE])计算数组方差格式:STDDEV数组,[/DOUBLE])计算数组标准差……数组练习IDLmyvar=[[1,2,3],[4,5,6]];直接创建法定义两行三列数组IDLprint,myvar;显示整个数组IDLprint,myvar[2,0];显示第一行第三列的数组元素IDLprint,myvar[*,0];显示第一行数组元素IDLmyvar2=indegen(9,6);创建6行9列的二维数组其值为0~53IDLmyvar3=indegen+10;所有的元素值都加10赋给同维数组myvar3IDLmyvar2[0,2:*]=600;讲第一列中从第三行开始的元素赋值为600IDLindex=[[0,2],[0,3],[0,5]];创建下标数组IDLmyvar5=total((myvar*2+6)[index]);数组下标index中三个元素参加运算IDLmyvar6=MEAN(myvar2);数组平均值1、了解数组的直接创建法和函数创建法2、数组下标从0开始,区别于其他语言列行3、数组元素的调用4、数组函数调用,避免用循环结构体Structures结构体:由一组不同类型的变量、数组、结构体组合而成的复合数据类型•匿名结构(AnonymousStructures)•署名结构(NamedStructures)程序运行过程中,数据成员个数和类型可能发生变化数据成员:结构体中的每一个变量、数组、结构体程序运行过程中,命名结构时所用的定义,不能改变。匿名结构体创建格式1:结构体变量={成员1:表达式1,成员2:表达式2,…,成员n:表达式n,}格式2:结构体变量=CREATE_STRUCT(‘成员1’,表达式1,[,···,’成员n’,表达式n,[,结构体变量2,···])格式3:结构体变量=CREATE_STRUCT([‘成员1’,···,’成员n’],表达式1,···,表达式n,[,结构体变量2,···])格式4:结构体变量={结构体名}署名结构创建格式1:结构体变量={结构名,成员1:表达式1,成员2:表达式2,…,成员n:表达式n}格式2:结构体变量=CREATE_STRUCT{‘成员1’,表达式1,[,…,’成员n’,表达式n,[,结构体变量2,···],NAME=‘结构名’}格式3:结构体变量=CREATE_STRUCT{[‘成员1’,···,’成员n’],表达式1,···,表达式n,[,结构体变量2,···],NAME=‘结构名’}结构体赋值结构体调用格式1:结构体变量.成员=表达式格式2:结构体变量={结构体名,表达式,···}仅仅对于署名结构体结构体变量.成员结构体练习IDLxStruct={NAME:’xiaoming’,AGE:20}IDLyStruct=CREATE_STRUCT('NAME','xiaohong','AGE',18)IDLz
本文标题:IDL培训资料
链接地址:https://www.777doc.com/doc-1860251 .html