第四章——IDL程序编写_第1页
第四章——IDL程序编写_第2页
第四章——IDL程序编写_第3页
第四章——IDL程序编写_第4页
第四章——IDL程序编写_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章IDL程序编写第四章第四章 第四章IDL程序编写第四章IDL程序编写第四章IDL程序编写2. 顺序结构顺序结构第四章IDL程序编写3. 选择结构选择结构第四章IDL程序编写第四章IDL程序编写第四章IDL程序编写嵌套:IF 表达式1 THEN BEGINIF 表达式2 THEN BEGIN语句序列1ENDIF ELSE BEGIN语句序列2ENDELSE ENDIF ELSE BEGINIF THEN BEGIN语句序列3ENDIF ELSE BEGIN语句序列4ENDELSE ENDELSE功能:根据三个表达式的值来选择执行四个语句序列中的一个流程图:见下页图第四章IDL程序编写第四章

2、IDL程序编写例 编程序,计算并输出 y 的值,其中x 的值要求从键盘任意输入。PRO MS5FunctionREAD, PROMPT=请输入X = ?, xIF x LE 3 THEN BEGINIF x LE -6 THEN BEGINy = 3 * x 2 - x + 1ENDIF ELSE BEGINIF x LE -3 THEN BEGINy = 5 * x 2 - 3 * x + 1ENDIF ELSE BEGINy = 7 * x 2ENDELSEENDELSEENDIF ELSE BEGINIF x LE 6 THEN BEGINy = 5 * x 2 + 3 * x + 1E

3、NDIF ELSE BEGINy = 3 * x 2 + x + 1ENDELSEENDELSEPRINT, y = , yEND第四章IDL程序编写例 编程序,计算并输出 y 的值,其中x 的值要求从键盘任意输入。PRO MS5Function2 READ, PROMPT=请输入X = ?, x y=x LE -6?3 * x 2 - x + 1:$ (x LE -3?5 * x 2 - 3 * x + 1:$ (x LE 3?7 * x 2:$ (x LE 6?5 * x 2 + 3 * x + 1:$ 3 * x 2 + x + 1) PRINT, y = , yEND第四章IDL程序编

4、写IF语句嵌套的另外两种常见格式第四章IDL程序编写CASE语句格式:CASE 表达式 OF表达式1:BEGIN语句序列1 END 表达式n:BEGIN语句序列n END ELSE :BEGIN语句序列n+1 END ENDCASE功能:根据表达式的值与表达式1到 表达式n中的每一个表达式的值相比较,来选择执行n1个语句序列中的一个语句序列。第四章IDL程序编写第四章IDL程序编写例 编程序Chapter04M,输入1月到12月中的任意一个月份数字,输出该月份的英文单词。程序如下:; MPRO MonthREAD, PROMPT=请输入月份(1 , . , 12

5、):, mCASE m of 1 : PRINT, January & 2 : PRINT, February 3 : PRINT, March & 4 : PRINT, April 5 : PRINT, May & 6 : PRINT, June 7 : PRINT, July & 8 : PRINT, August 9 : PRINT, September & 10 : PRINT, October 11 : PRINT, November & 12 : PRINT, December ELSE : PRINT, 输入的月份无效! ENDCASEEND第四章IDL程序编写例 设计程序Cha

6、pter04MS6F,要求从键盘任意输入一个值x,计算并输出函数 f (x) 的值,程序如下。其中f(x)为:; MS6FPRO MS6FunctionREAD, PROMPT=请输入X = ?, xCASE 1 of x LT 0: y = 2 * x + 1 x LT 1: y = 3 * x + 2 x LT 2: y = 4 * x +3 x LT 3: y = 5 * x + 4 x LT 4: y = 6 * x + 7 ELSE: y = 8 * x * x + 1ENDCASEPRINT, f ( x ) = , yEND第四章IDL

7、程序编写4. 循环结构循环结构是指在程序执行过程中,根据实际需要,程序中的某一段程序是指在程序执行过程中,根据实际需要,程序中的某一段程序需要循环执行若干次,具有这种结构的程序称为循环结构程序。需要循环执行若干次,具有这种结构的程序称为循环结构程序。如果某个程序中有语句序列如果某个程序中有语句序列A,该语句序列,该语句序列A要根据指定条件表达式的值循要根据指定条件表达式的值循环执行,直到条件表达式的值为假为止。显然语句序列环执行,直到条件表达式的值为假为止。显然语句序列A在程序执行过程在程序执行过程中,中, 要循环执行若干次。循环结构的流程图可以用图表示要循环执行若干次。循环结构的流程图可以用

8、图表示格式:格式:WHILE 表达式表达式 DO 语句语句 格式:格式:WHILE 表达式表达式 DO BEGIN语句序列语句序列A ENDWHILE功能:根据表达式的值,功能:根据表达式的值,表达式为真,表达式为真,循环执行语句序列循环执行语句序列A若若干次。干次。第四章IDL程序编写例1设计程序Chapter04S,计算并输出1 + + 1000。程序为:; SPRO Sum1000sum = 0L & i = 1WHILE i LE 1000 DO BEGINsum = sum + i & i+ENDWHILEPRINT, 1 + 2 + + 10

9、00 = , sumEND第四章IDL程序编写格式:格式:CONTINUE功能:在循环语句中,用于终止本次循环,转向功能:在循环语句中,用于终止本次循环,转向WHILE进行下一次循环。进行下一次循环。格式:格式:WHILE 表达式表达式1 DO BRGIN语句序列语句序列1IF 表达式表达式2 THEN BEGIN语句序列语句序列2CONTINUEENDIF语句序列语句序列3ENDWHILE例例 计算并输出计算并输出2 + 4 + + 1000,设计程序如下:,设计程序如下:; SumEPRO SumEven1000sum = 0L & i = 1WHILE i LE 1

10、000 DO BEGINIF i MOD 2 THEN BEGINi=i+1 & CONTINUEENDIFsum = sum + i & i=i+1ENDWHILEPRINT, 2+4+ +1000 =, sumEND第四章IDL程序编写格式:BREAK功能:用在循环语句中。用于无条件退出包含该BREAK语句的最内层循环,转向执行该层循环语句ENDWHILE后面的语句。WHILE和BREAK的组合格式为:格式:WHILE 表达式1 DO BEGIN语句序列1IF 表达式2 THEN BEGIN语句序列2BREAKENDIF语句序列3ENDWHILE第四章IDL程序编写例 编程序Chapter

11、04MS,要求从键盘任意输入两个数,计算并输出这两个数的和;然后询问是否重复执行上述操作,直到不愿意执行为止。; MSPRO MSumyn = WHILE 1 DO BEGIN READ,PROMPT=请输入X=, x READ,PROMPT=请输入Y=, y PRINT,x,+,y,=, x+y READ,PROMPT=继续吗?(Y/N):, yn IF STRUPCASE(yn) EQ Y THEN BEGINCONTINUE ENDIF ELSE BEGINBREAK ENDELSEENDWHILEEND第四章IDL程序编写格式1:FOR 变量 = 初值,终值 ,

12、步长 DO 语句格式2:FOR 变量 = 初值,终值 ,步长 DO BEGIN语句序列A ENDFOR功能:用变量来控制循环次数,使序列A循环执行指定的次数。例 编程序Chapter04G,用FORENDFOR语句输出下面图形,其中最底层为15个*。程序如下:; GPRO Graphics FOR i = 1, 15 DO BEGIN Ss=REPLICATE(*, i) PRINT, Ss ENDFOREND第四章IDL程序编写嵌套格式:WHILE 表达式表达式1 DO BEGIN语句序列语句序列1WHILE 表达式表达式2 DO BEGIN语句序

13、列语句序列2WHILE 表达式表达式3 DO BEGIN语句序列语句序列3ENDWHILEENDWHILE ENDWHILEC、D错误结构第四章IDL程序编写例例 编程序编程序Chapter04T,输出下列九九乘法表。程序如下:,输出下列九九乘法表。程序如下:1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*

14、7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81; TPRO Table99i = 1WHILE i LT 10 DO BEGINj = 1WHILE j LE i DO BEGINPRINT,j,*,i,=,i*j, FORMAT=(4X,I1,1X,A1,1X,I1,1X,A1,1X,I2,$)j = j +1ENDWHILEPRINT, FORMAT =

15、 ( / ) i = i +1ENDWHILEEND第四章IDL程序编写例例 编程序编程序Chapter04T,输出九九乘法表。程序如下:,输出九九乘法表。程序如下:; Chapter04Table993FPRO Chapter04Table993For FOR i=1, 9 DO BEGIN FOR j = 1, i DO BEGIN PRINT, j,*,i,=,i*j,FORMAT=(4X,I1,1X,A1,1X,I1,1X,A1,1X,I2,$) ENDFOR PRINT, FORMAT=( / ) ENDFOREND第四章IDL程序编写Goto语句格

16、式:goto,标号标号格式:label:pro mmmAAA:print,wygoto,AAAend标号必须以字母开头第四章IDL程序编写5. 自定义函数自定义函数5.1主程序主体:必须以end结束,有两种表现形式: (1) end (2)pro test 程序体 end文件名为,没有名称的主程序必须放在程序最后面。运行方式:以IDL.run 运行第四章IDL程序编写5.2 过程主体:与主程序相似,但必须以pro proname开始,以end结束。 pro 过程名称,变量V1,V2, ,kn1=k1,kn2=k2 程序体 endkeyword起重要作用调用和运行

17、方式:以IDLproname方式运行参数一般要有确定的参数一般要有确定的顺序和确定的类型。顺序和确定的类型。参数在使用时,一般参数在使用时,一般是必选项。是必选项。参数在使用时,参数参数在使用时,参数的个数,类型和顺序要的个数,类型和顺序要和定义时保持一致。和定义时保持一致。Kn1为关键字名,为关键字名,k1为关键为关键字变量字变量关键字一般要有确定的类型。关键字一般要有确定的类型。关键字在使用时,一般是可关键字在使用时,一般是可选项。选项。关键字在使用时,其类型要关键字在使用时,其类型要和定义时保持一致。和定义时保持一致。关键字在使用时,其个数可关键字在使用时,其个数可以比定义时少。以比定义

18、时少。关键字在使用时,其顺序可关键字在使用时,其顺序可以和定义时不一致,而且其顺以和定义时不一致,而且其顺序是可以任意的。序是可以任意的。第四章IDL程序编写5.3函数主体:与过程相似,但以function fnname开始,以end结束,并以return语句返回一个IDL变量。 Function test 变量V1,V2, , 关键字k1=k1,k2=k2 程序体 return, Value end 调用和运行方式:以IDLret=fnname(para_list)方式运行。第四章IDL程序编写例例 编写自定义函数编写自定义函数Factorial(n)= n!,计算并输出,计算并输出0 n的阶乘的阶乘;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论