当前位置:网站首页>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
边栏推荐
- 【解决方案】分布式定时任务解决方案
- QT hybrid Python development technology: Python introduction, hybrid process and demo
- What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?
- What details does C + + improve on the basis of C
- 手撕算法-手写单例模式
- Cryptography - Shangsi Valley
- Data transmission of asynchronous serial communication controlled by group bus communication
- 团灭 LeetCode 股票买卖问题
- [solution] distributed timing task solution
- Wanxin Finance
猜你喜欢

The road of cloud computing: a free AWS cloud server

What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?

Improvement of maintenance mode of laravel8 update

The emergence and significance of micro service

See once to understand, graphic single chain table inversion

QT hybrid Python development technology: Python introduction, hybrid process and demo

More than 50 object detection datasets from different industries

Download, installation and configuration of Sogou input method in Ubuntu

Problems of Android 9.0/p WebView multi process usage

IDEA-项目未自动生成 .iml 文件
随机推荐
scala 中 Future 的简单使用
关于晋升全栈工程师,从入门到放弃的神功秘籍,不点进来看一看?
What details does C + + improve on the basis of C
VC6 compatibility and open file crash resolution
CPP (3) what is cmake
Summary of knowledge points of Jingtao project
Ubuntu下搜狗输入法的下载安装及配置
Adobe Lightroom /Lr 2021软件安装包(附安装教程)
Judging whether paths intersect or not by leetcode
The instanceof operator in ecmascript7 specification
数据库基本操作
Web安全(四)---XSS攻击
QT hybrid Python development technology: Python introduction, hybrid process and demo
Experience the latest version of erofs on Ubuntu
Cryptography - Shangsi Valley
Static + code block + polymorphism + exception
Android 9.0/P WebView 多进程使用的问题
Tail delivery
Data transmission of asynchronous serial communication controlled by group bus communication
使用 Xunit.DependencyInjection 改造测试项目