Visual-Fortran90程序设计基础第1、2章课件_第1页
Visual-Fortran90程序设计基础第1、2章课件_第2页
Visual-Fortran90程序设计基础第1、2章课件_第3页
Visual-Fortran90程序设计基础第1、2章课件_第4页
Visual-Fortran90程序设计基础第1、2章课件_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

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

文档简介

04一月2023主讲XXXVisualFortran90程序设计27十二月2022主讲XXXVisualFortr课程要求

课前请做好预习保持课堂安静,头脑清醒,思维活跃做好课堂笔记认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间课程要求课前请做好预习“纸上谈兵”学不出程序设计本领;只有大量上机、编程、调试,才能掌握。学好程序设计语言的唯一途径是上机。你的编程能力和你在机器上投入的时间成正比。课程要求“纸上谈兵”学不出程序设计本领;课程要求第1章程序设计基础知识§1.4计算机软件§1.1计算机简介§1.2程序设计语言§1.3算法的描述第1章程序设计基础知识§1.4计算机软件§1.1计算机简一、信息处理和计算机

1、信息处理数值处理

2、信息处理的分类

非数值处理

3、现代计算机工作原理:

程序存储和程序控制(冯·诺依曼)§1.1计算机简介一、信息处理和计算机§1.1计算机简介二、计算机的组成1、运算器——算术运算、逻辑运算2、控制器——根据指令控制计算机工作运算器、控制器和寄存器称为中央处理器CPU3、I/O设备——提供数据传输服务4、总线——数据传输的公共通道二、计算机的组成5、存储器——存放数据和指令

二进制位(bit)——0和1的电路

字节(Byte)——若干个位(8个)

存储单元——字节

存储器——若干个存储单元

计算机的存储特性:存————写 取————读5、存储器——存放数据和指令§1.2程序设计语言

填补了人与计算机交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人程序设计语言§1.2程序设计语言

填补了人与计算机交流的鸿沟计算机硬件仅程序设计语言的分类1.机器语言:二进制代码形式,可以被计算机直接执行,不可移植2.汇编语言:用助记符来代替机器指令,容易记忆,不可移植3.高级语言:接近自然语言(英语)的程序设计语言,又称算法语言,易学、易用、易维护,可移植性好例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等程序设计语言的分类1.机器语言:二进制代码形式,可以被计算机FORTRAN90源程序必须经过编译、连接后才可运行

F0R90源程序

编译程序机器语言目标程序

连接构建可执行程序FORTRAN90源程序必须经过编译、连接后才可运行F0R§1.3算法的描述

什么是算法?广义:解决某个问题或处理某个事件的方法和步骤。现代含义是计算机解题步骤。程序设计=算法+数据结构§1.3算法的描述什么是算法?程序设计=算法+数据结构一个好的算法应当是:可以获得正确的结果,易阅读理解,即易读性好,执行时具有较高的效率。一个好的算法应当是:可以获得正确的结果,易阅读理解,即易读性算法描述的方法

文字说明

伪代码

流程图盒式图(N-S图)

程序设计语言算法描述的方法文字说明文字说明例如,比较两数A、B的大小,输出较大的数粗略的思路:

(1)读入A、B

(2)判断A是否大于B

(3)若是则输出A,否则输出B

(4)结束文字说明例如,比较两数A、B的大小,输出较大的数伪代码一种介于自然语言和程序设计语言之间的文字和符号表达工具描述算法的方法:

IFA>B

输出AELSE

输出BEND伪代码一种介于自然语言和程序设计语言之间的文字和符号表达工具流程图使用具有特定含义的图形符号来表示算法。图形符号名称代表的操作输入/输出数据的输入与输出处理各种形式的数据处理判断判断选择,根据条件满足与否选择不同路径起止流程的起点与终点特定过程一个定义过的过程流程线连接各个图框,表示执行顺序连接点表示与流程图其他部分相连接流程图使用具有特定含义的图形符号来表示算法。图形符号名称代表Visual-Fortran90程序设计基础第1、2章课件盒式图(N-S图)条件满足不满足S1块S2块0=>S0=>

I输入AS+A=>SI+1=>I直到

I=4输出结果S盒式图(N-S图)条件满足不满足S1块S2块0=>S0第2章Fortran90基础知识§2.4程序单元概念§2.1Fortran语言的发展§2.2源程序及其构成§2.3语言元素第2章Fortran90基础知识§2.4程序单元概念§2§2.1Fortran语言的发展简史一、FORTRAN含义及其适用范围

FORmulaTRANslator公式翻译器

科学和工程计算问题的程序设计语言

是第一门广泛应用的程序语言

著名编程语言Fortran创始人巴库斯

FORTRAN语言的重要意义:Fortran堪称是软件行业的转折点,就像微处理器对硬件行业一样重要。Fortran改变了人机通信的方式,使得程序语言更容易被用户理解和接受。因此,Fortran一直被认为是首款大获成功的高级语言。1977年巴库斯获图灵奖§2.1Fortran语言的发展简史一、FORTRANFortran语言的发展简史第一个FORTRAN语言版本是在1954年提出的,在1957年正式发布使用。1958FORTRANⅡ1962FORTRANⅣ1978FORTRAN771991.FORTRAN901997.FORTRAN95

FORRAN95不象FORTRAN90在FORTRAN77添加很多内容,只能视为90的修正版,加强了并行运算方面的支持Fortran语言的发展简史第一个FORTRAN语言版本是在§2.2FORTRA90源程序基本结构例[2-1]:

见书P16页例题:已知华氏温度与摄氏温度之间的换算公式为:

现输入某一华氏温度Th,请计算出相应的摄氏温度Tc。PROGRAMH_TO_C

!GiventheFahrenheittemprature,tocaculatetheCentigrade

REAL::TC,TH READ*,TH TC=5*(TH-32)/9 PRINT*,TH,TCENDPROGRAMH_TO_C§2.2FORTRA90源程序基本结构例[2-1]:见书例[2-2]:

见书P17页:输入M个整数,将其相加,打印出它们的和。PROGRAMCAL_M_SUM

IMPLICITNONE INTEGER::N,M REAL::T,A N=0;T=0 PRINT*,'Inputnumberofdata:' READ*,M DO READ*,A T=T+A N=N+1 IF(N>=M)EXIT ENDDO PRINT*,TENDPROGRAMCAL_M_SUM例[2-2]:见书P17页:输入M个整数,将其相加,打印出例[2-3]:

求该问题涉及五个阶乘的相加,可用子程序实现阶乘。FUNCTIONFACTOR(N)RESULT(FAC_RESULT)

IMPLICITNONE INTEGER::N,FAC_RESULT,I FAC_RESULT=1 DOI=1,N FAC_RESULT=FAC_RESULT*I ENDDOENDFUNCTIONFACTOR

PROGRAMCAL_FACTOR

IMPLICITNONE INTEGER::FACTOR,S=0,I DOI=4,8 S=S+FACTOR(I) ENDDO PRINT*,'S=',SENDPROGRAMCAL_FACTOR例[2-3]:求该FORTRA90源程序基本结构1、FORTRAN90程序是一种分块结构,由若干个程序单元块组成:主程序、外部子程序、模块、块数据单元

无论是主程序单元,还是子程序单元,都是独立的程序单位,应该独立编写,它们的形式相似。2、主程序结构

PROGRAM

程序名称程序体

END[program程序名称]其中:END既表示停止运行,又是结束标记。FORTRA90源程序基本结构1、FORTRAN90程序是一FORTRA90源程序基本结构3、各程序单元体形式上相同,都由若干行组成:语句行:说明语句:用于说明变量的类型、属性等例:INTEGER::X,Y

可执行语句:输入、赋值、输出例:A=4;B=B+1非语句行:注释语句:!后的所有字符都被编译器忽略。可独占一行,也可在其它语句之后,空行为注释行(固定格式用C和*)FORTRA90源程序基本结构3、各程序单元体形式上相同,都§2.3语言元素Fortran90的语言元素是指在程序设计中所用到的基本成分,例如字符集、常量、变量、记号以及其它的基本结构等。只有了解并掌握了这些基本要素,才可能正确自如地使用该种语言。2.3.1FORTRAN90字符集:编写Fortran90程序时,所能使用的所有字符及符号。

⑴26个英文字母A~Z(a~z)程序中不区分大小写在大多数处理系统中允许使用小写字母,除了字符串内的字符外,小写字母等价于相应的大写字母。§2.3语言元素Fortran90的语言元素是⑵10个阿拉伯数字0~9⑶_(下划线)注意与减号(-)的区别。

⑷21个特殊字符(见表2-1):空格=+-*/(),:.$‘!”%&;><?注意:1、在FOR源程序中,只能使用以上字符

2、字符型数据内(即引号内)可以出现任意字符(包括汉字)

⑵10个阿拉伯数字0~9

在Fortran90中,将字母、数字或专用字符的基本有效的序列称为记号,它包括标号、关键字、名字、常数、运算符和定界符。例如:A*SIN(x)+5.3

这个表达式包括6个记号,即A、*、SIN、x、+、5.3。注意:

在字符串内部,不能随意地添加空格。例“ABC”与“ABC”不同。在记号内部,也不许随意地使用空格。例SIN(X)与SIN(X)不同。记号与记号之间的空格可以随意地使用。多个空格在语法上与一个空格的作用相同。一个记号与相邻关键字、名字、常数或标号之间,应当用一个或多个空格分开,以避免错误,同时也使结构清晰。2.3.2记号在Fortran90中,将字母、数字或专用字符的基Fortran的数据类型(1)什么是数据类型?所有的数据都有其所属的类型。类型就是对数据的允许取值及这个值的范围进行的说明。整型数据类型基本类型字符类型逻辑类型实型派生类型(用户自定义类型)数组指针复型Fortran的数据类型(1)什么是数据类型?整型数据类型基Fortran的数据类型(2)

在每一基本类型中,依据不同的处理系统又细分为不同的种别,每一种别都与一个整数相对应,此整数则称为种别参数kind_Value

可在数值后用下划线标明种别,没有下划线为缺省种别。缺省种别整数的范围一般取决于所用计算机的字长。说明了种别参数后,可提高程序的可移植性。

简而言之,种别即决定数值在计算机中存储的字节数。

Fortran的数据类型(2)在每一基本类型中,

常量的定义:常量是程序执行过程中不能变化的量。基本数据类型有五种:

整型、实型、复型、字符型和逻辑型

前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。2.3.3基本类型常量常量的定义:常量是程序执行过程中不能变化的量。2.3.整型数据:微机支持4种kind_Value:1,2,4,8kind_Value=1的范围:-128~127(-27~27-1)kind_Value=2的范围:-32768~32767(-215~215-1)kind_Value=4的-2147483648~2147483647(-231~231-1)

Integer默认kind_Value的值为4

整型常量又叫整数,整数值的集合就是数学整数的子集。1.整型常量(INTEGER)整型数据:微机支持4种kind_Value:1,2,4,8

FORTRAN90通过KIND值确定整数的存储开销、最大位数和取值范围,如表所示。缺省KIND值则取默认值4。

KIND值字节数二进位数取值范围

118-128~1272216-32768~327674432-2147483648~2147483647

0+456-12334_234_SHORT12345678998765432_4下划线后面的量就是种别参数,没有下划线的数都具有缺省种别。例,下列六个数都是合法的整数:

为了保证计算机内数的范围够用,就要通过给定种别参数来约定。种别参数是由内在询问函数KIND送回的。提供的最小范围是由内在函数Selected_int_kind送回的。表示十进制幂的范围是由内在函数range送回的。0+456-123例,下列六个数都是功能:返回一个给定数据的种别参数。例:KIND(0):为缺省值,其返回值是整型的标准种别参数。KIND(2_2):

返回种别参数2。关于KIND函数功能:关于KIND函数格式:SELECTEND_INT_KIND(N):功能:返回范围在-10N~10N的整数的kind-Value

例:selected_int_kind(6)可以返回范围在-106~+106(不包括两端点值)的所有整数的种别值。为使程序具有可移植性,可将K6说明成符号常数,作为种别常数来使用。

INTEGER,parameter::k6=selected_int_kind(6)

则具有K6种别的常数就可以写为:123_K6了。SELECTEND_INT_KIND函数格式:SELECTEND_INT_KIND(N):SELE例2-4测试FORTRAN系统的整型种别范围PROGRAMINT_KIND

IMPLICITNONE

INTEGER::I

PRINT*,KIND(0) DOI=1,10

PRINT*,I,SELECTED_INT_KIND(I) ENDDOENDPROGRAMINT_KIND4112132425464748494108例2-4测试FORTRAN系统的整型种别范围PROGRAM

在FORTRAN90中,也可以表示二进制、八进制、十六进制形式的无符号整数。其形式如下:二进制数:B’101101’

或B”101101”八进制数:O’76210’

十六进制数:Z’1FA2’整型常数的其他表示方法在FORTRAN90中,也可以表示二进制、八进制判定整数,指出合法整数和非法整数?

说明原因-128、358_5、5,234、130_1、+3276、-52467、o136判定整数,指出合法整数和非法整数?

说明原因-128、358实型常量又叫实数,它具有数学实数的近似值。实数最常见的两种表示形式是:小数形式和指数形式小数形式:由十个数字、小数点及数符组成的数。指数形式:即科学计数法,对绝对值相对较小或很大的实数。2.实型常量(REAL)⒈小数形式:+/-m.n,+/-m.,+/-.n

例100.0.55.

注:小数点必须有。实型常量又叫实数,它具有数学实数的近似值。2.实型常量(RE

数字部分E(或D)±指数部分科学计数法0.876=876×10-3876E-3

=87.6×10-2 87.6E-2 =0.0876×10+10.0876E+1

。。。

⒉指数形式:E代替底数10数字部分E(或D)±指数部分⒉指数形式:E代替底数10⑴数字部分:小数形式实数或整数⑵指数部分:只能为整数错例:4E5.6⑶数字部分不能丢;例:10-4:

E-4(错)1E-4(正确)⑷以标准化形式(规格化指数)输出(<1或>=1)

1。数字部分的值小于1,且小数点后的第一位数字非0

例:0.743643E-12(正确)

21.835E-12(错)

2。数字部分有且仅有一位非零的整数。

例:7.43643E-12(正确)

0.21835E-12(错)说明:⑴数字部分:小数形式实数或整数说明:一般实数范围:-1038~+1038,有效位7~8位也有的系统允许数的范围更大,可以超过10100。上溢:overflow下溢:当0处理为了能得到理想的范围和有效数字,要求说明种别类型参数值。(书上有误)例:

INTEGER,PARAMETER::long=SELECTED_REAL_KIND(8,88)则符号常数long提供了至少8位精度,以及-1088~+1088的值的范围。以此说明的实型常量:

4.37_long457.1234_long就可以在long指定的精度及数值范围内进行移植。实数的表示范围:一般实数范围:-1038~+1038,有效位7~8位实数的表1、PRECISION(4.37_long)精度至少为82、RANGE(4.37_long)范围至少88次冪两个询问函数:常用实数一般分为两种:

real(4)单精度(默认)

real(8)双精度实数种别为8时常量的表示(双精度数)有效位:15位;数字部分D±指数例:1.2D21、PRECISION(4.37_long)精

复型常量又叫复数。具有数学复数的近似值。在科学和工程计算中被广泛用到。复数是实数的有序对,将两个实数中间用逗号分隔,然后再放在一对括号中就构成了一个复数。复数以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)复型常量的表示:

数学2+3i一般形式:(实部系数,虚部系数)一

计算机除了存储数字之外,也可以在内存中记录一段文本。字符类型可以记录的东西非常广,从键盘输入的任何东西,不论是数字、文本或任何特殊符号,它都可以记录。只记录一个字母、符号时的数据类型称为“字符”,记录一连串的字符时,就称为“字符串”,记录一个西文字符需要一个字节的存储空间。一个汉字为两个字节的存储空间。4.字符型常量(CHARACTER)计算机除了存储数字之外,也可以在内存中记录一段文本。由一对单撇号或一对双撇号之间的字符序列组成。例:‘ABCD’(单撇号)或“4567”(双引号)注意:⒈区分字符大小写

‘a’‘A’⒉空格有效

‘ab’

‘ab’⒊字符中含’或”时的处理方法:如:I’mastudent.可采用两种表示方法:

1)"I’mastudent.

"2)’I’’

mastudent.’

⒋字符长度:字符串内字符的个数

空格算一个,起止界不算,长度可为0。(空串’’或"")字符常量的表示:由一对单撇号或一对双撇号之间的字符序列组成。注意:⒈区分字符1、一般处理系统缺省的字符种别参数是KIND(‘A’)返回值。2、若使用非标准种别字符时,应将其种别参数放在字符常数的前面,以便于简化编译程序分析语句的工作。例如:某处理系统可以用种别参数值1来支持汉字字符,在这种情况下,一个汉字字符常数可被书写成:

1_”五笔字型输入法”

字符常量的种别参数:1、一般处理系统缺省的字符种别参数是KIND(‘A’)返回值逻辑型常量只有真(.TRUE.)和假(.FALSE.)两个值。逻辑常量通常只用来给逻辑变量置初值,以及得到某一逻辑表达式的值。

其缺省种别与系统有关,实际种别可通过KIND(.TRUE.)得到。若要指定,可用一个跟在下划线后的整型常数指出,取值可为1,2,4(缺省)。例如:.FALSE._25.逻辑型常量(LOGICAL)逻辑型常量只有真(.TRUE.)和假(.FALSE.)两个值2.3.4名字用于标识一个程序成分,例如符号常量、变量、派生类型等。对于名字有下列要求:

1.名字的长度不能超过31个字符

2.名字的组成成分可以是字母、数字和下划线

3.名字的第一个字符必须是字母

4.在名字中不能出现空格提倡使用具有一定含义的名字,提高程序的清晰度和可读性。2.3.4名字用于标识一个程序成分,例如符号常量、变量、派1、定义:程序运行过程中值可变化的量2、命名的规则字母、数字、下划线组成字母开头长度1-31个错例3A、x-3、3.14、A3$2.3.5变量1、定义:程序运行过程中值可变化的量字母、数字、下划线组成错实际是内存中的一个存储单元,存放变量的值。

特性:取之不尽,一冲就跑,总采用当前值参与运算。例:A=2.0AB B=3.0 A=A+B5.015.0 B=A*B

注:A、B必须有确定值,如未定义,值不可预测 (有时按0处理)2.03.03、变量的含义实际是内存中的一个存储单元,存放变量的值。2.03.03、

基本类型有五种,同常量。五种变量的类型说明关键字分别是:整型:INTEGER

实型:REAL复型:COMPLEX

逻辑型:LOGICAL字符型:CHARACTER

4、变量的类型基本类型有五种,同常量。五种变量的类型说明关键字分别是

变量在使用之前应进行说明。说明的格式是:将关键字放在最前面,待说明的变量放在后面,中间用双分隔符::隔开,对于同时说明的多个变量,变量之间用逗号分隔。例:INTEGER::I,J,KREAL::X,Y,Z变量的说明变量在使用之前应进行说明。说明的格式是:将关键字放在1.在变量说明的同时,可以给变量赋初值。

INTEGER::I=5,J=126REAL::X=7.2,Z,W=774.22.在说明变量的同时也可说明其种别

REAL(KIND=4)::X,Y或REAL(4)::X,Y3.在说明变量的同时,还可说明变量的属性

INTEGER,PARAMETER::I=5,J=123REAL,DIMENSION(1:10)::AFortran90关于变量说明的新功能:1.在变量说明的同时,可以给变量赋初值。Fortran92.3.6派生数据类型(第9章)

根据需要而由基本数据类型定义新的数据类型。在一个派生类型中可包含多个基本类型。如:TYPESTUDENT(定义开始)CHARACTER(LEN=20)::DEPARTMENTCHARACTER(LEN=10)::CLASSCHARACTER(LEN=15)::NAMEINTEGER::NUMBER(成员定义)

ENDTYPESTUDENT(定义结束)2.3.6派生数据类型(第9章)根据需要而由基派生类型的使用派生类型变量的定义:

TYPE(STUDENT)::PERSON变量的赋值:

PERSON=(”COMPUTER”,”92_2”,”LILIN”,21)成员的表示:

PERSON%CLASS=“92_2”PERSON%NAME=“LILIN”派生类型的使用派生类型变量的定义:2.3.7基本类型数组(第7章)

数组是具有相同类型的元素的有序集合。数组在使用之前必须说明。数组的说明:

INTEGER,DIMENSION(1:50)::X

数组名为X,类型为整型,元素个数为50。

INTEGER,DIMENSION(5,3)::B

数组名为B,类型为整型,元素个数为5*3个维界:1:50下界:上界缺省下界为1

数组中元素的个数称为它的大小,维数称为秩,每维中元素的个数称为维的长度,长度的序列称为形。2.3.7基本类型数组(第7章)数组是具有相同通过指定下标值的办法来实现。下标值可为整数或整型表达式。下标值不能越界,个数必须与数组的秩相等。注意: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.8字符子串(第8章)字符型常量又叫字符2.3.9数据对象和子对象(第7章)由一个名引用的对象:有名标量(简单变量)有名数组由子对象标志符引用的子对象是:数组元素数组片段结构分量子串2.3.9数据对象和子对象(第7章)由一个名引用的对象:§2.4程序单元概念

程序单元是FORTRAN语言的基本成分。程序单元可以是主程序、子程序、模块或块数据程序单元。子程序可以是函数子程序或子例行子程序。模块包含的说明是对其它的程序单元形成可访问性。块数据单元用来对有名公用区中的数据对象赋初值。(F90中不提倡使用)§2.4程序单元概念程序单元是FORTRAN语2.4.1主程序

主程序是不包含SUBROUTINE、FUNCTION、MODULE或BLOCKDATA语句作为其第一条语句的程序单元。主程序的结构:

[PROGRAM程序名称]一般省略

[声明语句部分][执行语句部分]END[program[程序名称]]2.4.1主程序主程序是不包含SUBROUTI主程序其他限制主程序的可执行部分不能包含有RETURN语句或者ENTRY语句。程序名对可执行程序是全局的,而且不得于该可执行程序中的任何其它程序单元名、外部过程名或公用块名相同,也不得于主程序内的任何局部名相同。在主程序的作用范围内的说明不得包含OPTIONAL语句、INTENT语句、PUBLIC语句或它们的等价属性,在主程序内SAVE语句不起作用。主程序内的任何内部过程的定义必须跟在CONTAINS语句之后。主程序其他限制主程序的可执行部分不能包含有RETURN语句或2.3.2子程序

子程序是可以完成某一独立算法或功能的程序单元,但它功能的具体体现要通过主程序(或子程序)的调用来实现。按子程序与主程序的位置关系分为内部过程和外部过程。内部过程可以出现在主程序、外部过程或模块内。2.3.2子程序子程序是可以完成某一独立算法或2.4.3模块

模块也是一种在程序单元之外独立编写的程序单元。它有独特的形式,即模块程序单元内没有可执行语句,除了说明语句外,最多包含内部过程。模块的主要作用是供其它程序单元引用。程序单元引用模块,实际是将模块内的全部语句复制到本程序单元。因此模块起共享及复制的作用。模块的引用采用语句:

USE模块1,模块2,…2.4.3模块模块也是一种在程序单元之外独立编2.4.4块数据程序单元

块数据程序单元对有名公用块内的数据对象提供初值。由于块数据程序单元赖以支持的COMMON语句和DATA语句在F90中已成为过时特性,因此,不提倡使用块数据程序单元。2.4.4块数据程序单元块数据程序单元对有名公练习1:FORTRAN90使用的专用字符集中,以下字符中可用于标识符(如变量名)的是:A.*B.$C._(下划线)D.&练习1:FORTRAN90使用的专用字符集中,以下字符中可用练习2:有关FORTRAN90主程序单位,以下说法中错误的是:A.一个程序中主程序单位的命名必须是唯一的B.主程序单位的结尾必须是END语句后跟PROGRAM主程序名C.主程序单位内不能包含有RETURN语句D.主程序单位本身不能递归调用练习2:有关FORTRAN90主程序单位,以下说法中错误的是练习3:以下描述各种功能的程序块中,不属于FORTRAN90独立程序单位的是:A.PROGRAMmain……

……ENDPROGRAMMainB.INTERFACEOPERATER(……)……ENDINTERFACEC.SUBROUTINEsub(……)……ENDSUBROTINEsubD.MODULEabc……

……ENDMODULEabc练习3:以下描述各种功能的程序块中,不属于FORTRAN90本章小结1、算法的概念及描述2、FORTRAN语言的发展历史3、源程序的构成4、语言元素:字符集、基本类型常量、变量、数组等5、程序单元概念本章小结1、算法的概念及描述04一月2023主讲XXXVisualFortran90程序设计27十二月2022主讲XXXVisualFortr课程要求

课前请做好预习保持课堂安静,头脑清醒,思维活跃做好课堂笔记认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间课程要求课前请做好预习“纸上谈兵”学不出程序设计本领;只有大量上机、编程、调试,才能掌握。学好程序设计语言的唯一途径是上机。你的编程能力和你在机器上投入的时间成正比。课程要求“纸上谈兵”学不出程序设计本领;课程要求第1章程序设计基础知识§1.4计算机软件§1.1计算机简介§1.2程序设计语言§1.3算法的描述第1章程序设计基础知识§1.4计算机软件§1.1计算机简一、信息处理和计算机

1、信息处理数值处理

2、信息处理的分类

非数值处理

3、现代计算机工作原理:

程序存储和程序控制(冯·诺依曼)§1.1计算机简介一、信息处理和计算机§1.1计算机简介二、计算机的组成1、运算器——算术运算、逻辑运算2、控制器——根据指令控制计算机工作运算器、控制器和寄存器称为中央处理器CPU3、I/O设备——提供数据传输服务4、总线——数据传输的公共通道二、计算机的组成5、存储器——存放数据和指令

二进制位(bit)——0和1的电路

字节(Byte)——若干个位(8个)

存储单元——字节

存储器——若干个存储单元

计算机的存储特性:存————写 取————读5、存储器——存放数据和指令§1.2程序设计语言

填补了人与计算机交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人程序设计语言§1.2程序设计语言

填补了人与计算机交流的鸿沟计算机硬件仅程序设计语言的分类1.机器语言:二进制代码形式,可以被计算机直接执行,不可移植2.汇编语言:用助记符来代替机器指令,容易记忆,不可移植3.高级语言:接近自然语言(英语)的程序设计语言,又称算法语言,易学、易用、易维护,可移植性好例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等程序设计语言的分类1.机器语言:二进制代码形式,可以被计算机FORTRAN90源程序必须经过编译、连接后才可运行

F0R90源程序

编译程序机器语言目标程序

连接构建可执行程序FORTRAN90源程序必须经过编译、连接后才可运行F0R§1.3算法的描述

什么是算法?广义:解决某个问题或处理某个事件的方法和步骤。现代含义是计算机解题步骤。程序设计=算法+数据结构§1.3算法的描述什么是算法?程序设计=算法+数据结构一个好的算法应当是:可以获得正确的结果,易阅读理解,即易读性好,执行时具有较高的效率。一个好的算法应当是:可以获得正确的结果,易阅读理解,即易读性算法描述的方法

文字说明

伪代码

流程图盒式图(N-S图)

程序设计语言算法描述的方法文字说明文字说明例如,比较两数A、B的大小,输出较大的数粗略的思路:

(1)读入A、B

(2)判断A是否大于B

(3)若是则输出A,否则输出B

(4)结束文字说明例如,比较两数A、B的大小,输出较大的数伪代码一种介于自然语言和程序设计语言之间的文字和符号表达工具描述算法的方法:

IFA>B

输出AELSE

输出BEND伪代码一种介于自然语言和程序设计语言之间的文字和符号表达工具流程图使用具有特定含义的图形符号来表示算法。图形符号名称代表的操作输入/输出数据的输入与输出处理各种形式的数据处理判断判断选择,根据条件满足与否选择不同路径起止流程的起点与终点特定过程一个定义过的过程流程线连接各个图框,表示执行顺序连接点表示与流程图其他部分相连接流程图使用具有特定含义的图形符号来表示算法。图形符号名称代表Visual-Fortran90程序设计基础第1、2章课件盒式图(N-S图)条件满足不满足S1块S2块0=>S0=>

I输入AS+A=>SI+1=>I直到

I=4输出结果S盒式图(N-S图)条件满足不满足S1块S2块0=>S0第2章Fortran90基础知识§2.4程序单元概念§2.1Fortran语言的发展§2.2源程序及其构成§2.3语言元素第2章Fortran90基础知识§2.4程序单元概念§2§2.1Fortran语言的发展简史一、FORTRAN含义及其适用范围

FORmulaTRANslator公式翻译器

科学和工程计算问题的程序设计语言

是第一门广泛应用的程序语言

著名编程语言Fortran创始人巴库斯

FORTRAN语言的重要意义:Fortran堪称是软件行业的转折点,就像微处理器对硬件行业一样重要。Fortran改变了人机通信的方式,使得程序语言更容易被用户理解和接受。因此,Fortran一直被认为是首款大获成功的高级语言。1977年巴库斯获图灵奖§2.1Fortran语言的发展简史一、FORTRANFortran语言的发展简史第一个FORTRAN语言版本是在1954年提出的,在1957年正式发布使用。1958FORTRANⅡ1962FORTRANⅣ1978FORTRAN771991.FORTRAN901997.FORTRAN95

FORRAN95不象FORTRAN90在FORTRAN77添加很多内容,只能视为90的修正版,加强了并行运算方面的支持Fortran语言的发展简史第一个FORTRAN语言版本是在§2.2FORTRA90源程序基本结构例[2-1]:

见书P16页例题:已知华氏温度与摄氏温度之间的换算公式为:

现输入某一华氏温度Th,请计算出相应的摄氏温度Tc。PROGRAMH_TO_C

!GiventheFahrenheittemprature,tocaculatetheCentigrade

REAL::TC,TH READ*,TH TC=5*(TH-32)/9 PRINT*,TH,TCENDPROGRAMH_TO_C§2.2FORTRA90源程序基本结构例[2-1]:见书例[2-2]:

见书P17页:输入M个整数,将其相加,打印出它们的和。PROGRAMCAL_M_SUM

IMPLICITNONE INTEGER::N,M REAL::T,A N=0;T=0 PRINT*,'Inputnumberofdata:' READ*,M DO READ*,A T=T+A N=N+1 IF(N>=M)EXIT ENDDO PRINT*,TENDPROGRAMCAL_M_SUM例[2-2]:见书P17页:输入M个整数,将其相加,打印出例[2-3]:

求该问题涉及五个阶乘的相加,可用子程序实现阶乘。FUNCTIONFACTOR(N)RESULT(FAC_RESULT)

IMPLICITNONE INTEGER::N,FAC_RESULT,I FAC_RESULT=1 DOI=1,N FAC_RESULT=FAC_RESULT*I ENDDOENDFUNCTIONFACTOR

PROGRAMCAL_FACTOR

IMPLICITNONE INTEGER::FACTOR,S=0,I DOI=4,8 S=S+FACTOR(I) ENDDO PRINT*,'S=',SENDPROGRAMCAL_FACTOR例[2-3]:求该FORTRA90源程序基本结构1、FORTRAN90程序是一种分块结构,由若干个程序单元块组成:主程序、外部子程序、模块、块数据单元

无论是主程序单元,还是子程序单元,都是独立的程序单位,应该独立编写,它们的形式相似。2、主程序结构

PROGRAM

程序名称程序体

END[program程序名称]其中:END既表示停止运行,又是结束标记。FORTRA90源程序基本结构1、FORTRAN90程序是一FORTRA90源程序基本结构3、各程序单元体形式上相同,都由若干行组成:语句行:说明语句:用于说明变量的类型、属性等例:INTEGER::X,Y

可执行语句:输入、赋值、输出例:A=4;B=B+1非语句行:注释语句:!后的所有字符都被编译器忽略。可独占一行,也可在其它语句之后,空行为注释行(固定格式用C和*)FORTRA90源程序基本结构3、各程序单元体形式上相同,都§2.3语言元素Fortran90的语言元素是指在程序设计中所用到的基本成分,例如字符集、常量、变量、记号以及其它的基本结构等。只有了解并掌握了这些基本要素,才可能正确自如地使用该种语言。2.3.1FORTRAN90字符集:编写Fortran90程序时,所能使用的所有字符及符号。

⑴26个英文字母A~Z(a~z)程序中不区分大小写在大多数处理系统中允许使用小写字母,除了字符串内的字符外,小写字母等价于相应的大写字母。§2.3语言元素Fortran90的语言元素是⑵10个阿拉伯数字0~9⑶_(下划线)注意与减号(-)的区别。

⑷21个特殊字符(见表2-1):空格=+-*/(),:.$‘!”%&;><?注意:1、在FOR源程序中,只能使用以上字符

2、字符型数据内(即引号内)可以出现任意字符(包括汉字)

⑵10个阿拉伯数字0~9

在Fortran90中,将字母、数字或专用字符的基本有效的序列称为记号,它包括标号、关键字、名字、常数、运算符和定界符。例如:A*SIN(x)+5.3

这个表达式包括6个记号,即A、*、SIN、x、+、5.3。注意:

在字符串内部,不能随意地添加空格。例“ABC”与“ABC”不同。在记号内部,也不许随意地使用空格。例SIN(X)与SIN(X)不同。记号与记号之间的空格可以随意地使用。多个空格在语法上与一个空格的作用相同。一个记号与相邻关键字、名字、常数或标号之间,应当用一个或多个空格分开,以避免错误,同时也使结构清晰。2.3.2记号在Fortran90中,将字母、数字或专用字符的基Fortran的数据类型(1)什么是数据类型?所有的数据都有其所属的类型。类型就是对数据的允许取值及这个值的范围进行的说明。整型数据类型基本类型字符类型逻辑类型实型派生类型(用户自定义类型)数组指针复型Fortran的数据类型(1)什么是数据类型?整型数据类型基Fortran的数据类型(2)

在每一基本类型中,依据不同的处理系统又细分为不同的种别,每一种别都与一个整数相对应,此整数则称为种别参数kind_Value

可在数值后用下划线标明种别,没有下划线为缺省种别。缺省种别整数的范围一般取决于所用计算机的字长。说明了种别参数后,可提高程序的可移植性。

简而言之,种别即决定数值在计算机中存储的字节数。

Fortran的数据类型(2)在每一基本类型中,

常量的定义:常量是程序执行过程中不能变化的量。基本数据类型有五种:

整型、实型、复型、字符型和逻辑型

前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。2.3.3基本类型常量常量的定义:常量是程序执行过程中不能变化的量。2.3.整型数据:微机支持4种kind_Value:1,2,4,8kind_Value=1的范围:-128~127(-27~27-1)kind_Value=2的范围:-32768~32767(-215~215-1)kind_Value=4的-2147483648~2147483647(-231~231-1)

Integer默认kind_Value的值为4

整型常量又叫整数,整数值的集合就是数学整数的子集。1.整型常量(INTEGER)整型数据:微机支持4种kind_Value:1,2,4,8

FORTRAN90通过KIND值确定整数的存储开销、最大位数和取值范围,如表所示。缺省KIND值则取默认值4。

KIND值字节数二进位数取值范围

118-128~1272216-32768~327674432-2147483648~2147483647

0+456-12334_234_SHORT12345678998765432_4下划线后面的量就是种别参数,没有下划线的数都具有缺省种别。例,下列六个数都是合法的整数:

为了保证计算机内数的范围够用,就要通过给定种别参数来约定。种别参数是由内在询问函数KIND送回的。提供的最小范围是由内在函数Selected_int_kind送回的。表示十进制幂的范围是由内在函数range送回的。0+456-123例,下列六个数都是功能:返回一个给定数据的种别参数。例:KIND(0):为缺省值,其返回值是整型的标准种别参数。KIND(2_2):

返回种别参数2。关于KIND函数功能:关于KIND函数格式:SELECTEND_INT_KIND(N):功能:返回范围在-10N~10N的整数的kind-Value

例:selected_int_kind(6)可以返回范围在-106~+106(不包括两端点值)的所有整数的种别值。为使程序具有可移植性,可将K6说明成符号常数,作为种别常数来使用。

INTEGER,parameter::k6=selected_int_kind(6)

则具有K6种别的常数就可以写为:123_K6了。SELECTEND_INT_KIND函数格式:SELECTEND_INT_KIND(N):SELE例2-4测试FORTRAN系统的整型种别范围PROGRAMINT_KIND

IMPLICITNONE

INTEGER::I

PRINT*,KIND(0) DOI=1,10

PRINT*,I,SELECTED_INT_KIND(I) ENDDOENDPROGRAMINT_KIND4112132425464748494108例2-4测试FORTRAN系统的整型种别范围PROGRAM

在FORTRAN90中,也可以表示二进制、八进制、十六进制形式的无符号整数。其形式如下:二进制数:B’101101’

或B”101101”八进制数:O’76210’

十六进制数:Z’1FA2’整型常数的其他表示方法在FORTRAN90中,也可以表示二进制、八进制判定整数,指出合法整数和非法整数?

说明原因-128、358_5、5,234、130_1、+3276、-52467、o136判定整数,指出合法整数和非法整数?

说明原因-128、358实型常量又叫实数,它具有数学实数的近似值。实数最常见的两种表示形式是:小数形式和指数形式小数形式:由十个数字、小数点及数符组成的数。指数形式:即科学计数法,对绝对值相对较小或很大的实数。2.实型常量(REAL)⒈小数形式:+/-m.n,+/-m.,+/-.n

例100.0.55.

注:小数点必须有。实型常量又叫实数,它具有数学实数的近似值。2.实型常量(RE

数字部分E(或D)±指数部分科学计数法0.876=876×10-3876E-3

=87.6×10-2 87.6E-2 =0.0876×10+10.0876E+1

。。。

⒉指数形式:E代替底数10数字部分E(或D)±指数部分⒉指数形式:E代替底数10⑴数字部分:小数形式实数或整数⑵指数部分:只能为整数错例:4E5.6⑶数字部分不能丢;例:10-4:

E-4(错)1E-4(正确)⑷以标准化形式(规格化指数)输出(<1或>=1)

1。数字部分的值小于1,且小数点后的第一位数字非0

例:0.743643E-12(正确)

21.835E-12(错)

2。数字部分有且仅有一位非零的整数。

例:7.43643E-12(正确)

0.21835E-12(错)说明:⑴数字部分:小数形式实数或整数说明:一般实数范围:-1038~+1038,有效位7~8位也有的系统允许数的范围更大,可以超过10100。上溢:overflow下溢:当0处理为了能得到理想的范围和有效数字,要求说明种别类型参数值。(书上有误)例:

INTEGER,PARAMETER::long=SELECTED_REAL_KIND(8,88)则符号常数long提供了至少8位精度,以及-1088~+1088的值的范围。以此说明的实型常量:

4.37_long457.1234_long就可以在long指定的精度及数值范围内进行移植。实数的表示范围:一般实数范围:-1038~+1038,有效位7~8位实数的表1、PRECISION(4.37_long)精度至少为82、RANGE(4.37_long)范围至少88次冪两个询问函数:常用实数一般分为两种:

real(4)单精度(默认)

real(8)双精度实数种别为8时常量的表示(双精度数)有效位:15位;数字部分D±指数例:1.2D21、PRECISION(4.37_long)精

复型常量又叫复数。具有数学复数的近似值。在科学和工程计算中被广泛用到。复数是实数的有序对,将两个实数中间用逗号分隔,然后再放在一对括号中就构成了一个复数。复数以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)复型常量的表示:

数学2+3i一般形式:(实部系数,虚部系数)一

计算机除了存储数字之外,也可以在内存中记录一段文本。字符类型可以记录的东西非常广,从键盘输入的任何东西,不论是数字、文本或任何特殊符号,它都可以记录。只记录一个字母、符号时的数据类型称为“字符”,记录一连串的字符时,就称为“字符串”,记录一个西文字符需要一个字节的存储空间。一个汉字为两个字节的存储空间。4.字符型常量(CHARACTER)计算机除了存储数字之外,也可以在内存中记录一段文本。由一对单撇号或一对双撇号之间的字符序列组成。例:‘ABCD’(单撇号)或“4567”(双引号)注意:⒈区分字符大小写

‘a’‘A’⒉空格有效

‘ab’

‘ab’⒊字符中含’或”时的处理方法:如:I’mastudent.可采用两种表示方法:

1)"I’mastudent.

"2)’I’’

mastudent.’

⒋字符长度:字符串内字符的个数

空格算一个,起止界不算,长度可为0。(空串’’或"")字符常量的表示:由一对单撇号或一对双撇号之间的字符序列组成。注意:⒈区分字符1、一般处理系统缺省的字符种别参数是KIND(‘A’)返回值。2、若使用非标准种别字符时,应将其种别参数放在字符常数的前面,以便于简化编译程序分析语句的工作。例如:某处理系统可以用种别参数值1来支持汉字字符,在这种情况下,一个汉字字符常数可被书写成:

1_”五笔字型输入法”

字符常量的种别参数:1、一般处理系统缺省的字符种别参数是KIND(‘A’)返回值逻辑型常量只有真(.TRUE.)和假(.FALSE.)两个值。逻辑常量通常只用来给逻辑变量置初值,以及得到某一逻辑表达式的值。

其缺省种别与系统有关,实际种别可通过KIND(.TRUE.)得到。若要指定,可用一个跟在下划线后的整型常数指出,取值可为1,2,4(缺省)。例如:.FALSE._25.逻辑型常量(LOGICAL)逻辑型常量只有真(.TRUE.)和假(.FALSE.)两个值2.3.4名字用于标识一个程序成分,例如符号常量、变量、派生类型等。对于名字有下列要求:

1.名字的长度不能超过31个字符

2.名字的组成成分可以是字母、数字和下划线

3.名字的第一个字符必须是字母

4.在名字中不能出现空格提倡使用具有一定含义的名字,提高程序的清晰度和可读性。2.3.4名字用于标识一个程序成分,例如符号常量、变量、派1、定义:程序运行过程中值可变化的量2、命名的规则字母、数字、下划线组成字母开头长度1-31个错例3A、x-3、3.14、A3$2.3.5变量1、定义:程序运行过程中值可变化的量字母、数字、下划线组成错实际是内存中的一个存储单元,存放变量的值。

特性:取之不尽,一冲就跑,总采用当前值参与运算。例:A=2.0AB B=3.0 A=A+B5.015.0 B=A*B

注:A、B必须有确定值,如未定义,值不可预测 (有时按0处理)2.03.03、变量的含义实际是内存中的一个存储单元,存放变量的值。2.03.03、

基本类型有五种,同常量。五种变量的类型说明关键字分别是:整型:INTEGER

实型:REAL复型:COMPLEX

逻辑型:LOGICAL字符型:CHARACTER

4、变量的类型基本类型有五种,同常量。五种变量的类型说明关键字分别是

变量在使用之前应进行说明

温馨提示

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

评论

0/150

提交评论