FORTRAN程序设计主讲:张华zhhua1979@163.com科技楼5180.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程序设计、中国电力出版社VISUALFORTRAN常用数值算法集、科学出版社VISUALFORTRAN编程指南、人民邮电出版社FORTRAN完全自学手册、机械工业出版社Fortran常用算法程序集、清华大学出版社0.5教材及参考书1.1算法1.2程序与程序设计1.3Fortran程序设计的初步1算法与程序设计现代含义是采用逻辑思维的方法对获取数据用计算机处理的步骤,即计算机解题步骤或计算机算法。算法有五个基本特征:正确性:一个好的算法或程序必须保证执行后的结果正确。可读性:一个好的算法或程序应有良好的可读性。通用性:一个好的算法或程序要尽可能通用,应适用一类问题的求解,提高算法设计的效率。如:设计求解一元二次方程2x2+3x+1=0的算法,该算法最好设计成求解一元二次方程ax2+bx+c=0的算法。高效率:高效率包括时间和空间两个方面。执行速度快、运行时间短、占用内存少。1.1.1算法的概念Fortran是结构化程序设计语言,每个程序单位可由三种基本结构组成:⑴顺序结构⑵分支选择结构⑶循环结构实践证明,任何复杂的问题都可以用这三种基本结构来描述。1.1.2算法及其表示方法自然语言描述。流程图描述N-S图描述PAD图描述伪代码描述1.1.2算法的描述方法问题:输入依次10个数选择最大值伪代码描述自然语言描述①inputx输入一个数,并把该数存入x中②max=x把x的值送入max中③n=0设置一个计数器n,并置初值为0④ifn=9goto⑨如果n的值等于9则转入第⑨步执行⑤inputx输入一个数,并把该数存入x中⑥ifmax<xthenmax=x如果max的值小于x的值,则把x的值送入max中⑦n=n+1计数器n增加1⑧goto④转向第④步执行⑨outputmax输出max的值开始结束输入xmax=xn=0n=9输入xmaxxn=n+1YNNYmax=x输出max输入xmax=xn=0whilen!=9输入xmaxxYNmax=xn=n+1输出max1.2.1程序与程序设计计算机解决问题所需要的一系列代码化指令序列——计算机程序。程序=数据结构+算法即“程序就是在数据的某些特定的表示方式和结构的基础上,对抽象算法的具体描述。”上述公式可扩充为:程序=数据结构+算法+程序设计方法+语言工具1.2.3程序设计的基本方法所谓面向过程的程序设计,是指利用面向过程的语言工具(如Basic、Pascal、Fortran和C等)进行程序开发的各项活动。面向过程的程序设计优点:编程简单、结构性强、可读性好,程序执行时序特征明显;遵循这种结构的程序只有一个入口和一个出口。缺点:存在数据与程序模块的分离和程序的可重用性差等问题。基本思想:把一个需要求解的复杂问题分为若干个模块来处理,每个模块处理一个子问题;设计时遵循自顶向下、逐步细化、模块化设计和结构化编码的原则。1.2.3程序设计的基本方法结构化程序设计方法:结构化编码•在结构化程序设计中,任何复杂的算法,都可以由三种基本结构组成。•在构造算法时,也仅以三种基本结构作为基本单元。•遵循这种结构的程序只有一个输入口和一个输出口。模块化设计将一个复杂问题的程序分为若干个程序模块,每个模块完成一项特定功能;其中有一个主模块和若干个子模块,主模块控制各个子模块来实现整个程序的功能。自顶向下,逐步细化1.3程序设计的基本方法面向对象的程序设计是一种新的程序设计范型。它将一些新的理念和结构化程序设计中好的思想相融合,提供了一种全新的程序设计方法。面向对象的程序设计基本思想将一个需要求解的问题分解为一系列实体(对象),然后围绕这些对象建立数据和函数;函数的功能决定了该对象的行为。规定一个对象的函数可以访问另一对象的函数,但一个对象的数据不能应用于另一对象的函数中。几个基本概念:三类机制:类,对象,属性,事件,方法封装、继承、多态分析问题,建立数学模型;设计算法,绘制流程图;选择语言,编写程序;调试程序,分析结果;整理资料,撰写文档。进行程序设计要遵循有关的程序设计规则和采用成熟的程序设计方法。程序设计方法有两种:一种是面向过程方法;一种是面向对象方法。前者称为传统方法,后者称为现代方法,代表了程序设计方法的发展趋势。面向过程方法又分为模块化方法和结构化方法。1.2.2程序设计的步骤Case1:估算地球的重力加速度随高度的变化数学模型:1.2.2程序设计的步骤3arafMg)(ar3)(raMfg)(ar开始设置常数a,f输出G结束Ra输入M,RRaGGprogramEarth_gra!估算地球的重力加速度随高度的变化implicitnone!F:引力常数;Earth_M:地球质量;Earth_R:地球半径realf,Earth_M,Earth_R!定义常数parameter(f=6.667E11,Earth_M=5.976E24,Earth_R=6.371E6)realR,g!R:海拔高程;g:重量加速度read*,Rif(R=0)theng=-f*Earth_M*(Earth_R+R)/(Earth_R)**3!海拔小于零elseg=-f*Earth_M/(Earth_R+R)**2!海拔大于零endifprint*,海拔为,R,'重力加速度大约为:',g,'m/s^2'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.3FORTRAN程序设计初步1957年IBM发表,Fortran→FormulaTranslatorFortranI,第一个被正式推广使用的高级语言主要面向科学计算:是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计,其数值计算的功能较强1966年AmericanStandardsAssociation制定Fortran66标准1978年4月ANSI正式公布新的标准:Fortran(X3.9-1978)——Fortran771991年5月通过了研制期间称为Fortran8x的Fortran90Fortran95标准在1997年由ISO公布,为Fortran90的修正版,加强了Fortran在并行运算方面的支持。1.3.1发展历史发展历史长,积累的财富多书写和语法规则要求严格可直接对数组和复数进行运算具有不可替代的并行计算功能FORTRAN是一种编译语言1.3.2特点和功能字符是组成程序的基本符号,程序中的变量、函数、表达式、语句等程序基本要素都是用一个个不同的字符书写构成的1.3.3字符集英文26个字母A~Z及a~z(英文字母大小写不分)数字0~922个特殊符号:=+-*/(),.‘’!“”%&;?$_空格符标识符是用来表示程序中的变量、符号常量、函数、程序等对象的一组符号。命名规则标识符由字母和(或)数字、下划线符号组成,且第一个字符必须是字母。ABC,x,y2,S123,sum,B2K9P3,MY_SUB,pro_fileA-B,x&y,6T,cqu.cn,S(x)B1.3.4标识符使用变量名、程序名、函数名和符号常量名等字母大写和小写等价空格不起作用没有保留字在给标识符起名时,应充分考虑其所代表对象的含义,尽可能做到见名知义,以便于程序的阅读、修改和调试不能出现同一个标识符代表不同对象1.3.4标识符FixedFormat(固定格式)是旧式的写法,有较多的限制文件名用*.F或*.FORFreeFormat(自由格式)Fortran90以后新增的写法文件名用*.F901.3.5书写格式Fixedformat(固定格式)123456789101112131415161718......7273CFIXEDFORMATprogrammainwrite(*,*)‘Hi‘write(*,*)#‘John‘write(*,10)10format(‘fine!‘)stopend源程序必须严格按照一定的格式来书写在编译时对一行中不同位置上的内容分别处理在fixedformat中,规定了程序代码每一行中每个字段的意义程序代码中的多余的空格没有意义,仅做分隔和方便阅读,如SIN(X)SIN(X)配合打孔卡片的使用Fixedformat(固定格式)第1列如果是字母C、c或星号*,这一行文本会被当成说明注释,不会被编译第1~5列如果是数字,就是用来给这一行程序代码取语句标号。不然只能是空格第6列如果是“0”以外的任何字符,表示这一行是上一行的继续行。第7~72列Fortran程序代码的编写区域。第73列之后不使用,超过的部分会被忽略,有的编译器会发出错误信息。Fortran90开始使用,文件名为*.F90不再规定每一行的第几个字符有什么作用叹号”!”后面的文本都是注释每行可以编写132个字符行号写在每行的最前面一行程序代码的最后如果是符号&,代表下一行程序会和这一行连接。如果一行程序代码的开头是符号&,代表它会和上一行程序连接freeformat中的空格同样无意义,纯粹用来作为分隔及方便阅读程序代码使用Freeformat(自由格式)Freeformat(自由格式)Fortran90程序是一种分块形式的程序,整个程序由若干个程序模块组成。各模块都有相似的语句组织形式,其中主程序起整体控制作用,各辅程序模块各自完成问题中的一个算法1.3.6语句主程序[PROGRAM程序名]←语句可省略.....END[PROGRAM[程序名]]←END必须有辅程序(过程)SUBROUTINE子程序FUNCTION函数BLOCKDATA块数据MODULE模块(F90)内部过程CONTAINS(F90)程序单位PROGRAM,FUNCTION,SUBROUTINE,MODULE,BLOCKDATAUSEFORMATENTRYIMPLICITNONEPARAMETERIMPLICITPARAMETER&DATA定义:派生类型、接口块、变量类型、语句函数DATA执行结构CONTAINS内部过程或模块过程END程序顺序整个程序中只能有一个PROGRAM,一个BLOCKDATA,可以有多个各自命名的FUNCTION和SUBROUTINE辅程序。语句分类非执行语句可执行语句程序标识语句和入口语句说明语句赋初值语句格式语句语句函数定义语句赋值语句输入输出语句控制语句PROGRAM,FUNCTION,SUBROUTINE
本文标题:第一章程序设计概述
链接地址:https://www.777doc.com/doc-599528 .html