Fortran语言部分简单代码,求解释?? 5
楼主仅仅需要看到fortran语言的算法设计,现在遇到以下问题,求解,非常感谢您的回答:1:D02J=1,NX//问这行代码的意思是直接跳到标号2处开始执行程序吗?`IF...
楼主仅仅需要看到fortran语言的算法设计,现在遇到以下问题,求解,非常感谢您的回答:
1:D0 2 J=1,NX //问这行代码的意思是直接跳到标号2处开始执行程序吗?
`IF(HIST(J)-HMAX) 2,2,1 //这个2,2,·1是什么意思啊?
1 HMAX=HIST(J)
2 CONTINUE //这个标号2的continue是不是执行循环的下一次呢,还是标号2的下一行代码?
2:WRITE(1,170) (X(3),J=NI,NOB) //这行是什么意思呢?
3:GOTO (2,3,1),ID //这行是什么意思啊?(ID是个具体的数)
4:RN1=2.*(2.**14-2.)+1. //这个小数点可以忽略对吧??
5: DO 20 I=1,N11,2 //1
I1=I/2+1 //2
20 E(I1)=0.5*(E(I)+E(I+1)) //3
N1=N1/2 //4
问,这个语句段的执行顺序是:1-2-3(循环)--4 还是 1-3(循环)--2-4呢??
以上问题非常急,求大神帮忙,大神附体啊?? 展开
1:D0 2 J=1,NX //问这行代码的意思是直接跳到标号2处开始执行程序吗?
`IF(HIST(J)-HMAX) 2,2,1 //这个2,2,·1是什么意思啊?
1 HMAX=HIST(J)
2 CONTINUE //这个标号2的continue是不是执行循环的下一次呢,还是标号2的下一行代码?
2:WRITE(1,170) (X(3),J=NI,NOB) //这行是什么意思呢?
3:GOTO (2,3,1),ID //这行是什么意思啊?(ID是个具体的数)
4:RN1=2.*(2.**14-2.)+1. //这个小数点可以忽略对吧??
5: DO 20 I=1,N11,2 //1
I1=I/2+1 //2
20 E(I1)=0.5*(E(I)+E(I+1)) //3
N1=N1/2 //4
问,这个语句段的执行顺序是:1-2-3(循环)--4 还是 1-3(循环)--2-4呢??
以上问题非常急,求大神帮忙,大神附体啊?? 展开
1个回答
展开全部
这几个问题大多都是Fortran77的语法,在90以后都已经被抛弃了。
1:
IF(HIST(J)-HMAX) 2,2,1
Fortran77的语法,在90以后都已不建议使用。判断HIST(J)-HMAX的值的大小,小于0,则程序流程转至标号2指定的语句执行。等于0,则程序流程转至标号2指定的语句执行。大于0,则程序流程转至标号1指定的语句执行。
2 CONTINUE
这个也是Fortran77的语法,在90以后都已不建议使用。这个跟do 语句结合使用,表示是个循环体。
D0 2 J=1,NX
。。。
2 CONTINUE
当执行到 2 CONTINUE时,程序就会跳把J加1,执行下一个循环。当J〉NX时就执行下一行代码。
第二个问题:WRITE(1,170) (X(3),J=NI,NOB)的意思是把X(3)的值写入1号文件(或者设备)NOB-NI遍
3:GOTO (2,3,1),ID
这个语法是77的语法,95里是被废除的。里面的2,3,1是执行编号,后面的ID如果是1的话,就执行编号2后面的语句,2的话则是执行编号3的语句,3的话执行编号1后的语句。
4:RN1=2.*(2.**14-2.)+1. 这个难说,这个小数点的目的是保持所有的数字都为实型,以避免出现精度上的错误,如果去掉就是按照整形来计算了,可能会导致错误。
5:这也是77的老语法,相当于
DO 20 I=1,N11,2 //1
I1=I/2+1 //2
E(I1)=0.5*(E(I)+E(I+1)) //3
20 CONTINUE
N1=N1/2 //4
执行顺序是把 do 。。。 continue之间的循环执行完毕之后再执行 N1=N1/2 //4
如果楼主需要读77的程序,建议还是把77的书看看,这些都是77的老语法,虽说不用了,但是读老前辈写的程序的时候还是十分有用的,希望对你有帮助。
1:
IF(HIST(J)-HMAX) 2,2,1
Fortran77的语法,在90以后都已不建议使用。判断HIST(J)-HMAX的值的大小,小于0,则程序流程转至标号2指定的语句执行。等于0,则程序流程转至标号2指定的语句执行。大于0,则程序流程转至标号1指定的语句执行。
2 CONTINUE
这个也是Fortran77的语法,在90以后都已不建议使用。这个跟do 语句结合使用,表示是个循环体。
D0 2 J=1,NX
。。。
2 CONTINUE
当执行到 2 CONTINUE时,程序就会跳把J加1,执行下一个循环。当J〉NX时就执行下一行代码。
第二个问题:WRITE(1,170) (X(3),J=NI,NOB)的意思是把X(3)的值写入1号文件(或者设备)NOB-NI遍
3:GOTO (2,3,1),ID
这个语法是77的语法,95里是被废除的。里面的2,3,1是执行编号,后面的ID如果是1的话,就执行编号2后面的语句,2的话则是执行编号3的语句,3的话执行编号1后的语句。
4:RN1=2.*(2.**14-2.)+1. 这个难说,这个小数点的目的是保持所有的数字都为实型,以避免出现精度上的错误,如果去掉就是按照整形来计算了,可能会导致错误。
5:这也是77的老语法,相当于
DO 20 I=1,N11,2 //1
I1=I/2+1 //2
E(I1)=0.5*(E(I)+E(I+1)) //3
20 CONTINUE
N1=N1/2 //4
执行顺序是把 do 。。。 continue之间的循环执行完毕之后再执行 N1=N1/2 //4
如果楼主需要读77的程序,建议还是把77的书看看,这些都是77的老语法,虽说不用了,但是读老前辈写的程序的时候还是十分有用的,希望对你有帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |