版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章
如何用計(jì)算機(jī)解決問(wèn)題1.1
計(jì)算機(jī)解決問(wèn)題的過(guò)程1.1
計(jì)算機(jī)解決問(wèn)題的過(guò)程程序設(shè)計(jì)語(yǔ)言軟件程序設(shè)計(jì)程序什么是程序
計(jì)算機(jī)的任何動(dòng)作都是在執(zhí)行人給它的指令。人們針對(duì)某一需要而為計(jì)算機(jī)編制的指令序列稱(chēng)為程序。解決問(wèn)題或完成任務(wù)什么是程序設(shè)計(jì)
尋求解決問(wèn)題的方法,并將其實(shí)現(xiàn)步驟編寫(xiě)成計(jì)算機(jī)可以執(zhí)行的程序的過(guò)程。程序設(shè)計(jì)語(yǔ)言用于書(shū)寫(xiě)計(jì)算機(jī)程序的語(yǔ)言稱(chēng)為程序設(shè)計(jì)語(yǔ)言。如vb、c、c++、pascal等程序設(shè)計(jì)語(yǔ)言的發(fā)展程序設(shè)計(jì)語(yǔ)言發(fā)展經(jīng)歷了機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言的過(guò)程。書(shū)本P11。機(jī)器語(yǔ)言是用“0”和“1”二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合,執(zhí)行速度快但是非常難于記憶和識(shí)別。它是第一代的計(jì)算機(jī)語(yǔ)言。機(jī)器語(yǔ)言對(duì)不同型號(hào)的計(jì)算機(jī)來(lái)說(shuō)一般是不同的。程序設(shè)計(jì)語(yǔ)言的發(fā)展匯編語(yǔ)言(符號(hào)語(yǔ)言)是用一些簡(jiǎn)潔的英文字母、符號(hào)串來(lái)替代一個(gè)特定的指令中的二進(jìn)制串。匯編語(yǔ)言的長(zhǎng)處在于編寫(xiě)高效且需要對(duì)機(jī)器硬件精確控制的程序(例如可直接訪(fǎng)問(wèn)與硬件相關(guān)的存儲(chǔ)器或I/O端口)。缺點(diǎn):匯編源程序一般比較冗長(zhǎng)、復(fù)雜、容易出錯(cuò),而且使用匯編語(yǔ)言編程需要有更多的計(jì)算機(jī)專(zhuān)業(yè)知識(shí)。程序設(shè)計(jì)語(yǔ)言的發(fā)展高級(jí)語(yǔ)言:機(jī)器語(yǔ)言和匯編語(yǔ)言是面向機(jī)器的語(yǔ)言,高級(jí)語(yǔ)言采用更接近自然語(yǔ)言的命令或語(yǔ)句。使用高級(jí)語(yǔ)言編程,一般不必了解計(jì)算機(jī)的指令系統(tǒng)和硬件結(jié)構(gòu),只需掌握解題方法和高級(jí)語(yǔ)言的語(yǔ)法規(guī)則,就可以編寫(xiě)程序。例如:c,c++,pascal,Java……高級(jí)語(yǔ)言
用高級(jí)語(yǔ)言編制的源程序計(jì)算機(jī)無(wú)法識(shí)別,必須通過(guò)轉(zhuǎn)換為機(jī)器語(yǔ)言才能被計(jì)算機(jī)執(zhí)行。轉(zhuǎn)換方式有編譯方式和解釋方式兩種。高級(jí)語(yǔ)言1.編譯方式:源程序的執(zhí)行分兩步:編譯和運(yùn)行。即先通過(guò)一個(gè)存放在計(jì)算機(jī)內(nèi)的編譯程序,把源程序全部翻譯成一段機(jī)器語(yǔ)言目標(biāo)程序代碼,然后計(jì)算機(jī)再運(yùn)行此目標(biāo)代碼,以完成源程序要處理的運(yùn)算任務(wù)并取得結(jié)果。2.解釋方式:源程序輸入到計(jì)算機(jī)后,解釋程序?qū)⒃闯绦蛑鹁浞g,翻譯一句執(zhí)行一句,邊翻譯邊執(zhí)行,不產(chǎn)生目標(biāo)程序。高級(jí)語(yǔ)言的優(yōu)點(diǎn)1.高級(jí)語(yǔ)言接近自然語(yǔ)言,易學(xué)、易掌握,一般工程技術(shù)人員只要幾周時(shí)間的培訓(xùn)就可以勝任程序員的工作;2.高級(jí)語(yǔ)言為程序員提供了結(jié)構(gòu)化程序設(shè)計(jì)的環(huán)境和工具,使得設(shè)計(jì)出來(lái)的程序可讀性好,可維護(hù)性強(qiáng),可靠性高;3.高級(jí)語(yǔ)言遠(yuǎn)離機(jī)器語(yǔ)言,與具體的計(jì)算機(jī)硬件關(guān)系不大,因而所寫(xiě)出來(lái)的程序可移植性好,重用率高;4.由于把繁雜瑣碎的事務(wù)交給了編譯程序去做,所以自動(dòng)化程度高,開(kāi)發(fā)周期短,且程序員得到解脫,可以集中時(shí)間和精力去從事對(duì)于他們來(lái)說(shuō)更為重要的創(chuàng)造性勞動(dòng),以提高程序的質(zhì)量。高級(jí)語(yǔ)言的優(yōu)點(diǎn)小結(jié)程序設(shè)計(jì)語(yǔ)言的發(fā)展過(guò)程機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言人是如何解決問(wèn)題的例子:
我國(guó)漢代有一位大將,名叫韓信。他每次集合部隊(duì),都要求部下報(bào)三次數(shù),第一次按1~3報(bào)數(shù),第二次按1~5報(bào)數(shù),第三次按1~7報(bào)數(shù),每次報(bào)數(shù)后都要求最后一個(gè)人報(bào)告他報(bào)的數(shù)是幾,這樣韓信就知道一共到了多少人。他的這種巧妙算法,人們稱(chēng)為“鬼谷算”、“隔墻算”、“秦王暗點(diǎn)兵”等。
中國(guó)有一本數(shù)學(xué)古書(shū)「孫子算經(jīng)」也有類(lèi)似的問(wèn)題:「今有物,不知其數(shù),三三數(shù)之,剩二,五五數(shù)之,剩三,七七數(shù)之,剩二,問(wèn)物幾何?」書(shū)本P4。分析問(wèn)題求滿(mǎn)足以下條件的最小正整數(shù)(在100以?xún)?nèi)查詢(xún))1、被3除余22、被5除余33、被7除余2人是如何解決問(wèn)題的解決問(wèn)題算法1:從1開(kāi)始,取出一個(gè)自然數(shù)判斷它被3、5、7整除后的余數(shù)是否為2、3、2,如果是,則這個(gè)數(shù)即是所求的數(shù),求解結(jié)束。否則,用下一個(gè)數(shù)再試,直到找到這個(gè)數(shù)為止。人是如何解決問(wèn)題的金庸先生曾在作品《射雕英雄傳》引用過(guò)此段。[引文《射雕英雄傳》第三十一回]
瑛姑待她寫(xiě)出最后一項(xiàng)答數(shù),不由得嘆道:“這中間果然機(jī)妙無(wú)窮?!鳖D了頓,說(shuō)道:“這第三道題呢,說(shuō)易是十分容易,說(shuō)難卻又難到了極處?!裼形锊恢鋽?shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問(wèn)物幾?’我知道這是二十三,不過(guò)那是硬湊出來(lái)的,要列一個(gè)每數(shù)皆可通用的算式,卻是想破了腦袋也想不出?!秉S蓉笑道:“這容易得緊。以三三數(shù)之,余數(shù)乘以七十;五五數(shù)之,余數(shù)乘以二十一;七七數(shù)之,余數(shù)乘十五。三者相加,如不大于一百零五,即為答數(shù);否則須減去一百零五或其倍數(shù)?!辩迷谛闹斜P(pán)算了一遍,果然絲毫不錯(cuò),低聲記誦道:“三三數(shù)之,余數(shù)乘以七十;五五數(shù)之……”黃蓉道:“也不用這般硬記,我念一首詩(shī)給你聽(tīng),那就容易記了:三人同行七十稀,五樹(shù)梅花廿一枝,七子團(tuán)圓正半月,余百零五便得知?!边@首詩(shī)的意思是:用3除所得的余數(shù)乘上70,加上用5除所得余數(shù)乘以21,再加上用7除所得的余數(shù)乘上15,結(jié)果大于105就減去105的倍數(shù),這樣就知道所求的數(shù)了。解決問(wèn)題算法2:1.先找出能被5和7整除而被3除余1的數(shù)——70;2.再找出能被3和7整除而被5除余1的數(shù)——21;3.最后找出能被3和5整除而被7除余1的數(shù)——15;4.求出3、5和7的最小公倍數(shù)是105;5.應(yīng)用公式計(jì)算
70×2+21×3+15×2-105k即:當(dāng)總數(shù)在100以?xún)?nèi)時(shí)為
70×2+21×3+15×2-105×2人解決問(wèn)題的一般過(guò)程觀察問(wèn)題→分析問(wèn)題→腦中收集信息→根據(jù)已有的知識(shí)、經(jīng)驗(yàn)判斷、推理→采用方法和步驟解決簡(jiǎn)單地概括⑴明確問(wèn)題⑵提出假設(shè)⑶驗(yàn)證假設(shè)計(jì)算機(jī)解決問(wèn)題的過(guò)程書(shū)本P3圖1-2人類(lèi)解決問(wèn)題和計(jì)算機(jī)解決問(wèn)題的區(qū)別?書(shū)本P3小結(jié)1、計(jì)算機(jī)如何解決問(wèn)題。2、人類(lèi)解決問(wèn)題和計(jì)算機(jī)解決問(wèn)題的異同點(diǎn)。
第一章
如何用計(jì)算機(jī)解決問(wèn)題1.2算法描述與設(shè)計(jì)1.2算法描述與設(shè)計(jì)世界上最早的算法。書(shū)本P5什么是算法?算法是解決問(wèn)題的方法和步驟。解決問(wèn)題的過(guò)程就是實(shí)現(xiàn)算法的過(guò)程。1.2.1算法是“靈魂”著名的計(jì)算機(jī)科學(xué)家尼克勞斯?沃思指出
算法+數(shù)據(jù)結(jié)構(gòu)=程序數(shù)據(jù)結(jié)構(gòu)是一門(mén)專(zhuān)門(mén)的課程,主要研究數(shù)據(jù)之間的關(guān)系特點(diǎn)。數(shù)據(jù)結(jié)構(gòu)的類(lèi)型會(huì)影響算法的選擇。算法獨(dú)立于任何具體的程序設(shè)計(jì)語(yǔ)言,一個(gè)算法可以用多種程序設(shè)計(jì)語(yǔ)言來(lái)實(shí)現(xiàn)。算法不能單獨(dú)構(gòu)成程序,它必須和數(shù)據(jù)結(jié)構(gòu)合二為一?!绊n信點(diǎn)兵問(wèn)題”有不同的求解過(guò)程,就有不同的算法。1.2.1算法是“靈魂”算法不僅僅用來(lái)解決數(shù)字計(jì)算的問(wèn)題,還存在于人們的生活當(dāng)中……打電話(huà)的流程計(jì)算機(jī)在解決問(wèn)題的過(guò)程中需要用到的算法,不但要解決數(shù)字計(jì)算的問(wèn)題,還要對(duì)各種情況進(jìn)行判斷,對(duì)人機(jī)交互進(jìn)行處理。拿起聽(tīng)筒撥號(hào)忙音通了把聽(tīng)筒放下通話(huà)結(jié)束把聽(tīng)筒放下等會(huì)兒再撥無(wú)人接聽(tīng)把聽(tīng)筒放下等會(huì)兒再撥1.2.1算法是“靈魂”算法是在有限步驟內(nèi)求解某一問(wèn)題所使用的一組定義明確的規(guī)則。就是計(jì)算機(jī)解題的過(guò)程。在這個(gè)過(guò)程中,無(wú)論是形成解題思路還是編寫(xiě)程序,都是在實(shí)施某種算法。前者是推理實(shí)現(xiàn)的算法,后者是操作實(shí)現(xiàn)的算法。算法具有什么特征?1.2.1算法是“靈魂”例:計(jì)算1+2+3+……+100=?書(shū)本P6分析:這個(gè)算法有限制范圍,可以在有限時(shí)間內(nèi)完成,這是算法的第一個(gè)特征:有窮性。計(jì)算此算法可以用紙筆、算盤(pán)、計(jì)算器和計(jì)算機(jī)來(lái)完成,且計(jì)算過(guò)程是多樣的,但結(jié)果是唯一的。這就是算法的可行性、確定性。計(jì)算方法:⑴把這100個(gè)數(shù)按順序相加。⑵用湊數(shù)法:1+99=100,2+98=100,3+97=100,……,49+51,最后只剩下50和100。⑶計(jì)算機(jī)計(jì)算法:迭代法。算法的另外兩個(gè)特征:輸入、輸出。算法的特征一個(gè)算法應(yīng)該具有以下五個(gè)重要的特征:書(shū)本P51、有窮性:一個(gè)算法必須保證執(zhí)行有限步之后結(jié)束;2、確定性:算法的每一步驟必須有確切的定義;3、輸入:一個(gè)算法有0個(gè)或多個(gè)輸入,以刻畫(huà)運(yùn)算對(duì)象的初始情況;4、輸出:一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對(duì)輸入數(shù)據(jù)加工后的結(jié)果。沒(méi)有輸出的算法是毫無(wú)意義的;5、可行性:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成1.2.2描述算法的方法1、自然語(yǔ)言:即用人們?nèi)粘J褂玫恼Z(yǔ)言和數(shù)學(xué)語(yǔ)言描述的算法。韓信點(diǎn)兵算法1從1開(kāi)始,取出一個(gè)自然數(shù)判斷它被3、5、7整除后的余數(shù)是否為2、3、2,如果是,則這個(gè)數(shù)即是所求的數(shù),求解結(jié)束。否則,用下一個(gè)數(shù)再試,直到找到這個(gè)數(shù)為止。(假設(shè)人數(shù)i<100)自然語(yǔ)言描述1、將i的初始值賦為12、如果i<100并且i被3、5、7整除后余數(shù)為2、3、2,則輸出i的值,轉(zhuǎn)入第4步3、將i的值加1,轉(zhuǎn)到第2步4、結(jié)束程序自然語(yǔ)言的特點(diǎn):通俗易懂,但缺乏直觀性和簡(jiǎn)潔性,容易產(chǎn)生歧義。書(shū)本P7。如:這個(gè)人連他都不認(rèn)識(shí)。描述算法的方法2、流程圖:即用一組標(biāo)準(zhǔn)的圖形符號(hào)來(lái)描述算法。用流程圖描述算法開(kāi)始結(jié)束開(kāi)始/結(jié)束符,表示算法的開(kāi)始或結(jié)束;輸入/輸出框,用于指出數(shù)據(jù)的輸入或輸出;處理框,用于指出要處理的內(nèi)容;判斷框,用于指出分支情況,通常,上面的頂點(diǎn)表示入口,其它頂點(diǎn)表示出口流程線(xiàn),表示流程控制方向。用流程圖描述算法流程圖描述開(kāi)始i被3、5、7整除余數(shù)為2、3、2(i<100)i=i+1結(jié)束NY輸出i值i=1流程圖的特點(diǎn):與自然語(yǔ)言相比,用流程圖描述算法形象、直觀,更容易理解。書(shū)本P7。描述算法的方法3、偽代碼:偽代碼是一種非正式代碼,常用自然語(yǔ)言、數(shù)學(xué)語(yǔ)言和符號(hào)來(lái)描述算法的操作步驟。用偽代碼描述算法Fori=1to100Ifi能被3、5、7整除余數(shù)為2、3、2Then
輸出iExitForEndIfNexti用偽代碼描述算法使用偽代碼描述算法沒(méi)有嚴(yán)格的語(yǔ)法限制,書(shū)寫(xiě)格式也比較自由,只要把意思表達(dá)清楚就可以了,它更側(cè)重于對(duì)算法本身的描述。在偽代碼描述中,表示關(guān)鍵詞的語(yǔ)句一般用英文單詞,其他語(yǔ)句可以用英文語(yǔ)句,也可以用漢語(yǔ)語(yǔ)句。閱讀分析書(shū)本P8:判斷一個(gè)四位數(shù)的年份是否為閏年。偽代碼的特點(diǎn):用偽代碼描述的算法簡(jiǎn)潔、易懂,修改起來(lái)也比較容易,并且很容易轉(zhuǎn)化為程序語(yǔ)言代碼。缺點(diǎn)是不夠直觀,不容易排查邏輯錯(cuò)誤。書(shū)本P9。小結(jié)1、什么是算法?解決問(wèn)題的方
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生處工作計(jì)劃
- 幼兒園保教工作計(jì)劃大全
- 買(mǎi)賣(mài)合同范文七篇
- 幼兒教育工作計(jì)劃集合七篇
- 中國(guó)卡座連接器項(xiàng)目投資可行性研究報(bào)告
- 棉花姑娘教案四篇
- 網(wǎng)絡(luò)對(duì)戰(zhàn)小游戲課程設(shè)計(jì)
- 產(chǎn)科護(hù)士一天的工作計(jì)劃
- 全新大一軍訓(xùn)心得筆記10篇
- 畢業(yè)生自我介紹(15篇)
- 低壓非居民用電登記表格模板
- 高速鐵路混凝土外觀質(zhì)量修補(bǔ)專(zhuān)項(xiàng)方案(詳細(xì)版)
- 西南交通大學(xué)年《數(shù)字信號(hào)處理》經(jīng)典例題及答案解析
- 養(yǎng)生館顧客檔案表格資料
- 海螺牌水泥質(zhì)量檢驗(yàn)報(bào)告28天報(bào)告425加章2015
- 免洗手消毒凝膠生產(chǎn)工藝規(guī)程
- 乒乓球比賽第二階段對(duì)陣圖表
- 機(jī)制砂檢測(cè)報(bào)告
- 省教育廳檢查組接待方案
- 氣動(dòng)潛孔錘施工方案
- 云南省教育科學(xué)規(guī)劃課題開(kāi)題報(bào)告 - 云南省教育科學(xué)研究院
評(píng)論
0/150
提交評(píng)論