第一篇:Excel VBA常用代码总结1
Excel VBA常用代码总结1
改变背景色
Range(“A1”).Interior.ColorIndex = xlNone ColorIndex一览
改变文字颜色 获取单元格 Range(“A1”).Font.ColorIndex = 1 Cells(1, 2)Range(“H7”) 获取范围
Range(Cells(2, 3), Cells(4, 5))Range(“a1:c3”)'用快捷记号引用单元格
Worksheets(“Sheet1”).[A1:B5] 选中某sheet SetNewSheet = Sheets(“sheet1”)NewSheet.Select 选中或激活某单元格
'“Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格。
'下面的代码首先选择A1:E10区域,同时激活D4单元格: Range(“a1:e10”).Select Range(“d4:e5”).Activate '而对于下面的代码: Range(“a1:e10”).Select Range(“f11:g15”).Activate '由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。
获得文档的路径和文件名
ActiveWorkbook.Path
'路徑 ActiveWorkbook.Name
'名稱
ActiveWorkbook.FullName '路徑+名稱 '或将ActiveWorkbook换成thisworkbook
隐藏文档 禁止屏幕更新
禁止显示提示和警告消息 文件夹做成 Application.Visible = False Application.ScreenUpdating = False Application.DisplayAlerts = False strPath = “C:temp” MkDirstrPath 状态栏文字表示 双击单元格内容变换 Application.StatusBar = “计算中”
PrivateSubWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean)If(Target.Cells.Row>= 5AndTarget.Cells.Row<= 8)Then IfTarget.Cells.Value = “●”Then Target.Cells.Value = “" Else
Target.Cells.Value = ”●“ EndIf
Cancel = True EndIf End Sub
文件夹选择框方法1
SetobjShell = CreateObject(”Shell.Application“)SetobjFolder = objShell.BrowseForFolder(0, ”文件“, 0, 0)IfNotobjFolderIsNothing
Then path= objFolder.self.Path&”“ endif SetobjFolder = Nothing SetobjShell = Nothing
文件夹选择框方法2(推荐)
PublicFunctionChooseFolder()AsString DimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFolderPicker)WithdlgOpen.InitialFileName = ThisWorkbook.path&”“ If.Show =-1Then
ChooseFolder =.SelectedItems(1)EndIf EndWith
SetdlgOpen = Nothing End Function
'使用方法例:
Dim path AsString path = ChooseFolder()If path <>”“Then MsgBox”open folder“ EndIf
文件选择框方法
PublicFunctionChooseOneFile(OptionalTitleStrAsString = ”Please choose a file“, OptionalTypesDecAsString = ”*.*“, OptionalExtenAsString = ”*.*“)AsString
DimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFilePicker)WithdlgOpen.Title = TitleStr.Filters.Clear.Filters.AddTypesDec, Exten.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path If.Show =-1Then
'.AllowMultiSelect = True ' For Each vrtSelectedItemIn.SelectedItems ' MsgBox ”Path name: “ &vrtSelectedItem ' Next vrtSelectedItem
ChooseOneFile =.SelectedItems(1)EndIf EndWith
SetdlgOpen = Nothing End Function
某列到关键字为止循环方法1(假设关键字是end)SetCurrentCell = Range(”A1“)DoWhileCurrentCell.Value<>”end“ „„
SetCurrentCell = CurrentCell.Offset(1, 0)Loop
某列到关键字为止循环方法2(假设关键字是空字符串)i = StartRow DoWhileCells(i, 1)<>”“ „„
i = i + 1 Loop
”For Each...Next 循环(知道确切边界)ForEach c InWorksheets(“Sheet1”).Range(“A1:D10”).Cells
IfAbs(c.Value)<0.01Thenc.Value = 0 Next
“For Each...Next 循环(不知道确切边界),在活动单元格周围的区域内循环
ForEach c InActiveCell.CurrentRegion.Cells IfAbs(c.Value)<0.01Thenc.Value = 0 Next
某列有数据的最末行的行数的取得(中间不能有空行)lonRow=1
DoWhileTrim(Cells(lonRow, 2).Value)<>”“ lonRow = lonRow + 1 Loop
lonRow11 = lonRow1164)比如i=A的时候,Asc(it >= num * 1000 DoEvents Loop End Sub
'***************************************************************
使用方法: delay 3'3表示秒数
杀掉某程序执行的所有进程
SubKillWord()
Dim Process
ForEach Process InGetObject(”winmgmts:“).ExecQuery(”select * from Win32_Process where name='WINWORD.EXE'“)Process.Terminate(0)Next
End Sub
监视某单元格的变化
这里最需要注意的问题就是,如果在这个事件里对单元格进行改变,会继续出发此事件变成死循环。
所以要在对单元格进行变化之前加上Application.EnableEvents = False,变完之后再改为True。
PrivateSubWorksheet_Change(ByVal Target As Range)OnErrorGoTo Err Application.EnableEvents = False Dim c SetdicKtoW = SetDic(ThisWorkbook.Sheets(”reference“), 3, 1, 2)SetdicKtoX = SetDic(ThisWorkbook.Sheets(”reference“), 3, 1, 3)ForEach c In Target Ifc.Column = 11Then 'MsgBoxc.Value
Me.Range(”W“&c.Row).Value = GetDic(dicKtoW, c.Value)Me.Range(”X“&c.Row).Value = GetDic(dicKtoX, c.Value)EndIf Next SetdicKtoW = Nothing SetdicKtoX = Nothing
Application.EnableEvents = True Exit Sub Err: MsgBox(”Error!Please contact macro developer.“)Application.EnableEvents = True End Sub
On Error的用法
1.一般用法
OnErrorGoTo Label 各种代码 exit sub Label: msgboxErr.Description 其他错误处理
2.对于某段代码单独处理 OnErrorResumeNext 需要监视的代码
IfErr.Number<>0Then MsgBoxErr.Description EndIf
OnErrorGoTo0
3.上述两种的结合 OnErrorResumeNext 需要监视的代码
IfErr.Number<>0Then MsgBoxErr.Description Goto Label EndIf
OnErrorGoTo0 exit sub Label: 其他错误处理
EXCEL的分组功能和展开收缩功能
'将A列到C列进行分组
Range(”A:C“).Columns.Group
'默认情况下,分组后的A到C列会是展开状态,如果想让A到C列收缩 Range(”A:C").EntireColumn.Hidden=True
第二篇:软件工程代码总结
1、事件
处理事件的方法
2、class和id的用途是不一样的;首先要说明一下,选择器一共有三种:
html标记,class,id;html标记就不说了,class是对html标记选择器的一种扩展,CLASS可以给多个标记反复利用;而ID的目的在于被Javascript使用,来动态改变CSS,所以2种的实际用途是截然不同的。
如:“id”对应“#”,“class”对应“.”.id是唯一标志的,在同一页面中不能有相同的值,class则没这约束。如: Css #div1{......}.div2{......}
//class可以相同重复用
第三篇:写代码总结
一、排版:
1.关键词和操作符之间加适当的空格。
2.相对独立的程序块与块之间加空行
3.较长的语句、表达式等要分成多行书写。
4.划分出的新行要进行适应的缩进,使排版整齐,语句可读。
5.长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
6.循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。
7.若函数或过程中的参数较长,则要进行适当的划分。
8.不允许把多个短语句写在一行中,即一行只写一条语句。
9.函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。
10.C/C++语言是用大括号„{‟和„}‟界定一段程序块的,编写程序块时„{‟和
„}‟应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
二、注释
1.注释要简单明了。
2.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
3.在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确,防止注释二义性。保持注释与其描述的代码相邻,即注释的就近原则。
4.对代码的注释应放在其上方相邻位置,不可放在下面。
5.对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释应放在此域的右方;同一结构中不同域的注释要对齐。
6.变量、常量的注释应放在其上方相邻位置或右方。
7.全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。
8.在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成日期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件与其它文件关系等);主要函数或过程清单及本文件历史修改记录等。
9.在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等。
三、命名
1.较短的单词可通过去掉“元音”形成缩写;
2.较长的单词可取单词的头几发符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。
3.使用匈牙利表示法
四、可读性
1.避免使用不易理解的数字,用有意义的标识来替代。
2.不要使用难懂的技巧性很高的语句。
3.源程序中关系较为紧密的代码应尽可能相邻。
五、变量
1.去掉没必要的公共变量。
2.构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问的公共变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象。
3.仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。
4.明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。
5.当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。
6.防止局部变量与公共变量同名。
7.仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用现象。
8.结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的应用保留余地(如预留一些空间等)。
9.留心具体语言及编译器处理不同数据类型的原则及有关细节。
10.严禁使用未经初始化的变量。声明变量的同时对变量进行初始化。
11.编程时,要注意数据类型的强制转换。
六、函数、过程
1.函数的规模尽量限制在200行以内。
2.一个函数最好仅完成一件功能。
3.为简单功能编写函数。
4.函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。
5.尽量不要编写依赖于其他函数内部实现的函数。
6.避免设计多参数函数,不使用的参数从接口中去掉。
7.用注释详细说明每个参数的作用、取值范围及参数间的关系。
8.检查函数所有参数输入的有效性。
9.检查函数所有非参数输入的有效性,如数据文件、公共变量等。
10.函数名应准确描述函数的功能。
11.避免使用无意义或含义不清的动词为函数命名
12.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。
13/明确函数功能,精确(而不是近似)地实现函数设计。
14.减少函数本身或函数间的递归调用。
15.编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。
七、可测性
1.在编写代码之前,应预先设计好程序调试与测试的方法和手段,并设计好各种调测开关及相应测试代码如打印函数等。
2.在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细分析并优化测试用例,以提高测试效率。
八、程序效率
1.编程时要经常注意代码的效率。
2.在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。
3.不能一味地追求代码效率,而对软件的正确性、稳定性、可读性及可测性造成影响。
4.编程时,要随时留心代码效率;优化代码时,要考虑周全。
5.要仔细地构造或直接用汇编编写调用频繁或性能要求极高的函数。
6.通过对系统数据结构划分与组织的改进,以及对程序算法的优化来提高空间效率。
7.在多重循环中,应将最忙的循环放在最内层。
8.尽量减少循环嵌套层次。
9.避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。
10.尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。
九、质量保证
1.在软件设计过程中构筑软件质量。
代码质量保证优先原则
(1)正确性,指程序要实现设计要求的功能。
(2)稳定性、安全性,指程序稳定、可靠、安全。
(3)可测试性,指程序要具有良好的可测试性。
(4)规范/可读性,指程序书写风格、命名规则等要符合规范。
(5)全局效率,指软件系统的整体效率。
(6)局部效率,指某个模块/子模块/函数的本身效率。
(7)个人表达方式/个人方便性,指个人编程习惯。
2.只引用属于自己的存贮空间。
3.防止引用已经释放的内存空间。
4.过程/函数中分配的内存,在过程/函数退出之前要释放。
5.过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出前要关闭。
6.防止内存操作越界。
7.时刻注意表达式是否会上溢、下溢。
8.认真处理程序所能遇到的各种出错情况。
9.系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用。
10.系统运行之初,要对加载到系统中的数据进行一致性检查。
11.严禁随意更改其它模块或系统的有关设置和配置。
12.不能随意改变与其它模块的接口。
13.充分了解系统的接口之后,再使用系统提供的功能。
14.要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符。
15.不使用与硬件或操作系统关系很大的语句,而使用建议的标准语句。
16.建议:使用第三方提供的软件开发工具包或控件时,要注意以下几点:
(1)充分了解应用接口、使用环境及使用时注意事项。
(2)不能过分相信其正确性。
(3)除非必要,不要使用不熟悉的第三方工具包与控件。
十、代码编译
1.编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成代码丢失。
2.同一项目组内,最好使用相同的编辑器,并使用相同的设置选项。
3.合理地设计软件系统目录,方便开发人员使用。
4.打开编译器的所有告警开关对程序进行编译。
5.在同一项目组或产品组中,要统一编译开关选项。
6.使用工具软件(如Visual SourceSafe)对代码版本进行维护。
十一、代码测试、维护
1.单元测试要求至少达到语句覆盖。
2.单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。
3.清理、整理或优化后的代码要经过审查及测试。
4.代码版本升级要经过严格测试。
第四篇:域代码编写总结
word域代码详解
域的基本操作
Ctrl+F9 插入域
Ctrl+Shift+F9把域转为纯文本 Shift+F9 切换为域代码显示
十个特殊指令(域开关)
1、数组a
2、括号b
3、平移d
4、分式f
5、积分i
6、列表l
7、重叠o
8、根号r
9、上下标s
10、框x
域代码: {EQ a(100,2,31)}
讲解: {EQ列表(100,2,31排成一列)}
可用参数:
al左对齐;ac居中;ar右对齐;con元素排成 n 列;vsn行间增加 n 磅;hsn列间增加n磅
al左对齐
域代码: {EQ aal(100,2,31)}
讲解: {EQ 列表左对齐(100,2,31)}
ac居中
域代码:{EQ aac(100,2,31)}
讲解:{EQ 列表居中对齐(100,2,31)}
ar右对齐
域代码:{EQ aar(100,2,31)}
讲解:{EQ 列表右对齐(100,2,31)}
con元素排成n列
域代码:{EQ aco3(10,2,31,0,1,0,14,3,55)}
讲解:{EQ 列表元素排成3列(10,2,31,0,1,0,14,3,55)}
vsn 行间增加n磅
域代码:{EQ aco3vs2(10,2,31,0,1,0,14,3,55)}
讲解:{EQ 列表元素排成3列行间增加2磅}
hsn 列间增加n磅
域代码:{EQ aco3vs2hs4(10,2,31,0,1,0,14,3,55)}
讲解:{EQ 列表元素排成3列行间增加2磅列间增加4磅}
域代码:{EQ b(a(100,2,31))}
讲解:{EQ 加括号(数组(100,2,31))}
可用参数:
左括号使用字符 lc;右括号使用字符 rc;左右括号都使用字符bc
lc* 左括号使用字符*
域代码:{EQ blc|(a(100,2,31))}
讲解:{EQ 加括号左括号使用字符|(数组(100,2,31))}
rc* 右括号使用字符*
域代码:{EQ brc|(a(100,2,31))}
讲解:{EQ 加括号右括号使用字符|(数组(100,2,31))}
bc* 左右括号都使用字符*
域代码:{EQ bbc|(a(100,2,31))}
讲解:{EQ 加括号左右括号使用字符|(数组(100,2,31))}
注意:如果指定的字符*是 {、[、(、或 <,Word 将使用相应的字符作为右括号。如果指定其他字符,Word将使用该字符作为相同的左右括号。默认括号为圆括号。
3、位移开关 d(): 控制 EQ 域之后下一个字符的位置。
空圆括号只跟在指令最后一个选项后面。
域代码:{EQ-d()A-}
讲解:{EQ-下一个字符后移 A-}
可用参数:
fon右边n磅;ban左边n磅;li为下一个字符前的空白添加下划线
fon 右边n磅
域代码:{EQ-dfo5()A-}
讲解:{EQ-下一个字符后移5磅 A-}
ban 左边n磅
域代码:{EQ-d ba7(A-)}
讲解:{EQ-下一个字符前移7磅}
li 为下一个字符前的空白添加下划线
域代码:{EQ 我 dfo12li()你 }
讲解:{EQ 我 下一个字符后移12磅,空白添加下划线 你}
4、分数开关 f(,): 创建分数,分子分母分别在分数线上下居中。
域代码:{EQ 18f(5,132)}
讲解:{EQ 18分数(分子,分母)}
无可用参数。
符号或默认符号及三个元素创建积分。
第一个元素是积分下限,第二个是上限,第三个是积分表达式。
域代码:{EQ i(a,b,3x+1 dx)}
讲解:{EQ 积分(下标a,上标b,表达式3x+1 dx)}
可用参数: 将符号更改为∑ 并生成求和公式su ;将符号更改为大写的 Π 并生成求积公式pr ;创建行内格式,积分限不在符号的上下,而在符号之右in ;将符号设置为固定高度的字符 fcc。
su 生成求和公式
域代码:{EQ isu(i=1,n,xi)}
讲解:{EQ 求和(下标a,上标b,表达式xi)
pr 生成求积公式
域代码:{EQ ipr(i=1,n,xi)}
讲解:{EQ 求积(下标i=1,上标n,表达式 xi)
in 积分限不在符号的上下,而在符号之右
域代码:{EQ iin(a,b,3x+1 dx)}
讲解:{EQ 积分积分限在符号之右(a,b,3x+1 dx)}
fcc将符号c设置为固定高度的字符
域代码:{EQ ifc设置为固定高度的字符in(a,b,3x+1)}
讲解:{EQ i符号改为。
in(a,b,3x+1)};将符号
vcc 符号高度与第三个元素高度一致
域代码:{EQ ivc
in(a,b,3x+1)}
讲解:加vc开关后,指定的符号自动放大
6、列表开关 l(): 使用任意个数的元素组成列表。
以逗号或分号分隔,这样就可以将多个元素指定为一个元素。在域中输入一个类似a,b的元素,不加括号时域会报错,加了括号又会显示出括号,列表开关可以解决类似问题。
域代码:{EQ isu(l(i,j)=1,l(n,m),xij)}
讲解:{EQ求和(加列表(i,j)=1,加列表(n,m),xij)}
无可用参数。
7、重叠开关 o(): 将每个后续元素置于前一个元素之上。
元素数目不限。元素之间以逗号隔开。可以配合上标开关使用
域代码:{EQ o(A,╳)}{EQ o(?,12)}
讲解:{EQ 重叠(A,╳)} {EQ 重叠(?,12)}
可用参数: 左对齐al;居中ac;右对齐ar
al左对齐
域代码:{EQ oal(ABC,sup10(︵))}
讲解:{EQ o重叠左对齐(ABC,sup10(︵))}
ac居中
域代码:{EQ oac(ABC,sup10(︵))}
讲解:{EQ 重叠o居中ac(ABC,sup10(︵))}
ar右对齐
域代码:{EQ oar(ABC,sup10(︵))}
讲解:{EQ 重叠o右对齐ar(ABC,sup10(︵))}
8、根号开关 r(,): 使用一个或两个元素绘制根号。
域代码:{EQ r(5,2a+b)}
讲解:{EQ 根号r(根指数5,被开方数2a+b)}
无可用参数。
9、上标下标开关 s(): 将元素放置为上标或下标字符。
每个 s 代码可有一个或多个元素,以逗号隔开。如果指定多个元素,则元素将堆叠起来并且左对齐
域代码:{EQ Cs(3,12)}
讲解:{EQ C上下标(上标3,下标12)}
可用参数: 在段落一行之上添加由 n 指定的磅数的空白;文字上移由 n 指定的磅数。默认值为 2 磅
upn()在段落一行之下添加由 n 指定的磅数的空白din();将单个元素相对相邻文字下移由 n 指定的磅数。默认值为 2 磅don()。
ain添加由 n 指定的磅数的空白
域代码:A{EQ Csai12(3)B}
讲解:A{EQ C上下标s行之上添加由12磅的空白ai12(3)B}
upn 文字上移由 n 指定的磅数(默认值为 2 磅)
域代码:{EQ Csup12(3)s(12)}
讲解:{EQ C上下标sup12(3)上下标s(12)}
din 在段落一行之下添加由 n 指定的磅数的空白
域代码:{EQ Csdi18(12)}A
讲解:{EQ C上下标s一行之下添加18磅的空白di18(12)}A
don 将单个元素相对相邻文字下移由 n 指定的磅数。默认值为 2 磅
域代码:{EQ Cs(3)sdo8(12)}
讲解:{EQ C上下标s(3)上下标s下移8磅do8(12)}
10、框开关 x(): 创建元素边框。
如果不带选项,则此代码在元素四周绘一个方框。
域代码:{EQ x(12345)}
讲解:{EQ 边框x(12345)}
可用参数: 在元素的上面绘制一个边框to ;在元素的下面绘制一个边框 bo ;在元素的左面绘制一个边框le 在元素的右面绘制一个边框ri
to上面绘制一个边框
域代码:{EQ x to(A∪B)}
讲解:{EQ 边框x 上边框to(A∪B)}
bo下面绘制一个边框
域代码:{EQ x bo(A∪B)}
讲解:{EQ 边框x 下边框bo(A∪B)}
le左面绘制一个边框
域代码:{EQ x le(A∪B)}
讲解:{EQ 边框x 左边框le(A∪B)}
ri左面绘制一个边框
域代码:{EQ x ri(A∪B)}
讲解:{EQ 边框x 右边框ri(A∪B)}
左右都加边框
域代码:{EQ x leri(A∪B)}
讲解:{EQ 边框x 左边框le右边框ri(A∪B)}
关于域的快捷键:
Ctrl+F9组合键——快速插入域定义符“{}”(注意:这个花括号不能用键盘输入)
Shift+F9组合键——显示或者隐藏指定的域代码
Alt+F9组合键——显示或者隐藏文档中所有域代码
F9键——更新单个域
上表中,选中每一个实例用鼠标右键单击,选“切换域代码”(或者直接按Shift+F9组合键),就可以看到域代码,再按Shift+F9组合键回到域结果。
我们在word2000中编辑文档时,有时会经常遇到要求输入数学公式的情况。虽然简单的加、减、乘、除等运算都可在键盘上直接输入,但遇到复杂的数学公式:如积分、开方、求和等符号时,就只能利微软的office套件中所带的工具“公式编辑器”来完成,但是在office套件的典型安装的过程中,并没有选择这个工具,那么有没有办法可以在word2000中直接输入这些符号呢?答案是肯定的,下面我们就来讲解通过word2000的EQ域的功能输入数学公式。
一、EQ域的基本使用格式:
{EQ Switches}
其中Switches用于指定如何使用其后跟随的括号中的元素建立公式,还可以用适当的开关选项来进行修改。EQ域的开关特别多,特别复杂,合理的组合可以产生各种各样的公式,下面我们来详细介绍各种开关的作用及使用方法及事例。
二、EQ域的开关及选项意义
1.数组开关:a(),可以在文档中绘制一个二维数组。还可以使用下面的选项来修改a 开关。
al 列内左对齐。
ac 列内居中对齐。
ar 列内右对齐。
con元素排成 n 列(默认值为 1)。
vsn行间增加 n 磅的垂直间距。
hsn列间增加 n 磅的水平间距。
2.括号开关:b(),用括号括住单个元素。
lcc 左括号使用字符 c。
rcc 右括号使用字符 c。
bcc 左右括号都使用指定的字符 c。
3.位移开关:d(),将下一个字符向左或右移动指定磅数。
fon()右边 n 磅。
ban()左边 n 磅。
li()为下一个字符前的空白添加下划线。
示例:{ EQ d fo10 li()} 显示为(前一段文字)__(后一段文字)
4.分数开关:f(,):可用于创建分数。
分子分母分别在分数线上下居中。如果系统使用逗号作为小数点,请用分号分隔两个元素。
5.列表开关:l(),将多个值组成一个列表,列表可作为单个元素使用。
列互开关可使用任意个数元素组成列表,以逗号或分号分隔,这样就可以将多个元素指定为一个元素。
6.重叠开关:o(),将每个后续元素打印在前一元素之上。
al 左对齐
ac 居中(默认值)
ar 右对齐
7.根号开关:r(,),使用一个或两个元素绘制根号。
8.上标或下标开关:s(),设置上下标。可将一个或多个元素设置为上标或下标。每个s代码可有一个或多个元素,以逗号隔开。如果指定多个元素,则元素将堆叠起来并且左齐。可用下面的选项在s开关之后放置单个元素。
ain()在段落一行之上添加由 n 指定的磅数的空白。
upn()将单个元素相对相邻文字上移由 n 指定的磅数。默认值为 2 磅。
din()在段落一行之下添加由 n 指定的磅数的空白。
don()将单个元素相对相邻文字下移由 n 指定的磅数。默认值为 2 磅。
9.方框开关:x(),在元素四周绘制边框。
to 元素之上。bo 元素之下。
le 元素左侧。ri 元素右侧。
10.积分开关:i(,),使用指定的符号或默认符号及三个元素创建积分。使用指定的符号及三个元素创建积分。第一个元素是积分下限,第二个元素是积分上限,第三个是积分表达式。可用下面的选项修改。
su 符号更改为大写的 ∑ 并生成求和公式。
pr 符号更改为大写的 Π 并生成求积公式。
in 创建行内格式,积分限不在符号的上下,而在符号之右。
fcc 将符号设置为固定高度的字符 c。
vcc 将符号设置为可变高度的字符 c。符号高度与第三个元素高度一致。
好了,上面详细地介绍了EQ域创建数学公式的每个开关及选项的意义,下面我们来看几个实例的应用。
三、EQ域实例创建
例
1、我们要创建如下的数学二元一次方程组:
1.先写出第一个方程的代码:{EQ r(3,x)+r(2,x)= r(6,y)}
2.再写出第二个方程的代码:{EQ f(2,x)+f(5,y)= f(10,x)}
3.将每个等式作为一个元素合并在一个域中,并增加a开关,使其排列在两行中域代码为:{EQ a al co1(r(3,x)+r(2,x)= r(6,y), f(2,x)+f(5,y)= f(10,x))
4.最后按照方程式的组成规则,在域代码中增加开关,为公式加入括号,并修改参数,生成这个二元方程组。最终代码为:{EQ b lc {(a al co1(r(3,x)+r(2,x)= r(6,y), f(2,x)+f(5,y)= f(10,x)))
例
2、创建如下的积分算式:
1.首先写出内部的根号的代码:{EQ r(2,x)}
2.其次增加分数开关的代码:{EQ f(r(2,x),5)}
3.最后增加积分开关,完成这个积分算式,代码为:{EQ i(200,100,f(r(2,x),5))dx}
第五篇:单片机实验代码总结
编者:方园
单片机实验代码集合(by fangyuan)
1.多字节累加程序:
ORG 0000H LJMP MAIN ORG 0030H;将加数和被加数送到指定地址 MAIN: MOV 20H,#45H
MOV 21H,#74H
MOV 30H,#67H
MOV 31H,#28H
;低位相加
MOV A,21H
ADD A,31H
DA A
MOV 42H,A
;高位相加
MOV A,20H
ADDC A,30H
DA A
MOV 41H,A
CLR A
ADDC A,#0
MOV 40H,A
SJMP $ END
2.数据交换实验
编写程序,实现以下操作:
【功能1】产生数组Hex1:0H、1H、2H、„ 0FH,存储到片内RAM区中,数组Hex1的首地址为30H。
【功能2】产生数组Hex2:0FH、0EH、0DH、„ 0H,存储到片外RAM区中,数组Hex2的首地址为3000H。
【功能3】将片内RAM数组Hex1与片外RAM数组Hex2交换内容。
代码:
ORG 0000H
Hex1 EQU 30H
;定义内部RAM数组首地址
Hex2 EQU 3000H;定义外部RAM数组首地址
编者:方园
LJMP MAIN
ORG 0030H MAIN:
MOV SP,#4FH
;定义栈顶地址
MOV R7,#16
MOV R0,#Hex1
MOV DPTR,#Hex2
LCALL HEX1DE
;调用内部送数据函数
LCALL HEX2DE;调用外部送数据函数
LCALL XCHDE;调用交换函数
SJMP $
ORG 0100H
;内部送数据
HEX1DE: PUSH 00H
PUSH 07H
MOV A,#0 LOOP1: MOV @R0,A
INC A
INC R0
DJNZ R7,LOOP1
POP 07H
POP 00H
RET
;外部送数据
HEX2DE: PUSH 07H
PUSH DPL
PUSH DPH
MOV A,#0FH LOOP2: MOVX @DPTR,A
DEC A
INC DPTR
DJNZ R7,LOOP2
POP DPH
POP DPL
POP 07H
RET
;交换子程序 XCHDE:
LOOP3: MOVX A,@DPTR
XCH A,@R0
编者:方园
END
MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,LOOP3 RET
3.查表实验
1、《单片机原理及应用实验教程》(第2版)“第2章 实验3”(P49)。要求: 16进制数(00H~0FH)ASCⅡ码表定义在内部ROM中(用伪指令定义);R0为片内RAM区Hex数组指针;R1为片内RAM区Asc数组指针;数据块长度放在寄存器R2中。
代码如下:
ORG 0000H
Hex EQU 40H
Asc EQU 50H
LJMP MAIN
ORG 0030H MAIN:
MOV R2,#16
MOV DPTR,#TABLE
MOV R0,#Hex
MOV R1,#Asc
MOV SP,#2FH
LCALL FUZHI
LCALL ZHUANHUAN
SJMP $
TABLE:
DB '0123456789'
;查表子程序 ORG 1000H ZHUANHUAN:
PUSH 00H
PUSH 01H
PUSH 02H LOOP1:
MOV A,@R0
编者:方园
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP1
POP 02H
POP 01H
POP 00H
RET
;R0送值子程序 FUZHI:
PUSH 00H
PUSH 01H
PUSH 02H
MOV A,#0 LOOP2:
MOV @R0,A
INC R0
INC A
DJNZ R2,LOOP2
POP 02H
POP 01H
POP 00H
RET END
2、编写用@A+PC指令的查表程序,实现用查表方式将片内RAM中16进制数组Hex(00H~0FH)转换为ASCⅡ码并存入片内RAM数组Asc中。要求:
16进制数(00H~0FH)ASCⅡ码表在内部ROM中; R0为片内RAM区Hex数组指针; R1为片内RAM区Asc数组指针; 数据块长度放在寄存器R2中。代码如下:
ORG 0000H
Hex EQU 40H
;内部Hex送数据地址定义
Asc EQU 50H;查表后数据储存地址定义
LJMP MAIN
ORG 0030H MAIN:
MOV R2,#16
MOV DPTR,#TABLE
MOV R0,#Hex
编者:方园
MOV R1,#Asc
MOV SP,#2FH
LCALL FUZHI;送值函数
LCALL CHABIAO;查表函数
SJMP $
ORG 1000H;查表子程序 CHABIAO:
PUSH 00H
PUSH 01H
PUSH 02H LOOP1:
MOV A,@R0
ADD A,#20H
MOVC A,@A+PC
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP1
POP 02H
POP 01H
POP 00H
RET
;R0送值子程序 FUZHI:
PUSH 00H
PUSH 01H
PUSH 02H
MOV A,#0 LOOP2:
MOV @R0,A
INC R0
INC A
DJNZ R2,LOOP2
POP 02H
POP 01H
POP 00H
RET
编者:方园
TABLE:
DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
END
4.十进制数1-100累加运算
《单片机原理及应用实验教程》(第2版)“第2章 实验5”(P30)。编写程序,实现以下功能:
【功能1】产生十进制数1~100,并存放在片外RAM中以1000H为首地址的Deci数组中。【功能2】对Deci数组元素进行累加运算,并将累加和存入内部RAM中60H(存累加和低位)和61H(存累加和高位)单元。代码如下: 方法一:
ORG 0000H
LJMP MAIN
ORG 0030H MAIN:
MOV R7,#100
MOV DPTR,#1000H
MOV SP,#20H
LCALL STEP1
LCALL STEP2
SJMP $
ORG 2000H
STEP1: PUSH 07H
PUSH DPH
PUSH DPL
MOV A,#0
MOV R3,#0 LOOP1: INC A
DA A
XCH A,R3
ADDC A,#0
MOVX @DPTR,A
INC DPTR
XCH A,R3
MOVX @DPTR,A
INC DPTR
DJNZ R7,LOOP1
POP DPL
编者:方园
POP DPH
POP 07H
RET
STEP2: PUSH 07H
PUSH DPH
PUSH DPL
MOV 60H,#0
MOV 61H,#0
MOV R3,#0
LOOP2: INC DPTR
MOVX A,@DPTR
ADD A,60H
DA A
MOV 60H,A
CLR A
ADDC A,61H
DA A
MOV 61H,A
INC DPTR
DJNZ R7,LOOP2
MOV A,#1
ADD A,61H
DA A
MOV 61H,A
POP DPL
POP DPH
POP 07H
RET
END
方法二:
ORG 0000H
LJMP MAIN
ORG 0030H MAIN:
MOV R7,#100
MOV DPTR,#1000H
MOV SP,#20H
编者:方园
LCALL STEP1
LCALL STEP2
SJMP $
ORG 2000H
;送值子函数
STEP1: PUSH 07H
PUSH DPH
PUSH DPL
MOV A,#0 LOOP1: INC A
DA A
MOVX @DPTR,A
INC DPTR
DJNZ R7,LOOP1
CLR A
ADDC A,#0
MOVX @DPTR,A
POP DPL
POP DPH
POP 07H
RET
;累加子函数
STEP2: PUSH 07H
PUSH DPH
PUSH DPL
MOV 60H,#0
MOV 61H,#0
LOOP2:
MOVX A,@DPTR
ADD A,60H
DA A
MOV 60H,A
CLR A
ADDC A,61H
DA A
MOV 61H,A
INC DPTR
DJNZ R7,LOOP2
MOVX A,@DPTR
ADD A,61H
DA A
编者:方园
MOV 61H,A POP DPL POP DPH POP 07H RET
END
5.DPTR指针应用
《单片机原理及应用实验教程》(第2版)“第2章 实验6”(P31)。编写程序,实现以下功能:
【功能1】产生十进制数组Deci(1~99),并存放在片内RAM中,Deci数组首地址为08H。【功能2】将Deci数组中的偶数元素全部送入外部RAM偶数区,首地址为2000H;将Deci数组中的奇数元素全部送入外部RAM奇数区,首地址为3000H;分别统计外部RAM偶数区和奇数区元素个数。代码如下:
ORG 0000H
LJMP MAIN
ORG 0030H MAIN:
MOV SP,#70H
MOV R7,#99
MOV R0,#08H
MOV R5,#0
MOV R6,#0
LCALL STEP1
LCALL STEP2
SJMP $
STEP1: PUSH 00H
PUSH 07H
MOV A,#1 LOOP1: DA A
MOV @R0,A
INC R0
INC A
DJNZ R7,LOOP1
POP 07H
POP 00H
RET
编者:方园
STEP2: MOV DPTR,#2000H
PUSH DPL
PUSH DPH
MOV DPTR,#3000H
MOV R3,DPH
MOV R4,DPL LP1: MOV A,@R0
MOV R2,A
JNB ACC.0,LOOP2
SJMP LOOP3
LOOP2: POP DPH
POP DPL
MOVX @DPTR,A
MOV A,R5
ADD A,#1
DA A
MOV R5,A
INC DPTR
PUSH DPL
PUSH DPH
SJMP NEXT
LOOP3: MOV DPH,R3
MOV DPL,R4
MOVX @DPTR,A
MOV A,R6
ADD A,#1
DA A
MOV R6,A
INC DPTR
MOV R3,DPH
MOV R4,DPL
SJMP NEXT
NEXT:
INC R0
DJNZ R7,LP1
POP DPH
POP DPL
RET
END
编者:方园
6.定时器应用实验
DBUF EQU 30H ORG 0000H STRT: LJMP MAIN ORG 000BH LJMP PTF00 ORG 0030H MAIN: MOV DPTR,#5FFFH MOV A,#0DCH MOVX @DPTR,A MOV R5,#20 LP: MOVX A,@DPTR JNB ACC.7,LP MOV A,#00H MOVX @DPTR,A MOV A,#34H MOVX @DPTR,A MOV SP,#60H MOV R0,#39H MOV R7,#06H ML1: MOV @R0,#00H INC R0 DJNZ R7,ML1 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 MOV IE,#82H MOV 40H,#10H ML0: LCALL DIR LJMP ML0 PTF00: PUSH PSW PUSH ACC SETB PSW.3 MOV TL0,#0B0H MOV TH0,#3CH
编者:方园
DJNZ R5,PTFY MOV R5,#20
MOV A,40H DEC A MOV 40H,A JNZ PTFY MOV 40H,#10H MOV R0,#39H MOV R7,#6 PTFX: MOV A,@R0 ADD A,#1 DA A MOV @R0,A CJNE A,#0AH,$+3 JC PTFY MOV @R0,#0 INC R0 DJNZ R7,PTFX PTFY: POP ACC POP PSW RETI DIR:
MOV R3,#06H MOV A,#92H MOV DPTR,#5FFFH MOVX @DPTR,A MOV R1,#39H TY11: MOV A,@R1 MOV DPTR,#CODE1 MOVC A,@A+DPTR MOV DPTR,#5FFFH MOVX @DPTR,A
INC R1 DJNZ R3,TY11 RET
CODE1: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,88H
编者:方园
DB 83H,0C6H,0A1H,86H,8EH,8CH DB 0C1H,89H,0C7H,0BFH,91H DB 00H,0FFH END
7.广告灯实验
ORG 0000H LJMP MAIN ORG 000BH LJMP DELAY ORG 0030H MAIN: MOV DPTR,#TAB MOV R5,#71H MOV R2,#00H MOV R6,#20 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 MOV IE,#82H SJMP $ DELAY: MOV TL0,#0B0H MOV TH0,#2CH
DJNZ R6,LP ACALL STEP MOV R6,#20 DJNZ R5,LP MOV R5,#71H
LP: RETI
STEP: LOOP: MOV A,R2 MOVC A,@A+DPTR MOV P1,A INC R2 DEC R5
编者:方园
RET
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH
DB 0FEH,0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H
DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH
DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H
DB 01H,00H,01H,03H,07H,0FH,1FH,3FH
DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH
DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H
DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH
DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H
DB 80H,40H,20H,10H,08H,04H,02H,01H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H,00H
DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH END
文档为doc格式
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
DSP-C代码优化总结
代码优化总结 在优化一段代码之前,首先要找出这段程序中最消耗时间的那一段程序,对最耗时程序段的优化会带来很大的优化效果收益。 一般而言,这个最耗时的程序一般位于一个循......
代码检查
代码检查 摘要:代码检查是白盒测试的一种静态测试方法,是众多软件测试方法中发现软件缺陷最有效的方法之一。本文结合国内外学者在相关领域的研究情况,介绍代码检查相关的基本......
中学代码
010407师大附中 010301西安市第一中学 010202西安市第八十三中 010527西安中学 010101西安高级中学 碑林区 学校代码学校名称 010101西安高级中学(重点) 010102西工大附中(重点......
部门代码
部门代码 总经理:GMD 行政人事部:AD 技术部:TD 发展部:RDD 宣传部:PD 策划部:SD 工程部:ED 造价部:EC 财务部:ACD 投融资部:FD 战略计划部:SPD 招标合约部:BCD 审计部:ADD 招商部:MD 研......
数据库上机实验总结(含代码)
实验一 (1)无条件单表查询 select sname NAME,'year of birth:' BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT FROM student; (2)有条件单表查询 SELECT sname,sdept,sage......
网站建设基础HTML代码总结
网站建设基础HTML代码总结 1、title “擒贼先擒王”而这个王就是网站的title,网站最关键的就是一个页面中的TITLE,注意,在我们自己一个网站上所有的TITLE不要一模一样,如果是一......
WebService客户端代码生成方式总结
一、Webservice可以使用的框架很多。AXIS、CXF 、JAX、XFIRE,这些框架都可以根据wsdl文件生成ws的服务器和客户端代码。 二、Ws的调用方式有三种,http post、http get、soap p......
flash常用代码总结五篇范文
1、flash停顿多少秒后播放 setInterval()在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码 setTimeout()只执行一次那段代码 两个方法用法一样 1、如......