收藏 分享(赏)

fortran第1、2章.ppt

上传人:j35w19 文档编号:7356317 上传时间:2019-05-15 格式:PPT 页数:43 大小:598.50KB
下载 相关 举报
fortran第1、2章.ppt_第1页
第1页 / 共43页
fortran第1、2章.ppt_第2页
第2页 / 共43页
fortran第1、2章.ppt_第3页
第3页 / 共43页
fortran第1、2章.ppt_第4页
第4页 / 共43页
fortran第1、2章.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、FORTRAN语言-FORTRAN 77结构化程序设计,谭浩强、田淑清编著,主讲:崔珂梅 Email: ,精讲多练Fortran77,全部使用最新的fortran77 列举大量完整程序例题 提供完全配套的习题和解答,第一章 算法 第二章 计算机和计算机程序 第三章 Fortran 语言设计初步 第四章 逻辑运算和选择结构 第五章 循环结构的实现 第六章 Fortran的数据结构 第七章 数据的输入输出 第八章 常用算法的程序设计举例 第九章 数组 第十章 语句函数 第十一章子程序 第十二章 数据公用存储单元和数据块子程序 第十三章 文件,本书内容:,算法: 为了解决一个问题而采取的有限步骤。或

2、者说,算法是解决问题方法的精确描述。算法+数据结构=程序设计,1.1 算法的概念,第一章 算法,例1 商店结帐,要求将当天100笔收入累加,打印出总和。 写出如下算法:(1)将第一笔收入输入给计算机;(2)将第二笔收入输入给计算机;(3)将以上两笔收入相加;(4)将第三笔收入输入给计算机,1.2 一个计算机算法的例子,(5)将它和前两笔收入的和相加;(198)将第100笔收入输入给计算机;(199)将它和前99笔收入之和相加;(200)打印出100笔收入的总和。,此算法可实现,但不好!,引入“循环”的计算机算法。,(1)设一“计数变量”N,使N的初值为零,即N=0; (2)设“累加变量”T,初

3、值为零(T=0);,(3)输入一个数给“输入变量”A; (4)将A和T的值相加,和放在变量T中,即A+T=T;,(5)将N的值加1,即N+1=N(N的值表示已累加的数据个数) (6)若N100,则返回(3)继续执行,否则执行(7),(7)打印出总和T的值。,该算法的优点“迭代”的概念,T是迭代变量,“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。,例2 求 的值。算法如下:,(1)使 S=0(S是迭代变量);,(2)使N=1(N代表分母);,(3)S+1/N=S;,(4)N+1=N;,(5)若N100,

4、转去执行(3)以及其后的各步骤;否则执行(6);,(6)打印S的值(即所求的和)。,通过“迭代”实现下面运算:,算法应该具有以下几个特性: ()有穷性。一个算法应当在执行有穷步之后结束。不应当包含无终止的循环。 ()确定性。算法中的每一个步骤,必须是确切定义的,而不应当混含不清或模棱两可的。 ()具有零个或多个输入量,即在算法开始执行前对算法最初给出的量。 ()算法执行完毕后有一个或多个输出量。例如求m和n的最大公约数r。m和n为两个输入量,r为输出量。 ()可执行性。算法中的每一步都是能够准确地进行。如:进行B/A除法运算,当A等于零时,是无法执行的。(有效性),1.3算法的特性,算法的表示

5、:自然语言传统的流程图N-S结构流程图伪代码PAD图,1.4 怎样表示一个算法,1. 流程图用某种形式的图来表示的一个算法。流程图是一些特定含义的框和流向线组成。,端框 处理框 判断框 循环框 输入输出框 连接点 指向线,传统流程图所用符号:,例1 商店结帐,要求将当天100笔收入累加,打印出总和。,(1)设一“计数变量”N,使N的初值为零,即N=0; (2)设“累加变量”T,初值为零(T=0);,(3)输入一个数给“输入变量”A; (4)将A和T的值相加,和放在变量T中;,(5)将N的值加1,即N+1=N (6)若N100,则返回(3)继续执行,否则执行(7),(7)打印出总和T的值。,传统

6、流程图:,自然语言:,例2 求 的值。,(1)使 S=0(S是迭代变量);,(2)使N=1(N代表分母);,(3)S+1/N=S;,(4)N+1=N;,(5)若N100,转去执行(3)以及其后的各步骤;否则执行(6);,(6)打印S的值(即所求的和)。,自然语言:,传统流程图:,2.结构化程序设计和结构流程图结构化程序设计规定了以下三种基本结构作为程序的基本单元,(2)判断选择结构,(1)顺序结构,(3)循环结构,当型循环,直到型循环,结构化的三种基本结构的特点(1)有一个入口 (2)有一个出口。 (3)结构中每一部分都应当有被执行到的机会。(4)没有死循环。,3.结构化流程图(N-S) (1

7、)一条简单的指令,用一个矩形来表示,(在框内写一条简单的指令),顺序结构可以表示为:,(2)判断选择结构用如下形式的框图:,(3)循环结构用如下形式的框图,例1的算法可用如下结构流程图表示,例1算法中的第(3)到第(6)构成一个直到型循环,终止条件是N100,N 100还要执行循环.,例2算法的结构化流程图,(1)S=0 (2)N=1 (3)若N 100, 则执行(6),否则转到(7) (4)S+1/N=S (5)N+1=N (6)转到(3) (7)打印S的值.,例2也可以用当型循环其中(3)到(6)步构成一个当型循环,例3 求 (直到第100项)的值. 判定第100项的绝对值是否大于0.00

8、5,并打印出相应的信息.,例:判断 n 是否是素数。,分析: 素数是除了1和其本身以外,不能被其他自然数整除的自然数。要判断一个自然数 n 是否为素数,可以用2 n-1 的每一个数去除n,若有一个数能整除n,则说明n不是素数;否则,n就是素数。 需要循环地测试2n-1中的每一个数去除n,构成程序中的一重循环。当其中有一个数能整除既结束循环。,例:判断 98 是否是素数。应该用297的每一个数去 除98,用for(i=2;i=97;i+)if( 98 % i =0)break;,输入N,L=.T.,当IN-1且L时,执行,I=2,N-S流程图:,传统流程图:,结构化程序设计方法:结构化程序设计风

9、格和程序结构规范化程序的易读性、便于修改和维护 (1)自顶向下 (2)逐步细化 (3)模块化设计 (4)结构化编码,第二章 计算机和计算机程序,2.1 计算机是实现算法的有效工具 “信息”是维持人类社会活动、经济活动和生产活动的资源之一,是构造客观世界不可缺少的要素之一。人们对信息处理的方式取决于所处时代的生产发展和科学技术水平,但是又反过来对社会的发展产生巨大的影响。,2.2 计算机的组成 2.3 计算机中存储信息的方法 2.4 计算机语言和计算机程序,计算机语言通常分为:机器语言汇编语言高级语言,机器语言机器语言是一种用二进制代码“0”和“1”来表示的,能被计算机直接识别和执行的语言。例如

10、,指令01000110的作用是让计算机进行一次加法运算;又如指令00011101的作用是让计算机进行一次减法运算,要处理一个问题,需要很多条类似的指令组合,这种组合称为用机器语言编写的程序。,例如: 01000110110001001011101100011101,机器语言的特点:要记住各种代码和它的含义是不容易的,而且编出来的程序直观性差,检查和调试都比较困难。另外机器语言是一种面向机器的语言,对于不同型号的计算机,对同一问题编的机器语言程序是互不相通的。但是,这种程序计算机能够直接识别和执行,而且速度快。,因此先前的几个指令可能会变为如下形式:ADD A,6MOV A,OUTLOAD BS

11、UB B,A当需要将6与位于内存A中的数据相加时,ADD A,6要比二进制数01000110容易记忆得多。,汇编语言及汇编程序,汇编语言是一种用助记符表示的面向机器的程序设计语言。,用汇编语言书写的符号程序叫做汇编语言源程序,计算机不能直接识别和运行这种源程序,必须要用专门设计的汇编程序去加工和转换它们,把汇编语言源程序转换成0或1代码组成的机器指令程序,再去执行,这一过程又称为汇编程序。,因为汇编语言与机器语言有较好的一一对应关系,所以计算机在将汇编语言翻译成机器语言的时候不需要做太多的工作。,汇编程序:,高级语言,高级语言是一种类似于自然语言和数学描述语言的程序设计语言,并且脱离特定的机器

12、。,因此先前的几个汇编指令可能会变为如下形式:A=A+6WHITE(*,10)A10 FORMAT(1X,F5.2)READ(*,*)BB= B-A 它比汇编语言更容易读,可以看到高级语言更接近自然语言,而不是那些由0和1组成的低级语言。,优点:1. 无需学习机器指令,不必懂得计算机的工作原理和内部结构,而能方便地利用计算机运算.例如: A=A+6READ(*,*)B 2. 适用于各种计算机系统.,面向过程的程序设计语言 面向对象的程序设计语言,高级语言:,常用的面向过程的程序设计语言: BASIC简单易学的会话式语言; FORTRAN面向科学计算的语言; PASCAL结构程序设计语言; C既

13、具有高级数据结构,又具有低级语言特色的通用语言; PROLOG逻辑型语言;等。,面向过程的程序设计的思想是:自顶向下,逐步求精。,面向过程程序设计的缺点:数据和处理数据的操作分离为相互独立的实体,当数据结构发生变化时,所有相关处理数据的操作都要相应的修改。不适合编制复杂的大型软件程序。,面向过程的(结构化)程序设计语言:,面向过程的程序的结构是:按功能划分为若干个基本模块,各模块之间的关系尽可能简单,各模块的功能相对独立,这些模块联合形成树状结构。,常用的面向对象的程序设计语言: Visual Basic Visual FORTRAN Visual C+ C+ JAVA等。,面向对象的程序设计

14、方法:将数据和处理数据的操作集合在一起,作为一个相互依存、不可分离的整体即对象。,对同类型对象抽象出其共性,形成类。 类中数据通过本类的方法进行处理。 类通过外部接口与外界联系,对象与对象之间通过消息进行通讯。,面向对象的程序设计方法的优点:代码可重用性好,可维护性好。,面向对象的程序设计方法的特点:封装性、继承性和多态性。,面向对象的程序设计语言:,举例:计算两点间距离。 (面向对象的程序设计与面向过程的程序设计的区别),一、面向过程的程序设计#include#includestruct Point int x;int y;int distance(int x1, int x2, int y

15、1, int y2) int p;p=sqrt(pow(x2-x1),2)+ pow(y2-y1),2);return (p); void display(int d) printf(“dist=%dn”,d);,void main() Point p1,p2;int dist;p1.x=100;p1.y=100;p2.x=500;p2.y=400;dist= distance(p1.x, p2.x. p1.y, p2.y);display( dist); ,二、面向对象的程序设计#include#includeclass Point int x1,y1;int x2,y2;int dist;

16、public:Point(int dx1, int dy1, int dx2, int dy2) x1=dx1;y1=dy1; x2=dx2;y2=dy2;int distance() dist=(int)(sqrt(pow(x2-x1),2)+ pow(y2-y1),2);return (dist); void display() cout“p1,p2两点间距离:”distend1);,void main() Point p1(100,100,500,400);p1. distance() ;p1. display() ; ,两点间距离函数,显示两点间距离函数,点的坐标函数,分析:,Poin

17、t点的坐标 求两点间距离函数 显示两点间距离函数,Point类,(称之为封装),高级语言及编译或解释程序,用高级语言编写的程序(称为源程序) 但是计算机 只能识别机器语言程序,不能识别和执行高级语 言编写的程序,因此必须要有翻译,即把用高级 语言编写的程序翻译成机器语言形式的目标程序 后,计算机才能执行。这种翻译通常有两种方式: 编译方式和解释方式。, 编译方式:,2.解释方式:,处理中的名词:【源程序】用汇编语言或高级语言编写的程序(需经“翻译”处理)【翻译程序】将源程序译成目标程序或可执行指令的程序【目标程序】经翻译程序翻译生成的程序【可执行程序】经连接程序处理过的程序 互相关系,高级语言其程序需通过翻译程序(解释程序/编译程序)处理,2.7 利用计算机解题的全过程 (1)明确所需解决的问题 (2)分析问题、构造模型。 (3)选择适当的计算方法。 (4)确定数据结构和算法。 (5)根据已确定的算法画出流程图(结构流程图)。 (6)根据流程图编写程序(Coding)。 (7)输入源程序、并进行编译和联结 (8)进行试算。 (9)输入正式数据得出运算结果。 (10)整理资料, 写出报告。,作业和练习 P24 四(2)、五(2) P44 七、十一,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报