• Fortran学习笔记2(变量声明)


    常数的申明方式

    程序中所有处理的数据,有些事固定不变的常数,如圆周率π和重力加速度G等。

    此时,程序员可以利用parameter来定义常量。

    program main
    implicit none
    real pi
    parameter(pi=3.1415926)
    write(*,"(F4.2)") sin(pi/6)
    end program main

    在申明变量的时候,parameter相当于一个形容词,如果将形容词和变量申明写在一起时,冒号不能省略。如:

    real*8,parameter::pi=3.1425926   ! 此处冒号不能省略

    除了parameter,Fortran90还有其他的形容词。


    变量初始化

    Fortran90中要设置变量初值时,直接把数值写在变量的后面就可以了(当然要用赋值语句!!!)。

    program main
    implicit none
    integer::a=5
    real(kind=8)::pi=3.14
    complex::c=(12.6,8.01)
    character(len=80)::string="good good study,day day up!"
    write(*,*)a,pi,c,string(1:76)
    end program main

    Fortran77则要用Data命令来赋初值。data的语法是其后接所要设置的变量,并将变量用两个斜杠封装。

    PROGRAM MAIN   !Fortran77的程序
    IMPLICIT NONE
    INTEGER A
    REAL  B
    COMPLEX  C
    CHARACTER*(80)  string
    DATA A,B,C,STRING/1,2.0,(1.0,2.0),'GOOD GOOD STUDY,DAY DAY UP!'/
    WRITE(*,*)A,B,C,STRING(1:76)
    END PROGRAM MAIN

    等价申明EQUIALENCE

    把两个以上变量,声明他们使用同一个内存地址,就是“等价声明”。使用等价声明就是给同一个房间取几个不同的名字,当其中一个变量的值发生变化时,与它等价的变量的值也相应的发生变化。

    integer a,b
    equivalence(a,b)   !声明a,b使用同一块内存

    类型转化

    在同一个表达式中,数据类型不同,会出现什么现象?答案是,编译器会自动把数据类型转化,形成统一的数据类型在进行计算。但是并不能保证自动转化完全正确。所以最好使用强制类型转换。

    INT(A)    ! 将A转换成整型
    real(a)   ! 将A转换成浮点型

    自定义类型

    先看一个例子:

    type::book                    ! 定义一个名叫book的新变量类型
    character(len=80)::name       !记录输的名字
    character(len=80)::author     !记录作者
    integer::totalpage            !记录全书的页码数
    end type book                 !结束类型自定义

    type::book中的冒号可以省略。在定义了新类型之后就可以使用它定义该类型的变量。

    program main
    implicit none
    
    type::book                    ! 定义一个名叫book的新变量类型
    character(len=80)::name       !记录输的名字
    character(len=80)::author     !记录作者
    integer::totalpage            !记录全书的页码数
    end type book                 !结束类型自定义
    
    type(book)::a
    a=book("Gone with the wind","Margaret Munnerlyn Mitchell",1608)
    write(*,*)a
    
    end program main

    KIND用法

    kind主要用来声明变量所占内存的大小。变量占用内存大小,主要取决于变量的范围和他的有效位数的要求。

  • 相关阅读:
    洛谷P2466 [SDOI2008]Sue的小球 题解 区间DP+费用提前计算
    中国国家集训队论文集目录(1999-2008)
    洛谷P1726 上白泽慧音 题解 强连通分量
    洛谷P1410 子序列 题解 动态规划
    树堆(Treap)学习笔记 2020.8.12
    伸展树(Splay)学习笔记
    git操作
    yii 缓存探究
    yii之srbac详解
    一个PDO类
  • 原文地址:https://www.cnblogs.com/baowee/p/9556832.html
Copyright © 2020-2023  润新知