第 1 頁(yè):1.1 程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言 |
第 2 頁(yè):1.2 C語(yǔ)言基礎(chǔ) |
1.1 程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言
1.程序
從最一般的意義來(lái)說(shuō),程序是對(duì)解決某個(gè)計(jì)算問(wèn)題的方法(算法)步驟的一種描述;而從計(jì)算機(jī)來(lái)說(shuō),計(jì)算機(jī)程序是用某種計(jì)算機(jī)能理解并執(zhí)行的計(jì)算機(jī)語(yǔ)言作為描述語(yǔ)言,對(duì)解決問(wèn)題的方法步驟的描述。計(jì)算機(jī)執(zhí)行按程序所描述的方法步驟,能完成指定的功能。所以,程序就是供計(jì)算機(jī)執(zhí)行后能完成特定功能的指令序列。
一個(gè)計(jì)算機(jī)程序主要描述兩部分內(nèi)容:描述問(wèn)題的每個(gè)對(duì)象和對(duì)象之間的關(guān)系,以及描述對(duì)這些對(duì)象作處理的處理規(guī)則。其中關(guān)于對(duì)象及對(duì)象之間的關(guān)系是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,而處理規(guī)則是求解的算法。針對(duì)問(wèn)題所涉及的對(duì)象和要完成的處理,設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)常可有效地簡(jiǎn)化算法,數(shù)據(jù)結(jié)構(gòu)和算法是程序最主要的兩個(gè)方面。
2.程序設(shè)計(jì)的任條和主要步驟
程序設(shè)計(jì)的任務(wù)就是分析解決問(wèn)題的方法步驟(算法),并將解決問(wèn)題算法的方法步驟用計(jì)算機(jī)語(yǔ)言記錄下來(lái)。程序設(shè)計(jì)的主要步驟包括:認(rèn)識(shí)問(wèn)題、設(shè)計(jì)解決問(wèn)題的算法、按算法編寫(xiě)程序、調(diào)試和測(cè)試程序。在程序開(kāi)發(fā)過(guò)程中,上述步驟可能有反復(fù),如發(fā)現(xiàn)程序有錯(cuò),嚴(yán)重情況可能會(huì)要求重新認(rèn)識(shí)問(wèn)題和重新設(shè)計(jì)算法等。
3.機(jī)器語(yǔ)言和匯編語(yǔ)言
計(jì)算機(jī)能直接識(shí)別和執(zhí)行的二進(jìn)制代碼稱為計(jì)算機(jī)的機(jī)器語(yǔ)言。用有助于記憶的符號(hào)來(lái)代表二進(jìn)制代碼,稱為匯編語(yǔ)言。匯編語(yǔ)言與機(jī)器語(yǔ)言幾乎有一對(duì)一的關(guān)系。用匯編語(yǔ)言編寫(xiě)的程序稱為“匯編源程序”,匯編源程序不能在計(jì)算機(jī)上直接執(zhí)行,需要用匯編程序?qū)R編源
程序翻譯成機(jī)器語(yǔ)言程序,然后執(zhí)行由匯編程序翻譯出來(lái)的機(jī)器語(yǔ)言程序。機(jī)器語(yǔ)言和匯編語(yǔ)言是與具體計(jì)算機(jī)緊密相關(guān)的,稱它們是面向機(jī)器的語(yǔ)言。
4.高級(jí)語(yǔ)言
與機(jī)器語(yǔ)言和匯編語(yǔ)言相比較,高級(jí)語(yǔ)言與具體計(jì)算機(jī)無(wú)關(guān),是一種能方便描述算法過(guò)程的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。高級(jí)語(yǔ)言種類千差萬(wàn)別,但一般包含有以下四種成分:數(shù)據(jù)成分用來(lái)描述程序所涉及的數(shù)據(jù);運(yùn)算成分用來(lái)描述運(yùn)算;控制成分用來(lái)表達(dá)程序的控制構(gòu)造;傳輸成分用來(lái)表達(dá)數(shù)據(jù)的傳輸。由于高級(jí)語(yǔ)言程序主要是描述計(jì)算機(jī)的解題過(guò)程,即描述復(fù)雜的加工處理過(guò)程,所以也稱這種高級(jí)語(yǔ)言為面向過(guò)程語(yǔ)言。
用高級(jí)語(yǔ)言編寫(xiě)的程序稱為“源程序”。計(jì)算機(jī)不能直接技源程序的語(yǔ)句運(yùn)行,通常有解釋方式和編譯方式兩種方法在計(jì)算機(jī)上執(zhí)行源程序。
解釋方式,即讓計(jì)算機(jī)運(yùn)行解釋程序,解釋程序逐句取出源程序中的語(yǔ)句,對(duì)它作解釋執(zhí)行,輸入數(shù)據(jù),產(chǎn)生結(jié)果。
編譯方式,即先運(yùn)行編譯程序,從源程序一次翻譯產(chǎn)生計(jì)算機(jī)可直接執(zhí)行的二進(jìn)制程序(稱為目標(biāo)程序);然后讓計(jì)算機(jī)執(zhí)行目標(biāo)程序,輸入數(shù)據(jù),產(chǎn)生結(jié)果。
解釋方式的主要優(yōu)點(diǎn)是計(jì)算機(jī)與人的交互性好,調(diào)試程序時(shí),能一邊執(zhí)行一邊直接改錯(cuò),能較快得到一個(gè)正確的程序。缺點(diǎn)是逐句解釋執(zhí)行,運(yùn)行速度慢。
編譯方式的主要優(yōu)點(diǎn)是計(jì)算機(jī)運(yùn)行目標(biāo)程序快,缺點(diǎn)是修改源程序后必須重新編譯以產(chǎn)生新的目標(biāo)程序。
現(xiàn)在也有將上述兩種方式結(jié)合起來(lái)的,即先編譯源程序,產(chǎn)生計(jì)算機(jī)還是不能直接執(zhí)行的中間代碼,然后讓解釋程序解釋執(zhí)行中間代碼。這樣做的好處首先是比直接解釋執(zhí)行快;更大的好處是中間代碼獨(dú)立于計(jì)算機(jī),只要有相應(yīng)的解釋程序,就可在任何計(jì)算機(jī)上運(yùn)行。
5.面向問(wèn)題語(yǔ)言
面向問(wèn)題語(yǔ)言是為了易于描述和求解某類特定領(lǐng)域的問(wèn)題而專門(mén)設(shè)計(jì)的一種非過(guò)程語(yǔ)言。用面向問(wèn)題語(yǔ)言解題時(shí),不僅擺脫計(jì)算機(jī)的內(nèi)部邏輯,也不必關(guān)心問(wèn)題的求解算法和求解的過(guò)程,只需指出問(wèn)題是做什么,數(shù)據(jù)的輸入和輸出形式,就能由相應(yīng)的計(jì)算機(jī)系統(tǒng)得到所需結(jié)果。如報(bào)表語(yǔ)言、SOL(Structured Query Language)語(yǔ)言等。SQL語(yǔ)言是數(shù)據(jù)庫(kù)查詢和操縱語(yǔ)言,能直接使用數(shù)據(jù)庫(kù)管理系統(tǒng)。由于使用面向問(wèn)題語(yǔ)言來(lái)解題只要告訴計(jì)算機(jī)做什么,不必告訴計(jì)算機(jī)如何做,能方便用戶的使用和提高程序的開(kāi)發(fā)速度。但實(shí)現(xiàn)面向問(wèn)題語(yǔ)言的系統(tǒng)從最一般的意義下實(shí)現(xiàn)問(wèn)題如何求解,通常實(shí)現(xiàn)的效率較低。另外,面向問(wèn)題語(yǔ)言要求問(wèn)題已有通用的求解方法,目前其應(yīng)用范圍還比較狹窄。
相關(guān)推薦:2010年全國(guó)計(jì)算機(jī)軟考報(bào)名時(shí)間匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |