计算机语言运用--数值计算1-自然数的计算机处理1(2)fortran
计算机:电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。
计算机语言有低级语言-机器语言、汇编、高级语言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。
作为一种计算机器—可以协助人类处理各种事情—数值计算问题、文字处理问题、图形图像处理问题、事务问题……。自从有了数字计算的计算机器,几乎所有的可以交给计算机的事情,都交给计算机来处理—是辅助处理—按照人们的要求—事先安排的模式进行处理。
数值计算
代数的计算、初等函数的计算、代数方程的求解、解析几何与微分几何的求解、矢量-张量与场论的求解、抽象代数-空间及泛函分析、级数与变换、特殊函数问题、概率统计与随机过程分析计算、误差分析与实验数据处理、最优化方法分析、有限单元法求解、数论分析、集合论及其计算、拓扑学分析与计算、组合数学的计算、图结构处理、数理逻辑分析与处理、……、……
或者说:
自然数的计算、整数的计算、实数的计算、复数的计算、矢量-向量的计算、矩阵的计算、函数的计算、代数方程的计算、函数方程的计算、微分的计算、积分的计算、常微分-一元微分方程的计算、偏微分-多元微分方程的计算、连续数量的计算、离散数量的计算、集合的计算、组合数学的计算、……、……
或者说:科学与工程技术应用中的数值计算、……、……
自然数的计算
在自然数的范围内—自然数计算结果仍然为自然数。只可以加-连加/乘-连乘!
自然数的计算机生成:算法为i=0,i=n,ans=i循环
自然数的连加:算法为i=0,i=n,ans= ans +i
自然数的连乘:算法为i=1,ans= ans *i
自然数的加:算法为ans=1+2+3+4
相同的自然数的连加:算法为ans=a*n
相同的自然数的连乘:算法为i=4,ans=4n
……、……
自然数的计算机处理:
MATLAB语言及其平台
Fortran语言及其平台
Fortran是编译型语言,因此需要将所做工作用计算机语言编制程序,再交给计算机来处理。作为静态数据的模式,与MATLAB不同,需要对计算的数据—数值或代数预先声明变量,以便申请到内存来放置。
可以用Fortran语言编写为文件形式,接着编译成*.exe文件,再运行—人机交互。
程序文件
program Natrue_computer
!Variables
integerI_N,Iprod_ADD,Iprod_MULT
integerIa,Ib,Ic,Id,Iadd,Imult,Imix
integerF_in(10),F_Sort(10),intSort
charactername_in*10,name_out*10
!Body of Integer_computer
!数据输入!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!datakeyboard in
PRINT*,"输入1个整数:N"
read*,I_N
PRINT*,"输入4个自然数,逗号隔开"
read*,Ia,Ib,Ic,Id
!dataFile in
PRINT*,"输入文件数据的文件名:*.txt"
read(*,*)name_in
OPEN(1,FILE=name_in) !jiafa.txt格式要配套,
PRINT*,"一维10个自然数的数组文件读入:"
doi=1,10,1
READ(1,20)F_in(i)
20FORMAT(I4)
enddo
Close(1)
!数据处理过程!!!!!!!!!!!!!!!!!!!!!!!!!!
doi=1,10,1
F_Sort(i)=F_in(i)
enddo
Iadd=Ia+Ib+Ic+Id
Imult=Ia*Ib
Imix=Ia+Ib*Id
!输入文件F_in(i)数据的排序
do i=1,9
do j=i+1,10
if(F_Sort(i).LT.F_Sort(j)) then
intSort=F_Sort(i)
F_Sort(i)=F_Sort(j)
F_Sort(j)=intSort
endif
enddo
enddo
!数据标准IO输出!!!!!!!!!!!!!!!
!键盘输入数据的标准IO输出显示--检查与监测
PRINT*,"键盘输入的整数个数N: "
PRINT*,I_N
PRINT*,"键盘输入数据的处理结果:"
PRINT*,"计算机生成的自然数:"
doj=1,I_N,1
PRINT*,j
enddo
PRINT*,"计算机生成的偶数:"
doj=1,I_N,1
PRINT*,2*j
enddo
PRINT*,"计算机生成的奇数:"
doj=1,I_N,1
PRINT*,2*j-1
enddo
!键盘输入数据的计算结果输出
PRINT*,"键盘输入数据的计算结果:"
PRINT*,Iadd,Imult,Imix
PRINT*," "
!文件数据及其处理结果输出
PRINT*,"文件输入数据:"
WRITE(*,43)(F_in(j),j=1,10)
43FORMAT(<10>I6)
PRINT*,"文件数据排序以后的数据输出:"
WRITE(*,22)(F_Sort(k),k=1,10)
22FORMAT(<10>I6)
!数据文件IO!!!!文件保存
!OPEN(2,FILE='Cunchu.out')
!OPEN(2,FILE='Cunchu.dat')
PRINT*,"输入保存的文件名:*.txt"
read(*,*)name_out
OPEN(2,FILE=name_out)
WRITE(2,"('文件读入数据 :')")
! doi=1,10,1
WRITE(2,25)(F_in(i),i=1,10)! READ(1,*) (Iarray(i,j),j=1,10)
25FORMAT(<10>I6) !输入数据的占位严格遵循FORMAT(2I4,I4),逗号分开
! enddo
WRITE(2,"('文件输入数据的排序结果:')")
WRITE(2,34)(F_Sort(k),k=1,10)
34FORMAT(<10>I6)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WRITE(2,"('键盘读入数据N :',I4)")I_N
WRITE(2,"('键盘读入数据N的整数生成结果 :')")
WRITE(2,3)(i,i=1,I_N)
3FORMAT(<2*I_N>I4) !输入数据的占位严格遵循FORMAT(2I4,I4),逗号分开
WRITE(2,"('键盘读入数据N的偶数生成结果 :')")
WRITE(2,5)(2*i,i=1,I_N)
5FORMAT(<2*I_N>I4) !输入数据的占位严格遵循FORMAT(2I4,I4),逗号分开
WRITE(2,"('键盘读入数据N的奇数生成结果 :')")
WRITE(2,7)(2*i-1,i=1,I_N)
7FORMAT(<2*I_N>I4) !输入数据的占位严格遵循FORMAT(2I4,I4),逗号分开
!键盘输入数据的处理结果文件保存
WRITE(2,"('键盘输入的数据:')")
WRITE(2,*)Ia,",",Ib,",",Ic,",",Id
WRITE(2,"('键盘输入的数据的加乘与混合运算结果:')")
WRITE(2,*)"Ia+Ib+Ic+Id=",Iadd
WRITE(2,*)"Ia*Ib=",Imult
WRITE(2,*)"Ia+Ib*Id=",Imix
CLOSE(2) !释放内存
PRINT*,"数据已经保存,请检查结果。保存文件名为:",name_out
PRINT*," "
endprogram Natrue_computer
感觉咋样?什么是方程的计算机处理—算法及其描述,运行及其人机交互。
处理结果