第一篇:順序結(jié)構(gòu)與邏輯運(yùn)算實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn) 2
順序結(jié)構(gòu)與邏輯運(yùn)算
1.實(shí)驗(yàn)?zāi)康暮鸵?(1)掌握數(shù)據(jù)輸入/輸出函數(shù)的使用,能正確使用各種格式轉(zhuǎn)換符。
(2)熟悉順序結(jié)構(gòu)程序中語(yǔ)句的執(zhí)行過(guò)程,并學(xué)會(huì)基本調(diào)試程序方法。
(3)能夠正確使用邏輯運(yùn)算符和邏輯表達(dá)式。
(4)學(xué)會(huì)運(yùn)用邏輯表達(dá)式或關(guān)系表達(dá)式等表示條件。
(5)熟練掌握 if 語(yǔ)句和 switch 語(yǔ)句,掌握條件表達(dá)式構(gòu)成的選擇結(jié)構(gòu)。
(6)熟練掌握跟蹤調(diào)試程序,針對(duì)具體數(shù)據(jù)組織輸入測(cè)試數(shù)據(jù),觀察程序運(yùn)行能否得到預(yù)期的輸出結(jié)果。
(7)學(xué)會(huì)編寫簡(jiǎn)單程序。
2.實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)指導(dǎo)書(shū)中的實(shí)驗(yàn)三和實(shí)驗(yàn)四 3.實(shí)驗(yàn)步 驟及結(jié)果 實(shí)驗(yàn)三部分:
3-1-1 該程序正確的源程序代碼(或窗口截圖):
程序運(yùn)行結(jié)果畫面如下:
3-1-2 該程序正確的源程序代碼(或窗口截圖):
程序運(yùn)行結(jié)果畫面如下:
3-2-1 該程序完整的源程序代碼(或窗口截圖):
程序運(yùn)行結(jié)果畫面如下:
3-2-2 該程序完整的源程序代碼(或窗口截圖):
程序運(yùn)行結(jié)果畫面如下:
3-3 注意:這道程序我們不按書(shū)中提示進(jìn)行,而在 VC 環(huán)境下進(jìn)行調(diào)試。
語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的區(qū)別何在? 語(yǔ)法了 錯(cuò)誤是指編譯的程序中破壞了 C 語(yǔ)言固有的語(yǔ)法規(guī)則,比如缺 少或者多添了一個(gè)字母符號(hào),一個(gè)標(biāo)點(diǎn)符號(hào),或者缺少群頭文件等,導(dǎo)致程序合 無(wú)法編譯和運(yùn)行;邏輯錯(cuò)誤是指代碼符合 C 語(yǔ)言規(guī)范,程序可以運(yùn)行,但是結(jié)果有誤,通常是語(yǔ)句邏輯有誤。
如何啟動(dòng)單步調(diào)試? 點(diǎn)擊【 組建 】
按鈕下的 【 開(kāi)始調(diào)試 】
選項(xiàng),在新出現(xiàn)的對(duì)話框中點(diǎn)擊【 【step into 】按鈕,每條語(yǔ)句便可單獨(dú)執(zhí)行。
要使程序運(yùn)行到“ss=(k…”這一行暫停下來(lái),該如何操作? 光標(biāo) 放在目標(biāo)行前,點(diǎn)擊 項(xiàng)目欄的【remove breakpoint 】程序便可在目標(biāo)處暫停。
怎樣終止調(diào)試狀態(tài)(程序復(fù)位)? 點(diǎn)擊【 【step over 】程序便可 在目標(biāo)處暫停調(diào)試。
單步調(diào)試狀態(tài)下,向下運(yùn)行一條語(yǔ)句的操作方法(分兩種情況回答,第一種,跟蹤到自定義函數(shù)內(nèi)部,第 2 種,不跟蹤到自定義函數(shù)內(nèi)部):1.單擊調(diào)試菜單中的【step into 】跟蹤到自定義函數(shù)內(nèi)部。2.單擊調(diào)試菜單中的【step over 】不跟蹤到自定義函數(shù)內(nèi)部 在本題中,假設(shè)要在運(yùn)行第 2 條語(yǔ)句(即 scanf 語(yǔ)句后),要馬上觀察 i,j,k,ss,m,n 的變量的值,操作方法:于 光標(biāo)放于 scanf 行前,單擊調(diào)試菜單中的【查看】運(yùn)行到 scanf 語(yǔ)句,輸入任意的整形變量的值。請(qǐng)把觀察這些變量時(shí)的畫面粘貼到下面:
通過(guò)這道題單步調(diào)試,你對(duì) i++和++i 及 i—和—i 應(yīng)該有了更直觀的理解,他們的區(qū)別在于:
i++(i--)是 是給 先賦值給 i 再加(減)1 參與運(yùn)算;而++i(--i)是先給變量加(減)1,再用變化的值參與運(yùn)算。
3-4 請(qǐng)回答書(shū)中問(wèn)題 問(wèn)題(1)c1,c2 應(yīng)定義為字符型。
問(wèn)題(2)將 將 c1,c2 定義為字符型用 printf 函數(shù)輸出。
問(wèn)題(3)
在一些情況下可以相互替換,有時(shí)不能替換。這是因?yàn)樽址捅硎镜臄?shù)值范圍在-128~127 之間,而就有符號(hào)基本整形所表示的數(shù)值范圍在-32768~32767 之間,有符號(hào) 短整形的數(shù)值范圍在-32768~32767 之間,還有其它整形的數(shù)值范圍也于字符型不同,但兩者相同的部分可以相互轉(zhuǎn)換。
程序運(yùn)行結(jié)果畫面如下:
3-5 該程序的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
3-7 該程序的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
實(shí)驗(yàn)四
邏輯運(yùn)算和判斷選取控制
4-1-a 該程序正確的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
4-1-b 該程序正確的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
4-1-c 該程序正確的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
4-2-1 該程序完整的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
4-2-2 該程序完整的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
4-3 該程序完整的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
4-4 運(yùn)行結(jié)果畫面:
4-5 該程序的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
*4-6 該程序的源程序代碼(或窗口截圖):
運(yùn)行結(jié)果畫面:
實(shí)驗(yàn)小結(jié) 通過(guò)本次實(shí)驗(yàn)我掌握了函數(shù)的輸入輸出,以及 if 和 switch 的使用,掌握了一些基本的調(diào)試功能,懂得了一些簡(jiǎn)單程序的編寫,會(huì)簡(jiǎn)單追蹤調(diào)試程序,理清了順序結(jié)構(gòu)中語(yǔ)句的執(zhí)行過(guò)程。
第二篇:《計(jì)算機(jī)組成原理》實(shí)驗(yàn)報(bào)告---8位算術(shù)邏輯運(yùn)算實(shí)驗(yàn)
計(jì)算機(jī)專業(yè)類課程
實(shí)驗(yàn)報(bào)告 課程名稱:計(jì)算機(jī)組成原理 學(xué)
院:信息與軟件工程學(xué)院 專
業(yè):軟件工程 學(xué)生姓名: 學(xué)
號(hào): 指導(dǎo)教師:
日
期: 2012 年 12 月 15 日
電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心
電 子 科 技 大 學(xué)
實(shí)
驗(yàn)
報(bào)
告
一、實(shí)驗(yàn)名稱: 8位算術(shù)邏輯運(yùn)算實(shí)驗(yàn)
二、實(shí)驗(yàn)學(xué)時(shí):2
三、實(shí)驗(yàn)內(nèi)容、目的和實(shí)驗(yàn)原理: 實(shí)驗(yàn)?zāi)康模?/p>
1.掌握算術(shù)邏輯運(yùn)算器單元ALU(74LS181)的工作原理。2.掌握模型機(jī)運(yùn)算器的數(shù)據(jù)傳送通路組成原理。3.驗(yàn)證74LS181的組合功能。
4.按給定數(shù)據(jù),完成實(shí)驗(yàn)指導(dǎo)書(shū)中的算術(shù)/邏輯運(yùn)算。
實(shí)驗(yàn)內(nèi)容:
使用模型機(jī)運(yùn)算器,置入兩個(gè)數(shù)據(jù)DR1=35,DR2=48,改變運(yùn)算器的功能設(shè)定,觀察運(yùn)算器的輸出,記錄到實(shí)驗(yàn)表格中,將實(shí)驗(yàn)結(jié)果對(duì)比分析,得出結(jié)論。實(shí)驗(yàn)原理:
1.運(yùn)算器由兩片74LS181以并/串形式構(gòu)成8位字長(zhǎng)的ALU。2.運(yùn)算器的輸出經(jīng)過(guò)一個(gè)三態(tài)門(74LS245)和數(shù)據(jù)總線相連。3.運(yùn)算器的兩個(gè)數(shù)據(jù)輸入端分別由兩個(gè)鎖存器(74LS273)鎖存。4.鎖存器的輸入連至數(shù)據(jù)總線,數(shù)據(jù)開(kāi)關(guān)(INPUT DEVICE)用來(lái)給出參與運(yùn)算的數(shù)據(jù),并經(jīng)過(guò)一三態(tài)門(74LS245)和數(shù)據(jù)總線相連。5.數(shù)據(jù)顯示燈(BUS UNIT)已和數(shù)據(jù)總線相連,用來(lái)顯示數(shù)據(jù)總線內(nèi)容。
實(shí)驗(yàn)器材(設(shè)備、元器件):模型機(jī)運(yùn)算器
四、實(shí)驗(yàn)步驟:
1.仔細(xì)查看試驗(yàn)箱,按以下步驟連線 1)ALUBUS連EXJ3 2)ALU01連BUS1 3)SJ2連UJ2 4)跳線器J23上T4連SD 5)LDDR1,LDDR2,ALUB,SWB四個(gè)跳線器撥在左邊 6)AR跳線器撥在左邊,同時(shí)開(kāi)關(guān)AR撥在“1”電平2.核對(duì)線路,核對(duì)正確后接通電源
3.用二進(jìn)制數(shù)據(jù)開(kāi)關(guān)KD0-KD7向DR1和DR2寄存器置入8位運(yùn)算數(shù)據(jù)。
電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心 ① 調(diào)撥8位數(shù)據(jù)開(kāi)關(guān)KD0-KD7為01100101(35H),準(zhǔn)備向DR1送二進(jìn)制數(shù)據(jù)。
② 數(shù)據(jù)輸出三態(tài)緩沖器門控信號(hào)ALUB=1(關(guān)閉)。③ 數(shù)據(jù)輸入三態(tài)緩沖器門控信號(hào) SWB=0(打開(kāi))。
④ 數(shù)據(jù)鎖存DRi控制信號(hào)LDDR1=1(打開(kāi)),同時(shí),LDDR2=0(關(guān)閉)。
⑤ 打入脈沖信號(hào)T4,將數(shù)據(jù)65H置入DR1。重復(fù)步驟1-5,同理將數(shù)據(jù)A7H置入DR2 4.檢驗(yàn)DR1和DR2置入的數(shù)據(jù)是否正確。
1)
數(shù)據(jù)輸出三態(tài)緩沖器門控信號(hào)ALUB=0(打開(kāi)); 2)數(shù)據(jù)輸入三態(tài)緩沖器門控信號(hào)SWB=1(關(guān)閉); 3)
數(shù)據(jù)鎖存DRi控制信號(hào)LDDR1、LDDR2=0(關(guān)閉)4)
設(shè)置開(kāi)關(guān)M、開(kāi)關(guān)S3、S2、S1、S0 相應(yīng)值
如M=1,S3、S2、S1、S0=1111,驗(yàn)證8位數(shù)據(jù) DR1;S3、S2、S1、S0=1010驗(yàn)證8位數(shù)據(jù)DR2 5.驗(yàn)證74LS181的算術(shù)和邏輯運(yùn)算功能。
1)在給定DR1=65、DR2=A7的情況下,改變算術(shù)邏輯運(yùn)算功能發(fā)生器的功能設(shè)置,觀察運(yùn)算器的輸出。
2)將輸出結(jié)果填入實(shí)驗(yàn)報(bào)告表中,并和理論分析進(jìn)行比較、驗(yàn)證。
6.填寫實(shí)驗(yàn)數(shù)據(jù)。
五、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析(包括各種截圖:實(shí)驗(yàn)過(guò)程截圖、界面截圖、操作截圖、運(yùn)算結(jié)果截圖):
運(yùn)算器數(shù)據(jù)通路圖:
模型機(jī)運(yùn)算器連線及跳線完畢圖:
電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心
實(shí)驗(yàn)數(shù)據(jù)輸出表:
六、實(shí)驗(yàn)結(jié)論、心得體會(huì)和改進(jìn)建議: 通過(guò)這次試驗(yàn),掌握了算術(shù)邏輯運(yùn)算器單元ALU(74LS181)的工作原理,掌握了簡(jiǎn)單運(yùn)算器的數(shù)據(jù)傳送通道,了解了由74LS181等組合邏輯電路的運(yùn)算功能發(fā)生器運(yùn)算功能,能夠按給定數(shù)據(jù),完成實(shí)驗(yàn)指定的算術(shù)/邏輯運(yùn)算。
電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心
第三篇:選擇結(jié)構(gòu)實(shí)驗(yàn)報(bào)告
預(yù)習(xí)報(bào)告
實(shí)驗(yàn)項(xiàng)目:選擇結(jié)構(gòu)程序設(shè)計(jì)
實(shí)驗(yàn)日期:2012年3月26日
實(shí)驗(yàn)原理:利用 if 或switch 語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)程序設(shè)計(jì)
實(shí)驗(yàn)儀器:PC
實(shí)驗(yàn)內(nèi)容及步驟:
內(nèi)容:利用scanf函數(shù)讀入變量x的值,利用if或switch 語(yǔ)句判斷x所在的區(qū)間,并求函數(shù)在x 處的函數(shù)值
步驟:
1、程序設(shè)計(jì):
(1)定義變量;(2)利用scanf給變量x賦值;(3)利用 if 或 switch 判斷x所在范圍執(zhí)行相應(yīng)計(jì)算,以求得函數(shù)在x 處的函數(shù)值;(4)輸出相應(yīng)函數(shù)值
2、輸入程序、調(diào)試并運(yùn)行通過(guò)。
實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)?zāi)康囊螅撼瓕懼笇?dǎo)手冊(cè)上相應(yīng)章節(jié)的目的要求
實(shí)驗(yàn)環(huán)境:windows XPTC或 VC
實(shí)驗(yàn)內(nèi)容:完整抄寫P77頁(yè)4.5小題
實(shí)驗(yàn)步驟:直接寫代碼
實(shí)驗(yàn)結(jié)果:根據(jù)實(shí)驗(yàn)題目自己輸入相應(yīng)值并觀察程序輸出結(jié)果
總結(jié):主要寫出自己在本次實(shí)驗(yàn)中的收獲及不足
第四篇:《順序結(jié)構(gòu)》 教學(xué)設(shè)計(jì)
鹽城中學(xué)
何娟
《順序結(jié)構(gòu)》教學(xué)設(shè)計(jì)
一、教材分析
本節(jié)課是《算法與程序設(shè)計(jì)》(選修)
鹽城中學(xué)
何娟
★
學(xué)習(xí)方法:模仿學(xué)習(xí)、自主探究學(xué)習(xí),小組交流合作學(xué)習(xí)
六、設(shè)計(jì)思想
尊重學(xué)生解決問(wèn)題的思維過(guò)程,模擬學(xué)生的學(xué)習(xí)體驗(yàn)和情感體驗(yàn),在以學(xué)生為主體、教師為主導(dǎo)的架構(gòu)下,搭建以生為本的學(xué)習(xí)的平臺(tái),幫助學(xué)生通過(guò)學(xué)與練,以不斷解決問(wèn)題為手段,一步步完成學(xué)習(xí)任務(wù)。
新課標(biāo)中提出了信息技術(shù)課程要以進(jìn)一步提高學(xué)生信息素養(yǎng)為宗旨,強(qiáng)調(diào)通過(guò)合作解決實(shí)際問(wèn)題,掌握信息技術(shù),感受信息文化,增強(qiáng)信息意識(shí),提高學(xué)生總體的信息素養(yǎng)。而在本節(jié)課中就堅(jiān)持了以教師為主導(dǎo),學(xué)生為主體,發(fā)展能力和提高素質(zhì)為主線的啟發(fā)式教學(xué)思想,努力為學(xué)生創(chuàng)設(shè)了開(kāi)放式的學(xué)習(xí)環(huán)境。
本節(jié)課以一個(gè)簡(jiǎn)單的例子——計(jì)算圖形的周長(zhǎng)、面積并打印為主線介紹順序結(jié)構(gòu)的特點(diǎn)、執(zhí)行過(guò)程和基本思想,并通過(guò)這個(gè)程序抽象出代碼設(shè)計(jì)的四個(gè)基本部分:定義常變量、輸入數(shù)據(jù)、處理數(shù)據(jù)、輸出數(shù)據(jù)。讓學(xué)生通過(guò)模仿學(xué)習(xí)、自主學(xué)習(xí)相結(jié)合的方式編寫程序,發(fā)現(xiàn)問(wèn)題,探究解決問(wèn)題,最后學(xué)會(huì)自我總結(jié)。
七、教學(xué)過(guò)程
1.分組體驗(yàn),導(dǎo)入新課
導(dǎo)入:上節(jié)課我們學(xué)習(xí)了賦值語(yǔ)句,現(xiàn)在屏幕上有三道題目,請(qǐng)同學(xué)選擇其一解答。學(xué)生分組體驗(yàn)程序的運(yùn)行結(jié)果。題一:
Dim a As Integer Dim b As Integer a = a + 1 a = 3 b = a b = b + 1 Print a, b 運(yùn)行結(jié)果:3 4 題二:
Dim a As Integer Dim b As Integer a = 3 a = a + 1 b = a b = b + 1 Print a, b 運(yùn)行結(jié)果:4 5
題三:
Dim a As Integer Dim b As Integer
鹽城中學(xué)
何娟
a = 3 b = a a = a + 1 b = b + 1 Print a, b 運(yùn)行結(jié)果:4 4 教師:經(jīng)過(guò)觀察,我們發(fā)現(xiàn)上述三個(gè)例子中涉及到的語(yǔ)句都是一模一樣的,可是為什么得到結(jié)果不一樣呢?
學(xué)生:順序不同。
教師:對(duì),由于這個(gè)程序的執(zhí)行過(guò)程是按語(yǔ)句書(shū)寫的先后順序一句一句執(zhí)行的,每次給變量賦的值不同,所以得到的結(jié)果不一樣。這種按語(yǔ)句順序執(zhí)行的結(jié)構(gòu)我們成為順序結(jié)構(gòu),在以后的學(xué)習(xí)過(guò)程中我們還將學(xué)習(xí)另外兩種結(jié)構(gòu):分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。分支結(jié)構(gòu)根據(jù)不同的條件判斷來(lái)決定程序執(zhí)行的走向,循環(huán)結(jié)構(gòu)根據(jù)條件判斷,需要重復(fù)執(zhí)行某一段代碼。而順序結(jié)構(gòu)每一條語(yǔ)句執(zhí)行且只執(zhí)行一次,沒(méi)有跳過(guò)某一條語(yǔ)句,也沒(méi)有重復(fù)執(zhí)行某一條語(yǔ)句。老師這里有三幅圖,圖中顯示的路途方式和程序設(shè)計(jì)的三種基本結(jié)構(gòu)非常的類似,同學(xué)們仔細(xì)觀察一下,你能猜出哪一幅圖對(duì)應(yīng)于順序結(jié)構(gòu)嗎?
圖1
圖2
圖3 學(xué)生:圖1
2.學(xué)科遷移,設(shè)計(jì)代碼
鹽城中學(xué)
何娟
教師:這節(jié)課我們著重學(xué)習(xí)順序結(jié)構(gòu)。請(qǐng)看這道題目:已知圓的半徑為1000,編寫程序求解其周長(zhǎng)和面積,并作圖。如果是一道數(shù)學(xué)題,同學(xué)肯定不費(fèi)吹灰之力,可是編程怎么求解呢?同學(xué)可能一時(shí)犯了難,沒(méi)關(guān)系,既然同學(xué)們對(duì)數(shù)學(xué)的解題步驟比較熟悉,我們姑且把把它當(dāng)作一道數(shù)學(xué)題來(lái)解答。首先,我們分析一下,題目中涉及到幾個(gè)變量?哪幾個(gè)?
學(xué)生:三個(gè),半徑、周長(zhǎng)和面積。
教師:和數(shù)學(xué)中一樣,我們分別用r、c、s表示這三個(gè)變量。請(qǐng)一位同學(xué)書(shū)寫相關(guān)語(yǔ)句
學(xué)生操作:
教師:剛才的三個(gè)變量哪些是已知條件?
學(xué)生:半徑
教師:其值是多少?
學(xué)生:1000 教師:好,利用賦值語(yǔ)句給半徑賦值,代碼是?
學(xué)生回答,教師操作:r=1000 教師:此時(shí),我們已經(jīng)知道r的值了,那么如何通過(guò)已知條件求解出c和s呢?請(qǐng)一位同學(xué)在教師機(jī)上演示。
學(xué)生操作:c=2*3.14*r
s=3.14*r*r
(書(shū)寫過(guò)程中若有語(yǔ)法錯(cuò)誤,請(qǐng)其他同學(xué)糾正)設(shè)疑:程序編寫到這里是否行了呢?同學(xué)的意見(jiàn)出現(xiàn)了分歧,都說(shuō)實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),那么我們就讓機(jī)器來(lái)驗(yàn)證吧
教師:程序并沒(méi)有如我們所料想的那樣顯示結(jié)果,事實(shí)證明我們的程序存在一些小問(wèn)題,那究竟是哪里出錯(cuò)了呢?正如同學(xué)們知道的,我們其實(shí)已經(jīng)把周長(zhǎng)和面積的值求出來(lái)了,可是程序?yàn)槭裁床伙@示結(jié)果呢?對(duì)!我們把求出來(lái)的結(jié)果存放在變量c和s中,而對(duì)于用戶而言,并不知道變量c和s的存在,他只關(guān)心屏幕上有沒(méi)有顯示結(jié)果,所以,我們還應(yīng)該打印變量c和s。代碼是?
學(xué)生:print c,s 教師:這樣的代碼已經(jīng)能完成基本功能了,為了使用戶看得更清楚明了,再添加一些說(shuō)明性文字。Print “圓的周長(zhǎng)為”;c Print “圓的面積為”;s 教師:接下來(lái)我們還要作圖。你們平時(shí)是怎么畫圓的?
學(xué)生:用圓規(guī)畫圓,先確定圓心位置,然后確定半徑畫圓。
教師:vb中提供了circle方法可以象圓規(guī)一樣畫圓,請(qǐng)同學(xué)看老師演示代碼
Circle(2000, 2000), 1000其中(2000,2000)是圓心位置,1000是圓半徑。需要說(shuō)明的是,vb中的坐標(biāo)系和數(shù)學(xué)中不同,原點(diǎn)(0,0)的位置為窗口左上角,窗口左邊框?yàn)榭v軸正方向,窗口上邊框?yàn)闄M軸正方向。關(guān)于circle方法我還提供了一個(gè)小資料,同學(xué)們可以根據(jù)小資料修改不同參數(shù)畫出不一樣的圓。
3.現(xiàn)學(xué)現(xiàn)賣,小試牛刀
鹽城中學(xué)
何娟
課堂實(shí)踐一:已知圓的半徑為1000,編寫程序畫出此圓,然后求解其周長(zhǎng)和面積。(提供代碼圖片和circle小資料)
展示學(xué)生程序:老師不但可選成功的程序,也可選取較不成功的作品,但要有典型意義。
4.層層遞進(jìn),探究實(shí)踐
教師:現(xiàn)在我們已經(jīng)能夠求出指定半徑圓的周長(zhǎng)和面積并作圖了,如果我們把這個(gè)程序給用戶使用,他們可能會(huì)想這個(gè)程序只能求半徑為1000的圓,我要是能輸入其他的半徑值就好了,而用戶不一定懂得修改程序代碼,直接修改程序行不通,同學(xué)們能不能想想辦法讓用戶能自己輸入半徑的值?
學(xué)生1:我們可以用文本框
學(xué)生2:還可以用inputbox函數(shù)
教師:那就剛才程序的基礎(chǔ)上修改代碼實(shí)現(xiàn)你的想法吧。
課堂實(shí)踐二:根據(jù)用戶輸入的半徑值求圓的周長(zhǎng)和面積并作圖。解法一:
鹽城中學(xué)
何娟
解法2:
展示學(xué)生程序:演示幾個(gè)學(xué)生的程序,請(qǐng)學(xué)生相互評(píng)價(jià)指出優(yōu)點(diǎn)和不足,教師適當(dāng)點(diǎn)評(píng)。教師總結(jié):一個(gè)完整的代碼通常包括這樣幾個(gè)部分:
1、定義常變量
2、輸入
3、處理
4、輸出
5.課堂小結(jié),提出希望
一直以來(lái),在我們的印象中,編程是件很難的事。但是通過(guò)這節(jié)課的學(xué)習(xí),我們發(fā)現(xiàn)編程也是有章可循的,希望同學(xué)們能喜愛(ài)上編程,讓程序?qū)W習(xí)變成一件快樂(lè)的事,編寫出更多更好的程序,成為
第五篇:順序表的操作實(shí)驗(yàn)報(bào)告
順序表的基本操作
一、實(shí)驗(yàn)?zāi)康?/p>
1、復(fù)習(xí)C++語(yǔ)言程序設(shè)計(jì)中的知識(shí)。
2、熟悉線性表的邏輯結(jié)構(gòu)。
3、熟悉線性表的基本運(yùn)算在兩種存儲(chǔ)結(jié)構(gòu)上的實(shí)現(xiàn)。
4、掌握順序表的存儲(chǔ)結(jié)構(gòu)形式及其描述和基本運(yùn)算的實(shí)現(xiàn)。
5、熟練掌握動(dòng)態(tài)鏈表結(jié)構(gòu)及有關(guān)算法的設(shè)計(jì)
二、實(shí)驗(yàn)內(nèi)容
實(shí)現(xiàn)順序表的建立、取元素、修改元素、插入、刪除等順序表的基本操作。[基本要求](1).依次從鍵盤讀入數(shù)據(jù),建立帶頭結(jié)點(diǎn)的順序表;(2).輸出順序表中的數(shù)據(jù)元素
(3).根據(jù)指定條件能夠取元素和修改元素;(4).實(shí)現(xiàn)在指定位置插入和刪除元素的功能。
三、實(shí)驗(yàn)步驟、調(diào)試及輸出結(jié)果
(—).數(shù)據(jù)結(jié)構(gòu)與核心算法的設(shè)計(jì)描述: #include
/*當(dāng)前的表長(zhǎng)度*/ /*順序表的打?。?/ void PrintList(SeqList *L,int n){int i;printf(“the sqlist isn”);for(i=1;i<=n;i++)printf(“%d ”,L->elem[i]);printf(“n”);}
/*順序表的查找:*/ int LocateList(SeqList *L,int x){int i;i=1;while(((L->elem[i])!=x)&&(i<=10))++i;if((L->elem[i])==x)return(i);else return(0);}
/*順序表的插入:*/ void InsertList(SeqList *L,int x,int i){int j;if(i<1 ||i>L->length+1)printf(“no insert position!n”);else {for(j=L->length;j>=i;j--)L->elem[j+1]=L->elem[j];L->elem[i]=x;L->length++;} } /*順序表的刪除:*/ void DeleteList(SeqList *L,int i){int j;if(i<1 ||i>L->length)printf(“no delete position!n”);else {for(j=i;j<=(L->length)-1;j++)L->elem[j]=L->elem[j+1];L->length--;} } void main(){
SeqList L;int i,x;int n=10;
/*當(dāng)前順序表的長(zhǎng)度*/ L.length=0;CreateList(&L,n);
/*建立順序表*/ PrintList(&L,L.length);
/*輸出順序表*/ printf(“input the research element:”);scanf(“%d”,&x);i=LocateList(&L,x);/*順序表查找*/ printf(“the research position is %dn”,i);printf(“input the position of insert:”);scanf(“%d”,&i);printf(“input the value of insert:”);scanf(“%d”,&x);InsertList(&L,x,i);/*順序表插入*/ PrintList(&L,L.length);
/*輸出順序表*/ printf(“input the position of delete:”);scanf(“%d”,&i);DeleteList(&L,i);/*順序表刪除*/ PrintList(&L,L.length);/*輸出順序表*/ }(二).調(diào)試及輸出結(jié)果 測(cè)試數(shù)據(jù):
1、輸入n個(gè)數(shù);
2、輸出順序列表;
3、順序表的查找;4.順序表的插入;
5、順序表的刪除;
數(shù)據(jù)測(cè)試如下截圖:
四、實(shí)驗(yàn)討論與總結(jié):
通過(guò)這次寫實(shí)驗(yàn)報(bào)告,我深切的理解了這門課的本質(zhì)。剛開(kāi)始學(xué)這門課時(shí),當(dāng)時(shí)還不清楚這門課程的目的,現(xiàn)在,我真正的理解了:數(shù)據(jù)結(jié)構(gòu)像是身體的骨骼。數(shù)據(jù)結(jié)構(gòu)是個(gè)框架,模型,抽象數(shù)據(jù)類型中列舉了各種操作,而所用的C++語(yǔ)言,將各種操作描述出來(lái)構(gòu)成算法。
在這次設(shè)計(jì)的過(guò)程中,我知道了順序表是按順序存儲(chǔ)的,用了一維數(shù)組來(lái)存儲(chǔ),但是,在執(zhí)行時(shí)出現(xiàn)了問(wèn)題。后來(lái)問(wèn)同學(xué),指出我的錯(cuò)誤,不過(guò)獲益不少。我又重新整理思路,把順序表的基本操作寫好了。雖然走了很多彎路,但是讓我認(rèn)識(shí)到,一定要?jiǎng)?chuàng)新,大膽,不能按照舊的思路去干新的事情。
單鏈表寫起來(lái)簡(jiǎn)單多了,這個(gè)很快就搞定了。但是細(xì)節(jié)上出了問(wèn)題。比如說(shuō),有些變量的重復(fù)定義,有些變量又沒(méi)有定義,在調(diào)用函數(shù),就直接復(fù)制過(guò)來(lái),沒(méi)有改參數(shù)……通過(guò)修改,我深刻理解到:細(xì)節(jié)決定成敗,在以后,不管做任何事情都要認(rèn)真,細(xì)心。
這次的實(shí)驗(yàn)報(bào)告,讓我受益匪淺,不僅有知識(shí)方面的,還有生活和精神上的??傊?,我會(huì)繼續(xù)我的興趣編程,相信在編程的過(guò)程中,能不斷的提高自己。