资源描述:
《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.#include17、>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