《程序设计顺序结构.pptx》由会员分享,可在线阅读,更多相关《程序设计顺序结构.pptx(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1页/共62页第2页/共62页第3页/共62页第4页/共62页四、顺序结构程序设计第5页/共62页三种基本机构顺序结构:如图所示的框内,A和B两个框是顺序执行的。顺序结构是最简单的一种基本结构:第6页/共62页三种基本机构选择结构:如图所示的框内,包含一个判断:第7页/共62页三种基本机构循环结构,重复结构,即反复执行某一部分的操作 第8页/共62页第9页/共62页主要内容:数据概念,常量,变量及其说明FORTRAN内部函数运算符和表达式赋值语句简单的输入输出语句程序执行控制语句第10页/共62页数据的概念从表现形式上:常量、变量、表达式、函数等从数据类型上:整型、实型、字符型、复型和逻辑型
2、等基本类型,以及数组、结构体等复杂的数据类型 每一种数据类型决定该类型数据在计算机中的存储方式和作用于其上的操作。第11页/共62页常量:其值始终不变的一些量。六种:整型,实型,双精度型,复型,逻辑型,字符型直接常量:数据本身是一个常量符号常量:用一个标识符来表示一个常量FORTRAN常量第12页/共62页不同类型的常量有不同的表示方法:整型常量:正数、负数和0(也称整数)常数中不允许加入逗号,如:12000,不能写作:12,000一般用2个字节(16位)或4个字节(32位)来存储,其中一位存储数值的符号,其余为数本身,则:2个字节存储,整数范围:-32768327674个字节存储,整数范围:
3、-231 231-1FORTRAN常量第13页/共62页实型常量:也称实数(也称实数)有两种表现形式:小数和指数小数如:5.3;5.;.3;8.;.6378 必须包含一个小数点且只能有一个小数点,小数点前或后可以不出现数字,但是不能前后都不出现数字指数如:1.32E5表示1.32105 (E:Exponent)1.285E-12表示1.285101E2和1.0E2都表示100.0(E:Exponent,表示以10为底的指数)包括数字部分和指数部分,数字部分表示该常数的有效数字,指数部分使得数字部分小数点右移或者左移FORTRAN常量第14页/共62页FORTRAN常量数字部分可以为带或不带小数
4、点的形式,如:1E2和1.0E2指数部分不能单独存在,如E12,是不合法的计算机中一般以4个字节(32位)来存储一个实数。无论以小数形式还是指数形式表示在内存中均以指数形式存放,由三部分组成:数符,1位指数包括符号,7位数字部分,24位,前面有一个隐含小数点,点后第一个数字非零(运算时注意有效位数的限制)第15页/共62页符号常量:用一个标识符来表示一个常量通常用PARAMETER语句来定义 例如:第16页/共62页变量的概念:程序运行过程中其值可以改变的量(实际上代表的是一个内存单元,程序通过变量名来访问存储单元,如:N=N+1)变量名:用标识符来命名。同一个程序单元中不能用同一个标识符代表
5、不同的变量标识符由字母、数字和下划线组成,开头必须是字母。FORTRAN变量第17页/共62页FORTRAN不区分字母的大小写;标识符的长度因FORTRAN版本不同而有差异;为16个字符,以上为131个标识符尽量做到“见名知义”;如AREA,PI,STN避免用一些特定意义的语句名和函数名 FORTRAN没有规定的“保留字”,但一般为避免混淆,实际中应尽量避免用一些特定意义的语句名和函数名等作变量名,如PRINT,WRITE,SIN 注意:第18页/共62页变量的说明(声明,定义)对变量类型的说明。在程序代码中,程序员向编译器要求预留一些存放数据的内存空间。种方式:)类型说明语句)隐含说明语句)
6、隐含约定第19页/共62页)类型说明语句格式:类型说明符 变量名1,变量名2类型说明符:变量名1,变量名2例:第20页/共62页Fortran中有六个类型说明语句:(1)INTEGER语句(整型说明语句)(2)REAL语句(实型,或浮点数说明语句)(3)DOUBLE PRECISION语句(双精度说明语句)(4)COMPLEX语句(复型说明语句)(5)LOGICAL语句(逻辑型说明语句)(6)CHARACTER语句(字符型说明语句)第21页/共62页 声明1:整数类型(INTEGER)第22页/共62页声明长整型,即用4个bytes来存放整数:声明短整型,即用2个bytes来存放整数:默认为长
7、整型一行可声明多个变量第23页/共62页 声明2:浮点数(REAL)浮点数与整数的最大区别在于可以保存小数,不做说明(默认)时,通常用占4个bytes的单精度浮点数。关于有效位数的考虑第24页/共62页 声明3:复数(COMPLEX)唯一能直接提供复数类型的语言。虚部和实部,由两个浮点数来表示,因此也可分为双精度和单精度第25页/共62页 声明4:字符及字符串(CHARACTER)即用来保存一个或一串字符时所使用的类型第26页/共62页 声明5:逻辑变量(LOGICAL)逻辑变量主要在逻辑判断时使用。两种数值:真和假。所以存储时用1bit空间足够,通常由编译器自行决定空间大小。也可以设置,但意
8、义不大。应用,在流程控制中第27页/共62页)隐含说明语句 IMPLICIT例:将A和C及T到V开头的变量规定为INTEGER类型?IMPLICIT说明语句将某个或某些字母开头的变量指定为所需类型。可以用一个IMPLICIT语句同时指定几种类型第28页/共62页)隐含约定:(IN规则)90以上不提倡使用,一般在程序变量说明前加:IMPLICIT NONE取消IN规则注意:!优先级:!IMIPLICIT为非执行语句,应放在所有可执行语句之前第29页/共62页FORTRAN内部函数FORTRAN内部函数(内在函数),也称库函数内部函数指系统本身带有的能完成一定功能的程序单位。可供用户直接使用,必须
9、遵守其使用规则。第30页/共62页函数名含 义应用例子相当数学上的运算ABS求绝对值ABS(X)EXP指数运算EXP(X)SIN正弦值SIN(X)COS余弦值COS(X)ASIN反正弦ASIN(X)ACOS反余弦ACOS(X)TAN正切TAN(X)ATAN反正切ATAN(X)LOG自然对数LOG(X)LOG10常用对数LOG10(X)常用的算术函数:注意三角函数的参数为弧度数而不是角度数第31页/共62页函数名含 义应用例子相当数学上的运算INT取整INT(X)MOD求余MOD(X1,X2)SIGN求符号SIGN(Xl,X2)当 当REAL转换为实型REAL(I)MAX求最大值MAX(I1,I
10、2,I3)MIN求最小值MIN(Xl,X2,X3)SQRT求平方根SQRT(X)常用的算术函数:第32页/共62页内在函数的执行方法:Fortran将这些内在函数分别编成单个子程序,组成函数库,存在于外部介质(如磁盘)上。在完成源程序的编译之后,用LINK命令实现连接,即将已翻译成二进制指令的目标程序与函数库连接。例如程序中出现一个SIN函数,在连接时就将一组求正弦值二进制指令直接插入到程序中出现SIN的地方。由于是插入到程序内部的,所以称为“内在函数”。第33页/共62页一个内在函数可要求一个或多个自变量 例如,SQRT函数只能有一个自变量,而MOD函数要求两个自变量,MAX和MIN函数要求
11、两个以上自变量。注意当自变量个数规定为2个时,自变量的顺序不应任意颠倒,如MOD(8,3)表示8被3除的余数,其值为2,而MOD(3,8)则表示3被8除的余数,其值为3。当自变量个数为2时,自变量的顺序无关 第34页/共62页函数的自变量是有类型的,函数值也是有类型的 例如:MOD(8,3)中自变量8和3是整型,函数MOD(8,3)的值“2”也是整型,如果写成MOD(8.0,3.0),自变量是实型的,函数值也是实型的,其值为2.0 第35页/共62页运算符与表达式 算术运算符和运算优先级 算术表达式的含义和表示方法 表达式运算中的类型 运算的误差 第36页/共62页算术运算符和运算优先级 FO
12、RTRAN提供五种算术运算符号:+表示“加”(或正号)-表示“减”(或负号)*表示“乘”/表示“除”*表示“乘方”请注意:乘号用*表示,不能写成“”,以免与字母“X”混淆,也不能用“.”代替乘号。除号不能用“”号。两个运算符不能紧邻,如A*-B是不合法的,应写成A*(-B)。第37页/共62页不同的运算符按以下优先级次序:1、加,减 乘,除 乘方,括号()中优先。2、同一优先级的两个运算,乘方按“先右后左”,其它按“先左后右”原则。例:x+y*z x+(y*z)x*y*2 x*(y*2)x/y/z (x/y)/z x*y*z x*(y*z)3+5-6.0*8.0/4*2 3548.0/16.0
13、=5例:4b分之a a/(4*b)或 a/4/b,而a/4*b 和 a/4b错误 如无自信时可用括号(),对运算时间几乎无影响。第38页/共62页算术表达式的含义和表示方法 算术表达式中各运算元素都是算术量,使用的运算符只能是算术运算符,表达式的值也是一个算术量(即数值)。将常量、变量、函数等运算元素用运算符和括号连接起来的一个有值的式子称为表达式。FORTRAN中四种表达式,即:算术表达式,关系表达式,逻辑表达式,字符表达式Fortran算术表达式的求值运算的优先次序为:括号 函数 */,即括号内的运算级别最高,加减最低。例如,SQRT(3.*2)*2 第39页/共62页 注意:(1)写除法
14、运算式子时应加上必要的括号。(2)乘号不能省略,如 A*SIN(X)(3)Fortran中无大、中、小括号之分,一律用小括号。(4)乘方按“先右后左”原则处理。(5)对单项运算符(如-A中的符号)相当于在它前面有一个运算量“0”,如:A*2相当于0-A*2而非(-A)*2(6)两整数相除,结果为整数,为切掉小数部分而不会进行四舍五入第40页/共62页数学表达式:FORTRAN 表达式:第41页/共62页练习:将下列数学表达式写成相应的FORTRAN表达式(3)(4)(5)(2)(1)第42页/共62页Fortran中的常量和变量分类型,允许在不同类型的算术量(包括整、实、双精度、复型)之间进行
15、算术运算,不允许在算术量和非算术量(如逻辑型、字符型)之间进行算术运算。F77作如下规定:同类型的算术量之间运算的结果仍保持原类型。注意:两个整数相除的商也是整数。例如,5/2的值是2而不等于2.5,4*(-1)等于0不同类型两个算术量运算,低向高转换后进行运算。类型的级别如下:整型(低)实型(高)。类型的转换是从左向右进行的,在遇到不同类型的算术量时才进行转换。例如:1/2*1.0等于0,而1./2*1对于0.5。表达式运算中的类型 第43页/共62页已知A=2,B=3,C=5(以上为REAL);且I=2,J=3(以上为INTEGER),求下列表达式的值:(1)A*B+C (2)A*(B+C
16、)(3)BC*A (4)B(C*A)。(5)AIJ (6)IJA (7)A*B*IA*J*2 (8)C+(BA)*3B*2 (9)A*B*I (10)B*A*C (11)J(IJ)第44页/共62页运算的误差 实型量的运算会出现一些误差实型量的运算会出现一些误差 写表达式时应尽量使每一次运算结果都在有效位数范围之内,避免使两个相差很大的数值直接相加或相减。判断两个实数是否相等,第45页/共62页赋值语句 赋值语句的作用是将一个确定的值赋给一个变量其一般格式为:VeV:一个变量名,e:表达式 第46页/共62页赋值语句有三类:算术赋值语句、逻辑赋值语句、字符赋值语句。算术赋值语句是将一个算术量赋
17、予一个算术型变量。赋值语句中的“”号是“赋值”的符号,而不是等号,将右边表达式的值赋给左边的变量。因此在阅读程序时对赋值号的理解应是带方向的。赋值语句“NN十l”的作用是将N的原值加1再送回变量N中。算术赋值语句兼有计算和赋值双重功能。即先计算出表达式的值;然后将该值赋给一个变量。在Fortran程序中的求值计算主要是用赋值语句来实现的。赋值号左边只能是变量名(或数值元素名),而不能是表达式,赋值号右边可以是常量、变量或表达式。“X+Y=3.0”语句是不合法的,因为在内存中找不到一个“X+Y”的单元来存放3.0这个数值。第47页/共62页被赋值的变量(V)和表达式(e)的类型可以相同,也可以不
18、相同 如果变量V与表达式e的类型相同,则直接进行赋值。如果类型不同,则应先求表达式的值,再将该表达式的值转换为被赋值变量的类型。如:I3.5*2.1 表达式3.5*2.1的值为7.35,实型。而变量I为整型,因此I的值等于7。如:T3*5/7 表达式的值为2,整型。由于T为实型,故系统先将整数2转换成实数2.0,再赋给变量T,T的值为2.0。当赋值号两侧的类型不同时,往往会产生程序设计者事先预想不到的结果。所以在编写程序时,应尽可能使贼值号两侧保持同类型。第48页/共62页简单的输入输出语句 write(*,*)输出项表print*,输出项表read(*,*)变量表第49页/共62页 输出命令
19、输出命令 WRITEWRITE第一个星号,输出的位置,为默认值,即屏幕第二个星号,输出的格式,为默认值,不特别设置第50页/共62页 输出命令 PRINT与write相比,少了第一个星号,即对输出位置的指定,只是屏幕输出星号表示输出的格式不特别设置第51页/共62页 输入命令 READ第一个星号,输入的位置,为默认值,即键盘,通道号5第二个星号,输出的格式,为默认值,表示不特别设置第52页/共62页键盘输入时,用“,”、空格或者回车来间隔数据对字符型数据的输入,用默认格式容易出错的例子:键盘输入 Happy Birthday第53页/共62页第54页/共62页 格式化输入输出(FORMAT)用
20、FORMAT命令来设置输出格式P53-59常用的几个编辑符:I、F、E、A、X第55页/共62页Iw.mIw.m:以w w个字符的宽度来输出整数,至少输出m m个数字(位置不足会出现*号)write(*,(I5)100 write(*,(I3)10000 write(*,(I5.3)10 write(*,(I8.3)8736 write(*,(I5)-67896 第56页/共62页Fw.dFw.d:以w w个字符的宽度来输出浮点数,小数部分占个字符宽。(位置不足会出现*号)write(*,(F9.3)123.45 OOO123.450write(*,(F9.2)-746.578 OO-746.
21、58 write(*,(F9.2)2347856.0 *第57页/共62页Ew.dEw.d【EeEe】:用科学计数法,以w w个字符的宽度来输出浮点数,小数部分占个字符宽,指数部分至最少输出e e个数字。(位置不足会出现*号)write(*,(E15.6)15.8 OOO 0.158000E+02write(*,(E12.4)-746.578 O-0.7466E+03 write(*,(E9.3)873.2 0.873E+03write(*,(E15.7E3)2347856.0 O0.2347856E+007 E3表示指数部分有三个有效数字(不包括正负号)有的系统可能不打印出小数点前面的0用E
22、编辑符可以避免“大数印错,小数印丢”的情况,在实数的值大时,能保证可以输出必要的有效位数。实数用E或者F编辑符,由程序设计者自己考虑。但整数只能用I编辑符,而实数则不能用I编辑符第58页/共62页程序执行控制语句 STOP N 程序终止运行PAUSE N 程序暂时停止运行,按回车恢复END 结束本程序单元运行第59页/共62页本次内容总结:本次内容总结:1.一个简单程序的运行2.输入输出3.数据的声明4.函数的使用5.运算符与表达式6.赋值语句第60页/共62页关于提交作业:fortran.zip fortran_work.rar 为方便本人下载存储,请:1.将已经运行通过的若干Fortran源文件:*.f90(或者*.for)文件压缩2.压缩文件名请自己命名为:“11大气”+“学号尾数”+“_1”3.将压缩文件以附件发送到本人邮箱关于作业:1.文件名尽量用以英文字母开头的、包含英文以及英文书写状态下的数字和下划线等其它符号)2.源文件书写方式及其注释养成好的习惯,自由格式下亦书写可读性强的脚本3.严格按照语法。上课及作业时适当做笔记第61页/共62页感谢您的观看!第62页/共62页