当前位置:网站首页>FORTRAN77从文件中读入若干数据并用heron迭代公式开方
FORTRAN77从文件中读入若干数据并用heron迭代公式开方
2020-11-08 01:33:00 【wangxuwei】
要求做到:
1.不限制数据个数,自动计数并打印序号
2.遇到负数时,跳过开方,直接打印并标记
3.遇到0.0,程序停止
Heron迭代方法。
- 初始化 (X0 = A);(x1 =1/2*{x0+A/ x0});
- 计算 (Delta_k = |x1 - x0|;
- 若(Delta_k < epsilon),返回(x),算法结束;
- (x1 =1/2*{x0+A/ x0});
- 返回第2步;
C
C heronus1.f
C
C Unlimited number of data, automatic counting and printing serial number
C When negative numbers are encountered,skip square root, print them directly and mark them
C Encountered 0.0, the program stopped
PROGRAM heronus1
EPS=.1 E-4
I=0
OPEN(11,file='fheronus.dat')
10 READ(11,*)A
I=I+1
IF (A) 1,2,30
1 WRITE(6,100) I,A
100 FORMAT(1X, I6,10X,F10.6,' NEGATIVE NUMBER')
GO TO 10
2 STOP 'END OF JOB'
30 X0=A
20 X1=.5*(X0+A/X0)
IF (ABS(X1-X0).LT.EPS) GO TO 40
X0=X1
GO TO 20
40 WRITE(6,110) I,A,X1
110 FORMAT(1X, I6,2F10.6)
3 CONTINUE
GO TO 10
END
数据要以行来分割,而不是空格,并用0.0结束:
$ cat fheronus.dat
1
2
3
4
5
6
7
8
9
10
11
12
12
13
13
14
16
21
22
13
25
22
13
21
52
32
-23
121
12
0.0
运行:
$ f77 heronus1.f
$ a.out
1 1.000000 1.000000
2 2.000000 1.414214
3 3.000000 1.732051
4 4.000000 2.000000
5 5.000000 2.236068
6 6.000000 2.449490
7 7.000000 2.645751
8 8.000000 2.828427
9 9.000000 3.000000
10 10.000000 3.162278
11 11.000000 3.316625
12 12.000000 3.464102
13 12.000000 3.464102
14 13.000000 3.605551
15 13.000000 3.605551
16 14.000000 3.741657
17 16.000000 4.000000
18 21.000000 4.582576
19 22.000000 4.690416
20 13.000000 3.605551
21 25.000000 5.000000
22 22.000000 4.690416
23 13.000000 3.605551
24 21.000000 4.582576
25 52.000000 7.211102
26 32.000000 5.656854
27 -23.000000 NEGATIVE NUMBER
28121.000000 11.000000
29 12.000000 3.464102
STOP END OF JOB
ubutnu18.04下gfortran-10编译通过(vax780的f77也测试过)
版权声明
本文为[wangxuwei]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/2245781/blog/4707791
边栏推荐
猜你喜欢
On the stock trading of leetcode
WPF personal summary on drawing
Got timeout reading communication packets解决方法
VC6兼容性及打开文件崩溃问题解决
swiper 窗口宽度变化,页面宽度高度变化 导致自动滑动 解决方案
个人短网址生成平台 自定义域名、开启防红、统计访问量
The real-time display of CPU and memory utilization rate by Ubuntu
Qt混合Python开发技术:Python介绍、混合过程和Demo
Learn Scala if Else statement
Insight -- the application of sanet in arbitrary style transfer
随机推荐
supervisor和Python多进程multiprocessing使用 子进程残留问题
2020-11-07:已知一个正整数数组,两个数相加等于N并且一定存在,如何找到两个数相乘最小的两个数?
Do you really understand the high concurrency?
The software in your host has terminated an established connection. resolvent
Cryptography - Shangsi Valley
Jingtao project day09
Windows下子系统Ubuntu安装
China Telecom announces 5g SA commercial scale in 2020
Awk implements SQL like join operation
scala 中 Future 的简单使用
Web Security (1) -- browser homology strategy
leetcode之判断路径是否相交
Face recognition: attack types and anti spoofing techniques
使用 Xunit.DependencyInjection 改造测试项目
云计算之路-出海记:整一台 aws 免费云服务器
什么你的电脑太渣?这几招包你搞定! (Win10优化教程)
GoLand writes a program with template
什么都2020了,LINQ查询你还在用表达式树
来自不同行业领域的50多个对象检测数据集
On the concurrency of update operation