请用fortran语言来设计一个程序计算下面题目

njurs12022-10-04 11:39:541条回答

请用fortran语言来设计一个程序计算下面题目
一条长阶梯,若每步跨2阶,剩1阶;每步跨3阶,剩2阶;每 步跨5阶,剩4阶;每步跨6阶,剩5阶;每步跨7阶,则则不剩;
求阶梯共多少阶.

已提交,审核后显示!提交回复

共1条回复
judenjie 共回答了19个问题 | 采纳率84.2%
n=7
do 10,i=1,1000
m=n
m=m*i
if(mod(m,2)==1)then
if(mod(m,3)==2)then
if(mod(m,5)==4)then
if(mod(m,6)==5)then
print*,m
end if
end if
end if
end if
10 continue
end
1年前

相关推荐

计算机FORTRAN语言中**的含义
计算机FORTRAN语言中**的含义
例如 3**5/2的结果是什么?请写出具体的计算过程,
wxsxh5211年前1
dsfsf 共回答了21个问题 | 采纳率95.2%
x**y的含义是x的y次方;
3**5的含义是3的5次方,
3**5/2 = (3*3*3*3*3)/2 = 243/2 = 121 (结果一定是整数,同类型数据计算,结果类型不变)
求fortran语言改正!将10个数的数组A中最大的元素与A(10)互换
求fortran语言改正!将10个数的数组A中最大的元素与A(10)互换
program main
implicit none
real,dimension(10)::a
real term,max
integer i
read*,a
max=a(1)
DO I=2,10
IF(a(i)>=max)then
max=a(i)
term=max
max=a(10)
a(10)=term
end if
end do
print*,a
end有什么错啊?为什么输出结果不变?
yuki2145201年前1
dranmy-sky 共回答了22个问题 | 采纳率90.9%
IF(a(i)>=max)then
max=a(i)
a(i)=a(10)
a(10)=max
end if
关于fortran语言中if语句的简单问题
关于fortran语言中if语句的简单问题
DO I=1,LA
IF(I-19) 1,1,2
1 FCOS = 90 - 5 * (I-1)
GOTO 3
2 FCOS = 5 * (I-1) - 90
3 CONTINUE
FCOS = .01745*FCOS
ACOS(I) = COS(FCOS)
ACOS(I) = C*ACOS(I) * ACOS(I)
END DO
我想知道这个if语句是怎么执行的,那个if里面跟的 "I" "1,1,2" 是什么含义
其中 LA的初值是37
wmhl1年前1
shenlan0814 共回答了23个问题 | 采纳率87%
表示如果
i-19小于0,跳转至1语句执行.
如果
i-19等于0,跳转至1语句执行.
如果
i-19大于0,跳转只2语句执行.
这是十分古老的写法,目前已经被语法抛弃.建议自己书写时不要这样写,只要看到认识就可以.
FORTRAN语言:用冒泡法排序将N个数(即动态一维数组)从大到小排列……
FORTRAN语言:用冒泡法排序将N个数(即动态一维数组)从大到小排列……
基本思路是:对N个数,从第一个到第N个,主次比较相邻两个,大放前,这样得到的最小的数就放在了最后,然后从第一个到第N-1个再逐次比较……第二小的放在倒数第二. 急求解答~~明儿就考试了~~
qqqqqtianshi1年前1
iiYY 共回答了11个问题 | 采纳率100%
eal*8 :: a(n)
real*8 :: temp
integer :: i,j
do i=1,n-1
do j=i+1,n
if (a(i) .lt. a(j)) then
temp = a(i)
a(i) = a(j)
a(j) = temp
endif
enddo
enddo
Fortran语言:CHARACTER COMENT(*)*60和CHARACTER ANT*(*)是什么意思?
lighgfhrtht1年前1
猪毛大刷 共回答了20个问题 | 采纳率100%
CHARACTER COMENT(*)*60
意思是,定义一个字符串数组,名字叫 coment,(每个元素的)长度是60,其元素的个数由实参决定.
CHARACTER ANT*(*)
意思是,定义一个字符串,名字叫 ant,其长度由实参决定.
Program Baidu_Thlws
Implicit None
character :: c(5)*60 , a*40 !// a 的长度是40,c 的长度是 60,有5个元素
c(:) = 'cccccccc'
a = 'aaaaaaaaaa'
call sub( c , a )
Contains
Subroutine sub( coment , ant )
CHARACTER COMENT(:)*60
CHARACTER ANT*(*)
Integer :: i
write(*,*) len( coment ) , len(ant) !// 他俩的长度分别是 60 和 40.ant 的长度由实参,也就是 a 决定
write(*,*) ant
Do i = 1 , 5
write(*,*) coment(i)
End do
End subroutine sub
End Program Baidu_Thlws
这样假定长度,假定大小的数组,只能对虚参进行,也就是函数 Subroutine sub( coment , ant ) 列表里的 coment 和 ant.其他变量不能这样定义.
另外,我非常强烈建议你不要使用假定大小数组.这样很容易造成内存泄露.
更科学,更符合新语法的定义是这样:
Character( Len = * ) :: coment(:) , ant
用 coment(:) 来代替 coment(*),这样的话,子程序会知道 coment 一共有5个元素.
Program Baidu_Thlws
Implicit None
character :: c(5)*60 , a*40 !// a 的长度是40,c 的长度是 60,有5个元素
c(:) = 'cccccccc'
a = 'aaaaaaaaaa'
call sub( c , a )
Contains
Subroutine sub( coment , ant )
Character( Len = * ) :: coment(:) , ant
Integer :: i
write(*,*) len( coment ) , len(ant) !// 他俩的长度分别是 60 和 40.ant 的长度由实参,也就是 a 决定
write(*,*) ant
Do i = 1 , size(coment) !// 这里可以用 size 来获得 coment 的元素,也就是 5
write(*,*) coment(i)
End do
End subroutine sub
End Program Baidu_Thlws
Fortran语言: WRITE(IU,FORM) (((C(NX,NY,NZ),NX=1,NGXC),NY=1,NGY
Fortran语言: WRITE(IU,FORM) (((C(NX,NY,NZ),NX=1,NGXC),NY=1,NGYZ),NZ=1,NGZC) 是什么意思?
我没学过Fortran,能说说这语句中各参数的作用和意义么?谢谢啊!
海梅1年前1
alg9346 共回答了18个问题 | 采纳率94.4%
我相信,你的代码里绝对不止这一句.
既然没学过 Fortran,那我建议你认真系统的学习 Fortran.
write 语句是基本的 Fortran 输出语句,在 Fortran 代码里,是使用很广泛的.
如果 write 语句你阅读还有困难,我也相信,你的困难,绝不在于这一句代码.
系统的学习,是你目前最需要的,单独的挑出代码中的一句两句求助,对你没有太大的帮助.
WRITE(IU,FORM) (((C(NX,NY,NZ),NX=1,NGXC),NY=1,NGYZ),NZ=1,NGZC)
表示输出
IU 输出到的目标,IU 极大可能是一个文件通道号,在前面的代码里用 Open 语句打开的文件,表示输出到该文件中.(也可能不是,需结合你的其他代码确定)
FORM 表示使用该字符串变量,作为输出的格式.(也需要结合你当前 FORM 的值来讲解)
(((C(NX,NY,NZ),NX=1,NGXC),NY=1,NGYZ),NZ=1,NGZC)
是三层循环.隐循环.
他类似于
Do nz = 1 , NGZC
Do ny = 1 , NGYZ
Do nx = 1 , NGXC
write( IU,FORM ) C(nx,ny,nz)
End Do
End Do
End Do
但隐循环,是同一个write 语句.即,输出为一行.
而显循环,是 NGZC*NGYZ*NGXC 个输出语句,即,输出为多行.
当然,执行效率上,两者也有差别.
fortran程序 第一次接触fortran语言,试着编写了一个简单的程序:program tsimplicit non
fortran程序
第一次接触fortran语言,试着编写了一个简单的程序:
program ts
implicit none
integer x
x=120
call ti(x)
end
subroutine ti(x)
real*8 x
i=x
print *,'i=',x
end
连接时会有警告:Warning:In the call to TI,actual argument #1 does not match the type and kind of the corresponding dummy argument.call ti(x)
但当我把所有的i和x交换,其他不变,就没有问题,能够的到正确的结果.
为什么fortran不能学C那样在形参前面加一个integer 就好?应该怎么改呢?
klyun20001年前1
生命的体验 共回答了14个问题 | 采纳率92.9%
错误原因如ls
至于“但当我把所有的i和x交换,其他不变,就没有问题,能够的到正确的结果.”是因为fortran的I-N规则,以字母IJKMLN开头的变量,如果没有定义,默认为整形,交换以后,虚参I是整形,所以就没有问题了
关于FORTRAN语言:FILE3.DAT有如下数据 50,54,64,65 65,70,85,90 46,73,60,
关于FORTRAN语言:FILE3.DAT有如下数据 50,54,64,65 65,70,85,90 46,73,60,72 阅读FORTRAN程序
DIMENSION M(12)
OPEN(10,FILE='FILE3.DAT')
READ(10,*)(M(1),I=1,12)
DO 10J=1,12
IF (M(J).GE.60) N=N+1
CONTINUE
WRITE(*,20) N
FORMAT(2X,'N=',12)
END
为什么答案是8,为什么不是9啊,大于60的数不是9个么?
dizzy781年前2
7kdcc 共回答了20个问题 | 采纳率85%
DIMENSION M(12)
OPEN(10,FILE='FILE3.DAT')
READ(10,*) (M(I),I=1,12)
DO 10 J=1,12
IF (M(J).GE.60) N=N+1
10 CONTINUE
WRITE(*,20) N
20 FORMAT(2X,'N=',I2)
END
!程序错误太多,都已改正并上机通过.运行结果是9,没错.
fortran语言里for k=1,
渊源1年前1
长针眼的青蛙 共回答了13个问题 | 采纳率92.3%
fortran语言中的一种循环格式为do/end do.举个例子: 1~100间所有整数求和sum = 0
do i = 1,100
sum = sum + i
end do
FORTRAN语言中两个嵌套的DO语句在同一行结束,变量是如何变化的?
FORTRAN语言中两个嵌套的DO语句在同一行结束,变量是如何变化的?
比如:DO 30 K=1,2
DO 30 J=1,2
(无关紧要的运算)
30 CONTINUE
是按照(K=1,J=1)(K=1,J=2)(K=2,J=1)(K=2,J=2)的顺序变化还是按照(K=1,J=1)(K=2,J=1)(K=2,J=1)(K=2,J=2)的顺序变化?
逮到打掺1年前1
白天不懂黑夜1 共回答了22个问题 | 采纳率100%
(K=1,J=1)(K=1,J=2)(K=2,J=1)(K=2,J=2)的顺序
现在的语法不建议用 continue 结束.你的语句这样写更符合现代语法:
Do k = 1 ,2
Do j = 1 ,2
End Do
End Do