第一章程序设计概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Free format(自由格式)
1.3.6 语句
Fortran90程序是一种分块形式的程序,整 个程序由若干个程序模块组成。各模块都 有相似的语句组织形式,其中主程序起整 体控制作用,各辅程序模块各自完成问题 中的一个算法
结构化编码
• 在结构化程序设计中,任何复杂的算法,都可以由 三种基本结构组成。
• 在构造算法时,也仅以三种基本结构作为基本单元。 • 遵循这种结构的程序只有一个输入口和一个输出口。
1.3程序设计的基本方法
面向对象的程序设计
面向对象的程序设计是一种新的程序设计范型。 它将一些新的理念和结构化程序设计中好的思想 相融合,提供了一种全新的程序设计方法。
基本思想
将一个需要求解的问题分解为一 系列实体(对象),然后围绕这些对 象建立数据和函数;函数的功能决定 了该对象的行为。规定一个对象的函 数可以访问另一对象的函数,但一个 对象的数据不能应用于另一对象的函 数中。
几个基本概念: 类,对象,属性,事件,方法
三类机制: 封装、继承、多态
1.2.2 程序设计的步骤
国内外物探数据处理软件大多数采用 FORTRAN语言编写
FORTRAN语言计算领域的优越性
0.2 教学内容和目标
教学内容
基本概念:Fortran语言的语法 程序设计:利用Fortran进行程序设计 解决问题:利用Fortran解决专业问题
教学目标
具备初步高级程序设计能力 能够程序调试、测试、验证能力 养成良好的编程习惯 具备采用程序设计解决实际物探问题的能力
输出max的值 n=n+1
输出 max
输出 max 结束
1.2.1 程序与程序设计
计算机解决问题所需要的一系列代码化指令序 列——计算机程序。
程序=数据结构+算法 即“程序就是在数据的某些特定的表示方式和 结构的基础上,对抽象算法的具体描述。”
上述公式可扩充为: 程序=数据结构+算法+程序设计方法+语言工具
⑤ ⑥
input xwhile if max<x
nt!h=9en输m入axx<=x输入如一果个m数ax,的并值把小该n于=9 数Nx的存值入Y,x中
max<x
输入 x
则把x的值送入max中
⑦ n=n+1Y
N计数器n增加1
max<x
Y
⑧ goto ④max<=x
转向第④步执行 N
max<=x
⑨ output max n=n+1
end
R<a
R>a
G
G
输出G
结束
1.2.3 编程要点
程序代码规范清晰、语句表达准确到位 常量、变量类型申明清楚 注释书写清楚,利人利己 多练多写多编译 充分利用人脑,简化计算量提高效率 养成良好的编程习惯
1. 3 FORTRAN程序设计初步
1.3.1 发展历史 1.3.2 特点与功能 1.3.3 字符集 1.3.4 标示符 1.3.5 书写格式 1.3.6 语句 1.3.6 编译环境
1 算法与程序设计
1.1 算法 1.2 程序与程序设计 1. 3 Fortran 程序设计的初步
1.1.1 算法的概念
现代含义是采用逻辑思维的方法对获取数据用计算机处理的步 骤,即计算机解题步骤或计算机算法。
算法有五个基本特征:
正确性:一个好的算法或程序必须保证执行后的结果正确。
FORTRAN程序设计
主讲:张 华 zhhua1979@163.com
科技楼518
0 前言
0.1 课程的意义 0.2 教学内容和目标 0.3 教学要求 0.4 学习方法 0.5 教材及参考书
0.1 课程的意义
程序设计是物探工作者必备工具之一
数据处理、格式转换等 正反演、信号处理等
1.3.1 发展历史
1957年IBM发表,Fortran →Formula Translator
Fortran I,第一个被正式推广使用的高级语言 主要面向科学计算:是为科学、工程问题或企事业管理中的
那些能够用数学公式表达的问题而设计,其数值计算的功能 较强
1966年American Standards Association 制定 Fortran 66 标准
1.2.2 程序设计的步骤
Case1:估算地球的重力加速度随高度的变化
数学模型: p!r估og算ra地m球E的ar重th力_g加ra速度随g高度的变f M化 implicit none
ar a3
(r a)
!r!Fe定:a引l义力f,常E常a数r数th;_MEa,rEtahr_tMh_:gR地球质f量(;aEMarrth)_3R:(地r球半a径)
第6列
如果是“0”以外的任何字符,表示这一行是上一行的继续行。
第 7~72 列 Fortran 程序代码的编写区域。
第 73 列之后 不使用,超过的部分会被忽略,有的编译器会发出错误信息。
程序代码中的多余的空格没有意义,仅做分隔 和方便阅读,如SIN(X) S IN ( X )
配合打孔卡片的使用
分析问题,建立数学模型; 设计算法,绘制流程图; 选择语言,编写程序; 调试程序,分析结果; 整理资料,撰写文档。
进行程序设计要遵循有关的程序设计规则和采用成熟的 程序设计方法。程序设计方法有两种:一种是面向过程 方法;一种是面向对象方法。前者称为传统方法,后者称 为现代方法,代表了程序设计方法的发展趋势。面向过 程方法又分为模块化方法和结构化方法。
1. 3.5书写格式
Fixed Format(固定格式)
是旧式的写法,有较多的限制 文件名用*.F或*.FOR
Free Format(自由格式)
Fortran 90以后新增的写法 文件名用*.F90
Fixed format(固定格式)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 . . . ... 72 73
Free format(自由格式)
Fortran 90开始使用,文件名为*.F90 不再规定每一行的第几个字符有什么作用 叹号”!”后面的文本都是注释 每行可以编写132个字符 行号写在每行的最前面 一行程序代码的最后如果是符号&,代表下一
行程序会和这一行连接。如果一行程序代码的 开头是符号&,代表它会和上一行程序连接 free format中的空格同样无意义,纯粹用来 作为分隔及方便阅读程序代码使用
开始
设置常数a,f 输入M,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/s^2'
1.3.2 特点和功能
发展历史长,积累的财富多 书写和语法规则要求严格 可直接对数组和复数进行运算 具有不可替代的并行计算功能 FORTRAN是一种编译语言
1. 3.3 字符集
字符是组成程序的基本符号,程序中的变量、函 数、表达式、语句等程序基本要素都是用一个个 不同的字符书写构成的
问题: 输入依次10个数选择最大值
伪代码描述
自然语言描述
① input x ② max<=x
输入 x
输入一个数,并把该开始数存入x中 把x的值送入max中输入 x
③ n=0
max<=x
设置一个计数max<器=x n,并置初
值为0
n=0
④ if n=9 goto ⑨
如果n的值等于9则转n=0 入第⑨步执行
1.2.3程序设计的基本方法
面向过程的程序设计
所谓面向过程的程序设计,是指利用面向过程的 语言工具(如Basic、Pascal、Fortran和C等)进 行程序开发的各项活动。
基本思想:
把一个需要求解的复杂问题分 为若干个模块来处理,每个模块处理 一个子问题;设计时遵循自顶向下、 逐步细化、模块化设计和结构化编码 的原则。
源自文库
0.5 教材及参考书
教材
FORTRAN95程序设计、中国电力出版社
参考书
FORTRAN95/2003程序设计、中国电力出版社 VISUAL FORTRAN 常用数值算法集、科学出版
社 VISUALFORTRAN编程指南、人民邮电出版社 FORTRAN完全自学手册、机械工业出版社 Fortran常用算法程序集、清华大学出版社
1978年4月ANSI正式公布新的标准:Fortran (X3.91978)—— Fortran 77
1991年5月通过了研制期间称为Fortran 8x的Fortran 90
Fortran 95标准在1997年由ISO公布,为Fortran90 的修正版,加强了Fortran在并行运算方面的支持。
e nd
源程序必须严格按照一定的格式来书写
在编译时对一行中不同位置上的内容分别处理
Fixed format(固定格式)
在fixed format中,规定了程序代码每一行中 每个字段的意义
第1列
如果是字母 C、c 或星号*,这一行文本会被当成说明注释,不会被编译
第 1~5 列 如果是数字,就是用来给这一行程序代码取语句标号。不然只能是空格
C
F I XE D F O R M A T
prog r a m ma i n
wr i t e ( * , * ) ‘ H i‘
wr i t e ( * , * )
#‘ J o h n ‘
wr i t e ( * , 1 0 )
1 0 f o r m a t (‘ f i n e ! ‘ )
s top
优点:编程简单、结构性强、可读性好,程序执行时序特征明显;遵循这种结构的 程序只有一个入口和一个出口。
缺点:存在数据与程序模块的分离和程序的可重用性差等问题。
1.2.3程序设计的基本方法
结构化程序设计方法:
自顶向下,逐步细化 模块化设计
将一个复杂问题的程序分为若干个程序模块,每个模 块完成一项特定功能;其中有一个主模块和若干个子 模块,主模块控制各个子模块来实现整个程序的功能。
0.3 教学要求
注意基本能力的培养 理论教学与实践并重 关于作业
要求独立完成 关于考核
平时成绩30%,考勤、作业和实验
考试成绩70%
0.4 学习方法
多看、多练、多想(“三多”)
多看:经典代码 多练:典型的算法编程实现 多想:程序的改进
网络资源
FORTRAN论坛、QQ群等 Google、百度中搜索“FORTRAN” 源码库、文库等
1.1.2 算法及其表示方法
Fortran是结构化程序设计语言,每个程序单 位可由三种基本结构组成: ⑴顺序结构 ⑵分支选择结构 ⑶循环结构 实践证明,任何复杂的问题都可以用这 三种基本结构来描述。
1.1.2 算法的描述方法
自然语言描述。 流程图描述 N-S图描述 PAD图描述 伪代码描述
可读性:一个好的算法或程序应有良好的可读性。
通用性:一个好的算法或程序要尽可能通用,应适用一类问题 的求解,提高算法设计的效率。如:设计求解一元二次方程 2x2+3x+1=0的算法,该算法最好设计成求解一元二次方程 ax2+bx+c=0的算法。
高效率:高效率包括时间和空间两个方面。执行速度快、运行 时间短、占用内存少。
MY_SUB,pro_file A-B,x&y,6T,cqu.cn,S(x)B
1.3.4 标识符
使用
变量名、程序名、函数名和符号常量名等 字母大写和小写等价 空格不起作用 没有保留字 在给标识符起名时,应充分考虑其所代表对象
的含义,尽可能做到见名知义,以便于程序的 阅读、修改和调试 不能出现同一个标识符代表不同对象
英文26个字母 数字 22个特殊符号
A~Z及a~z(英文字母大小写不分)
0~9
: = + - * / ( ) , . ‘’ ! “” % & ; < > ? $ _ 空格符
1.3.4 标识符
标识符是用来表示程序中的变量、符号常 量、函数、程序等对象的一组符号。
命名规则
标识符由字母和(或)数字、下划线符号组成, 且第一个字符必须是字母。 ABC,x,y2,S123,sum,B2K9P3,