第一周—Fortran语言学习
使用教材:Fortran95程序设计【彭国伦】
第二章 编译器的使用
编译结果的好坏
1、翻译正确
2、执行文件的运行效率
3、翻译出来的执行码的长短
4、编译过程花费的时间
5、编译器提供Debug工具的完整度
Visual Fortran的使用
第三章 Fortran程序设计基础
字符集
不区分大小写
书面格式
Fixed Format(固定格式)
配合穿孔卡片输入程序发明的格式
被淘汰
Free Format(自由格式)
1、!后的文本是注释
2、每行可以编写132个字符
3、行号在每行最前面
4、&行和行连接
5、空格无意义
数据类型
数学表达式
** 乘幂
第四章 输入输出及声明
program main
...
stop !可以省略
end
write 和 print
尽量使用write
write(*,*)"hello","!"
write(UNIT=*,FMT=*)"hello"
write(UNIT=5,FMT=*)"hello"
Fortran77只能用单引号
Fortran90支持单和双
声明
整数:
integer(kind=2/4) a,b,c
未声明长度默认长
向下取整
integer :: a
浮点数
real(kind=4/8) a,b,c
real(kibd=4) :: a,b
write(,) "sin(",a,")=",sin(a)
复数
complex(kind=4/8) a,b,c
a=(x,y) !表示 a=3.2+3.5i
支持直接的复数+-*/
字符及字符串
character(len=10) a,b,c
a(6) = "you" !设置第6个字符之后的字符串
b(1:2) = "we" !最前面两个字符变we
add=first//second
Fortran 中有关字符串运行的函数:
CHAR(num) !num在计算机所使用的字符表中所代表的字符
ICHAR(char) !返回值是整型,char字符在计算机所使用的字符表中所代表的编号
LEN(string) !声明长度
LEN_TRIM(string) !实际长度
INDEX(string,key) !key在string中第一次出现的位置
TREM(string) !返回清除尾端空格后的字符串
!更多见附录A
逻辑变量
logical(kind=2/4) a,b
a=.true.
b=.false.
用 write 函数只会显示 T or F
输入命令(READ)
read(*,*) a !在输入字符时可能因为空格出错
read(unit=5,fmt=*) a !最严谨
read(*,*) a,b,c !可输入a,b,c or a b c
格式化输入输出(FORMAT)
没怎么看懂的格式命令参考表....


看来上面这些并不重要....
常用的几个格式:"I、F、E、A、X"
好了下面来一一学习一下
({}和[]里的内容可以省略
Iw[.m]
Iw[.m]
以w个字符的宽度来输出整数,至少输出m个数字
如果不足会输出*
write(*,"(I5.3)") 10
010 !前面有两个空格
Fw.d
Fw.d
以w个字符文本宽度来输出浮点数,小数部分d
不足一样是*
write(*,"(F9.3)")123.45
123.450
Ew.d[Ee]
Ew.d[Ee]
用科学计数法,以w个字符宽度来输出浮点数,小数部分占d个字符宽,字数部分最少输出e个数字
write(*,"(E9.2E3)") 12.34
0.12E002
Dw.d
Dw.d
同Ew.d
代表指数的字母由E换成D
Aw
Aw
以w宽输出字符串
write(*,"(A10)")"Hello"
Hello
不足超过部分会被省略
Lw
Lw
w个字符输出 T or F 的真假值
write(*,"(L4)") .true.
T !输出3个空格和一个T
Gw.d[Ee]
Gw.d[Ee]
G可以用来输出所有类型的数据,固定使用w个字符宽来输出,d不一定会使用但是不能省略
/
/
write(*,*(I3//I3)) 10,10
10
10 !中间有两行空格是从“/"得到的
Tc
Tc
把输出位置移动到本行的第c个字节
声明的其他事项
IMPLICIT命令
开头字母决定变量类型
implicit integer(A-F,I,K)
implicit none !关闭,都要先声明
放在PROGRAM的下一行,不能放在其他位置
常数的声明方法(PARAMETER)
parameter(pi=3,14159)
设置变量的初值
integer :: a = 1
等价声明(EQUIVALENCE)
equivaluence(a,b) !声明a、b这两个变量用同一块内存
1、节省内存
2、精简代码
声明在程序中的结构
混合运算
1、

2、

3、

Fortran 90 的自定义数据类型
type :: person
character(len=30) :: name
integer :: age
...
end type person
type(person) :: a
write (*,*) "NEME:"
read(*,*) a%name
KIND 的使用
SELECTED_INT_KIND(n) !返回如果想要记录N位整数时,所要声明的kind值。
!返回-1时表示无法提供
SELECTED_READ_KIND(n,e) !记录具有n位有效数,指数达到e位的浮点数需要的kind值
!返回-1 有效位无法满足,-2指数范围无法满足,-3均无法满足
第一周—Fortran语言学习的更多相关文章
- Python第一周基本语句学习整理
目录 Python第一周基本语句学习整理 一.字符串切割 二.体重单位转换 三.计算器的实现 四.猜年龄游戏 Python第一周基本语句学习整理 一.字符串切割 代码实现: s = 'luowenxi ...
- 吴恩达《深度学习》-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-第一周:深度学习的实践层面 (Practical aspects of Deep Learning) -课程笔记
第一周:深度学习的实践层面 (Practical aspects of Deep Learning) 1.1 训练,验证,测试集(Train / Dev / Test sets) 创建新应用的过程中, ...
- 吴恩达《深度学习》-课后测验-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-Week 1 - Practical aspects of deep learning(第一周测验 - 深度学习的实践)
Week 1 Quiz - Practical aspects of deep learning(第一周测验 - 深度学习的实践) \1. If you have 10,000,000 example ...
- 2017-04-21周C语言学习笔记
C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...
- 【新生学习】第一周:深度学习及pytorch基础
DEADLINE: 2020-07-25 22:00 写在最前面: 本课程的主要思路还是要求大家大量练习 pytorch 代码,在写代码的过程中掌握深度学习的各类算法,希望大家能够坚持练习,相信经度过 ...
- 大数据spark学习第一周Scala语言基础
Scala简单介绍 Scala(Scala Language的简称)语言是一种能够执行于JVM和.Net平台之上的通用编程语言.既可用于大规模应用程序开发,也可用于脚本编程,它由由Martin Ode ...
- 第一周C语言作业
一.PTA实验作业 题目1.温度转换 1.实验代码 int main() { int fahr = 150,celsius; celsius = 5 * (fahr - 32) / 9; printf ...
- 第一周 IP通信基础学习回顾
这周的课程首先让我们学习了计算机网络概述,了解计算机网络的定义和功能分别是:资源共享,信息传输与集中处理,负载均衡与分布处理,综合信息服务.同时也对计算机网络的演进,计算机网络的分类,计算机网络的性能 ...
- 6月28日至7月6日第一周小学期学习c++编程收获
6.28日开始,进入小学期,也就是在10天十天时间内集中练习,以提高编程能力.此次小学期的作业共有十道题,其中分为四大类,系统类,数学类,游戏类,链表类. 我开始的时候面对第一,二题,系统类,因为当时 ...
随机推荐
- 跨域详解之-----Jsonp跨域
一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的. 比如 ...
- ASP.NET Core优化MD5加密
MD5是我们常用的一种加密方式,但是有朋友和我说C#自带的MD5方法碰撞阻力太低,担心安全问题 然后我这里开源一下我日常使用的优化后的MD5加密方法 代码中先创建出MD5对象后对字符串先进行MD5加密 ...
- shazam音乐检索算法 附完整c代码
在讲算法之前,上一些前人的资料. http://coding-geek.com/how-shazam-works/ https://laplacian.wordpress.com/2009/01/10 ...
- 后端系统开发之gflags使用规范
任何好用的工具如果使用不当都会带来不好的后果,gflags也是一样.我遇到过一些gflags的“坑”,还从领导和同事那里获得一些好的想法,整理成7条gflags使用规范.有意识的遵循这些规范,对项目的 ...
- 教你阅读MSDN英文文档,迅速提升编程能力
在教大家阅读英文文档之前,首先给大家明确一个概念.C#和.NET的区别? 有一定编程经验的同学应该多多少少知道这方面的概念,但是可能模糊,理解的不一定深刻.我在这里简单给出两者的基本定义: C#:仅仅 ...
- 北京Uber优步司机奖励政策(12月18日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 北京Uber优步司机奖励政策(12月15日)
用户组:人民优步及电动车(适用于12月15日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:htt ...
- 【SQLSERVER】从数据库文件mdf中拆分ndf的方法和利弊
一.数据文件格式 SQLSERVER中,数据库的文件后缀有3种:mdf.ndf.ldf. 如下图所示,DW_TEST.mdf.DW_TEST_HIS.ndf.DW_TEST.ldf 属于同一个数据库T ...
- 4245: [ONTAK2015]OR-XOR
4245: [ONTAK2015]OR-XOR https://www.lydsy.com/JudgeOnline/problem.php?id=4245 /* 要求分成m份,总价值为a1|a2|a3 ...
- 4946: [Noi2017]蔬菜
4946: [Noi2017]蔬菜 http://www.lydsy.com/JudgeOnline/upload/Noi2017D2.pdf 分析: 贪心. 首先可以将一个蔬菜拆成两个,一个是有加成 ...