当前位置:网站首页>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
边栏推荐
- 尾-递
- C++在C的基础上改进了哪些细节
- More than 50 object detection datasets from different industries
- WPF personal summary on drawing
- LadonGo开源全平台渗透扫描器框架
- 手撕算法-手写单例模式
- The real-time display of CPU and memory utilization rate by Ubuntu
- Data structure and sorting algorithm
- Introduction to ucgui
- Android Basics - RadioButton (radio button)
猜你喜欢

Everything is 2020, LINQ query you are still using expression tree

来自不同行业领域的50多个对象检测数据集

在Ubuntu上体验最新版本EROFS

Basic operation of database

微信小程序request报400错误 @RequestBody接收不到

Face recognition: attack types and anti spoofing techniques

LadonGo开源全平台渗透扫描器框架

These core technology of object-oriented, after you master it, you can have a good interview

C language I blog assignment 03

GoLand writes a program with template
随机推荐
团灭 LeetCode 股票买卖问题
The software in your host has terminated an established connection. resolvent
Experience the latest version of erofs on Ubuntu
Cpp(三) 什么是CMake
Ladongo open source full platform penetration scanner framework
Android 9.0/P WebView 多进程使用的问题
Adobe media encoder / me 2021 software installation package (with installation tutorial)
C语言I博客作业03
CPP (2) creating CPP project
Adobe Prelude /Pl 2020软件安装包(附安装教程)
High concurrency in ngnix cluster
Animation techniques and details you may not know
Face recognition: attack types and anti spoofing techniques
Qt混合Python开发技术:Python介绍、混合过程和Demo
Delphi10's rest.json And system.json Step on the pit
面部识别:攻击类型和反欺骗技术
C++在C的基础上改进了哪些细节
使用jsDelivr加速你的网站
Insight -- the application of sanet in arbitrary style transfer
1. In depth istio: how is sidecar auto injection realized?