计算机:电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。计算机本就是为快速计算而发展出来得。最初由运算器和控制器两个模块组成,后来有个叫冯的人说可以添加一个存储器,以便可以进行自动计算。这个存储器就是用来存放程序指令与软件的。据此就有了计算机语言低级语言-机器语言、汇编、高级语言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。也就有了专门为计算机写程序的人员和公司-软件公司。他们专门生产软件产品。由此便有了三部分人员:计算机硬件-集成电路-芯片设计制造,软硬结合的自动控制工程师,纯写程序的软件工程师。相应的也就有了三种类型的公司。
对于数值计算来说,就是把数学公式编排进计算机指令集中,也就是用计算机语言描述数学公式。所以,数值计算工作的前期事情,就是获得数学公式。许多数学公式已经由数学工作者或某领域的科学工作者推导证明完毕,可以在数学手册或专业技术手册中查取。对于大量的工程技术问题,需要专业技术科学的知识,需要专业技术人员进行相应的模型化处理而最终归结为数学公式。这些问题读者可以在本号中找到相关的文章或视频。所以,计算机来处理—是辅助处理—按照人们的要求—事先安排的模式-程序指令集来进行处理。
实数的计算—从整数中引入负数而再引入分数-小数扩展。在实数的范围内—实计算结果仍然为实数。可以加减乘除-连加连减连乘连除-四则混合运算!--不能随意开方—会遇到负数开平方,这就不是实数的封闭问题。自然数、整数、实数的兼容-混合使用。
这里用java语言及其平台JDK-14为例,描述实数-real的计算机处理。
%实数的计算-连加、连减、连乘、连除、加减乘除及初等函数混合计算//Real_Nums.java
importjava.io.*;
importjava.util.*;
importjava.text.DecimalFormat;
publicclassReal_Nums//
{
//classvariables
staticdoubleinitDC=.D;
staticinti,j,N;
staticint[]Iarray=newint[10];
staticfloat[]Farray=newfloat[10];
staticdoubleadd,subtr,mult,divi,mix,seqenN,seqenI,seqenR,mAngle;
staticint[]file_in=newint[10];
staticStringFsaveName;
publicstaticvoidmain(String[]args)//
{
//localvariables
Stringm_str="thisisanordinaryorlocalvariable!";
intm_initIA=;
floatm_initFB=.2f;
doublem_initDC=.D;
//int[]Iarray=newint[10];
//Promptinformationoutput
System.out.println("ThisisanBuiltininformation.ChineseCannotused!EnglishYes!");
System.out.println(m_str);
System.out.println("Thisisanclassvariable!");
System.out.println(initDC);
//datainput
ScannerinKey=newScanner(System.in);
System.out.println("pleaseinputMaximumnaturalnumber:N");
N=inKey.nextInt();
System.out.println("checkint"+N);
System.out.println("pleaseinput10integers:");
for(i=0;iN;i++)
{
Iarray=inKey.nextInt();
}
System.out.println("pleaseinput10reals:");
for(i=0;iN;i++)
{
Farray=inKey.nextFloat();
}
System.out.println(Arrays.toString(Iarray));
System.out.println(Arrays.toString(Farray));
System.out.println("checkthedata:");
System.out.println("inputtheAnglevalueoftrigonometricfunction.:");
mAngle=inKey.nextInt();
//inputfiledata
//dataprocessing
//addition
add=0;
for(j=0;j=N;j++)
{
add=add+0.3*j;
}
System.out.println(add);
//subtraction
subtr=31.7;
for(j=1;j=N;j++)
{
subtr=subtr-1.2*j;
}
System.out.printf("%.4f\n",subtr);
//multiplication
i=1;
mult=1;
while(i=N)
{
mult=mult*i+1.3;
i++;
}
System.out.printf("%.4f\n",mult);
//division
divi=.4;
for(j=1;j=N;j++)
{
divi=divi/(0.7*j);
}
System.out.println("Thisisadivision:");
System.out.println(String.format("%.6f",divi));
//hybrid-mix
mix=add+subtr-mult*divi/0.3;
System.out.println(String.format("mix=%.6f",mix));
//seqen//seqenN,seqenI
intseqenI=0;
for(j=1;jN;j++)
for(i=0;iN-j;i++)
if(IarrayIarray[i+1])
{
seqenI=Iarray;
Iarray=Iarray[i+1];
Iarray[i+1]=seqenI;
}
System.out.println(Arrays.toString(Iarray));
//seqen//seqenR
floatseqenR=0.0f;
for(j=1;jN;j++)
for(i=0;iN-j;i++)
if(FarrayFarray[i+1])
{
seqenR=Farray;
Farray=Farray[i+1];
Farray[i+1]=seqenR;
}
System.out.println(Arrays.toString(Farray));
System.out.println("generatingnaturalorinteger.Next:");
//generatingnaturalintegerReals
j=-10;
while(j=N)
{
System.out.println(j*2);
j++;
}
System.out.println("generatingReal.Next:");
i=-10;
while(i=N)
{
System.out.printf("%.2f\n",i*1.3-0.7);
//System.out.println(i*1.3-0.5);
i++;
}
//Calculatingtrigonometricfunction--Mathclass
doublemFun_Sin=Math.sin(mAngle*Math.PI/.0);
doublemFun_Cos=Math.cos(mAngle*Math.PI/.0);
doublemFun_Tan=Math.tan(mAngle*Math.PI/.0);
System.out.printf("%.4f%.4f%.4f\n",mFun_Sin,mFun_Cos,mFun_Tan);
//Fileoutput--savefile
ScanneroutKey=newScanner(System.in);
System.out.println("PleaseEnteranFileName,formSaveE:\\*.txt");
FsaveName=outKey.nextLine();
try{
FilewriteName=newFile(FsaveName);
if(!writeName.exists()){
writeName.createNewFile();
}
FileWriterwriter=newFileWriter(writeName);
BufferedWriterFw=newBufferedWriter(writer);
DecimalFormatFwf=newDecimalFormat("#.00");
DecimalFormatFwTri=newDecimalFormat("#.");
Fw.write("SaveDatatoFile\n");
Fw.write("UserinputN="+N);
Fw.write("\r\n");
Fw.write("Continuedaddition1toN,add="+Fwf.format(add));
Fw.write("\r\n");
Fw.write("Continuedsubtraction1toN,sum="+Fwf.format(subtr));
Fw.write("\r\n");
Fw.write("Continuousmultiplication1toN,products="+Fwf.format(mult));
Fw.write("\r\n");
Fw.write("Continueddivision1toN,divi="+Fwf.format(divi));
Fw.write("\r\n");
Fw.write("Continuousmultiplication1toN\n");
j=-8;
while(j=N)
{
Fw.write("products="+Fwf.format(2.3*j)+"\n");
j++;
}
Fw.write("\r\n");
Fw.write("Sortingof"+N+"numbersis:\n");
Fw.write(Arrays.toString(Iarray));
Fw.write("\r\n");
Fw.write(Arrays.toString(Farray));
Fw.write("\r\n");
Fw.write("anglevalue="+Fwf.format(mAngle)+"\n");
Fw.write("sin(angle)="+FwTri.format(mFun_Sin)+"\n");
Fw.write("cos(angle)="+FwTri.format(mFun_Cos)+"\n");
Fw.write("tan(angle)="+FwTri.format(mFun_Tan)+"\n");
Fw.write("\r\n");
Fw.flush();
Fw.close();
}catch(IOExceptione1){
e1.printStackTrace();
}
}
}
Java程序与运行结果程序较长,阅读费劲,大脑昏沉,看来确实需要分解为若干个方法比较好。模块清晰,便于重用。
作为实数集,一般说来是有无数个数据—实数之间还可以有实数。这时候,借用几何学的办法—图形来表达是可取的、科学的、实际的。
当然,随着计算机技术的扩展、硬件、软件、数学算法等因素促使了计算机图形学的应用与扩展。C语言是早期的语言之一,早期的编译平台没有图形处理功能—当然_图形处理功能与字符(数字、文字、……)处理功能的技术大不相同。各种原因使得C的原有编译平台不能直接编译处理图形问题。若要用C语言,可以外挂一个GUI图形处理程序包。这样就可以处理图形问题了。C++语言也是如此。当然,可以直接使用VC++还有VB、VC#等语言及其编译平台。