资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,FORTRAN,程序设计,主讲:张 华,zhhua1979,科技楼,518,0.1,课程的意义,0.2,教学内容和目标,0.3,教学要求,0.4,学习方法,0.5,教材及参考书,0,前言,程序设计是物探工作者必备工具之一,数据处理、格式转换等,正反演、信号处理等,国,内,外物探数,据,处理软件,大多数,采用,FORTRAN,语言编,写,FORTRAN,语言,计算领域的优越性,0.1,课程的意义,教学内容,基本概念:,Fortran,语言的语法,程序设计:利用,Fortran,进行程序设计,解决问题:利用,Fortran,解决专业问题,教学目标,具备初步高级程序设计能力,能够程序调试、测试、验证能力,养成良好的编程习惯,具备采用程序设计解决实际物探问题的能力,0.2,教学内容和目标,注意基本能力的培养,理论教学与实践并重,关于作业,要求独立完成,关于考核,平时成绩,30%,,,考勤、作业和实验,考试成绩,70%,0.3,教学要求,多看、多练、多想,(“三多”),多看:经典代码,多练:典型的算法编程实现,多想:程序的改进,网络资源,FORTRAN,论坛,、,QQ,群等,Google,、百度,中搜索“,FORTRAN”,源码库、文库等,0.4,学习方法,教材,FORTRAN95,程序设计、中国电力出版社,参考书,FORTRAN95/2003,程序设计、中国电力出版社,VISUAL FORTRAN,常用数值算法集、科学出版社,VISUALFORTRAN,编程指南、人民邮电出版社,FORTRAN,完全自学手册,、机械工业出版社,Fortran,常用算法程序集、清华大学出版社,0.5,教材及参考书,1.1,算法,1.2,程序与,程序设计,1. 3 Fortran,程序设计的初步,1,算法与程序设计,现代含义是采用逻辑思维的方法对获取数据用计算机处理的步骤,即,计算机解题步骤或计算机,算法。,算法有五个基本特征:,正确性:,一个好的算法或程序必须保证执行后的结果正确。,可读性:,一个好的算法或程序应有良好的可读性。,通用性:,一个好的算法或程序要尽可能通用,应适用一类问题的求解,提高算法设计的效率。如:设计求解一元二次方程,2x,2,+3x+1=0,的算法,该算法最好设计成求解一元二次方程,ax,2,+bx+c=0,的算法。,高效率:,高效率包括时间和空间两个方面。执行速度快、运行时间短、占用内存少。,1.1.1,算法的概念,Fortran,是结构化程序设计语言,每个程序单位可由三种基本结构组成:,顺序结构,分支选择结构,循环结构,实践证明,任何复杂的问题都可以用这三种基本结构来描述。,1.1.2,算法及其表示方法,自然语言描述。,流程图描述,N-S,图描述,PAD,图描述,伪代码描述,1.1.2,算法的描述方法,问题: 输入依次,10,个数选择最大值,伪代码描述,自然语言描述,input x,输入一个数,并把该数存入,x,中,max=x,把,x,的值送入,max,中,n=0,设置一个计数器,n,,并置初值为,0,if n=9 goto,如果,n,的值等于,9,则转入第步执行,input x,输入一个数,并把该数存入,x,中,if max,x then max=x,如果,max,的值小于,x,的值,,则把,x,的值送入,max,中,n=n+1,计数器,n,增加,1,goto,转向第步执行,output max,输出,max,的值,1.2.1,程序与程序设计,计算机解决问题所需要的一系列代码化指令序列,计算机程序,。,程序,=,数据结构,+,算法,即,“,程序就是在数据的某些特定的表示方式和结构的基础上,对抽象算法的具体描述。,”,上述公式可扩充为:,程序,=,数据结构,+,算法,+,程序设计方法,+,语言工具,1.2.3,程序设计的基本方法,所谓面向过程的程序设计,是指利用面向过程的语言工具,(如,Basic,、,Pascal,、,Fortran,和,C,等),进行程序开发的各项活动。,面向过程的程序设计,优点:,编程简单、结构性强、可读性好,程序执行时序特征明显;遵循这种结构的程序只有一个入口和一个出口。,缺点:,存在数据与程序模块的分离和程序的可重用性差等问题。,基本思想:,把一个需要求解的复杂问题分为若干个模块来处理,每个模块处理一个子问题;设计时遵循,自顶向下,、,逐步细化,、,模块化设计,和,结构化编码,的原则。,1.2.3,程序设计的基本方法,结构化程序设计方法:,结构化编码,在结构化程序设计中,任何复杂的算法,都可以由,三种基本结构,组成。,在构造算法时,也仅以三种基本结构作为基本单元。,遵循这种结构的程序只有,一个输入口,和,一个输出口,。,模块化设计,将一个复杂问题的程序分为若干个程序模块,每个模块完成一项特定功能;其中有一个,主模块,和若干个,子模块,,主模块控制各个子模块来实现整个程序的功能。,自顶向下,逐步细化,1.3,程序设计的基本方法,面向对象的程序设计是一种新的程序设计范型。它将一些新的理念和结构化程序设计中好的思想相融合,提供了一种全新的程序设计方法。,面向对象的程序设计,基本思想,将一个需要求解的问题分解为一系列实体(对象),然后围绕这些对象建立数据和函数;函数的功能决定了该对象的行为。规定一个对象的函数可以访问另一对象的函数,但一个对象的数据不能应用于另一对象的函数中。,几个基本概念: 三类机制:,类,对象,属性,事件,方法 封装、继承、多态,分析问题,建立数学模型;,设计算法,绘制流程图;,选择语言,编写程序;,调试程序,分析结果;,整理资料,撰写文档。,进行程序设计要遵循有关的程序设计规则和采用成熟的程序设计方法。程序设计方法有两种:,一种是面向过程方法,;,一种是面向对象方法,。前者称为传统方法,后者称为现代方法,代表了程序设计方法的发展趋势。面向过程方法又分为模块化方法和结构化方法。,1.2.2,程序设计的步骤,Case1:,估算地球的重力加速度随高度的变化,数学模型:,1.2.2,程序设计的步骤,开始,设置常数,a,f,输出,G,结束,Ra,G,G,program,Earth_gra,!,估算地球的重力加速度随高度的变化,implicit none,!F:,引力常数;,Earth_M,:地球质量;,Earth_R,:地球半径,real,f,Earth_M,Earth_R,!,定义常数,parameter,(f=6.667E11,Earth_M=5.976E24,Earth_R=6.371E6),real,R,g,!R,:海拔高程;,g:,重量加速度,read,*,R,if,(R = 0),then,g=-f*Earth_M*(Earth_R +R)/(Earth_R )*3,!,海拔小于零,else,g=-f*Earth_M/(Earth_R+R )*2,!,海拔大于零,end if,print,*,海拔为,R,重力加速度大约为:,g,m/s2,end,程序代码规范清晰、语句表达准确到位,常量、变量类型申明清楚,注释书写清楚,利人利己,多练多写多编译,充分利用人脑,简化计算量提高效率,养成良好的编程习惯,1.2.3,编程要点,1.3.1 发展历史,1.3.2 特点与功能,1.3.3 字符集,1.3.4 标示符,1.3.5 书写格式,1.3.6 语句,1.3.6 编译环境,1. 3 FORTRAN,程序设计初步,1957,年,IBM,发表,,Fortran Formula Translator,Fortran I,第一个被正式推广使用的高级语言,主要面向科学计算:是为科学、工程问题或企事业管中的那些能够用数学公式表达的问题而设计,其数值计算的功能较强,1966,年,American Standards Association,制定,Fortran 66,标准,1978,年,4,月,ANSI,正式公布新的标准,:Fortran (X3.9-1978),Fortran 77,1991,年,5,月通过了研制期间称为,Fortran 8x,的,Fortran 90,Fortran 95,标准在,1997,年由,ISO,公布,为,Fortran90,的修正版,加强了,Fortran,在并行运算方面的支持。,1.3.1,发展历史,发展历史长,积累的财富多,书写和语法规则要求严格,可直接对数组和复数进行运算,具有不可替代的并行计算功能,FORTRAN是一种编译语言,1.3.2,特点和功能,字符是组成程序的基本符号,程序中的变量、函数、表达式、语句等程序基本要素都是用一个个不同的字符书写构成的,1,. 3.3,字符集,英文,26,个字母,AZ,及,az,(英文字母大小写不分),数字,09,22,个特殊符号,: = + - * / ( ) , . ! “” % ? $ _,空格符,标识符是用来表示程序中的变量、符号常量、函数、程序等对象的一组符号。,命名规则,标识符由字母和(或)数字、下划线符号组成,且第一个字符必须是字母。,ABC,,,x,,,y2,,,S123,,,sum,,,B2K9P3,,,MY_SUB,,,pro_file,A-B,,,x&y,,,6T,,,,,S(x)B,1.3.4,标识符,使用,变量名、程序名、函数名和符号常量名等,字母大写和小写等价,空格不起作用,没有保留字,在给标识符起名时,应充分考虑其所代表对象的含义,尽可能做到见名知义,以便于程序的阅读、修改和调试,不能出现同一个标识符代表不同对象,1.3.4,标识符,Fixed Format,(固定格式),是旧式的写法,有较多的限制,文件名用*,.F,或*,.FOR,Free Format,(自由格式),Fortran 90,以后新增的写法,文件名用*,.F90,1. 3.5,书写格式,Fixed format(,固定格式,),源程序必须严格按照一定的格式来书写,在编译时对一行中不同位置上的内容分别处理,在,fixed format,中,规定了程序代码每一行中每个字段的意义,程序代码中的多余的空格没有意义,仅做分隔和方便阅读,如,SIN(X) S IN ( X ),配合打孔卡片的使用,Fixed format(,固定格式,),Fortran 90,开始使用,文件名为*,.F90,不再规定每一行的第几个字符有什么作用,叹号”,!”,后面的文本都是注释,每行可以编写,132,个字符,行号写在每行的最前面,一行程序代码的最后如果是符号,代表下一行程序会和这一行连接。如果一行程序代码的开头是符号,代表它会和上一行程序连接,free format,中的空格同样无意义,纯粹用来作为分隔及方便阅读程序代码使用,Free format(,自由格式,),Free format(,自由格式,),Fortran90程序是一种分块形式的程序,整个程序由若干个程序模块组成。各模块都有相似的语句组织形式,其中主程序起整体控制作用,各辅程序模块各自完成问题中的一个算法,1.3.6,语句,主程序,PROGRAM,程序,名,语句,可省略,.,END PROGRAM ,程序,名,END,必须有,辅程序,(,过程,),SUBROUTINE,子程序,FUNCTION,函数,BLOCK DATA,块数据,MODULE,模块,(F90),内部过程,CONTAINS (F90),程序单位,PROGRAM, FUNCTION, SUBROUTINE, MODULE, BLOCK DATA,USE,FORMAT,ENTRY,IMPLICIT NONE,PARAMETER,IMPLICIT,PARAMETER & DATA,定义:派生类型、接口块、变量类型、语句函数,DATA,执行结构,CONTAINS,内部过程或模块过程,END,程序顺序,整个程序中只能有一个,PROGRAM,,一个,BLOCK DATA,,可以有多个各自命名的,FUNCTION,和,SUBROUTINE,辅程序。,语句分类,非执行语句,可执行语句,程序标识语句和入口语句,说明语句,赋初值语句,格式语句,语句函数定义语句,赋值语句,输入输出语句,控制语句,PROGRAM, FUNCTION, SUBROUTINE, MODULE,BLOCKDATA,变量、数组、参数,等得声明,DATA,语句,format,1.3 .5,编译环境,1.3.5,编译环境,演讲完毕,谢谢观看!,
展开阅读全文