实函数的数学计算规则、程序算法分析与C语言实现与计算结果保存
C语言描述
代数、初等函数、代数方程、解析几何与微分几何、矢量-张量与场论、抽象代数-空间及泛函分析、级数与变换、特殊函数、概率统计与随机过程、误差分析与实验数据处理、最优化方法、有限单元法、数论、离散量、集合论、拓扑学、组合数学、图结构、数理逻辑、……、都有自己的运算规则。
数及其计算规则初等函数的计算规则在实数的范围内—实数计算结果仍然为实数称为实数域的运算是闭合的。可以加减乘除-连加连减连乘连除-四则混合运算!--不能随意开方。自然数、整数、实数的兼容-混合使用。
可这些规则,计算机处理的时候,怎样才能保证呢。也就是说在编程序讲给计算机听的时候,给计算机下指令的时候,在做程序算法分析的时候,需要考虑在哪些环节设置、控制、评价、监测,计算过程也需要监测吗。数值输入输出等环节,是否满足数学学科的规则。
语言和编译器提供的运算符号(加减乘除平方开方-幂运算,初等函数运算等)有没有自动遵循数学学科的规则,小括号、中括号有没有优先级。大括号肯定不能用(许多语言把它作为程序段-主函数、类、命名空间等的标记符)。
电脑可能没有人们想象的那么聪明。指令是由人的意志下达的,电脑只是个忠实的执行者而已。
有了数学学科的规定和规则,下来的工作就是用计算机语言描述而已。下面看一下实数域的加、减、乘、除、平方、初等函数的计算问题。
C语言的格式-模板-规定
#includestdio.h/*文件包含,预处理指令
voidmain()/*主函数*/
{/*函数体开始*/
变量声明
标准IO
文件IO-磁盘操作
处理过程
标准IO
文件IO-磁盘操作
}/*函数体结束*/
下面给出数学语言表达的实数计算例子
实数的加减乘除:算法为ans0=11.3-2*4.5/5+3/32*8+.78/32-5-0.78+
实数的加减乘除:算法为ans1=11.3-2*[(4.5/5+3)/32*8+.78/32]-5-0.78+
实数的初等函数:算法为ansS=ex+sin(xs)-cos(xc)*lg(ga)+tan(tadayu)/x5,其中xs、xc、ga、ta均要满足数学学科的要求。xs、xc、ta是用弧度还是度。度与弧度的转换用pi/。ga要满足大于0。
什么是算法。在数学语言中,就是运算规则。在计算机语言中呢?
C语言的描述:
实数的加减乘除:算法为ans0=11.3-2*4.5/5+3/32*8+.78/32-5-0.78+
实数的加减乘除:算法为ans1=11.3-2*((4.5/5+3)/32*8+.78/32)-5-0.78+
实数的初等函数:算法为ansS=exp(x)+sin(xs)-cos(xc)*log10(ga)+tan(ta)/pow(x,5),其中xs、xc、ga、ta均要满足数学学科的要求。xs、xc、ta是用弧度还是度。度与弧度的转换用pi/。ga要满足大于0。
所有的数学规则必须遵守。如若没有获得遵守,要么编译器提示出错信息,最后就要在测试环节进行处理解决。反复核对与检测可能出现的各种BUG。
请阅读下面的程序,给出该程序的算法逻辑。
//FileIO_RW--操作系统函数--API--编译器函数
//RealArithmetic.c
#include"stdio.h"
#include"math.h"
voidmain()
{
//变量声明与初始化
doublePI=3.;
inti,j,yn,N;
floatex,xs,xc,ta,lga;
doubleans0,ansS,MathSIN,MathCOS,MathTAN,MathLOG,MathE;
FILE*Fout;
charsaveFile[10];
//信息输入与输出-人机交互
printf("你准备计算多少次:\n");
scanf("%d",N);
for(i=0;iN;i++)
{
printf("请输入5个实数,分别为:指数、正弦、余弦、正切,对数;用逗号隔开:\n");
scanf("%f,%f,%f,%f,%f",ex,xs,xc,ta,lga);
printf("请检查输入数据,正确输入1,错误输入0:\n");
scanf("%d",yn);
//信息处理
if(yn==1)
{
ans0=11.3-2*4.5/5+3/32*8+.78/32-5-0.78+;
ansS=exp(ex)+sin(xs*PI/)-cos(xc*PI/)*log10(lga)+tan(ta*PI/)/pow(ex,5);
MathSIN=sin(xs*PI/);
MathCOS=cos(xc*PI/);
MathTAN=tan(ta*PI/.0);
MathLOG=log10(lga);
MathE=exp(ex);
for(j=0;jxs;j++)
{
MathSIN=sin(j*PI/);
}
//信息输出
printf("这是一个内置数据的四则混合运算结果:\n");
printf("%6.2f\n",ans0);
printf("这是初等函数的四则混合运算结果:\n");
printf("%6.2f\n",ansS);
//信息存储
printf("请输入要保存的文件名与格式:");
scanf("%s",saveFile);
if((Fout=fopen(saveFile,"w+"))==NULL)
{
printf("cannotopenfile\n");
}
fprintf(Fout,"输入值:%6.2f,%6.2f,%6.2f,%6.2f,%6.2f\n",ex,xs,xc,ta,lga);
fprintf(Fout,"初等函数的计算:%8.4f,%8.4f,%8.4f,%8.4f,%8.4f,\n",MathE,MathSIN,MathCOS,MathTAN,MathLOG);
fprintf(Fout,"11.3-2*4.5/5+3/32*8+.78/32-5-0.78+计算结果:%7.3f\n",ans0);
fprintf(Fout,"exp(x)+sin(xs)-cos(xc)*log10(ga)+tan(ta)/pow(x,2)计算结果:%7.3f\n",ansS);
for(j=0;j=xs;j++)
{
MathSIN=sin(j*PI/);
fprintf(Fout,"间隔一度的正弦值:%2d,%10.4f\n",j,MathSIN);
}
fclose(Fout);//保存
printf("计算结果的文件已保存!文件名为:%s\n",saveFile);
}
else
printf("请重新输入数据:\n");
}}
实例计算的人机交互过程与文件保存计算机如何处理实数:
MATLAB、python、Fortran、V6C、V6C++、VSC#、java、VB等等语言描述。