es系列编程理论系统整理

es系列编程理论系统整理

ID:10271250

大小:73.50 KB

页数:11页

时间:2018-06-14

es系列编程理论系统整理_第1页
es系列编程理论系统整理_第2页
es系列编程理论系统整理_第3页
es系列编程理论系统整理_第4页
es系列编程理论系统整理_第5页
资源描述:

《es系列编程理论系统整理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第一章:一些数学函数的其他实现方法函数名称函数说明实现方法max(a,b)取a和b中的较大者max(A,B)=(A+B+

2、A-B

3、)/2max(a,b,c)取a,b,c中最大者max(a,b,c)=max(a,max(b,c))min(a,b)取a和b中的较小者min(A,B)=(A+B-

4、A-B

5、)/2min(a,b,c)取a,b,c中最小者min(a,b,c)=min(a,min(b,c))sgn(x)当x为正数时sgn(x)为1,当x为负数时sgn(x)为-1,当x=0时sgn(x)=0。注意不适合绝对值小于10^-85的数sgn(X)=X/(

6、X

7、+1*10^-99)sgne

8、rr(x)当x为正数时sgnerr(x)为1,当x为负数时sgnerr(x)为-1,当x=0时出现MathErrorsgnerr(X)=X/

9、X

10、ispositive(x)当x为正数时ispositive(x)为1,当x为负数或零时ispositive(x)为0ispositive(x)=max(0,sgn(x))isnotnegative(x)当x为正数或0时isnotnegative(x)为1,当x为负数时isnotnegative(x)为0isnotnegative(x)=min(0,sgn(x))+1int(x)取x的整数部分,只适用于非负数int(X)=(1+X*10^-1

11、4-1)*10^14frac(x)取x的小数部分frac(x)=x-int(x)RanInt(A,B)产生从A(包含)到B(不含)的随机整数RandInt(A,B)=A+int(Ran#*(B-A))第二章:电脑程序的ES风格编程具有多样化的特点,例如要实现同一个功能可以使用不同的语句,以C++为例:1.inta=1;复制代码1.inta;2.a=1;复制代码以上这两个语句的功能完全一样但是具体编程的时候究竟采用哪种方式取决于程序员编程的风格。我们这一章的目的就是介绍一下ES风格我们下面就以C++为例,用例子说明什么叫ES风格:一、循环语句基本格式:中断语句+死循环1.前置判断标准程

12、序:1.1.inta=0,b=0;2.while(a<=100){3.    a++;4.    b=b+a;5.}复制代码ES风格的程序:1.inta=0;2.intb;3.while(1>0){//死循环4.  sqrt(100-x);//中断语句5.  a++;1.  b=b+a;2.}复制代码然后单步执行语句,直到调试器报告出错,要想知道b是多少在调试器中看。2.后置判断标准程序1.inta=0;2.intb;3.do{4.    a++;5.    b=b+a;6.}while(a<=100)复制代码ES风格程序1.inta=0;2.intb;3.while(1>0){//

13、死循环4.  a++;5.  b=b+a;6.  sqrt(100-a);//中断语句7.}复制代码然后单步执行语句,直到调试器报告出错,要想知道b是多少在调试器中看。二、条件赋值语句1.条件赋值if(条件)y=x;转换为y=(x-y)*条件+y标准程序:1.if(a>0)y=x;2.if(a>=0)y=x;3.if(b>0){4.  y=x;5.  c=x;6.}复制代码ES风格的程序:1.y=(x-y)*ispositive(a)+y2.y=(x-y)*isnotnegative(a)+y3.y=(x-y)*ispositive(b)+y4.c=(x-c)*ispositive(

14、b)+c复制代码看到这里,大家可能要问,干吗这么麻烦?这是因为要使用计算器进行编程,ES风格的电脑编程是必备的素质。2.逻辑运算(与或非)与用乘,或用加,非用2^(条件)-1标准程序1.!(x-3>0)2.x>3&&x<=53.x>3

15、

16、x<=5复制代码ES风格的程序1.2^(ispositive(x-3))-11.ispositive(ispositive(x-3)×isnotnegative(5-x))2.ispositive(ispositive(x-3)+isnotnegative(5-x))复制代码下面给出一个完整程序的例子:标准程序:1.#include

17、>2.usingnamespacestd;3.intmain(){4.  inta=0;5.  intb;6.  while(a<=100){7.    if(a-b/2>0)b=b+a;8.    a=a+1;9.  }10.  cout<2.#include3.usingstd::cout;4.usingstd::abs();5.usi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。