欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Fortran语言

程序员文章站 2022-04-19 16:07:01
...

Fortran语言

1、学习Fortran语言语法

一些注意事项

impicit none的内涵
!为注释
integer(kind=1,2,4,8),real …
read( * , * )后面没有逗号 ,read *, write( * , * )后面有逗号 , print *
/=表示不等于,没有!=
** 运算为求幂

参考教程,函数部分在Fortran过程部分

2、求两个数的最大值

命名格式:max_fortran.f90

Program maxnum
Implicit none
      integer(kind=4) :: A=0,B=0
      read(*,*) A, B
      if(A > B) then
        write(*,*) A
      else
        write(*,*) B
      end if
End Program maxnum

3、对任意自然数n,设计一个求n的各位数字的立方和的函数子程序F(n)(如F(121)=13+23+13=1+8+1=10),并调用F(n)求1000以内的所有水仙花数(当一个数各个数位的立方和等于这个数本身时,称这样的数为水仙花数)

flower.f90

program main
  implicit none
  integer(kind=4):: x
  integer F
  read(*, *) x
  print *, F(x)
end program

integer function F(x)
  implicit none
  integer :: x
  integer, parameter :: N = 3
  integer(kind=4) :: num = 0
  !求余不等于0,除以10不小于0
  do while( mod(x,10) /=  0 .and. x/10.0 > 0.00)
    !print*, x/10
    num=num+mod(x,10)**N
    x=x/10
  end do
  !print*, x/10
  F=num

end function


end function

4、二维数组运算,包括加、减、乘、乘逆

op.f90

program main
  implicit none
  integer(kind=4) ::  x,y
  character :: op
  real :: num  
   print *, "请输入运算式"
   read(*,*) x,op,y
   select case (op)
      case('+')
              print *,x+y
      case('-')         
              print *,x-y
      case('*')        
              print *,x*y
      case('/')        
              print *,x/y
      case('^')       
              if(y>0)then 
                print *,x**y
              else
                num = 1.0/x**(-y)      
                print *,num
              end if 

    end select
end program

5、一些学习记录

参考视频
强变量类型语言
IN规定类型ijklmn为整型,其他为 实型
(视频的观点,本人只了解浅表知识)IN很讨厌建议每个程序但与使用implicit None

因为Linux环境的原因,故决定学习gdb调试fortran
参考 fcode 网站视频

编译时加 -g m32表示32位编译器 gfortran -g simp.f90 -m32 -o x.exe
更简单 gfortran -o max_fortran max_fortran.f90

参考教程

简单调试 gdb x.exe
-g生成可调试执行文件 gcc -g max.c -o max
b 6 在第6行设置断点breakpoint
r 运行调试
c 继续走
n 向下再走一步
q 退出

Fortran语言

新学习到的一些命令使用方式cat -n filename显示行数
相关标签: Fortran