2014-汇编-综合实验报告

2014-汇编-综合实验报告
2014-汇编-综合实验报告

综合实验报告

( 2014 -- 2015 年度第一学期)

名称:《汇编语言程序设计》综合实验题目:

院系:

班级:

学号:

学生姓名:

指导教师:

设计周数:

成绩:

日期:2015 年 1 月 4 日

实验一用表格形式显示字符

一、课程设计(综合实验)的目的与要求

按15*16列的表格形式显示ASCⅡ码为10H—100H的所有字符,即以行为主的顺序及ASCⅡ码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符隔开。

二、设计(实验)正文

(1)显示每个字符可使用功能号为02的显示输出功能调用:

Mov ah,02h

Mov dl,输出字符的ASCⅡ码

Int 21h

将dl初始化为10H,然后使用其加1以取得下一个字符的ASCⅡ码。(2)显示空白符是,用其ASCⅡ码置0入dl寄存器。每行结束时,用回车和换行来结束本行并开始下一行。

(3)由于逐个显示相继的ASCⅡ码字符是,需要不断修改dl寄存器的内容,而显示空白、回车、换行也需要使用dl寄存器,为此可使用堆栈保存dx。

三、实验程序及程序运行结果

DATAS SEGMENT

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

mov ax,10h

mov dx,ax

push dx

next: mov cx,10h

loop1: mov ah,02h;

int 21h

inc dx

push dx

mov dx,0

int 21h

pop dx

loop loop1;

zongji:

push dx

mov dl,13;

int 21h

mov dl,10

int 21h

pop dx

cmp dx,100h

jb next

exit: MOV AH,4CH

INT 21H

CODES ENDS

END START

实验二查找匹配字符串

一、课程设计(综合实验)的目的与要求

程序接受用户键入的一个关键字以及一个句子,如果句子中不包含关键字则显示“No match!”;如果句子中包含关键字则显示“match!”,且把该字在句子中的位置用十六进制数显示出来。要求程序的执行过程如下:

Enter keyword:abc

Enter sentence:we are studying abc

Match at location:11H of the sentence

Enter sentence:xyz

No match!

Enter sentence:

二、设计(实验)正文

程序由三部分组成:

(1)输入关键字和一个句子,分别存入相应的缓冲区中。

(2)在句子中查找关键字

(3)输出信息。用功能调用09h分‘找到’和‘未找到两种情况分别显示不同的信息。在“找到”时,显示关键字在字符串中位置。

三、使用说明

根据提示输入关键字和句子,按回车键结束输入。程序将显示字符串中是否含有关键字,有则提示‘match’并显示关键字位置,无则提示‘no match’。

四、实验程序及运行结果

datasg segment para 'data'

mess1 db 'Enter keyword:','$'

mess2 db 'Enter sentence:','$'

stoknkeyword db 10

act1 db ?

stokn1 db 10 dup(?)

stoknsenten db 50

act2 db ?

stokn2 db 50 dup(?)

mess3 db 'Match at location:','$'

mess4 db 'No match!',0dh,0ah,'$'

mess5 db 'H of the sentence.',0dh,0ah,'$'

mess7 db 0dh,0ah,'$'

flag dw 0

tongji dw 30h

datasg ends

;******************************************************************** codesg segment para 'code'

main proc far

assume cs:codesg,ds:datasg,es:datasg

start::

mov ax,datasg

mov ds,ax

mov es,ax

;

lea dx,mess1 ;输入字符提示

mov ah,09

int 21h

lea dx,stoknkeyword ;输入字符

mov ah,0ah

int 21h

lea dx,mess7 ;输出回车换行

mov ah,09

int 21h

loop1:

mov ax,30h

mov tongji,ax

lea dx,mess2 ;输出输入句子提示

mov ah,09

int 21h

lea dx,stoknsenten ;输入句子

mov ah,0ah

int 21h

lea dx,mess7 ;输入回车换行

mov ah,09

int 21h

;

mov al,act1 ;比较字符长度

cmp al,act2

jg print ;若act1大于act2则跳

lea si,stokn1 ;吧字符地址给si

lea bx,stokn2 ;把句子地址给bx

loop2:

mov di,bx

mov cl,act1

lea si,stokn1

cld

repz cmpsb ;比较句子中有无字符

jz next ;相等则跳到next

inc bx ;移到下一字符比较

dec act2

jnz loop2

test flag,0ffffh ;测试地址有无变化无则输出不匹配jz print

mov dx,tongji

mov ah,02h

int 21h

lea dx,mess7

mov ah,09h

int 21h

jmp loop1

print:

lea dx,mess4 ;输出不匹配语句

mov ah,09

int 21h

mov ah,02h

mov dx,tongji

int 21h

mov ah,09h

lea dx,mess7

int 21h

jmp loop1 ;返回到loop1重新输入句子next:

lea dx,mess3 ;输出匹配句子

mov ah,09h

int 21h

mov flag,bx ;记录此时匹配的地址

push bx ;匹配地址进栈

lea dx,stokn2 ;获取句子地址

sub bx,dx ;获得字符在句子的位置

inc bx

push cx ;字符长度进栈

mov ch,4

rotate:

mov cl,4

rol bx,cl

mov al,bl

and al,0fh

add al,30h

cmp al,3ah

jl print2

add al,7h

print2:

mov dl,al

mov ah,2

int 21h

inc bx

dec ch

jnz rotate ;二进制转换十六进制

pop cx

pop bx

tongge:

mov ax,0

mov ax,tongji

inc ax

mov tongji,ax

lea dx,mess5 ;输出匹配句子

mov ah,09h

int 21h

; mov ah,02h

;mov dx,13

;int 21h

;mov dx,tongji

;int 21h

;lea dx,mess7

;mov ah,09h

;int 21h

tonjijieshu:

inc bx

dec act2 ;句子长度减二

jnz loop2 ;若长度不等于0则转loop2继续寻找匹配

shuchu:

;mov dx,tongji

; mov ah,02h

;int 21h

jmp loop1

main endp

;--------------------------------------------------------------------

codesg ends

;******************************************************************** end start

实验三分类统计字符个数

一、实验要求

程序接受用户键入一行字符(字符个数不超过80个,该字符串用回车

符结束),并按字母、数字、其它字符分类计数,然后将结果存入以letter、

digit和other为名的存储单元中。

二、实验设计

(1)不程序可采用01H功能调用把键入字符先分类计数再存入缓冲区中。

(2)程序进入debug运行并查看计数结果。

三、实验程序及运行结果

Code Segment

Assume CS:Code,DS:Code

; --------------------------------

; 功能:显示指定地址(Str_Addr)的字符串

; 入口:

; Str_Addr=字符串地址(要求在数据段)

; 用法: Output Str_Addr

; 用法举例:Output PromptStr

Output MACRO Str_Addr

lea dx,Str_Addr

mov ah,9

int 21h

EndM

; --------------------------------

; 功能:在当前光标位置显示一个字符

; 入口:dl=要显示的字符

Output_Chr proc Near

push ax

mov ah,02h

int 21h

pop ax

ret

Output_Chr Endp

; --------------------------------

; 功能:显示、输出一个回车、换行

Output_CTLF proc Near

push ax

push dx

mov ah,02h

mov dl,0dh

int 21h

mov dl,0ah

int 21h

pop dx

pop ax

ret

Output_CTLF Endp

; -------------------------------

; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示

; 入口:AX=二进制数

; 出口:在当前光标位置显示转换后的ASCII码数字

Unsi_Dec_ASCII Proc Near

push dx

push bx

push di

mov bx,10

lea di,@@Temp_Save[5]

mov BYTE PTR [di],'$'

dec di

cld

@@Divide: xor dx,dx

div bx

or dl,30h

mov [di],dl

dec di

test ax,ax

jnz @@Divide

inc di

push di

pop dx

mov ah,9

int 21h

pop di

pop bx

pop dx

ret

@@Temp_Save db 6 dup(?)

Unsi_Dec_ASCII EndP

; ---------------------------------; 功能:键盘输入一个字符,若输入的是'y'或'n'(不分大小写),则显示并返回; 入口:无

; 出口:若输入的是'y',进位标志置位;若输入的是'n',进位标志复位。

Yes_or_No proc Near

push dx

push ax

@@Input_Chr: mov ah,7 ;不带回显的键盘输入

int 21h

mov dl,al

and al,0dfh

cmp al,'Y'

jnz $+5

stc

jmp $+7

cmp al,'N'

jnz @@Input_Chr

clc

mov ah,2

int 21h

pop ax

pop dx

ret

Yes_or_No Endp

; --------------------------------Letters dw ? ;字母个数

Dights dw ? ;数字个数

Others dw ? ;其它字符个数

xiao dw ?;小字母

Letters_sum db 13,10,'Letters: $'

Dights_sum db 13,10,'Digits : $'

Others_sum db 13,10,'Others : $'

xiao_sum db 13,10,'xiao: $'

Prompt_Str db 'Please input a string:$'

Prompt_Con db 13,10,13,10,'Continue(Y/N)?$'

Press_Key db 7,13,10,13,10,'The complated. Press any key to exit...$'

Start: push cs

pop ds

push cs

pop es

; --------------------------------

; 从键盘上连续输入一串字符(字符个数不超过80个,该字符串用回车符结束)Input_Str: Output Prompt_Str ;提示输入一串字符

lea dx,Buffer ;输入字符串缓冲区地址

mov ah,0ah ;从键盘接收字符串

int 21h

call Output_CTLF ;输出一个回车、换行

; ---------------------------------

; 按字母、数字、其它字符分类统计计数

lea si,Buffer[1] ;实际输入的字符数地址

lodsb ;读入实际输入的字符数

xor ah,ah

mov cx,ax ;实际输入的字符数送计数器

cmp cx,0

jz Continue

mov Letters,0 ;字母计数单元清零

mov Dights,0 ;数字计数单元清零

mov Others,0 ;其它字符计数单元清零

mov xiao,0

Classify: lodsb ;当前字符→AL

cmp al,'0' ;当前字符<'0'?

jb Other_Chr ;小于,转去按其它字符处理

cmp al,'9' ;当前字符>'9'?

ja $+8 ;大于,转去判断是否字母

inc Dights ;数字计数

jmp Other_Chr[4]

mov ah,al ;al→ah,用于判断是否字母

;and ah,0dfh ;屏蔽第5位,按大写字母处理

zimu:

cmp ah,'A' ;当前字符<'A'?

jb Other_Chr ;小于,转去按其它字符处理

cmp ah,'Z' ;当前字符>'Z'?

ja xiaozimu ;大于,转去按其它字符处理

inc Letters ;字母计数

jmp cher

xiaozimu:

cmp ah,'a'

jb Other_Chr

cmp ah,'z'

ja Other_Chr

inc xiao

jmp cher

Other_Chr:

inc Others ;其它字符计数

cher:

loop Classify

; --------------------------------; 显示分类统计结果

Output Letters_sum

mov ax,Letters ;字母个数

call Unsi_Dec_ASCII ;把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示

Output Dights_sum

mov ax,Dights ;数字个数

call Unsi_Dec_ASCII

Output Others_sum

mov ax,Others ;其它字符个数

call Unsi_Dec_ASCII

Output xiao_sum

mov ax,xiao

call Unsi_Dec_ASCII

Continue:

Output Prompt_Con

call Yes_or_No

jnc Exit_Proc

call Output_CTLF

call Output_CTLF

jmp Input_Str

; -------------------------------------

Exit_Proc: Output Press_Key ;提示操作完成,按任意键结束程序

mov ah,1

int 21h

mov ah,4ch ;结束程序

int 21h

Buffer db 80 ;字符串缓冲区

Code Ends

END Start ;编译到此结束

实验四查找电话号码

一、实验要求

(1)要求程序建立一个可存放50项的电话号码表,每项包括人名及电话号码两部分;(2)程序可接受输入人名及相应的电话号码,并把它们加入电话号码表中;

(3)凡有新的输入后,程序可按人名对电话号码表重新排序;

(4)程序可接受需要查询电话号码的人名,并从电话号码表中查出其电话号码,再在屏幕上以如下格式显示出来。

Name tel

××××××××

二、设计说明

(1)显示提示符’Input name:’;

(2)调用子程序 input_name 接收人名;

(3)调用子程序 stor_name 把人名存入电话号码表 tel_tab 中:

(4)显示提示符’Input a telephone number:’;

(5)调用子程序 inphone 接收电话号码,并把它存入电话号码表tel_tab中;

(6)如输入已结束则调用 name_sort 子程序对电话号码表接人名排序;

(7)显示提示符’Do you want a telephone number ?(Y/N)’;

(8)回答N收退出程序;

(9)回答Y则再显示提示符’name ?’;

(10)调用子程序 input_name接收人名;

(11)调用子程序 name_search 在电话号码表中查找所要的电话号码;

(12)调用子程序 printline 按要求格式显示人名及电话号码;

(13)重复查号提示符直至用户不要求查号为止。

四、实验程序及结果

dataseg segment

namepar label byte

maxnlen db 21

actnlen db ?

_name db 21 dup(?)

phonepar label byte

maxplen db 9

actplen db ?

phone db 9 dup(?)

crlf db 13,10,'$'

endaddr dw ?

mess1 db 'enter name:','$'

mess2 db 'enter a telephone number:','$'

mess3 db 'Do you want a telephone number?(Y/N)','$'

mess4 db 'name?','$'

mess5 db 'name',16 dup(' '),'tel',0dh,0ah,'$'

mess6 db 'Not in the table.',0dh,0ah,'$'

mess7 db 'Invalid input!',0dh,0ah,'$'

count db 0

tel_tab db 50 dup(20 dup(' '),8 dup(' '))

temp db 20 dup(' '),8 dup(' '),0dh,0ah,'$'

swapped db 0

dataseg ends

;******************************************************************** **

codeseg segment

main proc far

assume cs:codeseg,ds:dataseg,es:dataseg

start::

push ds

sub ax,ax

push ax

mov ax,dataseg

mov ds,ax

mov es,ax;

cld

lea di,tel_tab ;di中存放表首地址

inputloop:

mov ah,09h

lea dx,mess1

int 21h

call input_name

cmp actnlen,0 ;没有输入人名时

jz a1 ;直接跳到提示是否查找的地方

cmp count,50 ;输入上限

je a1

call stor_name ;保存人名到tel_tab

mov ah,09h

lea dx,mess2

int 21h

call input_stor_phone ;输入并保存电话号码

jmp inputloop

a1:

cmp count,1

jbe searchloop ;如果没有输入或者输入一个

call name_sort ;排序

call disp_all ;显示所有

searchloop:

lea dx,mess3 ;输出询问句子

mov ah,09h

int 21h

mov ah,01h

int 21h

cmp al,'N'

je exit

cmp al,'n'

je exit

cmp al,'Y'

je showname

cmp al,'y'

je showname

mov ah,09

lea dx,crlf ;回车换行

int 21h

lea dx,mess7 ;非法输入

mov ah,09h

int 21h

jmp searchloop

showname:

mov ah,09

lea dx,crlf

int 21h

lea dx,mess4 ;当输入Y时,显示'name?'

mov ah,09

int 21h

call input_name ;输入要查找的人名

call name_search ;查找

call printline

jmp searchloop

exit:

ret

main endp

;******************************************************

input_name proc near

mov ah,0ah

lea dx,namepar

int 21h ;输入名字

mov dl,0ah

mov ah,02h

int 21h ;换行

mov bh,0 ;bx高位置0

mov bl,actnlen ;bx低位置输入名字个数

mov cx,21

sub cx,bx ;计算剩下的长度

i1:

mov _name[bx],20h

inc bx

loop i1 ;把bx之后剩下的填充空格

ret

input_name endp

;*********************************************************

stor_name proc near

inc count ;有人名输入所以个数加1

cld

lea si,_name ;把si指向刚才输入名字的位置

mov cx,10 ;把name中的前20个字符放入tel_tab中每一个人信息的前20个byte中

rep movsw ;把si所指名字赋值给di所指地方tel_tab

ret

stor_name endp

;*****************************************************

input_stor_phone proc near

mov ah,0ah

lea dx,phonepar

int 21h ;把电话号码存入phonrpar

mov ah,02h

mov dl,0ah ;换行

int 21h

mov bh,0

mov bl,actplen

mov cx,9

sub cx,bx ;计算剩下的长度

s2:

mov phone[bx],20h ;剩下的地方填充空格

inc bx

loop s2

cld

lea si,phone ;再把名字放入之后di就已经移动到名字之后了

mov cx,4 ;把phone中的前8个字符放入tel_tab中每一个人信息的后8个byte中

rep movsw

ret

input_stor_phone endp

;***************************************************************** name_sort proc near

sub di,56 ;di为什么减56

mov endaddr,di

n1:

mov swapped,0

lea si,tel_tab

n2:

mov cx,20

mov di,si

add di,28 ;下一个被比较的名字

mov ax,di

mov bx,si

repe cmpsb ;比较20次

jbe n3 ;小于或等于不用交换

call npxchg

n3:

mov si,ax

cmp si,endaddr

jbe n2

cmp swapped,0

jnz n1

ret

name_sort endp

;*****************************************************

npxchg proc near

mov cx,14 ;交换名字和电话号码

lea di,temp

mov si,bx

rep movsw ;move lower item to save

mov di,bx

rep movsw

mov cx,14

lea si,temp

rep movsw

mov swapped,1

ret

npxchg endp

;************************************************************ disp_all proc near

mov ah,09h

lea dx,mess5

int 21h

lea si,tel_tab

d1:

lea di,temp

mov cx,14

rep movsw

mov ah,09h

lea dx,temp

int 21h

dec count

jnz d1

ret

disp_all endp

;*********************************************

name_search proc near

lea si,tel_tab

mov bx,si

add endaddr,28

e1:

lea di,_name ;存放待查找的人名地址

mov cx,10

repe cmpsw

jcxz exit3 ;相等

add bx,28 ;表中下一个比较的人名

mov si,bx

cmp si,endaddr

jbe e1

mov cx,-1

ret

exit3:

mov si,bx

mov cx,14

rep movsw

ret

name_search endp

;*******************************************************

printline proc near

cmp cx,-1

je norecord

mov ah,09h

lea dx,mess5

int 21h ;输出name和tel

mov ah,09h

lea dx,temp

int 21h ;输出名字和电话号码

ret

norecord:

mov ah,09h

lea dx,mess6

int 21h ;输出没找到

ret

printline endp

;************************************************************ codeseg ends

end start

三、课程设计(综合实验)总结或结论

本次汇编实验历时四个早上,做了四个实验,第一个实验比较简单,通过此实验加深

了我对ASCII的认识和cx寄存器的使用,也近一不了解了汇编环境。第二个实验感觉比较难,分析可能是自己对数据存取在内存中的认识不够深,不能很好的运用,所以调试了一个上午才完成了。第三个实验有了前两个实验的经验,对此实验进行修改时,简单,熟练了一些,能统计出大小写的英文字母。实验四,一个人两个号码的查询没有做出来,调试了一个早上都没有成功,查询完一个后怎么继续查询老是出错。做实验时痛苦的,但做出实验室开心的,同过这次实验,加深了我对汇编语言的了解,实现了从书本到程序的转变。

四、参考文献

[1]沈美明温冬婵张赤红《IBM-PC汇编语言程序设计实验教程》清华大学出版社附录(设计流程图、程序、表格、数据等)

实验四流程图

最优化实验报告

最优化方法 课程设计报告班级:________________ 姓名: ______ 学号: __________ 成绩: 2017年 5月 21 日

目录 一、摘要 (1) 二、单纯形算法 (2) 1.1 单纯形算法的基本思路 (2) 1.2 算法流程图 (3) 1.3 用matlab编写源程序 (4) 二、黄金分割法 (7) 2.1 黄金分割法的基本思路 (7) 2.2 算法流程图 (8) 2.3 用matlab编写源程序 (9) 2.4 黄金分割法应用举例 (11) 三、最速下降法 (11) 3.1 最速下降法的基本思路 (11) 3.2 算法流程图 (13) 3.3 用matlab编写源程序 (13) 3.4 最速下降法应用举例 (13) 四、惩罚函数法 (17) 4.1 惩罚函数法的基本思路 (17) 4.2 算法流程图 (18) 4.3 用matlab编写源程序 (18) 4.4 惩罚函数法应用举例 (19) 五、自我总结 (20) 六、参考文献 (20)

一、摘要 运筹学是一门以人机系统的组织、管理为对象,应用数学和计算机等工具来研究各类有限资源的合理规划使用并提供优化决策方案的科学。通过对数据的调查、收集和统计分析,以及具体模型的建立。收集和统计上述拟定之模型所需要的各种基础数据,并最终将数据整理形成分析和解决问题的具体模型。 最优化理论和方法日益受到重视,已经渗透到生产、管理、商业、军事、决策等各个领域,而最优化模型与方法广泛应用于工业、农业、交通运输、商业、国防、建筑、通信、政府机关等各个部门及各个领域。伴随着计算机技术的高速发展,最优化理论与方法的迅速进步为解决实际最优化问题的软件也在飞速发展。其中,MATLAB软件已经成为最优化领域应用最广的软件之一。有了MATLAB 这个强大的计算平台,既可以利用MATLAB优化工具箱(OptimizationToolbox)中的函数,又可以通过算法变成实现相应的最优化计算。 关键词:优化、线性规划、黄金分割法、最速下降法、惩罚函数法

汇编语言实验报告

汇编语言实验报告 专业: 班级: 姓名: 学号: 2011年12月14日

目录 实验1 利用DEBUG调试汇编语言程序段 (3) 实验2 初级程序的编写与调试实验(一) (11) 实验3 初级程序的编写与调试实验(二) (20) 实验4 汇编语言程序上机过程 (28) 实验5 分支程序实验 (33) 实验6 循环程序实验 (40) 实验7 子程序实验 (45)

实验1 利用DEBUG调试汇编语言程序段一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验内容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗口 2)在命令窗口中输入dubug进入debug程序 3)进入debug窗口后,输入q命令退出debug 2.学会DEBUG中的 1)D命令(显示内存数据D 段地址:偏移地址) 例1:-D100;显示DS段, 0100开始的128个节内容

说明:指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。 ①DSEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容. ② D SEGREG[段地址:偏移地址] ;显示SEGREG段中(缺省内默认为DS), [段地址:偏移地址]开始的[L 长度] (缺省内默认为128)个字节内容 -D ;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节内容 -D CS:200 ;显示CS段, 0200H开始的128个字节内容 -D 200:100 ;显示DS段, 0200:0100H开始的128个字节内容

数据挖掘实验报告

《数据挖掘》Weka实验报告 姓名_学号_ 指导教师 开课学期2015 至2016 学年 2 学期完成日期2015年6月12日

1.实验目的 基于https://www.360docs.net/doc/ba2179886.html,/ml/datasets/Breast+Cancer+WiscOnsin+%28Ori- ginal%29的数据,使用数据挖掘中的分类算法,运用Weka平台的基本功能对数据集进行分类,对算法结果进行性能比较,画出性能比较图,另外针对不同数量的训练集进行对比实验,并画出性能比较图训练并测试。 2.实验环境 实验采用Weka平台,数据使用来自https://www.360docs.net/doc/ba2179886.html,/ml/Datasets/Br- east+Cancer+WiscOnsin+%28Original%29,主要使用其中的Breast Cancer Wisc- onsin (Original) Data Set数据。Weka是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。Weka使用Java写成的,并且限制在GNU通用公共证书的条件下发布。它可以运行于几乎所有操作平台,是一款免费的,非商业化的机器学习以及数据挖掘软件。Weka提供了一个统一界面,可结合预处理以及后处理方法,将许多不同的学习算法应用于任何所给的数据集,并评估由不同的学习方案所得出的结果。 3.实验步骤 3.1数据预处理 本实验是针对威斯康辛州(原始)的乳腺癌数据集进行分类,该表含有Sample code number(样本代码),Clump Thickness(丛厚度),Uniformity of Cell Size (均匀的细胞大小),Uniformity of Cell Shape (均匀的细胞形状),Marginal Adhesion(边际粘连),Single Epithelial Cell Size(单一的上皮细胞大小),Bare Nuclei(裸核),Bland Chromatin(平淡的染色质),Normal Nucleoli(正常的核仁),Mitoses(有丝分裂),Class(分类),其中第二项到第十项取值均为1-10,分类中2代表良性,4代表恶性。通过实验,希望能找出患乳腺癌客户各指标的分布情况。 该数据的数据属性如下: 1. Sample code number(numeric),样本代码; 2. Clump Thickness(numeric),丛厚度;

控制系统仿真与设计实验报告

控制系统仿真与设计实验报告 姓名: 班级: 学号: 指导老师:刘峰 7.2.2控制系统的阶跃响应 一、实验目的 1.观察学习控制系统的单位阶跃响应; 2.记录单位阶跃响应曲线; 3.掌握时间相应的一般方法; 二、实验内容 1.二阶系统G(s)=10/(s2+2s+10)

键入程序,观察并记录阶跃响应曲线;录系统的闭环根、阻尼比、无阻尼振荡频率;记录实际测去的峰值大小、峰值时间、过渡时间,并与理论值比较。 (1)实验程序如下: num=[10]; den=[1 2 10]; step(num,den); 响应曲线如下图所示: (2)再键入: damp(den); step(num,den); [y x t]=step(num,den); [y,t’] 可得实验结果如下:

记录实际测取的峰值大小、峰值时间、过渡时间,并与理论计算值值比较 实际值理论值 峰值 1.3473 1.2975

峰值时间 1.0928 1.0649 过渡时间+%5 2.4836 2.6352 +%2 3.4771 3.5136 2. 二阶系统G(s)=10/(s2+2s+10) 试验程序如下: num0=[10]; den0=[1 2 10]; step(num0,den0); hold on; num1=[10]; den1=[1 6.32 10]; step(num1,den1); hold on; num2=[10]; den2=[1 12.64 10]; step(num2,den2); 响应曲线:

(2)修改参数,分别实现w n1= (1/2)w n0和w n1= 2w n0响应曲线试验程序: num0=[10]; den0=[1 2 10]; step(num0,den0); hold on; num1=[2.5]; den1=[1 1 2.5]; step(num1,den1); hold on; num2=[40]; den2=[1 4 40]; step(num2,den2); 响应曲线如下图所示:

运筹学实验报告

运 筹 学 实 验 报 告 学院:经济管理学院 专业班级:工商11-2班 姓名:石慧婕 学号:311110010207

实验一线性规划 一实验目的 学习WinQSB软件的基本操作,利用Linear Programming功能求解线性规划问题。掌握线性规划的基本理论与求解方法,重点在于单纯形法的应用以及灵敏度分析方法。 二、实验内容 安装WinQSB软件,了解WinQSB软件在Windows环境下的文件管理操作,熟悉软件界面内容,掌握操作命令。利用Linear Programming功能建立线性模型,输入模型,求解模型,并对求解结果进行简单分析。 三实验步骤 1.将WinQSB文件复制到本地硬盘;在WinQSB文件夹中双击setup.exe。 2.指定安装WinQSB软件的目标目录(默认为C:\ WinQSB)。 3.安装过程需要输入用户名和单位名称(任意输入),安装完毕之后,WinQSB菜单自动生成在系统程序中。 4.熟悉WinQSB软件子菜单内容及其功能,掌握操作命令。 5.求解线性规划问题。启动程序开始→程序→WinQSB→Linear and Integer Programming。 某工厂要用三种原材料C、P、H混合调配出三种不同规格的产品A、B、D。已知产品的规格要求,产品单价,每天能供应的原材料数量及原材料单价分别见下表1和2。该厂应如何安排生产,使利润收入为最大? 表1 产品名称规格要求单价(元/kg) A 原材料C不少于50% 原材料P不超过25% 50 B 原材料C不少于25% 原材料P不超过50% 35 D 不限25 表2 原材料名称每天最多供应量(kg)单价(元/kg)

汇编语言综合实验报告

XXXX大学XX学院 实验报告 课程名称:汇编语言 学号: 姓名: 系: 专业: 年级: 指导教师: 职称: 20xx~20xx学年第一学期

实验项目列表 序号实验项目名称成绩指导教师 1 实验一汇编程序的汇编及运行 2 实验二顺序程序设计 3 实验三分支循环程序设计 4 实验四 DOS功能调用 5 实验五子程序设计 总平均

福建农林大学金山学院实验报告 系:专业:年级: 姓名:学号:实验课程:汇编语言 实验室号:__ __ 实验设备号:实验时间: 90分钟 指导教师签字:成绩: 实验一汇编程序的汇编及运行 1.实验目的和要求 (1)熟悉汇编程序的汇编、连接、执行过程 (2)生成LST文件,查看LST文件 (3)生成OBJ文件,修改语法错误 (4)生成EXE文件 (5)执行 2.实验环境 IBM—PC机及其兼容机 实验的软件环境是: 操作系统:DOS 2.0以上;调试程序:https://www.360docs.net/doc/ba2179886.html,;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。 3.实验内容及实验数据记录 (1)将数据段输入,取名1.txt,保存在MASM文件夹下。生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少? DA TA SEGMENT ORG 20H NUM1=8 NUM2=NUM1+10H DA1 DB ‘IBM PC’ DA2 DB 0AH, 0DH COUNT EQU $-DA1

数据挖掘实验报告(一)

数据挖掘实验报告(一) 数据预处理 姓名:李圣杰 班级:计算机1304 学号:1311610602

一、实验目的 1.学习均值平滑,中值平滑,边界值平滑的基本原理 2.掌握链表的使用方法 3.掌握文件读取的方法 二、实验设备 PC一台,dev-c++5.11 三、实验内容 数据平滑 假定用于分析的数据包含属性age。数据元组中age的值如下(按递增序):13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70。使用你所熟悉的程序设计语言进行编程,实现如下功能(要求程序具有通用性): (a) 使用按箱平均值平滑法对以上数据进行平滑,箱的深度为3。 (b) 使用按箱中值平滑法对以上数据进行平滑,箱的深度为3。 (c) 使用按箱边界值平滑法对以上数据进行平滑,箱的深度为3。 四、实验原理 使用c语言,对数据文件进行读取,存入带头节点的指针链表中,同时计数,均值求三个数的平均值,中值求中间的一个数的值,边界值将中间的数转换为离边界较近的边界值 五、实验步骤 代码 #include #include #include #define DEEP 3 #define DATAFILE "data.txt" #define VPT 10 //定义结构体 typedef struct chain{ int num; struct chain *next; }* data; //定义全局变量 data head,p,q; FILE *fp; int num,sum,count=0; int i,j; int *box; void mean(); void medain(); void boundary(); int main () { //定义头指针 head=(data)malloc(sizeof(struc t chain)); head->next=NULL; /*打开文件*/ fp=fopen(DATAFILE,"r"); if(!fp) exit(0); p=head; while(!feof(fp)){

哈工大_控制系统实践_磁悬浮实验报告

研究生自动控制专业实验 地点:A区主楼518房间 姓名:实验日期:年月日斑号:学号:机组编号: 同组人:成绩:教师签字:磁悬浮小球系统 实验报告 主编:钱玉恒,杨亚非 哈工大航天学院控制科学实验室

磁悬浮小球控制系统实验报告 一、实验内容 1、熟悉磁悬浮球控制系统的结构和原理; 2、了解磁悬浮物理模型建模与控制器设计; 3、掌握根轨迹控制实验设计与仿真; 4、掌握频率响应控制实验与仿真; 5、掌握PID控制器设计实验与仿真; 6、实验PID控制器的实物系统调试; 二、实验设备 1、磁悬浮球控制系统一套 磁悬浮球控制系统包括磁悬浮小球控制器、磁悬浮小球实验装置等组成。在控制器的前部设有操作面板,操作面板上有起动/停止开关,控制器的后部有电源开关。 磁悬浮球控制系统计算机部分 磁悬浮球控制系统计算机部分主要有计算机、1711控制卡等; 三、实验步骤 1、系统实验的线路连接 磁悬浮小球控制器与计算机、磁悬浮小球实验装置全部采用标准线连接,电源部分有标准电源线,考虑实验设备的使用便利,在试验前,实验装置的线路已经连接完毕。 2、启动实验装置 通电之前,请详细检察电源等连线是否正确,确认无误后,可接通控制器电源,随后起动计算机和控制器,在编程和仿真情况下,不要启动控制器。 系统实验的参数调试

根据仿真的数据及控制规则进行参数调试(根轨迹、频率、PID 等),直到获得较理想参数为止。 四、实验要求 1、学生上机前要求 学生在实际上机调试之前,必须用自己的计算机,对系统的仿真全部做完,并且经过老师的检查许可后,才能申请上机调试。 学生必须交实验报告后才能上机调试。 2、学生上机要求 上机的同学要按照要求进行实验,不得有违反操作规程的现象,严格遵守实验室的有关规定。 五、系统建模思考题 1、系统模型线性化处理是否合理,写出推理过程? 合理,推理过程: 由级数理论,将非线性函数展开为泰勒级数。由此证明,在平衡点)x ,(i 00对 系统进行线性化处理是可行的。 对式2x i K x i F )(),(=作泰勒级数展开,省略高阶项可得: )x -)(x x ,(i F )i -)(i x ,(i F )x ,F(i x)F(i,000x 000i 00++= )x -(x K )i -(i K )x ,F(i x)F(i,0x 0i 00++= 平衡点小球电磁力和重力平衡,有 (,)+=F i x mg 0 |,δδ===00 i 00 i i x x F(i,x) F(i ,x )i ;|,δδ===00x 00i i x x F(i,x)F (i ,x )x 对2 i F(i,x )K()x =求偏导数得:

运筹学实验报告1

运筹学实验报告(一) 实验要求:学会在Excel 软件中求解。 实验目的:通过小型线性规划模型的计算机求解方法。 熟练掌握并理解所学方法。 实验内容: 题目: 某昼夜服务的公交线路每天各时间区段内所需司机和乘务人员数如下; 设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线 路至少配备多少名司机和乘 务人员。列出这个问题的线 性规划模型。 解:设Xj 表示在第j 时间区段开始上班的司机和乘务人员数 班次 时间 所需人数 1 6:00-10:00 60 2 10:00-14:00 70 3 14:00-18:00 60 4 18:00-22:00 50 5 22:00-2:00 20 6 2:00-6:00 30

。 6-10 10-14 14-18 18-22 22-2 2-6 1 X1--- X1 2 X2--- X2 3 X3--- X3 4 X4--- X4 5 X5--- X5 6 X6 X6--- 60 70 60 50 20 30 所需人 数 Min z=x1+x2+x3+x4+x5+x6 St: x1+x6>=60 X1+x2>=70 X2+x3>=60 X3+x4>=50 X4+x5>=20 X5+x6>=30 Xj>=0,xj为整数, j=1,2,3,4,5,6

过程: 工作表[Book1]Sheet1 报告的建立: 2011-9-28 19:45:01 目标单元格(最小值) 单元格名字初值终值 $B$1 min 0 150 可变单元格 单元格名字初值终值 $B$3 x 0 45 $C$3 x 0 25 $D$3 x 0 35 $E$3 x 0 15 $F$3 x 0 15 $G$3 x 0 15 结果:最优解X=(45,25,35,15,15,15)T 目标函数值z=150 小结:1.计算机计算给规划问题的解答带来方便,让解答变得简洁;

汇编语言综合实验报告

综合性设计性实验报告 班级:计算机科学与技术专2014 级 4 班实验项目名称:循环显示1 0 个数字符号 实验项目性质:综合性 实验所属课程:计算机组成原理与汇编语言 实验室(中心):实验室(4 0 7 ) 指导教师: 实验完成时间: 2016 年 5 月 27

一、实验目的 (1)掌握子程序的定义和调用方法。 (2)掌握子程序的编写方法及参数传递的方法。 二、实验内容及要求 本实验内容主要是编写一个显示过程汇编程序,使得在屏幕上依次显示10 个数字符号,每一行13 个字符,然后循环进行显示。实验要求是在代码段中编写这个过程,并要求用主程序调用该过程。 三、实验设备及软件 实验室(407)电脑一台以及编译器DEBUG MASM LINK软件。 四、设计方案 ㈠题目(老师给定或学生自定) 循环显示10个字符 ㈡设计的主要思路 首先,先定义一个数据段和代码段。数据段内定义一个名称为prl大小为一个字节的字符串,即本人学号。代码段内首先借助段寻址伪指令ASSUME规定好代码段和数据段分别在段寄存器CS、DS。然后start内将数据段段地址放入DS中。接下来定义一个子程序dgdsp,其实现的功能主要是先将bl(字符数目控制)清零,dl(字符范围0-9)赋值为字符0的ascll码。然后定义一个lp循环,循环内调用DOS2号功能显示字符,并bl、dl自增,接着比较dl与字符9的ascll码值的大小,若大于就将dl重置为字符0的ascll码。若小于则跳转到next循环,next循环中主要比较bl与13的大小,若小于则跳转到lp,若大于就进入bbb子程序。bbb子程序主要是先保护DX将其压栈,然后使用DOS9号功能显示prl字符串,最后将DX出栈。然后进入next循环将DX压栈,分别使用DOS0a、02号功能将dl输入显示,最后将DX出栈。分别将bl、al清零,最后跳转到lp子程序继续循环执行。 流程图如下:

数据挖掘实验报告资料

大数据理论与技术读书报告 -----K最近邻分类算法 指导老师: 陈莉 学生姓名: 李阳帆 学号: 201531467 专业: 计算机技术 日期 :2016年8月31日

摘要 数据挖掘是机器学习领域内广泛研究的知识领域,是将人工智能技术和数据库技术紧密结合,让计算机帮助人们从庞大的数据中智能地、自动地提取出有价值的知识模式,以满足人们不同应用的需要。K 近邻算法(KNN)是基于统计的分类方法,是大数据理论与分析的分类算法中比较常用的一种方法。该算法具有直观、无需先验统计知识、无师学习等特点,目前已经成为数据挖掘技术的理论和应用研究方法之一。本文主要研究了K 近邻分类算法,首先简要地介绍了数据挖掘中的各种分类算法,详细地阐述了K 近邻算法的基本原理和应用领域,最后在matlab环境里仿真实现,并对实验结果进行分析,提出了改进的方法。 关键词:K 近邻,聚类算法,权重,复杂度,准确度

1.引言 (1) 2.研究目的与意义 (1) 3.算法思想 (2) 4.算法实现 (2) 4.1 参数设置 (2) 4.2数据集 (2) 4.3实验步骤 (3) 4.4实验结果与分析 (3) 5.总结与反思 (4) 附件1 (6)

1.引言 随着数据库技术的飞速发展,人工智能领域的一个分支—— 机器学习的研究自 20 世纪 50 年代开始以来也取得了很大进展。用数据库管理系统来存储数据,用机器学习的方法来分析数据,挖掘大量数据背后的知识,这两者的结合促成了数据库中的知识发现(Knowledge Discovery in Databases,简记 KDD)的产生,也称作数据挖掘(Data Ming,简记 DM)。 数据挖掘是信息技术自然演化的结果。信息技术的发展大致可以描述为如下的过程:初期的是简单的数据收集和数据库的构造;后来发展到对数据的管理,包括:数据存储、检索以及数据库事务处理;再后来发展到对数据的分析和理解, 这时候出现了数据仓库技术和数据挖掘技术。数据挖掘是涉及数据库和人工智能等学科的一门当前相当活跃的研究领域。 数据挖掘是机器学习领域内广泛研究的知识领域,是将人工智能技术和数据库技术紧密结合,让计算机帮助人们从庞大的数据中智能地、自动地抽取出有价值的知识模式,以满足人们不同应用的需要[1]。目前,数据挖掘已经成为一个具有迫切实现需要的很有前途的热点研究课题。 2.研究目的与意义 近邻方法是在一组历史数据记录中寻找一个或者若干个与当前记录最相似的历史纪录的已知特征值来预测当前记录的未知或遗失特征值[14]。近邻方法是数据挖掘分类算法中比较常用的一种方法。K 近邻算法(简称 KNN)是基于统计的分类方法[15]。KNN 分类算法根据待识样本在特征空间中 K 个最近邻样本中的多数样本的类别来进行分类,因此具有直观、无需先验统计知识、无师学习等特点,从而成为非参数分类的一种重要方法。 大多数分类方法是基于向量空间模型的。当前在分类方法中,对任意两个向量: x= ) ,..., , ( 2 1x x x n和) ,..., , (' ' 2 ' 1 'x x x x n 存在 3 种最通用的距离度量:欧氏距离、余弦距 离[16]和内积[17]。有两种常用的分类策略:一种是计算待分类向量到所有训练集中的向量间的距离:如 K 近邻选择K个距离最小的向量然后进行综合,以决定其类别。另一种是用训练集中的向量构成类别向量,仅计算待分类向量到所有类别向量的距离,选择一个距离最小的类别向量决定类别的归属。很明显,距离计算在分类中起关键作用。由于以上 3 种距离度量不涉及向量的特征之间的关系,这使得距离的计算不精确,从而影响分类的效果。

过程控制系统实验报告

实验一过程控制系统的组成认识实验 过程控制及检测装置硬件结构组成认识,控制方案的组成及控制系统连接 一、过程控制实验装置简介 过程控制是指自动控制系统中被控量为温度、压力、流量、液位等变量在工业生产过程中的自动化控制。本系统设计本着培养工程化、参数化、现代化、开放性、综合性人才为出发点。实验对象采用当今工业现场常用的对象,如水箱、锅炉等。仪表采用具有人工智能算法及通讯接口的智能调节仪,上位机监控软件采用MCGS工控组态软件。对象系统还留有扩展连接口,扩展信号接口便于控制系统二次开发,如PLC控制、DCS控制开发等。学生通过对该系统的了解和使用,进入企业后能很快地适应环境并进入角色。同时该系统也为教师和研究生提供一个高水平的学习和研究开发的平台。 二、过程控制实验装置组成 本实验装置由过程控制实验对象、智能仪表控制台及上位机PC三部分组成。 1、被控对象 由上、下二个有机玻璃水箱和不锈钢储水箱串接,4.5千瓦电加热锅炉(由不锈钢锅炉内胆加温筒和封闭外循环不锈钢锅炉夹套构成),压力容器组成。 水箱:包括上、下水箱和储水箱。上、下水箱采用透明长方体有机玻璃,坚实耐用,透明度高,有利于学生直接观察液位的变化和记录结果。水箱结构新颖,内有三个槽,分别是缓冲槽、工作槽、出水槽,还设有溢流口。二个水箱可以组成一阶、二阶单回路液位控制实验和双闭环液位定值控制等实验。 模拟锅炉:锅炉采用不锈钢精致而成,由两层组成:加热层(内胆)和冷却层(夹套)。做温度定值实验时,可用冷却循环水帮助散热。加热层和冷却层都有温度传感器检测其温度,可做温度串级控制、前馈-反馈控制、比值控制、解耦控制等实验。 压力容器:采用不锈钢做成,一大一小两个连通的容器,可以组成一阶、二阶单回路压力控制实验和双闭环串级定值控制等实验。 管道:整个系统管道采用不锈钢管连接而成,彻底避免了管道生锈的可能性。为了提高实验装置的使用年限,储水箱换水可用箱底的出水阀进行。 2、检测装置 (液位)差压变送器:检测上、下二个水箱的液位。其型号:FB0803BAEIR,测量范围:0~1.6KPa,精度:0.5。输出信号:4~20mA DC。 涡轮流量传感器:测量电动调节阀支路的水流量。其型号:LWGY-6A,公称压力:6.3MPa,精度:1.0%,输出信号:4~20mA DC 温度传感器:本装置采用了两个铜电阻温度传感器,分别测量锅炉内胆、锅炉夹套的温度。经过温度传感器,可将温度信号转换为4~20mA DC电流信号。 (气体)扩散硅压力变送器:用来检测压力容器内气体的压力大小。其型号:DBYG-4000A/ST2X1,测量范围:0.6~3.5Mpa连续可调,精度:0.2,输出信号为4~20mA DC。 3、执行机构 电气转换器:型号为QZD-1000,输入信号为4~20mA DC,输出信号:20~100Ka气压信号,输出用来驱动气动调节阀。 气动薄膜小流量调节阀:用来控制压力回路流量的调节。型号为ZMAP-100,输入信号为4~20mA DC或0~5V DC,反馈信号为4~20mA DC。气源信号 压力:20~100Kpa,流通能力:0.0032。阀门控制精度:0.1%~0.3%,环境温度:-4~+200℃。 SCR移相调压模块:采用可控硅移相触发装置,输入控制信号0~5V DC或4~20mA DC 或10K电位器,输出电压变化范围:0~220V AC,用来控制电加热管加热。 水泵:型号为UPA90,流量为30升/分,扬程为8米,功率为180W。

运筹学线性规划实验报告

《管理运筹学》实验报告实验日期: 2016年 04月 21日—— 2016 年 05 月 18 日

3.在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数级约束条件的歌变量的系数和b值,并选择好“≤”、“≥”或“=”,如图二所示,最后点击解决

4.注意事项: (1)输入的系数可以是整数、小数,但不能是分数,要把分数化为小数再输入。(2)输入前要合并同类项。 当约束条件输入完毕后,请点击“解决”按钮,屏幕上讲显现线性规划问题的结果,如图所示

5.输出结果如下

5.课后习题: 一、P31习题1 某家具公司生产甲、乙两种型号的组合柜,每种组合柜需要两种工艺(制白坯和油漆).甲型号组合柜需要制白坯6工时,油漆8工时:乙型号组合柜需要制白坯12工时,油漆4工时.已知制白坯工艺的生产能力为120工时/天,油漆工艺的生产能力为64工时/天,甲型号组合柜单位利润200元,乙型号组合柜单位利润为240元. 约束条件: 问题: (1)甲、乙两种柜的日产量是多少?这时最大利润是多少? 答:由实验过程中的输出结果得甲组合柜的日产量是4个,乙的事8个。 . 0,0,6448,120126;240200 z max ≥≥≤+≤++=y x y x y x y x

(2)图中的对偶价格13.333的含义是什么? 答: 对偶价格13.333的含义是约束条件2中,每增加一个工时的油漆工作,利润会增加13.33元。 (3)对图中的常数项围的上、下限的含义给予具体说明,并阐述如何使用这些信息。 答:当约束条件1的常数项在48~192围变化,且其他约束条件不变时,约束条件1的对偶价格不变,仍为15.56;当约束条件2的常数项在40~180围变化,而其他约束条件的常数项不变时,约束条件2的对偶价格不然,仍为13.333。 (4)若甲组合柜的利润变为300,最优解不变?为什么? 答:目标函数的最优值会变,因为甲组合柜的利润增加,所以总利润和对偶价格增加;甲、乙的工艺耗时不变,所以甲、乙的生产安排不变。 二、学号题 约束条件: 无约束条件 (学号)学号43214321432143214321 0 0,30 9991285376)(53432max x x x x x x x x x x x x x x x x x x x x z ≤≥≤-+-+≥-+-+=-++-+++=??????????????-≥?-?-?-?-?-7606165060~5154050~414 )30(40~313)20(30~21210 20~11 10~1)(学号)(学号)(学号学号学号)(学号不变学号规则

大学课程汇编语言的实验报告

实验报告 实验课程: 学生姓名: 学号: 专业班级:电气信息类III班 2011年12月20日

目录 (1)汇编语言程序上机过程 (2) (2)字符串处理程序实验 (6) (3)子程序实验 (13) (4)中断程序实验 (21) (5)C++调用汇编子程序 (25)

南昌大学实验报告 ---(1)汇编语言程序上机过程学生姓名:学号:专业班级: 实验类型:□验证■综合□设计□创新实验日期:2011.11.12/13实验成绩:一、实验目的 熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。了解汇编语言程序的汇编、运行环境。 二、实验内容 1.掌握常用的编辑工具软件(如WORD、EDIT)、MASM和LINK的使用; 2.伪指令:SEGMENT,ENDS,ASSUME,END,OFFSET,DUP; 3.利用的INT21H的1号功能实现键盘输入的方法; 三、实验环境 PC微机 DOS操作系统或Windows操作系统 MASM.EXE,LINK.EXE,https://www.360docs.net/doc/ba2179886.html,或宏汇编集成环境 四、实验要求 1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的内容; 2.了解利用的INT21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM文件的区别及用INT21H4C号功能返回系统的方法; 3.阅读下面程序段。 五、主要实验步骤 程序: data segment message db'This is a sample program of keyboard and disply' db0dh,0ah,'Please strike the key!',0dh,0ah,'$' data ends stack segment para stack'stack' db50dup(?) stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax mov dx,offset message mov ah,9 int21h again:mov ah,1

数据挖掘实验报告-关联规则挖掘

数据挖掘实验报告(二)关联规则挖掘 姓名:李圣杰 班级:计算机1304 学号:1311610602

一、实验目的 1. 1.掌握关联规则挖掘的Apriori算法; 2.将Apriori算法用具体的编程语言实现。 二、实验设备 PC一台,dev-c++5.11 三、实验内容 根据下列的Apriori算法进行编程:

四、实验步骤 1.编制程序。 2.调试程序。可采用下面的数据库D作为原始数据调试程序,得到的候选1项集、2项集、3项集分别为C1、C2、C3,得到的频繁1项集、2项集、3项集分别为L1、L2、L3。

代码 #include #include #define D 4 //事务的个数 #define MinSupCount 2 //最小事务支持度数 void main() { char a[4][5]={ {'A','C','D'}, {'B','C','E'}, {'A','B','C','E'}, {'B','E'} }; char b[20],d[100],t,b2[100][10],b21[100 ][10]; int i,j,k,x=0,flag=1,c[20]={0},x1=0,i1 =0,j1,counter=0,c1[100]={0},flag1= 1,j2,u=0,c2[100]={0},n[20],v=1; int count[100],temp; for(i=0;i=MinSupCount) { d[x1]=b[k]; count[x1]=c[k]; x1++; } } //对选出的项集中的元素进行排序 for(i=0;i

自动控制系统实验报告

自动控制系统实验报告 学号: 班级: 姓名: 老师:

一.运动控制系统实验 实验一.硬件电路的熟悉和控制原理复习巩固 实验目的:综合了解运动控制实验仪器机械结构、各部分硬件电路以及控制原理,复习巩固以前课堂知识,为下阶段实习打好基础。 实验内容:了解运动控制实验仪的几个基本电路: 单片机控制电路(键盘显示电路最小应用系统、步进电机控制电路、光槽位置检测电路) ISA运动接口卡原理(搞清楚译码电路原理和ISA总线原理) 步进电机驱动检测电路原理(高低压恒流斩波驱动电路原理、光槽位置检测电路)两轴运动十字工作台结构 步进电机驱动技术(掌握步进电机三相六拍、三相三拍驱动方法。) 微机接口技术、单片机原理及接口技术,数控轮廓插补原理,计算机高级语言硬件编程等知识。 实验结果: 步进电机驱动技术: 控制信号接口: (1)PUL:单脉冲控制方式时为脉冲控制信号,每当脉冲由低变高是电机走一步;双 脉冲控制方式时为正转脉冲信号。 (2)DIR:单脉冲控制方式时为方向控制信号,用于改变电机转向;双脉冲控制方式 时为反转脉冲信号。

(3)OPTO :为PUL 、DIR 、ENA 的共阳极端口。 (4)ENA :使能/禁止信号,高电平使能,低电平时驱动器不能工作,电机处于自由状 态。 电流设定: (1)工作电流设定: (2)静止电流设定: 静态电流可用SW4 拨码开关设定,off 表示静态电流设为动态电流的一半,on 表示静态电流与动态电流相同。一般用途中应将SW4 设成off ,使得电机和驱动器的发热减少,可靠性提高。脉冲串停止后约0.4 秒左右电流自动减至一半左右(实际值的60%),发热量理论上减至36%。 (3)细分设定: (4)步进电机的转速与脉冲频率的关系 电机转速v = 脉冲频率P * 电机固有步进角e / (360 * 细分数m) 逐点比较法的直线插补和圆弧插补: 一.直线插补原理: 如图所示的平面斜线AB ,以斜线起点A 的坐标为x0,y0,斜线AB 的终点坐标为(xe ,ye),则此直线方程为: 00 00Y Ye X Xe Y Y X X --= -- 取判别函数F =(Y —Y0)(Xe —Xo)—(X-X0)(Ye —Y0)

运筹学指派问题的匈牙利法实验报告

运筹学 课 程 设 计 报 告 专业: 班级: 学号: : 2012年6月20日

目录 一、题目。 二、算法思想。 三、算法步骤。 四、算法源程序。 五、算例和结果。 六、结论与总结。

一、题目:匈牙利法求解指派问题。 二、算法思想。 匈牙利解法的指派问题最优解的以下性质: 设指派问题的系数矩阵为C=()c ij n n?,若将C的一行(或列)各元素分别减去一个常数k(如该行或列的最小元素),则得到一个新的矩阵C’=()'c ij n n?。那么,以C’位系数矩阵的指派问题和以C位系数矩阵的原指派问题有相同最优解。 由于系数矩阵的这种变化不影响约束方程组,只是使目标函数值减少了常 数k,所以,最优解并不改变。必须指出,虽然不比要求指派问题系数矩阵中无 负元素,但在匈牙利法求解指派问题时,为了从以变换后的系数矩阵中判别能否 得到最优指派方案,要求此时的系数矩阵中无负元素。因为只有这样,才能从总 费用为零这一特征判定此时的指派方案为最优指派方案。 三、算法步骤。 (1)变换系数矩阵,使各行和各列皆出现零元素。 各行及各列分别减去本行及本列最小元素,这样可保证每行及每列中都有 零元素,同时,也避免了出现负元素。 (2)做能覆盖所有零元素的最少数目的直线集合。

因此,若直线数等于n,则以可得出最优解。否则,转第(3)步。 对于系数矩阵非负的指派问题来说,总费用为零的指派方案一定是最优指派方案。在第(1)步的基础上,若能找到n个不同行、不同列的零元素,则对应的指派方案总费用为零,从而是最优的。当同一行(或列)上有几个零元素时,如选择其一,则其与的零元素就不能再被选择,从而成为多余的。因此,重要的是零元素能恰当地分布在不同行和不同列上,而并在与它们的多少。但第(1)步并不能保证这一要求。若覆盖所有零元素的最少数目的直线集合中的直线数目是n,则表明能做到这一点。 此时,可以从零元素的最少的行或列开始圈“0”,每圈一个“0”,同时把位于同行合同列的其他零元素划去(标记为),如此逐步进行,最终可得n个位于不同行、不同列的零元素,他们就对应了最优解;若覆盖所有零元素的最少数目的直线集合中的元素个数少于n,则表明无法实现这一点。需要对零元素的分布做适当调整,这就是第(3)步。 (3)变换系数矩阵,是未被直线覆盖的元素中出现零元素。回到第(2)步。 在未被直线覆盖的元素中总有一个最小元素。对未被直线覆盖的元素所在的行(或列)中各元素都减去这一最小元素,这样,在未被直线覆盖的元素中势必会出现零元素,但同时却又是以被直线覆盖的元素中出现负元素。为了消除负元素,只要对它们所在的列(或行)中个元素都加上这一最小元素(可以看作减去这一最小元素的相反数)即可。 四、算法源程序。

大数据挖掘weka大数据分类实验报告材料

一、实验目的 使用数据挖掘中的分类算法,对数据集进行分类训练并测试。应用不同的分类算法,比较他们之间的不同。与此同时了解Weka平台的基本功能与使用方法。 二、实验环境 实验采用Weka 平台,数据使用Weka安装目录下data文件夹下的默认数据集iris.arff。 Weka是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。Weka使用Java 写成的,并且限制在GNU通用公共证书的条件下发布。它可以运行于几乎所有操作平台,是一款免费的,非商业化的机器学习以及数据挖掘软件。Weka提供了一个统一界面,可结合预处理以及后处理方法,将许多不同的学习算法应用于任何所给的数据集,并评估由不同的学习方案所得出的结果。 三、数据预处理 Weka平台支持ARFF格式和CSV格式的数据。由于本次使用平台自带的ARFF格式数据,所以不存在格式转换的过程。实验所用的ARFF格式数据集如图1所示 图1 ARFF格式数据集(iris.arff)

对于iris数据集,它包含了150个实例(每个分类包含50个实例),共有sepal length、sepal width、petal length、petal width和class五种属性。期中前四种属性为数值类型,class属性为分类属性,表示实例所对应的的类别。该数据集中的全部实例共可分为三类:Iris Setosa、Iris Versicolour和Iris Virginica。 实验数据集中所有的数据都是实验所需的,因此不存在属性筛选的问题。若所采用的数据集中存在大量的与实验无关的属性,则需要使用weka平台的Filter(过滤器)实现属性的筛选。 实验所需的训练集和测试集均为iris.arff。 四、实验过程及结果 应用iris数据集,分别采用LibSVM、C4.5决策树分类器和朴素贝叶斯分类器进行测试和评价,分别在训练数据上训练出分类模型,找出各个模型最优的参数值,并对三个模型进行全面评价比较,得到一个最好的分类模型以及该模型所有设置的最优参数。最后使用这些参数以及训练集和校验集数据一起构造出一个最优分类器,并利用该分类器对测试数据进行预测。 1、LibSVM分类 Weka 平台内部没有集成libSVM分类器,要使用该分类器,需要下载libsvm.jar并导入到Weka中。 用“Explorer”打开数据集“iris.arff”,并在Explorer中将功能面板切换到“Classify”。点“Choose”按钮选择“functions(weka.classifiers.functions.LibSVM)”,选择LibSVM分类算法。 在Test Options 面板中选择Cross-Validatioin folds=10,即十折交叉验证。然后点击“start”按钮:

相关文档
最新文档