FORTRAN和C 对比
六、表达式
算术表 达式
fortran 1. ** 乘方 2. * 乘、/ 除 3. + 加、- 减
关系表 达式
逻辑表 达式
条件表 达式
1. <、<=、>、>= 2. ==、/= 1. .AND. 2. .OR. 3. .NOT. 4. .EQV. 5. .NEQV. 无
赋值表 1. = 达式
逗号表 无 达式
五、输入和输出语句
输入输 出
输入输 出格式
fortran 输出:write(unit,fmt) A,B,C
print fmt, A,B,C 输入:read(unit,fmt) A,B,C 1. 默认输出位置和不限定输入输出
格式 write(*,*) A,B,C 2. 格式化输入输出
1) 指定代码行对应格式输入输出 write (*,100) A 100 formt(I4)
Fortran90 与 C++的比较
一、程序结构、语句和注释
程序结 构
语句
注释
fortran
C++
Program main(自定义程序名) 主程序代码
预处理命令以“#”开头,包括宏定义命 令、文件包含命令和条件编译命令
Stop(程序结束,可省)
函数,有一个主函数和若干个函数组成,
End(主程序代码结束)
主函数为 main 函数。函数体由一对花括
号“{}”括起来
每行一般为一句语句,语句末不加“;” 书写格式自由灵活,语句末加“;”
1. 每行可写 132 个字符
1. 每一行可写一条或多条语句,一条语
2. 代码开头或结尾的“&”,连接下一 行或下一行代码
句可分写在一行或多行内
感叹号“!”后的文本为注释
单行注释:“//”后的文本为注释
注释方法:下标从 1 开始
声明方法
声明方法:
1. integer a(10,10)
int a[3][4]
2. integer,dimension(10,10)::a
相当于 int a[0][4],a[1][4],a[2][4]
声明方法
声明方法:
1. integer a(10,10,10)
int a[2][3][4]
或 data a/5*3/
int a[5]={1,2,3}
(2) 利用隐式循环(Fortran 独有!) integer a(5)
ELSE ……
END IF END IF END IF 2. SELECT CASE 语句 select case(变量) case(数值 1) …… case(数值 2) …… case default
C++ 1. If 语句
1) 单支 if 语句 if 语句 ……;
2) 双支 if-else 语句 if(表达式) ……; else ……;
3) 嵌套 if 语句 2. 多支 switch 语句
switch(表达式) case 常量表达式 1; ……; case 常量表达式 n; ……; default ……; 注释:
(1) 与 break 语句结合跳出循环 (2) 两个或以上常量都对应一 个语句,则
case 表达式 1 case 表达式 2 ……;
声明方法:
1) real pi parameter(pi=3.14159)
2) real parameter::pi=3.14159
变量
C++ 1. 数值常量(整型常量、实型常量) 2. 字符常量(字符常量、字符串常量)
转义字符: \a\b\f\n\r\t\v\\\?\’\”\0\ddd\xhh 字符常量:单引号,单个字符,占一 个字节 字符串常量:双引号,单个多个字符, 占一个以上字节(结束符\0) 3. 符号常量 声明方法:#define pi 3.14159 或 cons tint pi=3.14159
END IF 2) 双支 IF 结构
IF(逻辑表达式)THEN ……
ELSE ……
END IF 3) 多支 IF 结构
a) ELSE IF 语句 IF(条件 1)THEN …… ELSE IF(条件 2)THEN ……
ELSE ……
END IF b) 嵌套 IF 语句
IF(条件 1)THEN IF(条件 2)THEN IF(条件 3)THEN ……
优先级
C++ 1. * 乘、/ 除、% 取模 2. + 加、- 减 3. ++ 自加、-- 自减
注释:前置先计算再赋值 后置先赋值再计算
1. <、<=、>、>= 2. ==、!= 1. && 2. || 3. ! 注释:非 0 为真,0 为假
1. ?: A?B:C 先计算 A,如果 A 值为 true(非 0),返回 B 值作为整个条件表达式的值, 如果 A 值为 false(0),返回 C 值。 2. = 3. +=、-=、*=、/=、%= 4. &=、^=、|= 5. &&=、||= 注释:x*=y 即 x=x*y,从右向左赋值 1. , 用于将几个表达式隔开,从左向右
GOTO 100
label;Biblioteka …………100 ……
……
跳跃至指定行,不建议使用
if(逻辑表达式)
2. PAUSE 语句
goto label;
当遇到该语句暂停执行,直到用户
按下 ENTER 继续执行
3. CONTINUE 语句
继续向下执行语句
4. STOP 语句
结束程序执行
1. CYCLE 语句
1. break 语句
…… end select 注释: case 冒号前后两个数值代表范围内所 有数值,用逗号放入一个或多个数值 数值只能是整型或字符型 case 中数值必须为常量,不能使用变量
八、循环结构
循环结 构
流程控 制语句
选择或 循环控 制语句
fortran
C++
1. do 语句
1. while 语句
do counter=起始值,终止值,计数
5. Iw[.m] 以 w 个字符串输出整数, 最少输出 m 个数字 1) 超过 w 字符宽,输出 w 个* 2) 右对齐,不足 m 位左端补 0
6. nX 插入 n 个空格
C++ 运用输入输出流头文件 #include<iostream> 屏幕标准输出:cout<<”abc”<<34<<num; 键盘标准输入:cin>>num
略去该语句之后的循环模块,继续
只能用在 switch 和循环语句中
下一次循环
用在循环中跳出当前的循环,同
2. EXIT 语句
fortran 的 exit
跳出当前的循环
2. Continue 语句
3. 署名的循环
略去该语句之后的循环模块,继续下
例如:loop: do i=1,4,1
一次循环,同 fortran 的 cycle
计算,优先级最低 1. 单目、双目、三目、赋值,逗号,优
先级依次降低 2. 单目运算及赋值运算从左至右 3. 算术、位移、关系、位、逻辑运算依
次降低
七、选择结构
选择结 构
fortran 1. IF 语句
1) 单分支 IF 结构 a) IF(逻辑表达式)…… if(s>100) write(*,*) “slow” b) 块 IF 结构 IF(逻辑表达式)THEN ……
NONE 命令,关闭默认类型功能。
三、数据结构
数据类 型
fortran 1. 整型 INTEGER a
1) 长整型,4 字节(默认) 2) 短整型,2 字节 3) 更短整型,1 字节 声明方法:
1) INTEGER(kind=4) a 2) INTEGER*4 a 3) INTEGER(4) a 2. 实型 REAL a 1) 单精度,4 字节(默认) 2) 双精度,8 精度 声明类似整型 3. 复数 COMPLEX a 4. 字符和字符串 CHARACTER a 声明方法:
C++ 1. 整型 int a
1) signed/unsigned long int ,4 字节 2) signed/unsigned int ,4 字节 3) signed/unsigned short int,2 字节 4) signed/unsigned char,1 字节 默认:signed 2. 实型 1) float 2) double 3) long double 3. 字符型 char a 1) char 2) unsigned char 表示方法: 1) 引号之内的图形符号 2) 引号以内以\开头的 ASCII 码或 特定符号 注释:\a\a\t\n\v\r\”\’\?\\\ddd\xhh \ddd:1~3 位 8 进制数对应 ASCII 码 \xhh:1~2 位 16 进制数对应 ASCII 码 注释: 转换次序从低到高:字符-短整型-整型单精度-双精度(低自动向高转,不会出 错) static_cast<要转换的新数据类型>被转换 的表达式
while(逻辑表达式)
器增值
{
……
……;
……
}
end do
2. for 语句
2. do while 语句
for(表达式 1;表达式 2;表达式 3)
do while (逻辑表达式)
{
……
……;
……
}
end do
3. do while 语句
do
{
……;