这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。

2 如何在DataWindow中实现列的自动折行

我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇

到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起

来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自

动折行.具体步骤如下:

1) 在DataWindow Painter中打开此DataWindow.

2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.

3) 选择Position标签, 选中Autosize Height 多选框.

4) 选择Edit标签, 不选中Auto Horz Scroll多选框.

5) 单击OK按钮, 保存所做的修改.

6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择

Properties... 菜单项.

7) 选中Autosize Height多选框.

8) 单击OK按钮, 保存所做的修改.

9) 保存此DataWindow.

注意:

连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不

会自动进行折行.

3 在数据窗口中实现动画

要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。比如要改

变某字段的背景颜色,可设

ackgound.color=RGB(Integer(Right(string(now(),'hhmmssf'),1))*256/10,Integer(Right(string(now( ),'hhmmssf'),1))*256/10,0)

当然,您不仅可以改变背景颜色,而且可以改变字体等等任何属性,使他可以动起来!

4 使数据窗口中的被选中行具有更好的外观

大家都知道,在选择数据窗口中的某一行时,如果使用pb提供的选择函数SelectRow(),那么的外观真是不能恭维,单调而古板的蓝色背景,可能和您的漂亮而生动的应用程序格格不入。有没有办法改变呢?当然有啰,请听我慢慢道来。

改变某一行的背景比较简单,改变每一列的背景属性(backgroundcolor)即可,可要根据鼠标选择情况自动改变,并可以返回被选中的行可能还需要一定的技巧。下面分单行选择和多行选择分辨说明。

单行选择

单行选择比较简单,我们只要将所有字段的背景色的表达式改为:

if(GetRow()=CurrentRow(),RGB(255,126,0),RGB(0,0,0))

其中第一个颜色为被选中的颜色,第二个颜色未被选中的颜色。然后用GetRow()代替GetSelectedRow()函数来得到被选中的行。

多行选择

多行选择比较复杂,如果单纯依靠改变数据窗口的属性没法实现,我们必须使用数据窗口属性和代码结合起来才能实现

首先,改变数据窗口的SQL语句,增加一个计算字段:0 as flag,Select 语句改为:

Select col1,col2 ,1 as flag from tablename where .....,

当返回数据窗口painter时,您就会发现多了一个字段flag,我们就是利用这个字段保存行被选中的信息。

其次,修改各个字段的背景颜色属性,设置为:if(flag=1,RGB(255,126,0),RGB(255,255,255)) 第三:在数据窗口控件中,增加对clicked 事件的处理,代码如下:

if row<1 then return // setredraw(false)

if this.o b j e c t.flag[row]=1 then //如果该行被选中,撤销选择,否则选中该行

this.Object.flag[row]=0

else

this.Object.flag[row]=1

end if

setredraw(true)

您还可以定制本选中行的字体,文本属性等等。原理相同,不再赘述。

5 将日期型字段初始化为当天的日期

使用 Column Specifications 对话框来设置数据的初始值是一个比较好又比较通用的方法。为了将日期型字段初始化为当天的日期,只要设置初始化值为today,而不是today()即可。同样设置初始值为NUll,可以使用null,而不是 null()。

6 在DataWindow中调整列顺序

在 Gird 风格的 DataWindow 中,列的排列顺序是按照你选择 Column 的顺序排列的,并且不能改变.要改变列的顺序则必须重新制作 DataWindow.

最近我发现一个办法可以改变列的顺序: 在 DataWindow 画板中打开要修改的 DataWindow,然后按

'Preview' 按钮切换到预览模式下,选择要移动的列标题并拖动到预定位置,然后返回 DataWindow 画板,存盘即可.

7 Retrieve时不清除原有Datawindow数据

当你调用Retrieve函数,PowerBuilder自动清除原有DataWindow然后Retrieve数据。在Datawindow RetrieveStart事件中,使用Return 2,这样PowerBuilder不会清除原有数据而是追加新数据。

8 美化DataWindow的显示效果

使DataWindow 的单双行显示颜色不同,不仅仅可以使你的应用程序更显专业性,并使数据的可读性增强。先调出你需要改动的DataWindow,在Detail band按下右键选择Properties,选择Tab页中的Expressions,在color属性中输入下面内容:(注意是在Detail明细显示段按右键,而不是在Column上)

IF(MOD(GETROW(),2)=0,RGB(192, 192, 192), RGB(255, 255, 255)) 马上Preview一下,看一看效果如何。

9 用Line建立漂亮的Grid DataWindow的技巧

虽然PowerBuilder有Grid风格的DataWindow,但不够灵活,如果想打印一张边框粗线条或双线,内框为细线条的表格直接使用Grid风格的DataWindow就不能实现。因此许多人都用Tabular风格的DataWindow,然后自己用Line来实现Grid。在调整线条位置是一个即伤脑筋又伤眼睛的事件,而一旦需要调整行高,所有工作

都得重来,试一试用下面方法,会大大减轻你的工作量:在vertical lines,改变它的属性,在Expressions Tab上,y1行上输入0,y2行上输入rowheight() - 1 在horizontal lines, 设置 y1 和 y2 = rowheight() - 5 这样PowerBuilder会自动调整线的坐标,你只需要设置横线的长度和x1,x2的坐标即可。马上Preview一下,看一看效果!你再也不需要因为行的高度发生改变而重新调整线条位置。

10 如何创建一个报表,如下形式

Quantity Running Total

5,000 5,000

2,500 7,500

3,000 10,500

12,000 22,500

对于Running Total列,我们可使用计算列:CumulativeSum(Quantity for all),即可达到逐渐递增求和的功能。

11 数据窗口的数据送缓冲区之前确认的四个步骤判断数据类型是否正确。如不正确则触发ItemError事件。判断数据是否符合有效性规则。如不符合有效性规则,同样触发ItemError事件。判断是否有数据被改动。判断数据是否通过ItemChanged事件,如果数据和ItemChanged相斥,将触发ItemError事件。

12 如何在DataWindow中用数据类型为Datetime的列为条件进行查找

1.当要查找的日期条件是一常数时使用如下表达式:

ls_Find = "datetime_col

= DateTime ('1/1/1999')"

2.当要查找的日期条件是一个变量时使用如下的表达式:

ls_Find = "datetime_col = DateTime ('" + ls_Date + "')"

3.当要查找的日期条件是一个DateTime数据类型时使用如下表达式:

ls_Find = "datetime_col = DateTime ('" + String (ldt_DateTime) + "')"

13 设置数据窗口Boolean型属性的三种方法

PowerBuilder提供了三种方法设置数据窗口的布尔型属性,分别是True/False, 1/0, 'Yes'/'No'。例如:

dw_1.Object.address.Visible = 0 dw_1.Object.address.Visible = False dw_1.Object.address.Visible = 'No'

PowerBuilder在处理上以字符串的形式保存属性,而不考虑属性值是布尔型、长整型或是字符型。

为了进一步理解,可以导出一个数据窗口并查看它的原码,可以发现即使是列的颜色属性它也是使用带双引号的数字来表达。

14 如何在DataWindow中快速删除多行

在开发过程中可能经常有要进行多行删除的操作,一般都使用循环语句进行操作:

FOR ll_RowOn = 1 TO dw_1.RowCount() dw_1.DeleteRow(ll_RowOn) NEXT

一个快速的删除方法是把要删除的行从主缓冲区中移到删除缓冲区中。例如,删除缓冲区中所有的行:dw_1.RowsMove(dw_1, 1, dw_1.RowCount, Primary!, dw_1, 1, Delete!)

不过不要忘了过滤的行在不同的缓冲区中。

15 如何在DataWindow的SQL语法中不使用SELECT DISTINCT实现删除重复的行

起先对你要显示唯一值的列进行排序:"city A",然后增加如下过滤字符串:" city < > city [-1] or GetRow () = 1"

16 如何在分组形式的DataWindow中分别显示各组的行号

当我们为Datawindow的每一行显示行号时,可以简单的放一个表达式为GetRow()计算列。但是对于分组的Datawindow,要分别显示各组的行号,则应使用表达式为

GetRow() - First(GetRow() for Group 1) + 1的计算列。

17 如何改变列的字体颜色,提醒用户此列已做修改

在列的Color属性中,输入如下表达式

IF (column_name < >column_name.Original, RGB(255, 0, 0), RGB(0, 0, 0))。

在这个条件中,如果此列已改变,则显示红色字体,否则显示黑色字体。这个表达式主要用column_name < > column_name.Original比较当前列的值和原始列的值是否相同来达到判断的目的。

18 在数据窗口中移走行,但不是去做过滤或删除操作

RowsDiscard()函数可做到这一点,它在数据窗口中执行移除工作,但被移走的行它不可被删除或做任何修改性的保存。

19 如何在多行显示的DataWindow 中的Footer Band中显示当前数据的首行和最后行的行号

我们先看两个计算列的表达式: IF (GetRow() = First(GetRow() FOR Page), 1, 0) // 1 为当前页的第一行

IF (GetRow() < > 1 AND GetRow() = Last(GetRow() FOR Page), 1, 0) // 1 为当前页的最后一行由上面可知,在Footer Band中设置如下计算列表达式:

'Rows ' + String(First(GetRow() FOR Page)) + ' to ' + String(Last(GetRow() FOR Page)) + ' are displayed'。

即可达到这项功能。

20 使可编辑的数据窗口只读

有时,你可能需要将一个用于编程的数据窗口用作显示目的,可以有以下几种方法来实现这一要求:

1.建立两个数据窗口,一个用于编辑,一个用于显示

2.将数据窗口中的全部对象的taborder设置为0.

3.也可以将数据窗口中的列的protect属性设为On或Off,但你不能使用protect属性进行编辑操作

4.数据窗口有一个将datawindow设为只读的属性(readonly),使用它最方便。

21 数据窗口检查重复行

dw_1.SetSort ("user_id A")

dw_1.Sort()

dw_1.SetFilter ("user_id = user_id[-1]")

dw_1.Filter()

if dw_1.RowCount() > 0 then

Messagebox("注意", "用户编码重复.")

end if

dw_1.SetFilter ("")

dw_1.Filter()

22 如何在分组形式的DataWindow中分别显示各组的行号

---- 当我们为Datawindow的每一行显示行号时,可以简单的放一个表达式为GetRow()

---- 计算列。但是对于分组的Datawindow,要分别显示各组的行号,则应使用表达式为

GetRow() - First(GetRow() for Group 1) + 1的计算列。

23 如何能让数据窗口的某几列在其他列横拉时固定不动

////////////////////////////////////////////////////////////////

// 功能说明:用于冻结左边的滚动栏

// 变更记录: 变更或版本更新的时候

//

////////////////////////////////////////////////////////////////

int i

if pane = 1 then

i = integer(this.o b j e c t.datawindow.horizontalscrollposition2)

if i < 1 or isnull(i) then return

if scrollpos > 0 then

this.o b j e c t.datawindow.horizontalScrollPosition = 0

end if

else

i = integer(this.Object.DataWindow.HorizontalScrollSplit)

if i < 1 or isnull(i) then return

if i > scrollpos then

this.o b j e c t.datawindow.horizontalScrollPosition2 = i

end if

end if

24 在数据窗口中如果要使其中一列的属性为只读,也就是不允许用户修改,那么只需简单地将这一列的Table Order 设置成0就可。然而,在有些情况下

需要对这一列的某些行修改,而某些行不能修改,这就要用到这一列的protect属性了。打开列的属性中的Expressions,在protect中输入条件判别

式。例如:允许用户修改新增加的记录,而检索出来的记录则不允许修改。条件判别式可以写成如下:

if(isRowNew(),0,1)

在 PowerScript 中可以动态修改 Protect 属性:

dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")

这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。

25 控制DATAWINDOW里每页显示的行数

1、在Datawindow中增加一个计算域,起名为:ceil_page,此计算域必须放在Detail段中,

Expression中输入 ceiling(getrow()/25) 25表示每页打印25行,也可以是一个参数。

2、分组,选择菜单RowsCreate Group,选择ceil_page

按ceil_page分组,并选中New Page On Group Break(意思是新组开始时换页)。

3、将此计算域设为隐藏(在属性页中的expression页中在visible属性中写0)。

4、补空行:

在窗口的open事件中写如下代码:

long li_count,li_i

li_count=dw_1.retrieve()

if mod(li_count,25)<>0 then

for li_i=1 to 25 - mod(li_count,25)

dw_1.insertrow(0)

next

end if

26 数据窗口的closeQuery事件:提示保存数据

dw_1.AcceptText()

IF dw_1.ModifiedCount() + dw_1.DeletedCount() > 0 THEN

CHOOSE CASE MessageBox("操作提示","数据已经发生变化,是否保存?",Question!,YesNoCancel!,1) CASE 1

cb_save.TriggerEvent(clicked!)

CASE 2

Return 0//不做任何操作直接关闭窗口

CASE 3

Return 1//不会运行Close Event,维持原来的情况

END CHOOSE

END IF

27 Getchild函数主要被用来得到一个数据窗口的子数据窗口

该函数在两种情况下可以使用,1、取出数据窗口对象的下拉式数据窗口;

2、取出复合风格(composite)数据窗口对象里所嵌入的子数据窗口对象。

语法:integer dwcontrol.GetChild (string name, REF DataWindowChild

dwchildvariable )

例子1 这段程序取出一个composite数据窗口对象的两个子数据窗口,并对他们进行过滤,和排序的操作。/*dw_dy是连接一个composite数据窗口对象的一个数据窗口控件。dw_1、dw_2分别是嵌套的数据窗口的NAME*/

String ls_filter

DataWindowChild dwc_czrw,dwc_czx//定义子数据窗口变量

dw_dy.Settranso b j e c t(sqlca)

dw_dy.Retrieve()

dw_dy.GetChild("dw_2",dwc_czrw)

dw_dy.Getchild("dw_1",dwc_czx)

ls_filter = "czrw_bh = '"+dw_3.GetItemString(dw_3.GetRow(),"czrw_bh")+"'"//过滤条件

dwc_czrw.SetFilter(ls_filter)

dwc_czrw.Filter()

ls_filter = "czx_rwbh = '"+dw_3.GetItemString(dw_3.GetRow(),"czrw_bh")+"'"

dwc_czx.SetSort("czx_sx A")

dwc_czx.Sort()

dwc_czx.SetFilter(ls_filter)

dwc_czx.filter()

当然也可以通过数据共享(ShareData)等方式操作子数据窗口中的数据。

访问复合数据窗口对象.方法:dw_dy.o b j e c t.dw_1.o b j e c t.对象

例子2下拉数据窗口动态过滤

在数据窗口dw_1的ItemFocusChanged事件中写入如下脚本:

Integer rtncode

String ls_nowFld,ls_deptid,ls_sql

DataWindowChild fld_child

rtncode = dw_1.GetChild("Unit_id",fld_child) //获得Unit_id字段名下拉数据窗口的句柄

If rtncode = -1 Then MessageBox("错误!", "不是下拉数据窗口!")

fld_child.SetTransObject(SQLCA) //设置事务对象

ls_sql = Lower(fld_child.GetSQLSelect())// 获得DDDW的SQL语句

// 去除Sql 语句中的Where条件子句,如原Sql 语句中须有Where条件子句,此处则需进行较

//复杂的处理,应视具体情况而定。

if Pos(ls_sql, " where ")>0 then ls_sql = Left(ls_sql,Pos(ls_sql, " where "))

//重新设置Sql 语句中的Where条件子句

ls_deptid=dw_1.Object.dept_id[GetRow()] //取得当前dept_id选定值

ls_sql = ls_sql + " Where dept_id = '" +Trim(ls_deptid)+"'"

//重新设置Sql 语句

fld_child.SetSQLSelect(ls_sql)

fld_child.Retrieve()//取得满足条件的数据

28 从数据窗口中获取数据

单条:假设我们要读取dept_id字段的第一笔数据,可以用下列方式表示∶li_id = dw_1.o b j e c

t.dept_id[1]

假设我们要读取第一行中第二个字段的数据,可以用下列方式表示∶ls_name = dw_1.o b j e c t.DATA[1,2] 假设我们要读取dept_id字段的所有数据,可以用下列方式表示∶li_array = dw_1.o b j e c

t.dept_id.CURRENT

假设我们要读取过滤缓冲区 (filter buffer) 内dept_id字段的第一笔数据,可以用下列方式表示∶li_id = dw_1.o b j e c t.dept_id.Filter

[1]

假设我们要读取从第二笔数据的第一个字段到第三笔数据的二个字段之间的数据,表示∶lstr_array =

dw_1.o b j e c t.DATA[2,1,3,2]

假设我们要读取整个第二笔的数据,可以用下列方式表示∶lstr_dept = dw_1.o b j e c t.DATA[2] 使用GetItemX ( )函数 x为string number等

lstr_name = dw_1.getitemstring (li_count , "emp_name") li_count为哪一条

多条:string ls_name[ ]

ls_name = dw_ 1.o b j e c t.emp_name.current

数据的读取一般格式∶数据窗口控件.Retrieve ( ) 返回个数,-1为错误

增加数据数据窗口控件.InsertRow (行数)参数为0加到最后

数据的删除数据窗口控件.Deleterow (行数)

数据的过滤l数据窗口控件.SetFilter (条件字符串).

数据窗口控件.Filter ( ) 用法∶将主要缓冲区 (Primary Buffer) 内不符合过滤条件的数据移到过滤缓冲

区 (Filter Buffer)

内。

例子:string ls_exp ls_exp = "dept_id = 100" dw_1.SetFilter (ls_exp) dw_1.Filter ( ) 排序 dw_1.SetSort ("dept_id") dw_1.Sort ( )

将数据从所有的缓冲区 (Buffer) 中清除 dw_1.ReSet ( )

计算数据数目。例如∶dw_1.Rowcount ( ) 类似: .DeletedCount ( ) .ModifiedCount ( ) .FilteredCount ( )

数据窗口的滚动数据窗口控件.ScrollToRow (行数)

29 数据窗口属性改变:

描述数据窗口对象本身颜色,可以表示如下∶long ll_color ll_color = dw_emplist.Describe ("DataWindow.Color")

描述数据窗口对象内标题 dept_id_t 的颜色,可以表示如下∶long ll_color ll_color =

dw_emplist.Describe ("dept_id_t.Color")

修改数据窗口对象本身颜色,可以表示如下:dw_emplist.Modify ("DataWindow.Color = 255")

修改数据窗口对象内标题 dept_id 的颜色,可以表示如下∶dw_emplist.Modify ("dept_id_t.Color = 255")

假设当我们希望在程序运行阶段才给予下行条件∶薪水超过 50000 时显示红色,低于 50000 时显示黑色。程序的写法如下∶

ls_modstring = "Salary.Color = '0~tIf (Salary > 50000,255,0) '"

dw_1.modify (ls_modstring)

30 得到当前鼠标所指对象所在的带区

string str_band

str_band=GetBandAtPointer() //得到当前鼠标所指对象所在的带区

str_band=left(str_band,(pos(str_band,'~t') - 1))//得到"header"、"detail"等

if str_band<>'header' then return //单击非头区,退出

31 得到鼠标指向的列对象名

str_o b j e c t=GetObjectAtPointer() //得到当前鼠标所指对象名

str_o b j e c t=left(str_o b j e c t,(pos(str_o b j e c t,'~t') - 1))

//得到列对象名(默认为列名_t为列标题)

str_column=left(str_o b j e c t,(len(str_title) - 2))

//判断该名称是否为列名字

if this.describe(str_column+".band")='!' then return //非是列名,即列标题不是按正常规律起名的。

32 得到当前行、列,总行、列 //this 针对数据窗口而言

li_col = this.GetColumn()

li_ColCount = long(describe(this,"datawindow.column.count"))

ll_row = this.GetRow()

ll_RowCount = this.RowCount()

//设置当前行、列

scrolltorow(this,ll_Row)

setrow(this,ll_Row)

setcolumn(this,li_col)

this.SetFocus()

33 得到所有列标题

ll_colnum = Long(dw_1.o b j e c t.datawindow.column.count)

for i = 1 to ll_colnum

//得到标题头的名字

ls_colname = dw_1.describe('#' + string(i) + ".name") + "_t"

ls_value = dw_1.describe(ls_colname + ".text")

next

34 如何用代码取得数据窗口汇总带计算列的值?

String ls_value

ls_value = dw_1.Describe("Evaluate("'compute_1',1)")

如果是数值型,要转换。

35 取得单击的列标题、列名、数据库字段名

string ls_dwo

long ll_pos

string ls_type

string ls_title

string ls_column

string ls_dbname

if Not KeyDown(KeyControl!) then return

ls_dwo = https://www.doczj.com/doc/557320603.html,

if trim(ls_dwo) = '' or isnull(ls_dwo) then return

ls_type = This.describe(ls_dwo + '.type')

if ls_type = 'column' then

ls_title = This.describe(ls_dwo + '_t.text')//标题

ls_column = This.describe(ls_dwo + '.Name') //数据窗口列名

ls_dbname = This.describe(ls_dwo + '.dbname') //数据库中字段名messagebox('信息', '标题文本:' + ls_title + &

'~r~n数据窗口列名:' + ls_column + &

'~r~n数据库中字段名:' + ls_dbname )

end if

36 窗口为w_gcde内,放入一个DW_1,如何得到dw_1内的某列值yuonghu_id列的内容方法:

long lng_column_count

integer i

string str_column[] //列名

string str_column_text[] //text的名字

//得到数据窗口的总列数

lng_column_count = long(dw_1.Describe("DataWindow.Column.Count")) //循环依次读取

for i = 1 to lng_column_count

str_column[i] = dw_1.Describe("#"+string(i)+".name")

str_column_text[i] = dw_1.Describe(str_column[i] + "_t.text")

next

37 在DDDW中实现当前高亮行随鼠标移动

DataWindowChild ldwc_Child

String ls_Pointer

Long ll_Row

GetChild( "dept_id", ldwc_Child ) // Replace the column name "dept_id" as you needed

IF hwndchild = Handle( ldwc_child ) THEN

if notificationcode = 2311 then //DDDW的mousemove事件

//得到鼠标所在行

ls_Pointer = ldwc_Child.GetObjectAtPointer()

ll_Row=Long( Mid( ls_Pointer, Pos( ls_Pointer, "~t" ) + 1 ))

//移到鼠标所在行

IF ldwc_Child.GetRow() <> ll_Row AND ll_Row > 0 THEN

ldwc_Child.ScrollToRow( ll_Row )

END IF

end if

END IF

38 实现打印完一个DataWindow后不换页

首先将datawindow的print输出到一个打印文件中,把其他的print也输入这个prn,然后,打印这个打印文件就行了。

如:

datawindow_control1.object.datawindow.print.filename="c:printfilepathexam_1.prn"

datawindow_control2.object.datawindow.print.filename="c:printfilepathexam_1.prn"

dw_1.print()

dw_2.print()

run("print //d:\printservenamesharename "c:printfilepathexam_1.prn")

//d:\printservenamesharename打印机名

三角函数公式变换

三角函数公式表 同角三角函数的基本关系式 倒数关系: 商的关系:平方关系: tanα ·cotα=1 sinα ·cscα=1 cosα ·secα=1 sinα/cosα=tanα=secα/cscα cosα/sinα=cotα=cscα/secα sin2α+cos2α=1 1+tan2α=sec2α 1+cot2α=csc2α (六边形记忆法:图形结构“上弦中切下割,左正右余 中间1”;记忆方法“对角线上两个函数的积为1;阴影 三角形上两顶点的三角函数值的平方和等于下顶点的三 角函数值的平方;任意一顶点的三角函数值等于相邻两 个顶点的三角函数值的乘积。”) 诱导公式(口诀:奇变偶不变,符号看象限。) sin(-α)=-sinαcos(-α)=cosαtan(-α)=-tanαcot(-α)=-cotα sin(π/2-α)=cosαcos(π/2-α)=sinαtan(π/2-α)=cotαcot(π/2-α)=tanα sin(π/2+α)=cosαcos(π/2+α)=-sinαtan(π/2+α)=-cotαcot(π/2+α)=-tanαsin(π-α)=sinα cos(π-α)=-cosα tan(π-α)=-tanα cot(π-α)=-cotα sin(π+α)=-sinα cos(π+α)=-cosα tan(π+α)=tanα cot(π+α)=cotα sin(3π/2-α)=-cosα cos(3π/2-α)=-sinα tan(3π/2-α)=cotα cot(3π/2-α)=tanα sin(3π/2+α)=-cosα cos(3π/2+α)=sinα tan(3π/2+α)=-cotα cot(3π/2+α)=-tanα sin(2π-α)=-sinα cos(2π-α)=cosα tan(2π-α)=-tanα cot(2π-α)=-cotα sin(2kπ+α)=sinα cos(2kπ+α)=cosα tan(2kπ+α)=tanα cot(2kπ+α)=cotα (其中k∈Z) 两角和与差的三角函数公式万能公式 sin(α+β)=sinαcosβ+cosαsinβsin(α-β)=sinαcosβ-cosαsinβcos(α+β)=cosαcosβ-sinαsinβcos(α-β)=cosαcosβ+sinαsinβ tanα+tanβ tan(α+β)=—————— 1-tanα ·tanβ tanα-tanβ tan(α-β)=—————— 1+tanα ·tanβ 2tan(α/2) sinα=—————— 1+tan2(α/2) 1-tan2(α/2) cosα=—————— 1+tan2(α/2) 2tan(α/2) tanα=—————— 1-tan2(α/2) 半角的正弦、余弦和正切公式三角函数的降幂公式

高数三角函数公式大全

三角函数公式大全 两角和公式 sin(A+B) = sinAcosB+cosAsinB sin(A-B) = sinAcosB-cosAsinB cos(A+B) = cosAcosB-sinAsinB cos(A-B) = cosAcosB+sinAsinB tan(A+B) =tanAtanB -1tanB tanA + tan(A-B) = tanAtanB 1tanB tanA +- cot(A+B) =cotA cotB 1-cotAcotB + cot(A-B) =cotA cotB 1cotAcotB -+ 倍角公式 tan2A = A tan 12tanA 2 - Sin2A=2SinA?CosA Cos2A = Cos 2A-Sin 2A=2Cos 2A-1=1-2sin 2A 三倍角公式 sin3A = 3sinA-4(sinA)3 cos3A = 4(cosA)3-3cosA tan3a = tana ·tan(3 π +a)·tan( 3 π -a) 半角公式 sin( 2A )= 2cos 1A - cos(2A )=2cos 1A + tan(2A )=A A cos 1cos 1+- cot(2A )=A A cos 1cos 1-+ tan(2 A )= A A sin cos 1-=A A cos 1sin +

sina+sinb=2sin 2b a +cos 2b a - sina-sinb=2cos 2 b a +sin 2 b a - cosa+cosb = 2cos 2b a +cos 2b a - cosa-cosb = -2sin 2 b a +sin 2 b a - tana+tanb= b a b a cos cos ) sin(+ 积化和差 sinasinb = -21[cos(a+b)-cos(a-b)] cosacosb = 21[cos(a+b)+cos(a-b)] sinacosb = 21[sin(a+b)+sin(a-b)] cosasinb = 2 1[sin(a+b)-sin(a-b)] 诱导公式 sin(-a) = -sina cos(-a) = cosa sin(2 π -a) = cosa cos(2 π -a) = sina sin(2 π +a) = cosa cos( 2 π +a) = -sina sin(π-a) = sina cos(π-a) = -cosa sin(π+a) = -sina c os(π+a) = -cosa tgA=tanA =a a cos sin

AutoLISP-程序创建过程

AutoCAD开发VisualLISP程序 本节通过一个简单的实例来讲述LISP程序的创建过程,介绍编制LISP程序的一些基本步骤,以及LISP程序在AutoCAD中的加载和运行的方法。 首先来创建一个最简单的LISP程序—-“Hello.lsp”,在AutoCAD2002中加载并运行该程序,将会在命令行出现-“Hello,VisualLISP!”。 VisualLISP与AutoCAD的通信 用户可以直接在AutoCAD命令行中键入AutoLISP表达式。AutoCAD通过括号来确认AutoLISP表达式。AutoCAD每当发现一个左括号,就确认为AutoLISP表达式,并由AutoLISP求表达式的值后返回AutoCAD,AutoCAD使用返回结果并继续进行其他工作。 注意在AutoLISP表达式中,左、右括号必须配对,否则AutoCAD将给出提示符n>,n表示右括号丢失数目。 此外,在AutoCAD中调用并执行AutoLISP程序。在AutoLISP程序中采用COMMAND函数来与AutoCAD命令程序处理器通信,COMMAND从AutoLISP获得命令并将其传给AutoCAD。 实例:最简单的LISP程序——“Hello.lsp” Step1创建新文件 (1)运行AutoCAD2002系统,以“acadiso.dwt”为样板创建图形文件,并调用“vlisp”命令进入VisualLISP环境。

(2)单击“Standard(标准)”工具栏中的按钮,新建一个LISP文件。Step2输入代码并保存文件 (1)在编辑窗口中输入源文件“Hello.lsp”的代码。程序清单如下:;;;* Hello.lsp – Visual LISP文件实例 (prompt "Pick point:") ;指定运行时的提示信息 (setq ipt (getpoint)) ;在屏幕上指定一点并将其坐标值赋予变量“ipt” (setq hgt 15) ;给变量“hgt”赋值 (Command "_.TEXT" "_S" "STANDARD" ipt hgt 0 "Hello, Visual LISP!"); 调用“Commnad”函数与AutoCAD进行通信 (2)单击“Standard(标准)”工具栏中的按钮,以“Hello.lsp”为名保存该文件。 Step3运行LISP程序 (1)确认编辑窗口处于前台状态,选择菜单【Tools(工具)】→【LoadTextinEditor(加载编辑器中的文字)】,则该程序被加载并运行。系统将返回AutoCAD窗口,并提示用户选择一点,并以指定点为基点来绘制文字。结果如图36-4所示。 (2)如果用户退出VisualLISP环境并返回AutoCAD系统窗口,则需要对该程序进行加载后,才能运行。选择菜单【Tools(工具)】→【LoadAppcation…(加载应用程序)】,弹出“Load/UnloadApplications(加载/卸载应用程序)”对话框,如图

(完整版)excel-公式大全-包含所有excel函数(经典版),推荐文档

Excel函数大全 第一章:统计函数 1.AVEDEV 用途:返回一组数据与其平均值的绝对偏差的平均值,该函数可以评测数据(例如学生的某科考试成绩)的离散度。 语法:AVEDEV(number1,number2,...) 参数:Number1、number2、...是用来计算绝对偏差平均值的一组参数,其个数可以在1~30个之间。 实例:如果A1=79、A2=62、A3=45、A4=90、A5=25,则公式“=AVEDEV(A1:A5)”返回20.16。 2.AVERAGE 用途:计算所有参数的算术平均值。 语法:AVERAGE(number1,number2,...)。 参数:Number1、number2、...是要计算平均值的1~30个参数。 实例:如果A1:A5区域命名为分数,其中的数值分别为100、70、92、47和82,则公式“=AVERAGE(分数)”返回78.2。 3.AVERAGEA 用途:计算参数清单中数值的平均值。它与AVERAGE函数的区别在于不仅数字,而且文本和逻辑值(如TRUE和FALSE)也参与计算。 语法:AVERAGEA(value1,value2,...) 参数:value1、value2、...为需要计算平均值的1至30个单元格、单元格区域或数值。 实例:如果A1=76、A2=85、A3=TRUE,则公式“=AVERAGEA(A1:A3)”返回54(即76+85+1/3=54)。 4.BETADIST 用途:返回Beta分布累积函数的函数值。Beta分布累积函数通常用于研究样本集合中某些事物的发生和变化情况。例如,人们一天中看电视的时间比率。 语法:BETADIST(x,alpha,beta,A,B) 参数:X用来进行函数计算的值,须居于可选性上下界(A和B)之间。Alpha分布的参数。Beta分布的参数。A是数值x所属区间的可选下界,B是数值x所属区间的可选上界。 实例:公式“=BETADIST(2,8,10,1,3)”返回0.685470581。 5.BETAINV 用途:返回beta分布累积函数的逆函数值。即,如果probability=BETADIST(x,...),则 BETAINV(probability,...)=x。beta分布累积函数可用于项目设计,在给出期望的完成时间和变化参数后,模拟可能的完成时间。 语法:BETAINV(probability,alpha,beta,A,B) 参数:Probability为Beta分布的概率值,Alpha分布的参数,Beta分布的参数,A数值x所属区间的可选下界,B数值x所属区间的可选上界。 实例:公式“=BETAINV(0.685470581,8,10,1,3)”返回2。 30.GEOMEAN 用途:返回正数数组或数据区域的几何平均值。可用于计算可变复利的平均增长率。 语法:GEOMEAN(number1,number2,...)

三角函数公式的推导及公式大全

诱导公式 目录·诱导公式 ·诱导公式记忆口诀 ·同角三角函数基本关系 ·同角三角函数关系六角形记忆法 ·两角和差公式 ·倍角公式 ·半角公式 ·万能公式 ·万能公式推导 ·三倍角公式 ·三倍角公式推导 ·三倍角公式联想记忆 ·和差化积公式 ·积化和差公式 ·和差化积公式推导 诱导公式 ★诱导公式★ 常用的诱导公式有以下几组: 公式一: 设α为任意角,终边相同的角的同一三角函数的值相等: sin(2kπ+α)=sinα cos(2kπ+α)=cosα tan(2kπ+α)=tanα cot(2kπ+α)=cotα 公式二: 设α为任意角,π+α的三角函数值与α的三角函数值之间的关系:sin(π+α)=-sinα cos(π+α)=-cosα tan(π+α)=tanα cot(π+α)=cotα 公式三: 任意角α与 -α的三角函数值之间的关系: sin(-α)=-sinα cos(-α)=cosα

tan(-α)=-tanα cot(-α)=-cotα 公式四: 利用公式二和公式三可以得到π-α与α的三角函数值之间的关系:sin(π-α)=sinα cos(π-α)=-cosα tan(π-α)=-tanα cot(π-α)=-cotα 公式五: 利用公式一和公式三可以得到2π-α与α的三角函数值之间的关系:sin(2π-α)=-sinα cos(2π-α)=cosα tan(2π-α)=-tanα cot(2π-α)=-cotα 公式六: π/2±α及3π/2±α与α的三角函数值之间的关系: sin(π/2+α)=cosα cos(π/2+α)=-sinα tan(π/2+α)=-cotα cot(π/2+α)=-tanα sin(π/2-α)=cosα cos(π/2-α)=sinα tan(π/2-α)=cotα cot(π/2-α)=tanα sin(3π/2+α)=-cosα cos(3π/2+α)=sinα tan(3π/2+α)=-cotα cot(3π/2+α)=-tanα sin(3π/2-α)=-cosα cos(3π/2-α)=-sinα tan(3π/2-α)=cotα cot(3π/2-α)=tanα (以上k∈z) 诱导公式记忆口诀 ※规律总结※

excel函数公式大全

excel函数公式大全 类别一:数据库和清单管理函数 DAVERAGE 返回选定数据库项的平均值 DCOUNT 计算数据库中包含数字的单元格的个数 DCOUNTA 计算数据库中非空单元格的个数 DGET 从数据库中提取满足指定条件的单个记录 DMAX 返回选定数据库项中的最大值 DMIN 返回选定数据库项中的最小值 DPRODUCT 乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值DSTDEV 根据数据库中选定项的示例估算标准偏差 DSTDEVP 根据数据库中选定项的样本总体计算标准偏差 DSUM 对数据库中满足条件的记录的字段列中的数字求和 DVAR 根据数据库中选定项的示例估算方差 DVARP 根据数据库中选定项的样本总体计算方差 GETPIVOTDATA 返回存储在数据透视表中的数据 类别二:日期和时间函数 DATEDIF 计算两个日期之间的年、月、日数

DATEVALUE 将文本格式的日期转换为系列数 DAY 将系列数转换为月份中的日 DAYS360 按每年360 天计算两个日期之间的天数 EDATE 返回在开始日期之前或之后指定月数的某个日期的系列数EOMONTH 返回指定月份数之前或之后某月的最后一天的系列数HOUR 将系列数转换为小时 MINUTE 将系列数转换为分钟 MONTH 将系列数转换为月 NETWORKDAYS 返回两个日期之间的完整工作日数 NOW 返回当前日期和时间的系列数 SECOND 将系列数转换为秒 TIME 返回特定时间的系列数 TIMEVALUE 将文本格式的时间转换为系列数 WEEKDAY 将系列数转换为星期 WORKDAY 返回指定工作日数之前或之后某日期的系列数 YEAR 将系列数转换为年 YEARFRAC 返回代表start_date(开始日期)和end_date(结束日期)之间天数的以年为单位的分数DDE 和外部函数CALL 调用动态链接库(DLL) 或代码源中的过程REGISTER.ID 返回已注册的指定DLL 或代码源的注册IDSQL.REQUEST 连接外部

三角函数,反三角函数公式大全

三角函数公式 两角和公式 sin(A+B) = sinAcosB+cosAsinB sin(A-B) = sinAcosB-cosAsinB cos(A+B) = cosAcosB-sinAsinB cos(A-B) = cosAcosB+sinAsinB tan(A+B) = tanAtanB -1tanB tanA + tan(A-B) =tanAtanB 1tanB tanA +- cot(A+B) =cotA cotB 1-cotAcotB + cot(A-B) =cotA cotB 1 cotAcotB -+ 倍角公式 tan2A = A tan 12tanA 2 - Sin2A=2SinA?CosA Cos2A = Cos 2A-Sin 2A=2Cos 2A-1=1-2sin 2A 三倍角公式 sin3A = 3sinA-4(sinA)3 cos3A = 4(cosA)3-3cosA tan3a = tana ·tan(3π+a)·tan(3 π -a) 半角公式 sin( 2A )=2cos 1A - cos(2A )=2cos 1A + tan(2A )=A A cos 1cos 1+- cot(2 A )= A A cos 1cos 1-+ tan(2 A )=A A sin cos 1-=A A cos 1sin + 和差化积 sina+sinb=2sin 2b a +cos 2b a - sina-sinb=2cos 2b a +sin 2b a - cosa+cos b = 2cos 2b a +cos 2b a - cosa-cosb = -2sin 2b a +sin 2 b a - tanA+tanB=sin(A+B)/cosAcosB tanA-tanB=sin(A-B)/cosAcosB ctgA+ctgB=sin(A+B)/sinAsinB -ctgA+ctgB=sin(A+B)/sinAsinB 积化和差 sinasinb = - 21[cos(a+b)-cos(a-b)] cosacosb = 2 1 [cos(a+b)+cos(a-b)]

Autolisp基础教程

Autolisp基础教程 单元一:AutoLISP主角潇洒登场 一. AutoLISP 是何方神圣? 1、AutoLISP是AutoCAD的最佳拍檔! 2、AutoLISP内含于AutoCAD软件内,不用另外花钱买! 3、AutoLISP是强化AutoCAD最好、最直接的『程序语言』! 4、AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能! 若说AutoLISP的出现,是替AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张! 5、AutoLISP希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷! 二. AutoLISP 程序语言的特质分析: 学习AutoLISP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AutoLISP程序! 语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格! 功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合AutoCAD的特殊函数,再加上AutoLISP可直接呼叫执行所有AutoCAD的指令,以及掌握运用所有的AutoCAD系统变量,功能之强大令人欣喜不已! 撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT....等 直译式程序:不用再作编译,『即写即测、即测即用』,马上可以在AutoCAD中响应效果,马上就有成就感! 横跨各作业平台:悠然自得,虽然AutoCAD有DOS、Windows版本之分但是AutoLISP却可在不改写的原貌下,加载与执行! 三.撰写AutoLISP 的动机? 1、欲强化AutoCAD 原有指令时. 2、欲创造更有用的AutoCAD 新指令. 3、欲简化繁琐的环境设定或绘图步骤时. 4、欲处理参数式绘图时. 5、欲做图面资料读文件、写文件. 6、欲做AutoCAD 演示文稿展示时. 7、欲达到真正灵活掌控AutoCAD 时. 8、欲提升自己跨上AutoCAD 高手列车时. 四.AutoLISP 的效益评估? 1. 对公司负责人或设计主管而言: A. 也许某员工或干部花了20个小时撰写一个AutoLISP程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沉思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要20天就抵销开发成本,而20天以后都是赚的,『用的愈久,省的愈多』! B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?! C. 千万不要因为您的不懂或压抑,SHOW您的权威与POWER,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首 D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关AutoCAD 支持软件。

三角函数解题技巧和公式(已整理)

浅论关于三角函数的几种解题技巧 本人在十多年的职中数学教学实践中,面对三角函数内容的相关教学时,积累了一些解题方面的处理技巧以及心得、体会。下面尝试进行探讨一下: 一、关于)2sin (cos sin cos sin ααααα或与±的关系的推广应用: 1、由于ααααααααc o s s i n 21c o s s i n 2c o s s i n )c o s (s i n 2 22±=±+=±故知道)c o s (s i n αα±,必可推出)2sin (cos sin ααα或,例如: 例1 已知θθθθ33cos sin ,3 3 cos sin -= -求。 分析:由于)cos cos sin )(sin cos (sin cos sin 2233θθθθθθθθ++-=- ]cos sin 3)cos )[(sin cos (sin 2θθθθθθ+--= 其中,θθcos sin -已知,只要求出θθcos sin 即可,此题是典型的知sin θ-cos θ,求sin θcos θ的题型。 解:∵θθθθcos sin 21)cos (sin 2-=- 故:3 1cos sin 31)33( cos sin 212=?==-θθθθ ]cos sin 3)cos )[(sin cos (sin cos sin 233θθθθθθθθ+--=- 39 4 3133]313)33[(332=?=?+= 2、关于tg θ+ctg θ与sin θ±cos θ,sin θcos θ的关系应用: 由于tg θ+ctg θ=θ θθθθθθθθθcos sin 1cos sin cos sin sin cos cos sin 22=+=+ 故:tg θ+ctg θ,θθcos sin ±,sin θcos θ三者中知其一可推出其余式子的值。 例2 若sin θ+cos θ=m 2,且tg θ+ctg θ=n ,则m 2 n 的关系为( )。 A .m 2=n B .m 2= 12+n C .n m 2 2= D .22m n =

EXCEL函数公式大全

excel常用函数公式及技巧搜集(常用的)【身份证信息?提取】 从身份证号码中提取出生年月日 =TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")+0 =TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")*1 =IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")+0,) 显示格式均为yyyy-m-d。(最简单的公式,把单元格设置为日期格式) =IF(LEN(A2)=15,"19"&MID(A2,7,2)&"-"&MID(A2,9,2)&"-"&MID(A2,11,2),MID(A2,7,4)& "-"&MID(A2,11,2)&"-"&MID(A2,13,2)) 显示格式为yyyy-mm-dd。(如果要求为“1995/03/29”格式的话,将”-”换成”/”即可) =IF(D4="","",IF(LEN(D4)=15,TEXT(("19"&MID(D4,7,6)),"0000年00月00日 "),IF(LEN(D4)=18,TEXT(MID(D4,7,8),"0000年00月00日")))) 显示格式为yyyy年mm月dd日。(如果将公式中“0000年00月00日”改成“0000-00-00”,则显示格式为yyyy-mm-dd) =IF(LEN(A1:A2)=18,MID(A1:A2,7,8),"19"&MID(A1:A2,7,6)) 显示格式为yyyymmdd。 =TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")+0 =IF(LEN(A2)=18,MID(A2,7,4)&-MID(A2,11,2),19&MID(A2,7,2)&-MID(A2,9,2)) =MID(A1,7,4)&"年"&MID(A1,11,2)&"月"&MID(A1,13,2)&"日" =IF(A1<>"",TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")) 从身份证号码中提取出性别 =IF(MOD(MID(A1,15,3),2),"男","女") (最简单公式) =IF(MOD(RIGHT(LEFT(A1,17)),2),"男","女") =IF(A2<>””,IF(MOD(RIGHT(LEFT(A2,17)),2),”男”,”女”),) =IF(VALUE(LEN(ROUND(RIGHT(A1,1)/2,2)))=1,"男","女") 从身份证号码中进行年龄判断 =IF(A3<>””,DATEDIF(TEXT((LEN(A3)=15*19&MID(A3,7,6+(LEN(A3)=18*2),”#-00-00”),T ODAY(),”Y”),) =DATEDIF(A1,TODAY(),“Y”) (以上公式会判断是否已过生日而自动增减一岁) =YEAR(NOW())-MID(E2,IF(LEN(E2)=18,9,7),2)-1900 =YEAR(TODAY())-IF(LEN(A1)=15,"19"&MID(A1,7,2),MID(A1,7,4)) =YEAR(TODAY())-V ALUE(MID(B1,7,4))&"岁" =YEAR(TODAY())-IF(MID(B1,18,1)="",CONCATENATE("19",MID(B1,7,2)),MID(B1,7,4)) 按身份证号号码计算至今天年龄 =DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"),TODAY(),"y") 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式

LISP函数大全

AutoLisp函数 一、数学运算功能函数 1.l(十数值数值…)返回:累计实数或整数数值 1.2(一数值数值…)返回:差值 1.3(* 数值数值…)返回:所有数值乘积 1.4(/ 数值数值…)返回:第一个数值除以第二个以后数值的商 1.5(l十数值)返回:数值十l l、 6(1—数值)返回:数值一l l.7(abs 数值)返回:数值的绝对值 1.8(atan 数值)返回:反正切值 1.9(cos 角度)返回:角度的余弦值,角度值为弧度 1.10(exp 数值)返回:数值的指数 1.11(expt 底数指数)返回:底数的指数值 1.12(fix 数值)返回:将数值转换为整数值 1.14(gcd 数值1 数值2)返回:两数值的最大公因数 1.15(log 数值)返回:数值的自然对数值 1.16(max 数值数值…)返回:数值中的最大值 1.17(min 数值数值…)返回:数值中的最小值 1.18 pi 常数∏,其值约为3.1415926 1.19(rem 数值 1数值 2)返回:M数值的相除的余数 l.20(sin 角度)返回:角度的正旋值,角度值为弧度 1.21(sqrt 数值)返回:数值的平方根 二、检验与逻辑运算功能函数 2.l(= 表达式1 表达式2)比较表达式1就是否等于式2,适用数值及字符串 2.2 (/= 表达式1 表达式2)比较表达式1就是否大于等于表达式2 2.3(<表达式1 表达式2) 比较表达式1就是否<小于表达式2 2.4(<= 表达式1 表达式2)比较表达式1就是否<一小于等于表达式2 2.5(>表达式1 表达式2) 比较表达式1就是否>大于表达式2 2.6(>= 表达式1 表达式2) 比较表达式1就是否大于等于表达式2 2.7 (~数值)返回:数值的位 not值,(1的补码) 2.8 (and 表达式1 表达式2…)返回:逻辑and的结果 2.9(boole 函数整数整数…)返回:位式布尔运算AutoLisp函数2/8 2.10(eq 表达式1 表达式2)比较表达式1与表达式2就是否相同,适用列表比较(实际 相同) 2.11(equal 表达式 1表达式 2[差量])比较表达式 1与表达式 2就是否相同,差量可省 略(内容相同) 三、转换运算功能函数 3.l(angtof 字符串[模式])返回:角度值的字符串转成实数 3.2(angtos 角度[模式[精度]])返回:角度转成的字符串值 3.3(atof 字符串)返回:字符串转成实数值 3.4 (atoi 字符串)返回:字符串转成整数值

三角函数变换公式

正弦函数sinθ=y/r 余弦函数cosθ=x/r 正切函数tanθ=y/x 余切函数cotθ=x/y 正割函数secθ=r/x 余割函数cscθ=r/y 同角三角函数间的基本关系式: ·平方关系: sin^2(α)+cos^2(α)=1 tan^2(α)+1=sec^2(α) cot^2(α)+1=csc^2(α) ·积的关系: sinα=tanα*cosα cosα=cotα*sinα tanα=sinα*secα cotα=cosα*cscα secα=tanα*cscα cscα=secα*cotα ·倒数关系: tanα·cotα=1 sinα·cscα=1 cosα·secα=1 三角函数恒等变形公式: ·两角和与差的三角函数: cos(α+β)=cosα·cosβ-sinα·sinβ cos(α-β)=cosα·cosβ+sinα·sinβ sin(α±β)=sinα·cosβ±cosα·sinβ tan(α+β)=(tanα+tanβ)/(1-tanα·tanβ) tan(α-β)=(tanα-tanβ)/(1+tanα·tanβ) ·辅助角公式: Asinα+Bcosα=(A^2+B^2)^(1/2)sin(α+t),其中sint=B/(A^2+B^2)^(1/2) cost=A/(A^2+B^2)^(1/2) ·

倍角公式: sin(2α)=2sinα·cosα=2/(tanα+cotα) cos(2α)=cos^2(α)-sin^2(α)=2cos^2(α)-1=1-2sin^2(α) tan(2α)=2tanα/[1-tan^2(α)] ·三倍角公式: sin3α=3sinα-4sin^3(α) cos3α=4cos^3(α)-3cosα ·半角公式: sin(α/2)=正负√((1-cosα)/2) cos(α/2)=正负√((1+cosα)/2) tan(α/2)=正负√((1-cosα)/(1+cosα))=sinα/(1+cosα)=(1-cosα)/sinα ·降幂公式 sin^2(α)=(1-cos(2α))/2 cos^2(α)=(1+cos(2α))/2 tan^2(α)=(1-cos(2α))/(1+cos(2α)) ·万能公式: sinα=2tan(α/2)/[1+tan^2(α/2)] cosα=[1-tan^2(α/2)]/[1+tan^2(α/2)] tanα=2tan(α/2)/[1-tan^2(α/2)] ·积化和差公式: sinα·cosβ=(1/2)[sin(α+β)+sin(α-β)] cosα·sinβ=(1/2)[sin(α+β)-sin(α-β)] cosα·cosβ=(1/2)[cos(α+β)+cos(α-β)] sinα·sinβ=-(1/2)[cos(α+β)-cos(α-β)] ·和差化积公式: sinα+sinβ=2sin[(α+β)/2]cos[(α-β)/2] sinα-sinβ=2cos[(α+β)/2]sin[(α-β)/2] cosα+cosβ=2cos[(α+β)/2]cos[(α-β)/2] cosα-cosβ=-2sin[(α+β)/2]sin[(α-β)/2] ·其他: sinα+sin(α+2π/n)+sin(α+2π*2/n)+sin(α+2π*3/n)+…+sin[α+2π*(n-1)/n]=0 cosα+cos(α+2π/n)+cos(α+2π*2/n)+cos(α+2π*3/n)+…+cos[α+2π*(n-1)/n]=0 以及 sin^2(α)+sin^2(α-2π/3)+sin^2(α+2π/3)=3/2 tanAtanBtan(A+B)+tanA+tanB-tan(A+B)=0

常用excel函数公式大全

常用的excel函数公式大全 一、数字处理 1、取绝对值 =ABS(数字) 2、取整 =INT(数字) 3、四舍五入 =ROUND(数字,小数位数) 二、判断公式 1、把公式产生的错误值显示为空 公式:C2 =IFERROR(A2/B2,"") 说明:如果是错误值则显示为空,否则正常显示。

2、IF多条件判断返回值 公式:C2 =IF(AND(A2<500,B2="未到期"),"补款","") 说明:两个条件同时成立用AND,任一个成立用OR函数。 三、统计公式 1、统计两个表格重复的内容 公式:B2 =COUNTIF(Sheet15!A:A,A2) 说明:如果返回值大于0说明在另一个表中存在,0则不存在。

2、统计不重复的总人数 公式:C2 =SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。 四、求和公式

1、隔列求和 公式:H3 =SUMIF($A$2:$G$2,H$2,A3:G3) 或 =SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)说明:如果标题行没有规则用第2个公式 2、单条件求和 公式:F2 =SUMIF(A:A,E2,C:C) 说明:SUMIF函数的基本用法

3、单条件模糊求和 公式:详见下图 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。

4、多条件模糊求和 公式:C11 =SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 说明:在sumifs中可以使用通配符* 5、多表相同位置求和 公式:b2 =SUM(Sheet1:Sheet19!B2) 说明:在表中间删除或添加表后,公式结果会自动更新。 6、按日期和产品求和

三角函数转换公式

三角函数转换公式 1、诱导公式: sin(-α) = -sinα;cos(-α) = cosα;sin(π/2-α) = cosα;cos(π/2-α) = sinα;sin(π/2+α) = cosα;cos(π/2+α) = -sinα;sin(π-α) = sinα;cos(π-α) = -cosα;sin(π+α) = -sinα;cos(π+α) = -cosα;tanA= sinA/cosA; tan(π/2+α)=-cotα;tan(π/2-α)=cotα; tan(π-α)=-tanα;tan(π+α)=tanα 2、两角和差公式: sin(A±B) = sinAcosB±cosAsinB cos(A±B) = cosAcosB sinAsinB tan(A±B) = (tanA±tanB)/(1 tanAtanB) cot(A±B) = (cotAcotB 1)/(cotB± 3、倍角公式 sin2A=2s inA?cosA cos2A=cosA2-sinA2=1-2sinA2=2cosA2-1 tan2A=2tanA/(1-tanA2)=2cotA/(cotA2-1) 4、半角公式 tan(A/2)=(1-cosA)/sinA=sinA/(1+cosA); cot(A/2)=sinA/(1-cosA)=(1+cosA)/sinA. sin^2(a/2)=(1-cos(a))/2 cos^2(a/2)=(1+cos(a))/2 tan(a/2)=(1-cos(a))/sin(a)=sin(a)/(1+cos(a))

5、和差化积 sinθ+sinφ = 2 sin[(θ+φ)/2] cos[(θ-φ)/2] sinθ-sinφ = 2 cos[(θ+φ)/2] sin[(θ-φ)/2] cosθ+cosφ = 2 cos[(θ+φ)/2] cos[(θ-φ)/2] cosθ-cosφ = -2 sin[(θ+φ)/2] sin[(θ-φ)/2] tanA+tanB=sin(A+B)/cosAcosB=tan(A+B)(1-tanAtanB) tanA-tanB=sin(A-B)/cosAcosB=tan(A-B)(1+tanAtanB) 6、积化和差 sinαsinβ = -1/2*[cos(α-β)-cos(α+β)] cosαcosβ = 1/2*[cos(α+β)+cos(α-β)] sinαcosβ = 1/2*[sin(α+β)+sin(α-β)] cosαsinβ = 1/2*[sin(α+β)-sin(α-β)] 7、万能公式 2 t a n 12t a n 2t a n ,2t a n 12t a n 1c o s ,2t a n 12t a n 2s i n 2222α-α=αα+α-=αα+α=α 同角三角函数的基本关系式 倒数关系: 商的关系: 平方关系: tan α ·cot α=1 sin α ·csc α=1 cos α ·sec α=1 sin α/cos α=tan α=sec α/csc α cos α/sin α=cot α=csc α/sec α sin2α+cos2α=1

三角函数恒等变换

§6.3 两 角 和 与 差 的 三 角 函 数 【复习目标】 1.掌握两角和与差的三角函数公式,掌握二倍角公式; 2.能正确地运用三角函数的有关公式进行三角函数式的求值. 3.能正确地运用三角公式进行三角函数式的化简与恒等式证明. 【双基诊断】 (以下巩固公式) 1、163°223°253°313°等于 ( ) A.-2 1 B.2 1 C.- 2 3 D. 2 3 2、在△中,已知2,那么△一定是 ( ) A.直角三角形 B.等腰三角形 C.等腰直角三角形 D.正三角形 3、??-?70sin 20sin 10cos 2的值是 ( ) A.2 1 B. 2 3 C. 3 D.2 4、已知α-β=2 1,α-β=3 1,则(α-β).

5、已知5 3sin ),,2 (=∈αππα,则=+)4 tan(πα 。 6、若 t =+)sin(απ,其中α是第二象限的角,则 =-)cos(απ 。 7、化简 1tan151tan15 +-等于 ( ) ()A () B () C 3 () D 1 8、(1tan 20)(1tan 21)(1tan 24)(1tan 25)++++= ( ) ()A 2 ()B 4 ()C 8 ()D 16 9、已知α和(4 π-α)是方程2 0的两个根,则a 、b 、c 的关系是 ( ) B.2 10、0015tan 75tan += 。 11、设14°14°,16°16°, 6 6,则a 、b 、c 的大小关系是 ( ) <b <c <c <b <c <a <a <c 12、△中,若2a ,60°,则.

13、f (x )= x x x x cos sin 1cos sin ++的值域为 ( ) A.(-3 -1,-1)∪(-1, 3 -1) B. (21 3-- ,2 13-) C.[2 1 2--,-1]∪(-1, 2 12-) D. [21 2-- ,2 12-] 14、已知∈(0,2 π),β∈(2 π,π),(α+β)=65 33,β=- 13 5 ,则α. 15、下列各式中,值为2 1的是 ( ) 15°15° B.2 2 12 π- 1 C. 2 30cos 1? + D. ? -?5.22tan 15.22tan 2 16、已知2θ 2θ3 32,那么θ的值为,2θ的值为. 17、=000080cos 60cos 40cos 20cos 。

EXCEL常用函数公式大全与举例

EXCEL常用函数公式大全及举例 一、相关概念 (一)函数语法 由函数名+括号+参数组成 例:求和函数:SUM(A1,B2,…) 。参数与参数之间用逗号“,”隔开(二)运算符 1. 公式运算符:加(+)、减(-)、乘(*)、除(/)、百分号(%)、乘幂(^) 2. 比较运算符:大与(>)、小于(<)、等于(=)、小于等于(<=)、大于等于(>=)、不等于(<>) 3. 引用运算符:区域运算符(:)、联合运算符(,) (三)单元格的相对引用与绝对引用 例: A1 $A1 锁定第A列 A$1 锁定第1行 $A$1 锁定第A列与第1行 二、常用函数 (一)数学函数 1. 求和 =SUM(数值1,数值2,……) 2. 条件求和 =SUMIF(查找的范围,条件(即对象),要求和的范围) 例:(1)=SUMIF(A1:A4,”>=200”,B1:B4) 函数意思:对第A1栏至A4栏中,大于等于200的数值对应的第B1列至B4列中数值求和 (2)=SUMIF(A1:A4,”<300”,C1:C4)

函数意思:对第A1栏至A4栏中,小于300的数值对应的第C1栏至C4栏中数值求和 3. 求个数 =COUNT(数值1,数值2,……) 例:(1) =COUNT(A1:A4) 函数意思:第A1栏至A4栏求个数(2) =COUNT(A1:C4) 函数意思:第A1栏至C4栏求个数 4. 条件求个数 =COUNTIF(范围,条件) 例:(1) =COUNTIF(A1:A4,”<>200”) 函数意思:第A1栏至A4栏中不等于200的栏求个数 (2)=COUNTIF(A1:C4,”>=1000”) 函数意思:第A1栏至C4栏中大于等1000的栏求个数 5. 求算术平均数 =AVERAGE(数值1,数值2,……) 例:(1) =AVERAGE(A1,B2) (2) =AVERAGE(A1:A4) 6. 四舍五入函数 =ROUND(数值,保留的小数位数) 7. 排位函数 =RANK(数值,范围,序别) 1-升序 0-降序 例:(1) =RANK(A1,A1:A4,1) 函数意思:第A1栏在A1栏至A4栏中按升序排序,返回排名值。 (2) =RANK(A1,A1:A4,0) 函数意思:第A1栏在A1栏至A4栏中按降序排序,返回排名值。 8. 乘积函数 =PRODUCT(数值1,数值2,……) 9. 取绝对值 =ABS(数字) 10. 取整 =INT(数字) (二)逻辑函数

相关主题
文本预览
相关文档 最新文档