第一篇:?jiǎn)纹瑱C(jī)-分支程序設(shè)計(jì)教案
一、復(fù)習(xí)上次課內(nèi)容
1、什么是標(biāo)識(shí)符?
答:標(biāo)識(shí)符是程序員選擇的名字,用來標(biāo)識(shí)常量、變量、過程、段名等。
2、什么是偽指令?
答:注釋性的,沒有對(duì)應(yīng)的機(jī)器碼,不令計(jì)算機(jī)做任何操作,不產(chǎn)生目
標(biāo)程序,不影響程序的執(zhí)行。
二、講授新課
4.3分支程序設(shè)計(jì)
在很多實(shí)際問題中,都需要根據(jù)不同的情況進(jìn)行不同的處理。這種
思想體現(xiàn)在程序設(shè)計(jì)中,就是根據(jù)不同條件而轉(zhuǎn)到不同的程序段去執(zhí)行,這就構(gòu)成了分支程序。分支程序的結(jié)構(gòu)有兩種,如圖4.2所示。
圖4.2 分支程序結(jié)構(gòu)
圖4.2(a)結(jié)構(gòu)使用條件轉(zhuǎn)移指令來實(shí)現(xiàn)分支,當(dāng)給出的條件成立時(shí),執(zhí)行程序段A,否則執(zhí)行程序段B。
圖4.2(b)結(jié)構(gòu)使用散轉(zhuǎn)指令JMP來實(shí)現(xiàn)多分支轉(zhuǎn)移,它首先將分支程序按序號(hào)的值來實(shí)現(xiàn)分支轉(zhuǎn)移。
分支程序的特點(diǎn)是改變程序的執(zhí)行順序,跳過一些指令,去執(zhí)行另外一些指令。應(yīng)注意:對(duì)每一個(gè)分支都要單獨(dú)編寫一段程序,每一分支的開始地址賦給一個(gè)標(biāo)號(hào)。
在編寫分支程序時(shí),關(guān)鍵是如何判斷分支的條件。在MCS-51系列單片機(jī)中可以直接用來判斷分支條件的指令并不多,只有累加器為零(或不為零)、比較條件轉(zhuǎn)移指令CJNE等,MCS-51單片機(jī)還提供了位條件轉(zhuǎn)移指令,如JC,JB等。把這些指令結(jié)合在一起使用,就可以完成各種各樣的條件判斷。
【例4-5】設(shè)補(bǔ)碼X放在內(nèi)部RAM30H單元中,函數(shù)Y與X有如下的關(guān)系式:
試編寫程序,根據(jù)X的值求出Y,并放回原單元。
解 取出X后先做取值范圍的判斷,用累加器A狀態(tài)轉(zhuǎn)移指令判斷X是否為0,用位狀態(tài)轉(zhuǎn)移指令判斷X是大于0還是小于0。程序流程圖如圖4.3所示。
程序如下:
MOV A,30H JZ ZER0 JNB ACC.7,PLUS
ADD A,#5 MOV 30H,A PLUS: SJMP $ ZERO: MOV 30H,#20H SJMP $ END 【例4-6】?jī)?nèi)部RAM40H和41H單元中各有一無符號(hào)數(shù),比較其大小,將大數(shù)存放于內(nèi)部RAM60H單元,小數(shù)存放于內(nèi)部RAM61H單元,如兩數(shù)相等,則分別送往這2個(gè)單元。
解 用比較不等轉(zhuǎn)移指令CJNE比較力兩個(gè)無符號(hào)書,先確定它們是否相等,若不相等時(shí)再根據(jù)借位標(biāo)志確定這兩個(gè)無符號(hào)書的大小。程序框圖如圖4.4所示。程序如下:
LOOP:
AGEQ:
SJMP END $
XCH MOV A,61H 60H,A
;A<(41H)有借位
;A與(61H)交換 MOV MOV CJNE AJMP JNC A,40H 61H,41H A,41H,LOOP AGEQ AGEQ
;A≥(41H)則無借位
【例4-8】將ASCII碼制轉(zhuǎn)換為十六進(jìn)制數(shù)。如果不是十六進(jìn)制數(shù)得ASCII碼,用戶標(biāo)志位置1。解:由ASCII碼表知,30H~39H為0~9的ASCII碼,41H~46H為A~F的ASCII碼。在這一范圍的ASCII碼減去37H就可以獲得對(duì)應(yīng)的十六進(jìn)制。設(shè)ASCII碼放在累加器A中,轉(zhuǎn)換結(jié)果放回A中。程序流程圖如圖4.5所示
三、課堂鞏固
四、課堂小結(jié)
五、作業(yè)
第二篇:?jiǎn)纹瑱C(jī)實(shí)驗(yàn)9 多分支程序設(shè)計(jì)
實(shí)驗(yàn)9 多分支程序設(shè)計(jì)
1、實(shí)驗(yàn)內(nèi)容
用P1.0、P1.1控制流水燈的變化
P1.0、P1.1=00燈全滅
P1.0、P1.1=01單燈亮左循環(huán)
P1.0、P1.1=10單燈亮右循環(huán)
P1.0、P1.1=11雙燈亮左循環(huán)
燈亮的時(shí)時(shí)為1秒。用軟件延時(shí)實(shí)現(xiàn)。*用T0定時(shí)選作。
2、實(shí)驗(yàn)步驟
1)打開PV32編程序。匯編正確進(jìn)入調(diào)試界面。否則修改程序重新匯編直到通過。
2)打開P0、P1窗口給
3)調(diào)試燈全滅、單燈亮左循環(huán)、單燈亮右循環(huán)、雙燈亮左循環(huán)程序觀察并記祿寄存器、內(nèi)存的變化。判斷程序是否正確。若發(fā)現(xiàn)問題重返編輯界面,修改、存盤、匯編。返回調(diào)試界面調(diào)試通過。
4)設(shè)斷點(diǎn)調(diào)試主程序觀察并記祿寄存器、內(nèi)存的變化。判斷程序是否正確。若發(fā)現(xiàn)問題重返編輯界面,修改、存盤、匯編。返回調(diào)試界面調(diào)試通過。
首先將P1.0、P1.1置00觀察P2窗口燈是否全滅,然后改變P1.0、1.1的設(shè)置觀察流水燈運(yùn)行是否正確。
5)流水燈運(yùn)行中改變P1.0、1.1看流燈能否隨之變化。若執(zhí)行正確程序通過。否則在每個(gè)流水子程序中加入讀P1口散轉(zhuǎn)子程序。
3.實(shí)驗(yàn)報(bào)告
1.寫出主程序流程圖、子程序流程圖、程序清單
2.根據(jù)記淥數(shù)據(jù)給程序加注解
3.調(diào)試心得
第三篇:分支結(jié)構(gòu)程序設(shè)計(jì)教案
感受分支結(jié)構(gòu)程序的作用
一、教學(xué)目標(biāo) 1.知識(shí)與技能目標(biāo)
(1)理解程序的分支結(jié)構(gòu)。(2)了解編程思路。2.過程與方法目標(biāo)
(1)借助多媒體教學(xué),強(qiáng)化學(xué)生的理解力和注意力。(2)能根據(jù)問題設(shè)計(jì)界面和編寫程序。3.情感、態(tài)度與價(jià)值觀目標(biāo)
(1)讓學(xué)生從無到有的探索過程中感受成功的喜悅。(2)培養(yǎng)學(xué)生探究精神與獨(dú)立操作能力。
二、教學(xué)重點(diǎn)和難點(diǎn) 1.教學(xué)重點(diǎn):
使用visual basic語言的條件語句來實(shí)現(xiàn)分支結(jié)構(gòu),從而解決實(shí)際問題。
2、教學(xué)難點(diǎn):
理解程序中流程的代碼描述。
三、教學(xué)方法
情境教學(xué)法、講授法、任務(wù)驅(qū)動(dòng)法
四、教學(xué)準(zhǔn)備
1、教學(xué)環(huán)境。多媒體網(wǎng)絡(luò)教室。
2、教學(xué)資源。
學(xué)生用機(jī)需要安裝好visual Bastc語言環(huán)境。任務(wù)卡
五、教學(xué)過程
1.創(chuàng)設(shè)情境,導(dǎo)入新課
ppt演示導(dǎo)出課題“分支結(jié)構(gòu)”通過鏈接到“體型判斷”小程序,然后讓同學(xué)們自己推薦同學(xué)來測(cè)試是否偏胖或偏瘦或正常。學(xué)生的興趣度很高,積極的配合。
設(shè)計(jì)意圖:引起學(xué)生興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情,點(diǎn)名課題。2.講授新課
(1)給出標(biāo)準(zhǔn)體重的計(jì)算公式,并簡(jiǎn)介如何評(píng)判體型。
(2)列舉生活中需要進(jìn)行條件選擇的例子來講解,幫學(xué)生理解分支結(jié)構(gòu)程序設(shè)計(jì)的概念。(3)關(guān)系表達(dá)式和邏輯表達(dá)式的簡(jiǎn)介。(4)畫出if語句流程圖,了解簡(jiǎn)單的if語句。
(5)教師操作“體型判斷”的案例,介紹框架控件的使用,編寫部分程序,回憶舊知。
設(shè)計(jì)意圖:師生共同構(gòu)思,寫出“體型判斷”源程序,讓學(xué)生對(duì)分支結(jié)構(gòu)的理解更深刻。
3.布置作業(yè),鞏固提高
以書本上的典型案例“體型判斷”讓學(xué)生操作,有不懂的看書本或任務(wù)卡。(巡回指導(dǎo),及時(shí)幫學(xué)生解決操作過程中存在的問題)
4.歸納總結(jié),加強(qiáng)記憶
先讓學(xué)生們歸納總結(jié)本節(jié)課所學(xué)的內(nèi)容,然后教師總結(jié),讓學(xué)生有一個(gè)更深刻的印象,并強(qiáng)調(diào)應(yīng)注意的幾個(gè)問題。
設(shè)計(jì)意圖:課堂小結(jié)的目的是強(qiáng)化認(rèn)識(shí),可以把課堂傳授的知識(shí)盡快地轉(zhuǎn)化為學(xué)生的知識(shí);簡(jiǎn)單扼要的課堂小結(jié),可使學(xué)生更深刻地理解分支結(jié)構(gòu)程序設(shè)計(jì)在實(shí)際生活中的應(yīng)用。
六、課后反思
整節(jié)課以學(xué)生動(dòng)手為主,學(xué)生的興趣濃厚,課堂充滿活力,能夠達(dá)到預(yù)期目的。學(xué)生基本上都完成了課堂作業(yè),但是已經(jīng)做好的同學(xué)還沒能形成先預(yù)習(xí)下節(jié)課要講的內(nèi)容的好習(xí)慣,總體來說這節(jié)課是相對(duì)成功的。
第四篇:分支程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告[范文模版]
實(shí)驗(yàn)二 二 分支程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康? 1、學(xué)習(xí)分支程序得設(shè)計(jì)方法 2、熟悉在 PC 機(jī)上建立、匯編、連接、調(diào)試與運(yùn)行匯編語言程序得過程 二、實(shí)驗(yàn)環(huán)境:
硬件環(huán)境
IBM/ PC 及其兼容機(jī) 軟件環(huán)境
統(tǒng) 操作系統(tǒng) DO S
編輯程序 EDIT 或其她編輯程序
序程編匯? 匯編程序 M ASM、E XE
連接程序LIN K、EXE 序 調(diào)試程序 DEB UG、EXE 三、實(shí)驗(yàn)內(nèi)容:
:、在屏幕上顯示如下信息:—-— —- ------—-—---— — ------—-Panda
2— —- --— — ---—-—-———-----— —-—--Cat
?
3-——--------------———- -——-Ra bbit
4— — -— —-— — -— —--— — --- —- --——------Pig—— ------—--—--—-—---— —- --—EXI T
(Pl(wèi)ea se
ch oo se 1, 2, 3,4or 5)—- ----入 若輸入 1, 顯示“I like e
p panda ”后程序結(jié)束;若輸入 2, 顯示“I
lik e cat” ”后程序結(jié)束;若輸入 3,顯示“I
lik e rab bit t入 ”后程序結(jié)束;若輸入 4, 顯示“I do n’t l like pig ”后程序結(jié)束;若輸入 5,程序直接結(jié)束;若輸入其它字符,顯示“You
pr ess an error key!“ 后程序結(jié)束.1)流程圖
2)源程序 DATA SEGMENT
INFOR1 DB 0AH,0DH,”1-—-—----—-—Panda:$"
INFOR2 DB 0AH,0DH,”2—-—-——--———Cat:$”
INFOR3 DB 0AH,0DH,"3---—---——-—Rabbit;$”
INFOR4 DB 0AH,0DH,"4---—------—pig:$“
INFOR5 DB 0AH,0DH,”5--—--——--—-EXIT:$"
INFOR6 DB 0AH,0DH,”(please choose 1,2,3,4 or 5——-):$“
INFOR7 DB 0AH,0DH,”I like Panda:$“
INFOR8 DB 0AH,0DH,"I like Cat:$”
INFOR9 DB 0AH,0DH,"I like Rabbit;$"
INFOR10 DB 0AH,0DH,”I like pig:$"
INFOR11 DB 0AH,0DH,”you press an error key!:$” DATA ENDS
;數(shù)據(jù)段結(jié)束 CODE SEGMENT
;代碼段開始 Y Y Y Y N N N N N 開始 選項(xiàng) 用戶輸入 Al=1 Al=2 Al=3 Al=4 Al=5 You press an error key 結(jié)束 I like panda I like cat I like rabbit I like do not
ASSUME
CS:CODE,DS:DATA
;段尋址 START: MOV AX,DATA
;將 dat(yī)a 得數(shù)據(jù)存入ax 中
MOV DS,AX
;為 ds 賦值
MOV DX,OFFSET
INFOR1
;返回變量 INFOR1 段內(nèi)偏移地址【運(yùn)行后在屏幕上顯示字符 1--——--—--—-Panda:】
MOV AH,09H
INT 21H
;執(zhí)行九號(hào)功能調(diào)用
MOV DX,OFFSET
INFOR2
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR3
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR4
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR5
;返回變量 INFOR5 段內(nèi)偏移地址【運(yùn)行后在屏幕上顯示字符 5—-—--——----EXIT:】
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR6
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CMP AL,“1’
JE
Panda
CMP AL,'2’
JE
Cat
CMP AL,”3’
JE
Rabbit
CMP AL,’4'
JE Pig
CMP AL,’5’
JE PEND
JMP Other Panda:
MOV DX,OFFSET INFOR7
MOV AH,09H
INT 21H
JMP PEND Cat:
8ROFNI TESFFO,XD VOM? H90,HA VOM? H12 TNI? JMP PEND Rabbit:
MOV DX,OFFSET INFOR9
MOV AH,09H
H12 TNI?
JMP PEND Pig:
MOV DX,OFFSET INFOR10
H90,HA VOM? INT 21H
JMP PEND Other:
MOV DX,OFFSET INFOR11
MOV AH,09H
H12 TNI?
JMP PEND PEND:
MOV AH,4CH
INT 21H CODE
ENDS
END START
2、、從鍵盤輸入一字符,判斷該字符就是小寫字母、大寫字母、數(shù)字或其它字符.若輸入為小寫字母, 顯示“Y You
I nput a Lo wer case Letter!”;若輸入為大寫字母, 顯示“You Inp ut a Uppercase L et ter!”;若輸入為數(shù)字,顯示“Yo ou Input a Digit!“;
若輸入為其它字符,顯示“You Inpu t
Ot her Let tt er!”。、編程指導(dǎo) 字 數(shù)字 0? ? 9得ASC II 碼為30H? ?39H;大寫字母得 ASCII 碼為 4 1H? ? 5AH,小寫字母得AS CI I碼為61H? ?7AH。本題目將字符分為小寫字母、大寫字母、數(shù)字及其它字符,得 根據(jù)鍵入字符得 AS CII 碼值判斷其所屬類型, 并顯示相應(yīng)得信息 息.字符串顯示使用功能號(hào)為 09H 得 得 DOS 功能調(diào)用, 接收鍵盤輸入得單個(gè)字符使為 用功能號(hào)為 01H 得 得 DOS 功能調(diào)用。
2、流程圖及程序框圖 1)流程圖 2)源程序 DATA SEGMENT
INFOR1 DB 0AH,0DH,”Please Press Any Key to input a letter:$"
INFOR2 DB 0AH,0DH,”You input a lowercase letter!$”
INFOR3 DB 0AH,0DH,“You input a Uppercase letter!
$”
INFOR4 DB 0AH,0DH,"You input a Digit!
$”
INFOR5 DB 0AH,0DH,“You input Other letter!$” DATA ENDS CODE SEGMENT
ASSUME
CS:CODE,DS:DATA START:
MOV AX,DATA
; 顯示信息“Please Press Any Key to input a letter”得指令序列以及接收從鍵盤輸入一個(gè)字符得指令序列
MOV DS,AX
MOV
DX,OFFSET
INFOR1
H90,HA
VOM?
INT
21H
MOV AH,01H
INT 21H Y Y Y Y Y Y 顯示提示信息“Please Press Any Key to input a letter” 及功能號(hào)為 1 得接收鍵盤輸入單個(gè)字符得指令序列 開始 結(jié)束(AL)<’0’(AL)<=’9’(AL)<’A’(AL)<=’Z’(AL)<’a’(AL)<=’z’ 輸入得就是小寫字母,顯示信息 輸入得就是大寫字母,顯示信息 輸入得就是數(shù)字,顯示有關(guān)信息 輸入得就是其它字符,顯示信息
CMP
AL,’0’
JB
OTHER
CMP
AL,’9’
JBE
DIGIT
CMP
AL,’A“
REHTO(shè)
BJ? ”Z',LA
PMC? REPPU
EBJ? CMP
AL,’a’
JB
OTHER
“z',LA
PMC? JBE
LOWER
JMP
PEND LOWER:
;顯示“You Input a Lowercase Letter!”得指令序列
MOV DX,OFFSET INFOR2
H90,HA VOM? INT 21H
出跳序程使應(yīng)后支分個(gè)一完行執(zhí)意注;
DNEP PMJ?UPPER:
; 顯示“You Input a Uppercase Letter”得指令序列 MOV DX,OFFSET INFOR3
H90,HA VOM? H12 TNI? DNEP PMJ?DIGIT:
; 顯示“You Input a Digit!”得指令序列 MOV DX,OFFSET INFOR4
H90,HA VOM? INT 21H
JMP PEND OTHER:
; 顯示“You Input Other Letter!”得指令序列
5ROFNI TESFFO,XD VOM? MOV AH,09H
H12 TNI?PEND:
MOV AH,4CH
H12 TNI?CODE
ENDS
END START
四、心得 通過這次上機(jī)實(shí)驗(yàn), 我掌握了分支程序額設(shè)計(jì)方法, 宏定義及宏調(diào)用得基本方法,了解了小寫字母與大寫字母得ASCII 碼表示及其轉(zhuǎn)換方法,了解了數(shù)字及其她得 字符得 AS CII 碼表示方法, 進(jìn)一步掌握了調(diào)試工具得 使用方法。
第五篇:MATLAB_分支結(jié)構(gòu)程序設(shè)計(jì)答案
MATLAB分支結(jié)構(gòu)程序設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/p>
1.理解MATLAB的編程方法 2.掌握if語句和switch語句的使用 3.掌握分支結(jié)構(gòu)程序設(shè)計(jì)方法
4.通過練習(xí)理解MATLAB編程方法和分支結(jié)構(gòu)程序設(shè)計(jì)方法。
二、實(shí)驗(yàn)環(huán)境
1.計(jì)算機(jī)
2.MATLAB7.0集成環(huán)境
三、實(shí)驗(yàn)說明
1.熟練操作MATLAB7.0運(yùn)行環(huán)境 2.自主編寫程序,必要時(shí)參考相關(guān)資料 3.實(shí)驗(yàn)前應(yīng)寫出程序大致框架或完整的程序代碼 5.實(shí)驗(yàn)學(xué)時(shí):2學(xué)時(shí)
四、實(shí)驗(yàn)內(nèi)容和步驟
1.實(shí)驗(yàn)內(nèi)容
(1)從鍵盤輸入一個(gè)數(shù),將它反向輸出,例如輸入693,輸出為396 >> clear >> format long g s=input('s=')n=fix(log10(s));A=0;for i=1:n a=fix(s/10^n);x=fix(mod(s,10^i)/10.^(i-1));A=A+x*10^(n+1-i);end A+a s=693 s = 693 ans = 396(2)輸入一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)A,B,C,D,E其中90-100位A,80-89為B,70-79為C,60-69為D,60以下為E 1)分別用if語句和switch語句實(shí)現(xiàn)
2)輸入百分制成績(jī)后要判斷成績(jī)的合理性,對(duì)不合理的成績(jī)應(yīng)輸出出錯(cuò)信息 If語句
>> a=input('輸入成績(jī)')if a>=90&a<=100 disp('A 成績(jī)合理');elseif a>=80&a<90 disp('B 成績(jī)合理');elseif a>=70&a<80 disp('C 成績(jī)合理');elseif a>=60&a<70 disp('D 成績(jī)合理');elseif a<60 disp('E 成績(jī)合理');else disp('成績(jī)錯(cuò)誤')end 輸入成績(jī)56 a = 56 E 成績(jī)合理 switch語句
>> a=input('輸入成績(jī)')
switch a;case num2cell(0:59)disp('E 成績(jī)合理');case num2cell(60:69)disp('D 成績(jī)合理');case num2cell(70:79)disp('C 成績(jī)合理');case num2cell(80:89)disp('B 成績(jī)合理');case num2cell(90:100)disp('A 成績(jī)合理');otherwise disp('成績(jī)錯(cuò)誤');end 輸入成績(jī)78 a = 78 C 成績(jī)合理 2.實(shí)驗(yàn)步驟
(1)分析實(shí)驗(yàn)內(nèi)容,寫出程序大致框架或完整的程序代碼。(2)進(jìn)入MATLAB7.0集成環(huán)境。(3)編輯程序并進(jìn)行保存。
(4)運(yùn)行程序,若有錯(cuò)誤,修改錯(cuò)誤后再次運(yùn)行,如此反復(fù)進(jìn)行到不顯示出錯(cuò)為止。
(5)檢查程序輸出結(jié)果。
五、實(shí)驗(yàn)報(bào)告要求1.整理實(shí)驗(yàn)結(jié)果,填入相應(yīng)表格中 2.小結(jié)實(shí)驗(yàn)心得體會(huì)
通過本次實(shí)驗(yàn),我逐漸掌握了點(diǎn)if語句和switch語句的使用,了解了分支結(jié)構(gòu)程序設(shè)計(jì)方法。因?yàn)楸敬螌?shí)驗(yàn)較有難度,所以完成的不是很順利。在分支結(jié)構(gòu)程序設(shè)計(jì)方面還有待加強(qiáng)。