




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Fortran90与C+的比较一、程序结构、语句和注释fortranC+程序结构Program main(自定义程序名)主程序代码Stop(程序结束,可省)End(主程序代码结束)预处理命令以“#”开头,包括宏定义命令、文件包含命令和条件编译命令函数,有一个主函数和若干个函数组成,主函数为main函数。函数体由一对花括号“”括起来语句每行一般为一句语句,语句末不加“;”1. 每行可写132个字符2. 代码开头或结尾的“&”,连接下一行或下一行代码书写格式自由灵活,语句末加“;”1. 每一行可写一条或多条语句,一条语句可分写在一行或多行内注释感叹号“!”后的文本为注释单行注释:“/”后的文本为注释多行注释:以“/*”开头,以“*/”结束,之间的内容都是注释二、字符集和变量命名规则fortranC+字符集1. AZ及az2. 093. 其他字符:=+-*/(),.!”%&;?$_(空格)变量命名规则1. 英文字母、下划线或数字,前缀英文字母2. 不区分大小写3. 长度1314. 不要和执行命令同名,不能和主程序或已声明过的变量同名注释:Fortran默认I、J、K、L、M、N开头的变量为整型,其他为实型,故在PROGRAM命令下一行加入IMPLICIT NONE命令,关闭默认类型功能。1. 英文字母、下划线或数字,前缀英文字母或下划线2. 严格区分大小写3. 长度1314. 不要同名三、数据结构fortranC+数据类型1. 整型 INTEGER a1) 长整型,4字节(默认)2) 短整型,2字节3) 更短整型,1字节声明方法:1) INTEGER(kind=4) a2) INTEGER*4 a3) INTEGER(4) a2. 实型 REAL a1) 单精度,4字节(默认)2) 双精度,8精度声明类似整型3. 复数 COMPLEX a4. 字符和字符串 CHARACTER a声明方法:Charater(len=10) aCharacter(10) aCharacter*10 a注释:在”之间输入”需要”5. 逻辑变量 LOGICAL aa=.true. a=.false.1. 整型 int a1) signed/unsigned long int ,4字节2) signed/unsigned int ,4字节3) signed/unsigned short int,2字节4) signed/unsigned char,1字节默认:signed2. 实型1) float2) double3) long double3. 字符型 char a1) char2) unsigned char表示方法:1) 引号之内的图形符号2) 引号以内以开头的ASCII码或特定符号注释:aatnvr”?dddxhhddd:13位8进制数对应ASCII码xhh:12位16进制数对应ASCII码注释:转换次序从低到高:字符-短整型-整型-单精度-双精度(低自动向高转,不会出错)static_cast被转换的表达式复合类型1. 自定义数据类型type :personcharacter(len=20):nameinteger:ageinteger:lengthend type persontype(person):aa%name=”xiaoming”1. 数据结构体structstruct nameint name1;char name2;sruct name a;赋初值(1) a=23,w(2) 1=23;2=w;四、常量和变量fortranC+常量1. 数值常量同c+2. 字符常量同c+3. 符号常量声明方法:1) real piparameter(pi=3.14159)2) real parameter:pi=3.141591. 数值常量(整型常量、实型常量)2. 字符常量(字符常量、字符串常量)转义字符:abfnrtv?”0dddxhh字符常量:单引号,单个字符,占一个字节字符串常量:双引号,单个多个字符,占一个以上字节(结束符0)3. 符号常量声明方法:#define pi 3.14159或 cons tint pi=3.14159变量五、输入和输出语句fortranC+输入输出输出:write(unit,fmt) A,B,Cprint fmt, A,B,C输入:read(unit,fmt) A,B,C1. 默认输出位置和不限定输入输出格式write(*,*) A,B,C2. 格式化输入输出1) 指定代码行对应格式输入输出write (*,100) A100 formt(I4)2) 输入输出格式直接写在命令中write (*,”(I5)”) A3) 利用字符串存储输入输出格式character(len=10) fmtstringfmtstring=”(I2)”write (*,fmtstring) 3运用输入输出流头文件#include屏幕标准输出:cout”abc”34num输入输出格式主要输入输出格式:2. Aw 以w个字符宽输出字符串1) 右对齐,不足左端补空格2) 从左向右读入,超出部分截去3. Ew.dEe 以w个字符宽输出指数类型浮点数,小数部分占d个字符宽,指数部分占e个字符宽1) 超过w字符宽,输出w个*2) 小数或指数部分不足宽度补03) 小数部分超出四舍五入截去4. Fw.d 以w个字符宽输出浮点数,小数部分占d个字符宽1) 超过w字符宽,输出w个2) 小数部分不足补0,超出截去5. Iw.m 以w个字符串输出整数,最少输出m个数字1) 超过w字符宽,输出w个*2) 右对齐,不足m位左端补06. nX 插入n个空格六、表达式fortranC+算术表达式1. * 乘方2. * 乘、/ 除3. + 加、- 减1. * 乘、/ 除、% 取模2. + 加、- 减3. + 自加、- 自减注释:前置先计算再赋值后置先赋值再计算关系表达式1. 、=2. =、/=1. 、=2. =、!=逻辑表达式1. .AND.2. .OR.3. .NOT.4. .EQV.5. .NEQV.1. &2. |3. !注释:非0为真,0为假条件表达式无1. ?:A?B:C 先计算A,如果A值为true(非0),返回B值作为整个条件表达式的值,如果A值为false(0),返回C值。赋值表达式1. =2. =3. +=、-=、*=、/=、%= 4. &=、=、|=5. &=、|=注释:x*=y 即x=x*y,从右向左赋值逗号表达式无1. , 用于将几个表达式隔开,从左向右计算,优先级最低优先级1. 单目、双目、三目、赋值,逗号,优先级依次降低2. 单目运算及赋值运算从左至右3. 算术、位移、关系、位、逻辑运算依次降低七、选择结构fortranC+选择结构1. IF语句1) 单分支IF结构a) IF(逻辑表达式)if(s100) write(*,*) “slow”b) 块IF结构IF(逻辑表达式)THENEND IF2) 双支IF结构IF(逻辑表达式)THENELSEEND IF3) 多支IF结构a) ELSE IF语句IF(条件1)THENELSE IF(条件2)THENELSEEND IFb) 嵌套IF语句IF(条件1)THENIF(条件2)THENIF(条件3)THENELSEEND IFEND IFEND IF2. SELECT CASE语句select case(变量)case(数值1)case(数值2)case defaultend select注释:case冒号前后两个数值代表范围内所有数值,用逗号放入一个或多个数值数值只能是整型或字符型case中数值必须为常量,不能使用变量1. If语句1) 单支if语句if语句;2) 双支if-else语句if(表达式);else;3) 嵌套if语句2. 多支switch语句switch(表达式)case 常量表达式1;case 常量表达式n;default;注释:(1) 与break语句结合跳出循环(2) 两个或以上常量都对应一个语句,则case 表达式1case 表达式2;八、循环结构fortranC+循环结构1. do语句do counter=起始值,终止值,计数器增值end do2. do while语句do while (逻辑表达式)end do1. while语句while(逻辑表达式);2. for语句for(表达式1;表达式2;表达式3);3. do while语句do;while(表达式);流程控制语句1. GOTO语句GOTO 100100 跳跃至指定行,不建议使用2. PAUSE语句当遇到该语句暂停执行,直到用户按下ENTER继续执行3. CONTINUE语句继续向下执行语句4. STOP语句结束程序执行1. goto语句label;if(逻辑表达式)goto label;选择或循环控制语句1. CYCLE语句略去该语句之后的循环模块,继续下一次循环2. EXIT语句跳出当前的循环3. 署名的循环例如:loop: do i=1,4,1与EXIT、CYCLE语句结合1. break语句只能用在switch和循环语句中用在循环中跳出当前的循环,同fortran的exit2. Continue语句略去该语句之后的循环模块,继续下一次循环,同fortran的cycle九、数组fortranC+一维数组声明方法1. integer a(10)2. integer,dimension(10):a注释方法:下标从1开始声明方法:int a5 包含a0,a1a4注释:下标从0开始二维数组声明方法1. integer a(10,10)2. integer,dimension(10,10):a声明方法:int a34相当于int a04,a14,a24多维数组声明方法1. integer a(10,10,10)2. integer,dimension(10,10,10):a注释:另类声明:integer a(m:n)mn为坐标范围声明方法:int a234注释:三维以上很少使用赋初值1. 使用DATA设置初值(1) integer a(5)data a /1,2,3,4,5/或 data a/5*3/(2) 利用隐式循环(Fortran独有!)integer a(5)integer idata(a(i),i=2,4)/2,3,4/注释:可以局部赋值2. 省略DATA的声明(1) integer :a(5)=(/1,2,3,4,5/)(2) 利用隐式循环integer :iinteger :a(i)=(/(i,i=1,5)/)注释:只可全部赋值,不可局部赋值1. 在定义数组时给全部全速赋值int a5=1,2,3,4,5;2. 部分数组赋值int a5=1,2,3只能赋值前x个元素,不可以跳过某一元素给下一元素赋值3. 初始化数组时初值全给出可不指定数组长度int a=1,2,3,4,5整个数组操作(Fortran独有!)1. a=5 对数组每个元素赋值52. a=b 将a同位置元素值设置成和b一样3. a=b+c 将b和c同位置值相加赋给a,同理-、*、/4. a=sin(b)无部分数组操作1. a(m:n,e)=对mn之间步长为e部分数组元素赋值等号左边须是大小维数和右边相等数组2. 隐式循环赋值使用多个隐式循环,较低维循环可当作内层循环无数组函数1. where例如:where (a3)b=aelse whereb=-aend where相当于数组中的if函数,可嵌套,可取名无存数顺序1. 二维数组按列存放2. 多维数组,自高维向低纬存放与Fortran相反!1 二维数组按行存放2 自低维向高维存放可变大小数组integer,allocatable : a(:)allocate(a(students) !分配内存空间deallocate(a)释放a无十、函数fortranC+子程序SUBROUTINEsubroutine sub1()(return)end subroutine sub1注释:1. 可放在主程序前后2. 在主程序中使用无需声明,用CALL调用,无返回值1. 函数定义()(1) 有参且有返回值(2) 有参但无返回值(3) 无参但有返回值(4) 无参且无返回值2. 函数调用定义在前可在主调函数中直接调用函数定义在后,可在主调函数中声明()注释:形参名可以省略自定义函数FUNCTIONfunction add(a,b)real add或real function add(a,b)returnend注释:1. 在主程序中调用需要声明,如:real external:add2. 不需要CALL即可调用,有返回值参数传递方法传递参数使用“传址调用”,实参和形参共用一块内存传递参数使用“传值调用”变量的定义全局变量COMMON1. 一般用法real a,b,c,d,e,f,gcommon a,b,c,d,e,f,g对用全局变量中从第1到n个变量,用在不同程序中,按址对应2. 独立的COMMON空间common/group1/3. BLOCK DATA赋初值block dataimplicit noneinteger a,bcommon a,bdata a,b/1,2/end block data函数中的变量1. 一般参数类型注意传递参数类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 液压闸门维修施工方案(3篇)
- 校友节活动策划方案范文(3篇)
- 广告项目施工方案书(3篇)
- 弧形楼板施工方案(3篇)
- 论语考试题库及答案解析
- 兼职会计考试题库及答案
- 北京市门头沟区2023-2024学年八年级下学期期末质量监测语文考试题目及答案
- 北京市门头沟区2023-2024学年八年级上学期期末质量监测道德与法制考题及答案
- 新兵体检问答题目及答案
- 小学专业考试题目及答案
- 永久基本农田储备区划定技术方案
- (正式版)HGT 20593-2024 钢制化工设备焊接与检验工程技术规范
- GB 1886.174-2024食品安全国家标准食品添加剂食品工业用酶制剂
- 网络安全管理规范vfd样本
- 病案讨论(横纹肌溶解)课件
- 华南理工大学入学考试(英语)
- 商业计划书推广
- 部编小学语文四年级上册第一单元大单元教学设计
- 医院检验科实验室生物安全管理手册
- 关于女性生殖健康知识讲座
- 全国新闻记者职业资格考试一本通
评论
0/150
提交评论