版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-3-241,数据是程序加工处理的对象,语句,数据是程序加工处理的对象,语句描述了程序对数据的具体操作,因此,程序设计将面对众多描述了程序对数据的具体操作,因此,程序设计将面对众多数据,必须熟悉和正确使用数据数据,必须熟悉和正确使用数据。在前面只用到了整型、实。在前面只用到了整型、实型与逻辑型等简单数据,因此,本讲型与逻辑型等简单数据,因此,本讲。数据记录了现实世界中客观事物的属性,都有数据记录了现实世界中客观事物的属性,都有()和和(数据的存储与操作使用方式)两个方面,数据的存储与操作使用方式)两个方面,每种数据类型都应该包括以下每种数据类型都应该包括以下4 4个基本的信息:个基本的
2、信息:(1)(1)数据类型的数据类型的(如(如integerinteger、charactercharacter、logicallogical等)等)(2)(2)允许值的集合(允许值的集合()(3)(3)允许值允许值( (常量常量) )的的(如实数的指数、小数形式)(如实数的指数、小数形式)(4)(4)操作这些操作这些(如字符型的连接等)(如字符型的连接等)2022-3-242整型整型实型实型复型复型内部数据类型内部数据类型数值型数值型非数值型非数值型派生数据类型派生数据类型逻辑型逻辑型字符型字符型Fortran中中数据类型数据类型在内部数据类型的基础上,定义在内部数据类型的基础上,定义的数据
3、类型,比如:数组。的数据类型,比如:数组。为了满足程序设计的需求,为了满足程序设计的需求,FortranFortran具有丰富的数据类型:具有丰富的数据类型:分分3 3节介绍节介绍FortranFortran的数据类型:的数据类型: 整型数据类型的字节数和取值范围整型数据类型的字节数和取值范围类别参数 字节数 取值范围 1 1 -128127 2 2 -32,76832,767 4 4 -2,147,483,6482,147,483,647 2022-3-243FortranFortran的数值型数据类型主要是的数值型数据类型主要是、和和等等3 3种种。其中其中“”即即“”,表示,表示。例如,
4、。例如,10241024、3232_2_2、19921102357648031992110235764803_4_4等。等。2022-3-244:FORTRANFORTRAN也可以使用二进制(也可以使用二进制(binarybinary)、八进制)、八进制(octal)(octal)和和十六进制十六进制(hex)(hex)整型常量,但它整型常量,但它只能用于只能用于DATADATA语句中语句中。而且:。而且:1 1、二进制常量二进制常量的形式是以字母的形式是以字母B B开头,后跟用一对单引或双引开头,后跟用一对单引或双引号括起来的数字串,例如,号括起来的数字串,例如,B10101101B1010
5、1101、B“1011101B“1011101等。等。2 2、八进制常量八进制常量的形式是以字母的形式是以字母O O开头,后跟用一对撇号或双开头,后跟用一对撇号或双引号括起来的数字串,例如,引号括起来的数字串,例如,O453O453、O“376”O“376”等。等。3 3、十六进制常量十六进制常量的形式是以字母的形式是以字母Z Z开头,后跟用一对撇号或开头,后跟用一对撇号或双引号括起来的数字串,例如,双引号括起来的数字串,例如,ZFFA9ZFFA9、 Z9B45 Z9B45 。Integer i, j, kData i /B110010/ Data j /O62/ Data k /Z32/20
6、22-3-245INTEGER ( KIND = INTEGER ( KIND = 类别参数值类别参数值 ) ,) ,属性属性列表列表 : : 变量列表变量列表而而是被说明对象的所属性质,一个对象被说明具是被说明对象的所属性质,一个对象被说明具有某一属性时,就使该对象具有某种附加功能、特殊的使用有某一属性时,就使该对象具有某种附加功能、特殊的使用方式与适用范围。比如:方式与适用范围。比如: Integer, Integer, parameterparameter : i=5,j=24 : i=5,j=24 Integer, Integer, dimension(1:10)dimension(1
7、:10) : a : a其中其中取取1,2,41,2,4,比如:,比如: Integer i,total Integer i,total Integer(2) : k,limit Integer(2) : k,limit Integer(kind=4) : min,max Integer(kind=4) : min,max Integer Integer* *2 : k,limit2 : k,limit Integer Integer* *4 : min,mix4 : min,mix2022-3-246:1 1、“类别参数类别参数”为可选项,为可选项,(即为(即为4 4)。)。2 2、因为、因
8、为d d指数表示双精度,故其后不可再加类别参数。指数表示双精度,故其后不可再加类别参数。3 3、注意双精度数据的表示方法,如:、注意双精度数据的表示方法,如:5.25.2 -2-2、0.0520.052、5.2E-25.2E-2都表示双精度数据都表示双精度数据0.0520.052。实型数据分为实型数据分为单精度单精度和和双精度双精度2 2种,用种,用区区分:单精度为分:单精度为4 4、双精度为、双精度为8 8。1 1、小数形式小数形式:如:如1.21.2、-.8-.8、3.3.等。等。2 2、指数形式指数形式:(:( )或双精度数表为)或双精度数表为 ( () )比如:比如:+3.9E2+3.
9、9E2、-8.7E4-8.7E4、13.6e-413.6e-4、.98.98 2 2、.98E2.98E2等。等。2022-3-247Real ( kind = 类别参数值类别参数值) ,属性列表属性列表 : 变量列表变量列表其中:单精度用其中:单精度用REAL(4)REAL(4)或或RealReal* *4 4定义,双精度用定义,双精度用REAL(8)REAL(8)或或realreal* *8 8或或Double PrecisionDouble Precision定义。定义。缺省的类别值为缺省的类别值为4 4,即为单,即为单精度精度。比如:。比如: REAL : M12,AREA,LENRE
10、AL(4) : DX,DY REAL*4 : DX,DYREAL(8) : D_PRE,X REAL*8 : D_PRE,XDOUBLE PRECISION : D_PRE,X2022-3-2481 1、表示、表示复数复数=“=“实型数实型数1+1+实型数实型数2 2* *i i”,即实型数,即实型数1 1是复数的是复数的实部、实型数实部、实型数2 2为虚部,比如(为虚部,比如(1e2,-3.61e2,-3.6)表示)表示100.0-3.6i100.0-3.6i;2 2、复数的实部和虚部、复数的实部和虚部,因此,一个复型常量,因此,一个复型常量可能有整可能有整- -整、整整、整- -实、实实、
11、实- -整、实整、实- -实四种结构,实四种结构,由其实部和虚部的类型确定:由其实部和虚部的类型确定:如果实部和虚部为整数或单精度的实数,则该复数的类别如果实部和虚部为整数或单精度的实数,则该复数的类别类型为类型为默认复型默认复型,即实部、虚部均为默认实型类别;,即实部、虚部均为默认实型类别;如果实部和虚部有双精度实数时,则如果实部和虚部有双精度实数时,则要把整数或单精度数要把整数或单精度数转为双精度数,因为复数类别与双精度数据相同转为双精度数,因为复数类别与双精度数据相同,比如,比如(1.2E-2_4,3.6d21.2E-2_4,3.6d2)的类别类型参数值为)的类别类型参数值为8.8.20
12、22-3-249(2 2)复型变量的)复型变量的与与Complex(kind=Complex(kind=类别参数值类别参数值),),属性列表属性列表:变量列表变量列表比如:比如: COMPLEX (COMPLEX (kind=4kind=4):CM,PP):CM,PP COMPLEX( COMPLEX(8 8) X1,X2) X1,X2 COMPLEX COMPLEX * *8 8 CM,PP CM,PP COMPLEX COMPLEX * *1616 X1,X2 X1,X22022-3-2410实部与虚部实部与虚部:直接赋值直接赋值,比如,比如,CQ = (8.76E+5, -67.8E-3
13、)实部或虚部实部或虚部:要用:要用CMPLXCMPLX函数函数将实部和将实部和虚部组成复型数据,再赋给复型变量虚部组成复型数据,再赋给复型变量,比如,比如,C = CMPLX(3.0C = CMPLX(3.0* *A, 6.0+B)A, 6.0+B)Complex:x1,x2Complex:x1,x2Real a,b,c,d,part1,part2Real a,b,c,d,part1,part2ReadRead* *,a,b,c,a,b,cd=bd=b* *b-4.0b-4.0* *a a* *c;part1=-b/(2.0c;part1=-b/(2.0* *a);part2=sqrt(abs
14、(d)/(2.0a);part2=sqrt(abs(d)/(2.0* *a)a)If (d0) thenIf (d0) then x1=cmplx(part1+part2,x1=cmplx(part1+part2,0.00.0);x2=cmplx(part1-part2,);x2=cmplx(part1-part2,0.00.0) )ElseElse x1=cmplx(part1,part2);x2=cmplx(part1,-part2)x1=cmplx(part1,part2);x2=cmplx(part1,-part2)End ifEnd ifPrintPrint* *,x1,x2,x1,
15、x2endend2022-3-24111 1、先将级别低的数据类型转换为级别高的数据类型,然后在、先将级别低的数据类型转换为级别高的数据类型,然后在同一类型之间进行运算。同一类型之间进行运算。2 2、数据类型等级次序为:复型,双精度型,实型,整型。、数据类型等级次序为:复型,双精度型,实型,整型。3 3、。4 4、复型数据之间运算:实部与实部运算,虚部与虚部运算。、复型数据之间运算:实部与实部运算,虚部与虚部运算。将表达式类型转换成变量的类型将表达式类型转换成变量的类型。如下表所示:如下表所示:2022-3-2412直接赋值直接赋值舍去多余有效数舍去多余有效数字,化为实型,字,化为实型,再赋值
16、,虚部赋再赋值,虚部赋0实部赋值,虚实部赋值,虚部赋部赋0化为实型,加化为实型,加虚部虚部0,变成复,变成复型,再赋值型,再赋值复型复型将实部扩展将实部扩展为双精度型为双精度型,再赋值,再赋值直接赋值直接赋值化为双精度型化为双精度型,再赋值,再赋值先化为双精度先化为双精度型,再赋值型,再赋值双精度型双精度型实部赋值实部赋值舍去多余有效数舍去多余有效数字,化为实型,字,化为实型,再赋值再赋值直接赋值直接赋值化成实型,再化成实型,再赋值赋值实型实型实部取整,再实部取整,再赋值赋值舍去小数部分取舍去小数部分取整,再赋值整,再赋值舍去小数部分舍去小数部分取整,再赋值取整,再赋值直接赋值直接赋值整型整型
17、复型复型双精度型双精度型实型实型整型整型 表达式类表达式类变量类型变量类型2022-3-2413(3)部分部分将将REAL(aREAL(a1 1) )作为实作为实部,将部,将REAL(aREAL(a2 2) )作作为虚部为虚部舍去多余有效数舍去多余有效数字,字,a1作为实部作为实部, a2作为虚部作为虚部a1为实部,为实部,a2为为虚部虚部将将a a1 1,a,a2 2化实,然化实,然后将后将a a1 1作为实部作为实部a a2 2作为虚部作为虚部Cmplx(a1,a2)舍去多余有效数舍去多余有效数字,化为实型,字,化为实型,虚部为虚部为0a为实部,虚部为为实部,虚部为0将将a化为复型的实化为
18、复型的实部,虚部为部,虚部为0Cmplx(a)将将a的实部扩展为的实部扩展为双精度型双精度型化为双精度型化为双精度型将将a a转换为双精度转换为双精度型型Dble(a)取实部取实部舍去多余有效数舍去多余有效数字字将将a a转换为实型转换为实型Real(a)将实部舍去小数部将实部舍去小数部分取整分取整舍去小数部分取舍去小数部分取整整舍去小数部分取舍去小数部分取整整Int(a)复型复型双精度型双精度型实型实型整型整型 自变量类型自变量类型函数函数2022-3-2414(4 4)不同数据类型的)不同数据类型的将级别低的数据转换成级别高的数据,再进行比较。但是,将级别低的数据转换成级别高的数据,再进行
19、比较。但是,。此外,复型与其它类型只能进行。此外,复型与其它类型只能进行.EQ.EQ.及及.NE.NE.的比较。的比较。FortranFortran的非数值型数据类型主要是的非数值型数据类型主要是字符型字符型和和逻辑型逻辑型2 2种种。1 1、,是用,是用的的、的任何的任何,比如,比如: “zhang”: “zhang”、 ZHangZHang 、“北京北京”、 HowHowareareyouyou、a+ba+b 等。等。大小写;大小写;空格是一个字符;空格是一个字符;双(单)引号不是字符。双(单)引号不是字符。2022-3-2415但是,字符串中的单(双)引号是字符但是,字符串中的单(双)引
20、号是字符,有有两种表示方法两种表示方法区分括字符串用的单(双)引号区分括字符串用的单(双)引号:当字符为当字符为 时,用时,用 将字符串括起;当字符为将字符串括起;当字符为 时,用时,用 将字将字符串括起。符串括起。将单(双)引号重复一次,再括起,比如:将单(双)引号重复一次,再括起,比如:“Im a teacher”、Im a teacher2 2、字符串内字符的个数称为字符串内字符的个数称为:字符串内的:字符串内的和和 ” ” ” 的 长 度 为的 长 度 为 0 0 、 但 空 格 的 长 度 为、 但 空 格 的 长 度 为 1 1 。 例。 例如,如,ABCABC、AB”CAB”C与
21、与“AB”C”AB”C”长度都为长度都为3 3,但但A AB BCC的长度为的长度为5 5。3 3、:前行末和后行首都必须加续行标识前行末和后行首都必须加续行标识符(符(& &),而且二者之间的空格以及),而且二者之间的空格以及& &本身都不属于字符串,本身都不属于字符串,比如:比如: String=OnString=OnthethedaydayI Ivisitedvisitedthetheschool,school,& & & &ananexamexamwaswasheld.held.2022-3-2416:Character(
22、len=n1,kind=n2),属性说明 : 变量列表其中其中n n1 1表示表示、n n2 2是是,(按需要)比如:(按需要)比如:CHARACTER(LEN=8),DIMENSION(1:10):X,Y,ZCHARACTER(LEN=8),DIMENSION(1:10):X,Y,ZCHARACTER(LEN=10),PARAMETER:NAME=FORTRAN_90CHARACTER(LEN=10),PARAMETER:NAME=FORTRAN_90CHARACTER(LEN=15):ACHARACTER(LEN=15):ACHARACTERCHARACTER* *1515:A:A在在Ch
23、aracterCharacter后说明的长度为后说明的长度为,如果被说明的变,如果被说明的变量的长度不一样时,也量的长度不一样时,也可在相应变量的后边指明其具体的长可在相应变量的后边指明其具体的长度度,比如:,比如:Character(len=15):A,BCharacter(len=15):A,B* *8,C8,C* *5 5,其中变量,其中变量A A的的长度长度1515、B B长度为长度为8 8、而、而C C的长度是的长度是5.5.2022-3-2417字符型变量的字符型变量的长度必须指明长度必须指明:如:如缺省缺省表示长度为表示长度为1 1;此外,;此外,下面下面2 2种情况可暂时种情况
24、可暂时不指明变量的长度、而用不指明变量的长度、而用* *代替代替:具有具有ParameterParameter属性的字符常量属性的字符常量,如:,如: Character(Len= Character(Len=* *),parameter:para=Fortran),parameter:para=Fortran9090或或CharacterCharacter* *( (* *) ),parameter:para=Fortran,parameter:para=Fortran9090因为字符符号常数因为字符符号常数PARAPARA的长度是可知的的长度是可知的( (等于等于10)10),不必说明。,
25、不必说明。用字符变量作用字符变量作时:在子程序中,用字符型变量作虚参时:在子程序中,用字符型变量作虚参时可时可不指明其具体长度不指明其具体长度,即用,即用* *定义长度。这时它可以与任定义长度。这时它可以与任意长度的字符型实参相结合,意长度的字符型实参相结合,便于提高子程序的通用性便于提高子程序的通用性。指指字符变量字符变量的一部分,记为:的一部分,记为:表示字符变表示字符变量中从第量中从第m m个字符到第个字符到第n n个字符的部分,比如:个字符的部分,比如: com(3:7)字符变量字符变量com中从第中从第3个字符到第个字符到第7个字符的子字符串。个字符的子字符串。2022-3-2418
26、省略省略m m;如;如com(:4)-com(:4)-第第1 1到第到第4 4个字符的子字符串。个字符的子字符串。省略省略n n;如;如com(3:)com(3:)是第是第3 3至结尾。至结尾。m,nm,n均省略,表示字符串本身;如均省略,表示字符串本身;如com(:)com(:)就是就是comcom本身。本身。字符运算符字符运算符只有只有1 1个个字符连接符字符连接符/(即两个斜(即两个斜杠),其作用是将两个字符型数据连接起来,成为一个字符杠),其作用是将两个字符型数据连接起来,成为一个字符型数据。比如:型数据。比如:HE/LLO!HE/LLO!的值为的值为HELLO!HELLO!, FOR
27、TRAN/FORTRAN/90/90的值为的值为FORTRANFORTRAN9090。Implicit noneImplicit noneCharacter(len=5):A,B,CCharacter(len=5):A,B,C Character(len=11):D Character(len=11):D A=CHINA A=CHINA B=JAPAN B=JAPAN C=A C=A D=A/ D=A/B/B PRINT PRINT* *, A,B,C,D, A,B,C,DEndEnd2022-3-2419、变量的字符长度与表达式中字符长度、变量的字符长度与表达式中字符长度相等相等时,直接赋值
28、;时,直接赋值;、变量的字符长度、变量的字符长度小于小于表达式中字符长度时,将右边多余表达式中字符长度时,将右边多余的字符删除、再赋值;的字符删除、再赋值;、变量的字符长度、变量的字符长度大于大于表达式中字符长度时,补足空格、表达式中字符长度时,补足空格、再赋值。再赋值。关系表达式通常用于比较数值型数据的大小,但关系表达式通常用于比较数值型数据的大小,但,比较的结果为逻,比较的结果为逻辑型数据:取辑型数据:取和和两种结果两种结果。字符大小的字符大小的(从小到大的顺序):(从小到大的顺序):空格空格 数字(数字(0 0小小9 9大)大)大写字母(大写字母(A A小小Z Z大)大)小写字小写字母(
29、母(a a小小z z大)。大)。字符变量比较的字符变量比较的:,比如:,比如:AA的的值为值为.false.;2022-3-2420两个两个长度相同长度相同的字符串比较时,将两个字符串中的字符的字符串比较时,将两个字符串中的字符自左自左向右逐个进行比较向右逐个进行比较。若所有字符完全相同,则两表达式。若所有字符完全相同,则两表达式相等相等;否则,否则,以第一次出现不同字符的比较结果为准以第一次出现不同字符的比较结果为准。比如:。比如:SHANGHAI SHANKONGSHANGHAI SHANKONG的值为真,因为第的值为真,因为第5 5个字个字符符GKGK,则前一表达式的值小于后者。,则前一
30、表达式的值小于后者。若两个字符串的若两个字符串的长度不等长度不等时,时,则将较短的字符串后面补足空则将较短的字符串后面补足空格后再比较格后再比较。比如,。比如,WHERE WHEREVERWHEREkk+1kFalseFalse.True.True. integer PP(-1:8)PP=(/3,0,(i,i=1,9,2),45,34,2/)初值:终值:步长初值:终值:步长(在(在3 3元表达式中,如果步长为元表达式中,如果步长为1 1,则可以省略),则可以省略) Integer,dimension(4 Integer,dimension(4,5):A5):A A(: A(:,:)=88 :)
31、=88 或或 A=88A=88 A(: A(:,)=90)=90其中:其中:A(:,:)=88 A(:,:)=88 或或 A=88-A=88-表示对数组表示对数组A A中中2020个元素都赋值个元素都赋值8888;而;而A(:,1:5:2)=90-A(:,1:5:2)=90-表示对表示对A A中第中第1 1、3 3、5 5列的元素赋值列的元素赋值9090;这里使用了所谓的这里使用了所谓的表示列的维,即:表示列的维,即:数组的输入与输出有数组的输入与输出有3 3种方式:种方式:使用使用DODO循环循环;在输入输出列表在输入输出列表中使用数组名中使用数组名;在输入输出列表中使用隐在输入输出列表中使
32、用隐DODO循环循环。:每执行:每执行1 1条输入语句、输入条输入语句、输入1 1个数组元素值个数组元素值(1(1个数组元素个数组元素值组成值组成1 1个输入记录个输入记录) );:每执行每执行1 1条输出语句、输出条输出语句、输出1 1个数个数组元素值组元素值( (每每1 1行输出行输出1 1个数组元素值个数组元素值) )。,利用二重循环实利用二重循环实型二维数组的输入输出:型二维数组的输入输出:2022-3-2434integer i,jinteger i,jreal mat(2,3)real mat(2,3)do i=1,3do i=1,3 do j=1,2 do j=1,2 read
33、read* *,mat(j,i),mat(j,i) end end dodoend doend dodo i=1,2do i=1,2 do j=1,3 do j=1,3 print print* *,mat(i,j),mat(i,j) end end dodoend doend doendend程序运行时,输入数据的方法:程序运行时,输入数据的方法:123456123456。输入的。输入的6 6个数个数据中前据中前2 2个数赋给第个数赋给第1 1列元素,第列元素,第3 3、4 4个数赋给第个数赋给第2 2列元素,最后列元素,最后2 2个数赋给个数赋给第第3 3列元素。输出时,先输出第列元素。输
34、出时,先输出第1 1行的行的3 3个元素,再输出第个元素,再输出第2 2行的行的3 3个元素。个元素。输入与输出分别为:输入与输出分别为:1352463 52 4 62022-3-2435这种方法要求:这种方法要求:按按的顺序进行输入、输出数组元素的顺序进行输入、输出数组元素。比如,。比如,987654321将二维数据将二维数据 输入给数组输入给数组W(3W(3,3)3)、并输出来。、并输出来。程序为:程序为: Integer W(3,3) Integer W(3,3) Read Read* *, ,W W Print Print* *, ,W W End End,的顺序为的顺序为1 1,4
35、4,7 7,2 2,5 5,8 8,3 3,6 6,9 9;输出也是按列的顺序输出也是按列的顺序:1 4 7 2 5 8 3 1 4 7 2 5 8 3 6 9.6 9.这种方法使用的一般格式为:这种方法使用的一般格式为:( (输入输入/ /输出表输出表, ,) )2022-3-2436i i是隐是隐dodo循环的循环变量,循环的循环变量,“e1,e2,e3”e1,e2,e3”是其循环是其循环参数表达式(即初值、终值、步长,步长参数表达式(即初值、终值、步长,步长e3=1e3=1时可以省略)。时可以省略)。Integer W(3,3),i,jInteger W(3,3),i,jReadRead
36、* *,W,WPrintPrint* *,(W(i,j),j=1,3)i=1,3),(W(i,j),j=1,3)i=1,3)endend隐隐dodo循环的作用和使用方法与循环的作用和使用方法与dodo循环完全相同,也循环完全相同,也可以进行嵌套,比如:可以进行嵌套,比如:但是,隐但是,隐DoDo循环和循环和DoDo循环也存在循环也存在,比如:,比如:PrintPrint* *,(A(i),i=2,14,3),(A(i),i=2,14,3)表示在表示在1 1行里输出数组行里输出数组A A的元素:的元素:A(2)A(2)、A(5)A(5)、A(8)A(8)、A(11)A(11)、A(14)A(14
37、)。而利用。而利用dodo循环来实现输出:循环来实现输出: Do i=2,14,3 Do i=2,14,3 Write( Write(* *, ,* *) A(i) A(i) End do End do其其5 5个数组元素分成个数组元素分成5 5行进行输出,所以格式上不同。行进行输出,所以格式上不同。2022-3-2437本讲详细介绍了本讲详细介绍了FortranFortran中的数据类型(中的数据类型(数值型数值型-整型、实型整型、实型和复型数据;和复型数据;非数值型非数值型-字符型和逻辑型数据;字符型和逻辑型数据;一一大批类型相同的数据)及其使用方法大批类型相同的数据)及其使用方法, ,本
38、节安排本节安排3 3个问题上机:个问题上机:输入一个字符串,然后将它逆输入一个字符串,然后将它逆序输出,比如:输序输出,比如:输入入 ABCDEFGHIJABCDEFGHIJ,则输出,则输出“JIHGFEDCBA”JIHGFEDCBA”。implicit noneinteger i,jcharacter*10,s1,s2s1=ABCDEFGHIJ!s1=0123456789s2=do i=1,10j=10-i+1s2(j:j)=s1(i:i)end doPrint*,s1, ,s2end分析:分析:由于要逆序输出由于要逆序输出字符串,因此循环逐一字符串,因此循环逐一产生并输出;另外需用产生并输
39、出;另外需用子字符串来确定每个位子字符串来确定每个位置上的字符。置上的字符。2022-3-2438分析:分析:问题分问题分3 3步步-(1 1)输入)输入A A和和B B;(;(2 2)求)求A A和和B B乘积并存乘积并存放到放到C C中;(中;(3 3)输出矩阵)输出矩阵C C。其中最关键是第(。其中最关键是第(2 2)步,)步,C C必必为为m mk k阶矩阵,按照矩阵相乘阶矩阵,按照矩阵相乘C C的元素为:的元素为:kjmiBacljnlilij1,1,1编写矩阵相乘的程序:已知编写矩阵相乘的程序:已知m mn n矩阵矩阵A A、n nk k矩阵矩阵B B,计算,计算它们的乘积它们的乘
40、积C=AC=AB.B.要求使用双精度数据类型,并以下面的要求使用双精度数据类型,并以下面的A A和和B B为例进行计算输出为例进行计算输出C C:689530187622154B14233514802751240231A2022-3-2439可见:要得到矩阵可见:要得到矩阵C C,需要,需要3 3重循环,重循环,外层循环(设循环外层循环(设循环变量为变量为i i)控制)控制A A的的行(行(i i从从1 1到到m m)、)、中层循环控制中层循环控制B B的的列(列(j j从从1 1到到k k)、)、内层循环控制计算内层循环控制计算C C的各元素(属于的各元素(属于累加问题)。程序累加问题)。程
41、序如右:如右:double precision A,B,Cinteger m,n,k,i,j,lparameter(m=4,n=5,k=3)dimension A(m,n),B(n,k),C(m,k)data A/1.0,-2.0,0.0,3.0,3.0,-1.0,8.0,-3.0,-2.0,5.0,& 4.0,2.0,0.0,-7.0,1.0,-4.0,4.0,2.0,-5.0,1.0/data B/4.0,2.0,7.0,0.0,9.0,5.0,-2.0,8.0,& 3.0,8.0,-1.0,6.0,1.0,-5.0,-6.0/do i=1,m do j=1,k c(i,j)=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- N-Allyloxycarbonyl-β-lactosamine-生命科学试剂-MCE
- ML471-生命科学试剂-MCE
- 公司宣传栏设计方案
- 生产部绩效考核专项制度
- 软件测试技术课程设计
- 表面工程课程设计背景
- 链轮传动课程设计
- 流浪猫狗喂食机课程设计
- 非遗项目教育课程设计
- 螃蟹内容国画课程设计
- 且末垦区苏塘灌区水利工程一期输水工程工程竣工自查报告汇编(完整版)资料
- DPPH和ABTS、PTIO自由基清除实验-操作图解-李熙灿-Xican-Li
- 高中生物教研组工作计划(通用9篇)
- 二年级【美术(人美版)】新颖的小钟表
- 小学美术 五年级第二学期 人美版《中国画》单元作业设计《花鸟画》《山水画》
- 阴道镜的临床应用专家讲座
- 郴州市建筑节能产品(材料)备案证明
- 汽车外覆盖件
- 西方经济学十大原理
- 函数的奇偶性(第二课时) (知识精讲+备课精研) 高一数学 课件(苏教版2019必修第一册)
- 2023年中国融通文化教育集团有限公司招聘笔试题库及答案解析
评论
0/150
提交评论