VisualFortran90第1、2章.ppt_第1页
VisualFortran90第1、2章.ppt_第2页
VisualFortran90第1、2章.ppt_第3页
VisualFortran90第1、2章.ppt_第4页
VisualFortran90第1、2章.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2019年4月23日星期二,主 讲 孙艳红,Visual Fortran 90 程序设计,我已经能熟练地操作计算机了,还学什么? 计算机能做什么? 如何把计算机做为求解问题的工具,为我服务终身?,开始的话,计算机可以做任何事情;只要能把实际问题抽象、制作为计算机可求解的程序。 计算机求解问题的步骤:,计算机能做什么?,实际问题,问题模型,求解算法,编制程序,问题实现,问题模型,结构分析 线性方程组 人口预报 微分方程 优化问题 线性规划、非线性规划 震动问题 矩阵分析;特征值、特征向量 信息管理 二维数据表 下棋 树型结构遍历 交通管理 图型结构遍历,“深蓝”与卡斯帕罗夫,国际象棋棋盘有64格,每方有16个子。棋手在思考下一步棋时大约有35种合法选择。 目前最好的国际象棋程序可以分析到七八个回合,若要求电脑能思考到第七个回合,即14步棋,则需要有3514种可能的结局。 下棋程序靠的是基本的行棋知识和强大无比的检索演算能力。这种信息检索选择方式好比一棵树;共有35个枝干,每个枝干有35个树杈,最终到树叶,即可供选择的结果。越好的程序,所派生的树枝树杈就越多。 一般来讲,电脑每下一步棋,仍需有500亿或600亿种选择。,两本教材(互为补充): Fortran 90 程序设计(上课) Fortran 90 程序设计实验指导与测试(上机),关于本课程教学几点说明,教学课时(3学分) 上课48学时(3学分) 上机48机时(其中教师辅导24机时) 学会实践上机,记问题,关键在个人,上机时间安排,各班级的同学,每周五下午或晚上 都要去机房一楼的通告栏查看下周上机时间,每周上机时间、机房都有可能不同。,课内上机时间安排(辅导24机时),大禹3-4班,课外上机时间安排(自主24机时),大禹3-4班,课内上机时间安排(辅导24机时),农水1-4班,课外上机时间安排(自主24机时),农水1-4班,请记好上机时间安排,并通知教学秘书,防止与其他老师调课冲突。,答疑时间: 每次上机时间、课间 期末考试前、必要时可增加 本人电子邮箱: 手机号码FTP:/,本门课的成绩评定: 平时+期末=总评成绩 平时:作业、考勤、课堂提问,书面作业:每个人准备几张16K大小的纸,作业可能是课堂上做或课后做。 上机作业:每次上机均要将所做的练习存盘,并上交作业。,作业包括两种:,考试时间: 13年春学期3月中旬(fortran不开考) 13秋学期10月中旬 考试形式 笔试 机试,关于江苏省计算机等级考试,一、笔试:考试时间为120分钟,二、机试: 考试时间为70分钟,报名时间: 上半年12月1日开始及之后的1个月之内; 下半年5月25日开始及之后的1个月之内。 考试时间: 上半年3月底(即3月份倒数第一个周六), 下半年9月中旬(即9月份倒数第二个周六)。,关于全国计算机等级考试,考试形式,考试采用全国统一命题,统一考试的形式。考试包括笔试和上机两个部分(一级只有上机,没有笔试),笔试和上机考试分别进行。笔试时间二级均为90分钟,三级为120分钟,四级为120分钟。上机考试时间一级、二级均为90分钟,三级为60分钟,四级三个科目暂不考上机。 第一次笔试合格但上机考试成绩不合格的,或者上机合格笔试不合格的,可以在紧接着的下一次考试中免试已经合格的部分。考生在下次考试报名时,可出具上次考试成绩单,其他手续不变。考试结束后,教育部考试中心将予以核实。,考试合格证书,该考试笔试、上机考试实行百分制计分,笔试以百分制通知考生,上机以等第分数通知考生成绩。等第分数分为“不及格“、“及格“、“良好“、“优秀“四等。100-90分为“优秀“,89-80分为“良好“,79-60分为“及格“,59-0分为“不及格“。 笔试和上机考试成绩均在“及格“以上者,由教育部考试中心发合格证书。笔试和上机考试成绩均为“优秀“的,合格证书上会注明“优秀“字样,证书上没有良好,按及格对待。,课程要求,课前请做好预习 保持课堂安静,头脑清醒,思维活跃 做好课堂笔记 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间,“纸上谈兵”学不出程序设计本领; 只有大量上机、编程、调试,才能掌握。 学好程序设计语言的唯一途径是上机。 你的编程能力和你在机器上投入的时间成正比。,课程要求,第1章 程序设计基础知识,1.4 计算机软件,1.1计算机简介,1.2程序设计语言,1.3 算法的描述,一、 信息处理和计算机 1、信息处理 数值处理 2、信息处理的分类 非数值处理 3、现代计算机工作原理: 程序存储和程序控制 (冯诺依曼),1.1 计算机简介,二、计算机的组成 1、运算器算术运算、逻辑运算 2、控制器根据指令控制计算机工作 运算器、控制器和寄存器称为中央处理器CPU 3、I/O设备提供数据传输服务 4、总线数据传输的公共通道,5、存储器存放数据和指令 二进制位(bit)0和1的电路 字节(Byte)若干个位(8个) 存储单元字节 存储器若干个存储单元 计算机的存储特性:存写 取读,1.2程序设计语言 填补了人与计算机交流的鸿沟,程序设计语言的分类,1.机器语言:二进制代码形式,可以被计算机直接执行,不可移植 2.汇编语言:用助记符来代替机器指令,容易记忆,不可移植 3.高级语言:接近自然语言(英语)的程序设计语言,又称算法语言,易学、易用、易维护,可移植性好 例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等,FORTRAN90源程序必须经过编译、连接后才可运行,F0R90源程序,编译程序,机器语言目标程序,连接构建,可执行程序,1.3 算法的描述,什么是算法? 广义:解决某个问题或处理某个事件的 方法和步骤。 现代含义是计算机解题步骤。,程序设计=算法+数据结构,一个好的算法应当是:可以获得正确的结果,易阅读理解,即易读性好,执行时具有较高的效率。,算法描述的方法,文字说明 伪代码 流程图 盒式图(N-S图) 程序设计语言,文字说明,例如,比较两数A、B的大小,输出较大的数 粗略的思路: (1)读入A、B ( 2)判断A是否大于B (3)若是则输出A,否则输出B (4)结束,伪代码,一种介于自然语言和程序设计语言之间的文字和符号表达工具描述算法的方法:,IF AB 输出A ELSE 输出B END,流程图,使用具有特定含义的图形符号来表示算法。,盒式图(N-S图),条件,满足,不满足,S1块,S2块,0 = S,0 = I,输入A,S+A = S,I +1 = I,直到 I=4,输出结果 S,第2章 Fortran90基础知识,2.4 程序单元概念,2.1Fortran语言的发展,2.2源程序及其构成,2.3 语言元素,2.1 Fortran语言的发展简史,一、FORTRAN 含义及其适用范围 FORmula TRANslator 公式翻译器 科学和工程计算问题的程序设计语言 是第一门广泛应用的程序语言,著名编程语言Fortran创始人巴库斯,FORTRAN语言的重要意义: Fortran堪称是软件行业的转折点,就像微处理器对硬件行业一样重要。Fortran改变了人机通信的方式,使得程序语言更容易被用户理解和接受。因此,Fortran一直被认为是首款大获成功的高级语言。 1977年巴库斯获图灵奖,Fortran语言的发展简史,第一个FORTRAN语言版本是在1954年提出的,在1957年正式发布使用。,FORRAN95不象FORTRAN90在FORTRAN77添加很多内容,只能视为90的修正版,加强了并行运算方面的支持,2.2 FORTRA90源程序基本结构,例2-1: 见书P16页例题:已知华氏温度与摄氏温度之间的换算公式为: 现输入某一华氏温度,请计算出相应的摄氏温度。,PROGRAM H_TO_C !Given the Fahrenheit temprature ,to caculate the Centigrade REAL:TC,TH READ*,TH TC=5*(TH-32)/9 PRINT*,TH,TC END PROGRAM H_TO_C,例2-2: 见书P17页:输入M个整数,将其相加,打印出它们的和。,PROGRAM CAL_M_SUM IMPLICIT NONE INTEGER:N,M REAL:T,A N=0;T=0 PRINT*,Input number of data: READ*,M DO READ*,A T=T+A N=N+1 IF(N=M) EXIT ENDDO PRINT*,T END PROGRAM CAL_M_SUM,例2-3: 求 该问题涉及五个阶乘的相加,可用子程序实现阶乘。,FUNCTION FACTOR(N) RESULT (FAC_RESULT) IMPLICIT NONE INTEGER:N,FAC_RESULT,I FAC_RESULT=1 DO I=1,N FAC_RESULT=FAC_RESULT*I ENDDO END FUNCTION FACTOR PROGRAM CAL_FACTOR IMPLICIT NONE INTEGER:FACTOR,S=0,I DO I=4,8 S=S+FACTOR(I) ENDDO PRINT*,S=,S END PROGRAM CAL_FACTOR,FORTRA90源程序基本结构,1、FORTRAN90程序是一种分块结构,由若干个程序单元块组成: 主程序、外部子程序、模块、块数据单元 无论是主程序单元,还是子程序单元,都是独立的程序单位,应该独立编写,它们的形式相似。 2、主程序结构 PROGRAM 程序名称 程序体 END program 程序名称,其中:END既表示停止运行,又是结束标记。,FORTRA90源程序基本结构,3、各程序单元体形式上相同,都由若干行组成:,语句行:说明语句:用于说明变量的类型、属性等 例:INTEGER:X,Y 可执行语句:输入、赋值、输出 例:A=4;B=B+1,非语句行:注释语句:!后的所有字符都被编译器忽略。 可独占一行,也可在其它语句之后, 空行为注释行(固定格式用C和*),2.3 语言元素,Fortran90的语言元素是指在程序设计中所用到的基本成分,例如字符集、常量、变量、记号以及其它的基本结构等。只有了解并掌握了这些基本要素,才可能正确自如地使用该种语言。,2.3.1 FORTRAN90字符集: 编写Fortran90程序时,所能使用的所有字符及符号。 26个英文字母AZ(az)程序中不区分大小写 在大多数处理系统中允许使用小写字母,除了字符串内的字符外,小写字母等价于相应的大写字母。,10个阿拉伯数字09 _(下划线) 注意与减号(-)的区别。 21个特殊字符(见表2-1): 空格 = + - * / ( ) , : . $ !” % & ; ? 注意:1、在FOR源程序中,只能使用以上字符 2、字符型数据内(即引号内)可以出现任意字符(包括汉字),在Fortran90中,将字母、数字或专用字符的基本有效的序列称为记号,它包括标号、关键字、名字、常数、运算符和定界符。例如: A * SIN(x)+5.3 这个表达式包括6个记号,即A、*、SIN、x、+、5.3。 注意: 在字符串内部,不能随意地添加空格。例“ABC”与“A B C”不同。 在记号内部,也不许随意地使用空格。例SIN(X)与S I N(X)不同。 记号与记号之间的空格可以随意地使用。 多个空格在语法上与一个空格的作用相同。 一个记号与相邻关键字、名字、常数或标号之间,应当用一个或多个空格分开,以避免错误,同时也使结构清晰。,2.3.2 记号,Fortran的数据类型(1),什么是数据类型? 所有的数据都有其所属的类型。类型就是对数据的允许取值及这个值的范围进行的说明。,Fortran的数据类型(2),在每一基本类型中,依据不同的处理系统又细分为不同的种别,每一种别都与一个 整数相对应,此整数则称为种别参数kind_Value 。 可在数值后用下划线标明种别,没有下划线为缺省种别。缺省种别整数的范围一般取决于所用计算机的字长。说明了种别参数后,可提高程序的可移植性。 简而言之,种别即决定数值在计算机中存储的字节数。,常量的定义:常量是程序执行过程中不能变化的量。 基本数据类型有五种: 整型、实型、复型、字符型和逻辑型 前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。,2.3.3基本类型常量,整型数据:微机支持3种kind_Value:1,2,4 kind_Value=1的范围: -128127(-2727-1) kind_Value=2的范围: -3276832767(-215215-1) kind_Value=4的-21474836482147483647(-231231-1) Integer 默认kind_Value的值为4,整型常量又叫整数,整数值的集合就是数学整数的子集。,1.整型常量(INTEGER),0 +456 -123 34_2 34_SHORT 1234567899_4 下划线后面的量就是种别参数,没有下划线的数都具有缺省种别。,例,下列六个数都是合法的整数:,为了保证计算机内数的范围够用,就要通过给定种别参数来约定。种别参数是由内在询问函数KIND送回的。提供的最小范围是由内在函数Selected_int_kind送回的。表示十进制幂的范围是由内在函数range送回的。,功能: 返回一个给定数据的种别参数。 例: KIND(0) :为缺省值,其返回值是整型的标准种别参数。 KIND(2_2): 返回种别参数2。,关于KIND函数,格式:SELECTEND_INT_KIND(N) : 功能:返回范围在-10N10N的整数的kind-Value 例:selected_int_kind(6)可以返回范围在-106+106(不包括两端点值)的所有整数的种别值。 为使程序具有可移植性,可将K6说明成符号常数,作为种别常数来使用。 INTEGER, parameter:k6=selected_int_kind(6) 则具有K6种别的常数就可以写为:123_K6了。,SELECTEND_INT_KIND函数,例2-4 测试FORTRAN系统的整型种别范围,PROGRAM INT_KIND IMPLICIT NONE INTEGER:I PRINT*,KIND(0) DO I=1,10 PRINT*,I,SELECTED_INT_KIND(I) ENDDO ENDPROGRAM INT_KIND,4 1 1 2 1 3 2 4 2 5 4 6 4 7 4 8 4 9 4 10 8,在FORTRAN90中,也可以表示二进制、八进制、十六进制形式的无符号整数。其形式如下: 二进制数:B101101 或 B”101101” 八进制数:O76210 十六进制数:Z1FA2,整型常数的其他表示方法,判定整数,指出合法整数和非法整数? 说明原因,-128、358_5、5,234、130_1、+3276、-52467_2、o136,实型常量又叫实数,它具有数学实数的近似值。 实数最常见的两种表示形式是:小数形式和指数形式 小数形式:由十个数字、小数点及数符组成的数。 指数形式:即科学计数法,对绝对值相对较小或很大的实数 。,2.实型常量(REAL),小数形式:+/- m.n,+/- m.,+/- .n 例 100.0 .5 5. 注:小数点必须有。,数字部分E(或D)指数部分 科学计数法 0.876=87610-3 876E-3 =87.6 10-2 87.6E-2 =0.0876 10+1 0.0876E+1 。,指数形式:,E代替底数10,数字部分:小数形式实数或整数 指数部分:只能为整数 错例:4E5.6 数字部分不能丢; 例:10-4: E-4(错)10E-4(错) 1E-4(正确) 以标准化形式(规格化指数)输出(=1) 1。数字部分的值小于1,且小数点后的第一位数字非0 例:0.743643E-12 (正确) 21.835E-12 (错) 2。数字部分有且仅有一位非零的整数。 例:7.43643E-12 (正确) 0.21835E-12 (错),说明:,一般实数范围:-1038+1038,有效位78位 也有的系统允许数的范围更大,可以超过10100。 上溢:overflow 下溢:当0处理 为了能得到理想的范围和有效数字,要求说明种别类型参数值。(书上有误)例: INTEGER,PARAMETER:long=SELECTED_REAL_KIND(8,88) 则符号常数long提供了至少8位精度,以及-1088+1088的值的范围。 以此说明的实型常量: 4.37_long 457.1234_long 就可以在long指定的精度及数值范围内进行移植。,实数的表示范围:,1、PRECISION(4.37_long) 精度至少为8 2、RANGE(4.37_long) 范围至少88次冪,两个询问函数:,常用实数一般分为两种: real(4)单精度(默认) real(8)双精度,实数种别为8时常量的表示(双精度数) 有效位:15位; 数字部分D指数 例:1.2D2,复型常量又叫复数。具有数学复数的近似值。在科学和工程计算中被广泛用到。复数是实数的有序对,将两个实数中间用逗号分隔,然后再放在一对括号中就构成了一个复数。 复数以a+bi的形式来表示数值,复数中的a、b称为实部和虚部。可为实数,也可为整数。,3.复型常量(COMPLEX),数学 2+3i,一般形式:(实部系数,虚部系数),错例:(1.0/2,3) 正例:(0,6) (1E5,38) (1.0_8,4.2) (15_4,24_8),FORTRAN90 (2,3),复型常量的表示:,计算机除了存储数字之外,也可以在内存中记录一段文本。字符类型可以记录的东西非常广,从键盘输入的任何东西,不论是数字、文本或任何特殊符号,它都可以记录。只记录一个字母、符号时的数据类型称为“字符”,记录一连串的字符时,就称为“字符串”,记录一个西文字符需要一个字节的存储空间。一个汉字为两个字节的存储空间。,4.字符型常量(CHARACTER),由一对单撇号或一对双撇号之间的字符序列组成。 例: ABCD(单撇号)或“4567”(双引号),注意:区分字符大小写 a A 空格有效 a b ab 字符中含或”时的处理方法: 如:Im a student. 可采用两种表示方法: 1) “ Im a student. “ 2 ) I m a student. 字符长度:字符串内字符的个数 空格算一个,起止界不算,长度可为0。(空串或“ ),字符常量的表示:,1、一般处理系统缺省的字符种别参数是KIND(A)返回值。 2、若使用非标准种别字符时,应将其种别参数放在字符常数的前面,以便于简化编译程序分析语句的工作。 例如:某处理系统可以用种别参数值1来支持汉字字符,在这种情况下,一个汉字字符常数可被书写成: 1_”五笔字型输入法”,字符常量的种别参数:1,逻辑型常量只有真(.TRUE.)和假(.FALSE.)两个值。 逻辑常量通常只用来给逻辑变量置初值,以及得到某一逻辑表达式的值。 其缺省种别与系统有关,实际种别可通过KIND(.TRUE.)得到。若要指定,可用一个跟在下划线后的整型常数指出,取值可为1,2,4(缺省)。例如: .FALSE._2,5.逻辑型常量(LOGICAL),2.3.4 名字,用于标识一个程序成分,例如符号常量、变量、派生类型等。对于名字有下列要求: 1.名字的长度不能超过31个字符 2.名字的组成成分可以是字母、数字和下划线 3.名字的第一个字符必须是字母 4.在名字中不能出现空格 提倡使用具有一定含义的名字,提高程序的清晰度和可读性。,1、定义:程序运行过程中值可变化的量 2、命名的规则,错例 3A 、 x-3 、3.14 、A3 $,2.3.5 变量,实际是内存中的一个存储单元,存放变量的值。 特性:取之不尽,一冲就跑,总采用当前值参与运算。 例:A=2.0 A B B=3.0 A=A+B 5.0 15.0 B=A*B 注:A、B必须有确定值,如未定义,值不可预测 (有时按0处理),2.0,3.0,3、变量的含义,基本类型有五种,同常量。五种变量的类型说明关键字分别是: 整型:INTEGER 实型: REAL 复型:COMPLEX 逻辑型:LOGICAL 字符型:CHARACTER,4、变量的类型,变量在使用之前应进行说明。说明的格式是:将关键字放在最前面,待说明的变量放在后面,中间用双分隔符:隔开,对于同时说明的多个变量,变量之间用逗号分隔。 例: INTEGER:I,J,K REAL:X,Y,Z,变量的说明,1.在变量说明的同时,可以给变量赋初值。 INTEGER:I=5,J=126 REAL:X=7.2,Z,W=774.2 2.在说明变量的同时也可说明其种别 REAL(KIND=4):X,Y 或 REAL(4):X,Y 3.在说明变量的同时,还可说明变量的属性 INTEGER,PARAMETER:I=5,J=123 REAL,DIMENSION(1:10):A,Fortran90关于变量说明的新功能:,2.3.6 派生数据类型(第9章),根据需要而由基本数据类型定义新的数据类型。在一个派生类型中可包含多个基本类型。 如:TYPE STUDENT (定义开始) CHARACTER(LEN=20):DEPARTMENT CHARACTER(LEN=10):CLASS CHARACTER(LEN=15):NAME INTEGER:NUMBER (成员定义) END TYPE STUDENT (定义结束),派生类型的使用,派生类型变量的定义: TYPE(STUDENT):PERSON 变量的赋值: PERSON=(”COMPUTER”,”92_2”,”LI LIN”,21) 成员的表示: PERSON%CLASS=“92_2” PERSON%NAME=“LI LIN”,2.3.7 基本类型数组(第7章),数组是具有相同类型的元素的有序集合。数组在使用之前必须说明。 数组的说明: INTEGER,DIMENSION(1:50):X 数组名为X,类型为整型,元素个数为50。 INTEGER,DIMENSION(5,3):B 数组名为B,类型为整型,元素个数为5*3个 维界:1:50 下界:上界 缺省下界为1 数组中元素的个数称为它的大小,维数称为秩,每维中元素的个数称为维的长度,长度的序列称为形。,通过指定下标值的办法来实现。下标值可为整数或整型表达式。下标值不能越界,个数必须与数组的秩相等。 注意:1.允许对数组名进行运算。 2.允许对数组片段进行操作。 所谓数组片段是指数组中某些连续元素的重新组合。数组片段也是一个数组。,数组的引用:,2.3.8 字符子串(第8章),字符型常量又叫字符串。一个字符串的一部分称为子字符串或字符子串。 字符数组: CHARACTER(LEN=1),DIMENSION(80):ROW 引用: ROW(I) 字符串: CHARACTER(LEN=80):ROW 引用: ROW(I:I);ROW(4:7) 特殊:ROW(:I) 相当于 ROW(1:I) ROW(I:) 相当于 ROW(I:80) ROW(:) 相当于 ROW(1:80),2.3.9 数据对象和子对象(第7章),由一个名引用的对象: 有名标量(简单变量) 有名数组 由子对象标志符引用的子对象是: 数组元素 数组片段 结构分量 子串,2.4 程序单元概念,程序单元是FORTRAN语言的基本成分。程序单元可以是主程序、子程序、模块或块数据程序单元。子程序可以是函数子程序或子例行子程序。模块包含的说明是对其它的程序单元形成可访问性。块数据单元用来对有名公用区中的数据对象赋初值。(F90中不提倡使用),2.4.1 主程序,主程序是不包含SUBROUTINE、FUNCTION、M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论