fortran教程2:数据类型
文章目录
- 数据类型
- implicit函数
- 数据类型转换
上节内容: fortran安装和编译
数据类型
fortran
共有5中数据类型
整数 | 实数 | 复数 | 逻辑 | 字符 |
---|---|---|---|---|
integer | real | complex | logical | character |
kind
参数,可以指定变量所占位数,例如integer(kind=4)
表示占据4byte的整型,也就是32位整型。
len
参数,可以声明字符个数,例如character(len=80)
表示长度为80的字符串。
在声明变量时,数据类型和变量名之间用::
隔开,正如上节示例程序中的real :: a, b, res
。
fortran
除了变量之外,还有常量,例如logical
类型的两个值.true.
和.false.
就是两个常量。除此之外,若想创建常量,需要用到parameter
命令,例如
real pi
parameter(pi=3.1415926535)
也可以在声明时直接赋值
real, parameter :: pi = 3.1415926535
implicit函数
通过implicit
,可以将变量的首字母和数据类型关联起来,例如implicit integer(A-F,I,K)
,可以指定以A-F
或者I, K
开头的变量为整型,当然fortran是不分大小写的。
! impliTest.f95
program addNumimplicit complex(A-C)implicit real(D-G)implicit integer(i,j,k)a = 1d = 1i = 1print *, a, d, iend program addNum
编译之后得到结果
>gfortran impliTest.f95
1>a.exe
(1.00000000,0.00000000) 1.00000000 1
fortran
对变量首字母是有默认要求的,即不加任何implicit
的情况下,变量名以i, j, k, l, m, n
开头即为整型,否则位浮点型,此即fortran77的I-N规则。惊闻此讯,那不得赶紧尝鲜一下77年的规则?
但刚刚在试复数时发现了一个问题,尽管复数是fortran的内置类型,但要怎样才能创建一个复数呢?
这就是接下来要说的,数据类型转换。
数据类型转换
首先要解决的问题是创建复数的问题,这个很容易,只需cmplx(x, [y, kind])
,可以将x
和y
转换为x+iu
,y
默认为0。
其他的数据类型转换主要涉及到整型和实型,由整数变成实数非常容易,只需考虑转换的位数问题,dble
将整数转换为双精度浮点数;real(a [,kind])
函数可将a
转为kind
位的实数。
反之则稍微复杂,由于涉及到舍入问题,故有四种转换函数
函数 | 说明 | 函数 | 说明 |
---|---|---|---|
int
|
取a的整数部分 |
nint
|
四舍五入 |
ceiling
|
向上取整 |
floor
|
向下取整 |
有两个函数也有取整功能,但不改变数据类型,aint
和anint
的功能与int, nint
相同,但返回值是实数。
字符虽然看上去和数字没什么关系,但其编码过程仍然需要与数字进行意义对应,fortran
中提供了ASCII码的转换函数
ACHAR(n)
将ASCII转为字符,n=0,1,⋯,127n=0,1,\cdots,127n=0,1,⋯,127CHAR(n)
将ASCII转为字符,n=0,1,⋯,255n=0,1,\cdots,255n=0,1,⋯,255IACHAR(c)
将字符c
转为ASCII,范围是0,1,⋯,1270,1,\cdots,1270,1,⋯,127ICHAR(c)
将字符c
转为ASCII,范围是0,1,⋯,2550,1,\cdots,2550,1,⋯,255
指针
在fortran
中,指针需要用关键字pointer
来声明,通过函数allocate
来开辟指针的内存,具体示例如下
program ptTest
implicit noneinteger, pointer :: p1allocate(p1)p1 = 1print *, p1p1 = p1 + 4print *, p1end program ptTest
由于指针只有在面对复杂的数据结构时,才会绽放威力,所以这里就不细说了。
fortran教程2:数据类型相关推荐
- numeric scale mysql_MySQL基础教程1 — 数据类型之数值类型 - numeric
...if (!$dateTimeString) { $dateTimeString = time(); } $numeric = ''; $add_space = false; for($i=0;$ ...
- Python学习教程:数据类型—字符串大总结
Python学习教程:数据类型-字符串大总结 1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串 ...
- Kotlin教程学习-数据类型
2019独角兽企业重金招聘Python工程师标准>>> 一切都是对象. 在Kotlin中一切都是对象.Kotlin有一些基本类型Boolean,Byte,Shot,Int,Long, ...
- Fortran教程3:函数和子过程
文章目录 运算符 函数 子过程 递归 前两节: 1 安装和编译: 2 数据类型 运算符 Fortran中运算符分为三类,即算术.关系.逻辑.算术运算符有5个,即+, -, *, /, **,表示加.减 ...
- matlab整型和浮点的区别,技术帖 | 心理学MATLAB初学者教程--简单数据类型介绍(逻辑型数据,整型/浮点型数据,字符型)......
1.2.1 什么是变量和变量名 变量这个词似乎在许多地方都有出现,在计算机中变量是指是一段有名字的连续存储空间(摘自百度百科),而这个所谓的名字就叫做变量名.举个例子说现在我们再MATLAB的命令窗口 ...
- pythontuple数据类型_Python基础教程2d–数据类型-tuple(元组)
1定义 tuple(元组)也是一种顺序结构的数据类型,定义一个空元组的方法用英文小括号: 变量名=() t = () 定义一个包含了多个元素的元组在小括号中用逗号分隔开各个元素: 源码print('\ ...
- 后端返回number类型数据_Javascript基础教程之数据类型 (数值 Number)
javascript中想限定一个数的数值,无需限定它是整数还是浮点数型 var num1 = 80 ; var num2 = 55.51; var num3 = -34; var num4 = 9e5 ...
- C语言基础学习教程之数据类型
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式. C 中的类型可分为以下几种: 序号 类型与描述 1 基本类型 ...
- fortran教程9:和C语言混合编程
文章目录 编译dll 调用dll 数据类型对应 在C语言中调用 前情提要: 1 安装和编译
最新文章
- leetcode 反转字符串
- SAP CRM Product UI是如何判断当前会话发生了数据写操作的
- ASP.NET(c#)常用类函数
- 信息学奥赛一本通(1008:计算(a+b)/c的值)
- python中easygui和tkinter_python easygui Tkinter
- GWT HTML editor
- java 试卷自动生成_基于JAVA的试题自动生成系统 - WEB源码|JSP源码/Java|源代码 - 源码中国...
- js使用html5,JS使用H5实现图片预览功能
- cocos2d-html5 sprite打印宽高都为0的问题
- linux安装酷q机器人,docker一键安装酷Q搭建个人QQ机器人
- 一级计算机基础试题答案,计算机一级计算机基础试题及答案
- 当“长期主义”遇上“流量生意”,轻松筹与水滴筹谁更胜一筹?
- android AMS
- mount:special device does not exist (a path prefix is not a directory)
- 2208988800一个奇怪的数字
- 运行时读取PAK文件
- 应届毕业生北京租房经验
- 剑指 Offer 05. 替换空格
- 解决浏览器弹出 安全警告当前网页正在视图打开您的受信任的站点列表中的站点,您想允许这样做吗?
- 学会在Android Studio连接数据库