《計算機科學(xué)導(dǎo)論》PPT配套課件
《計算機科學(xué)導(dǎo)論》PPT配套課件,計算機科學(xué)導(dǎo)論,計算機科學(xué),導(dǎo)論,PPT,配套,課件
第第0909章章 程序設(shè)計語言程序設(shè)計語言本章內(nèi)容安排本章內(nèi)容安排&演化演化&翻譯翻譯&編程模式編程模式&共同概念共同概念2計算機語言的演化計算機語言的演化&計算機語言計算機語言是指編寫程序時,根據(jù)事先定義的規(guī)是指編寫程序時,根據(jù)事先定義的規(guī)則則(語法語法)而寫出的而寫出的預(yù)定語句的集合預(yù)定語句的集合,這些語句組成,這些語句組成了程序。了程序。&計算機語言從機器語言發(fā)展到高級語言。計算機語言從機器語言發(fā)展到高級語言。31、機器語言、機器語言&在計算機發(fā)展的早期,唯一的程序設(shè)計語言是在計算機發(fā)展的早期,唯一的程序設(shè)計語言是機機器語言器語言,每臺計算機都有自己的機器語言。,每臺計算機都有自己的機器語言。&機器語言由機器語言由”0”0”和和”1”1”的字符串構(gòu)成,機器語的字符串構(gòu)成,機器語言是計算機硬件唯一能夠理解的語言。言是計算機硬件唯一能夠理解的語言。計算機唯一識別的語言是機器語言。計算機唯一識別的語言是機器語言。4機器語言的示例機器語言的示例5機器語言的問題機器語言的問題&用機器語言編寫的程序真實地表示了數(shù)據(jù)是如何用機器語言編寫的程序真實地表示了數(shù)據(jù)是如何被計算機操縱的。被計算機操縱的。&兩個缺點兩個缺點 依賴于具體計算機依賴于具體計算機依賴于具體計算機依賴于具體計算機,如果使用不同的硬件,一臺計算機,如果使用不同的硬件,一臺計算機,如果使用不同的硬件,一臺計算機,如果使用不同的硬件,一臺計算機的機器語言與另一臺計算機的機器語言就不同;的機器語言與另一臺計算機的機器語言就不同;的機器語言與另一臺計算機的機器語言就不同;的機器語言與另一臺計算機的機器語言就不同;用機器語言編程序非常單調(diào)乏味,難以發(fā)現(xiàn)錯誤。用機器語言編程序非常單調(diào)乏味,難以發(fā)現(xiàn)錯誤。用機器語言編程序非常單調(diào)乏味,難以發(fā)現(xiàn)錯誤。用機器語言編程序非常單調(diào)乏味,難以發(fā)現(xiàn)錯誤。62、匯編語言、匯編語言&機器語言之后,開始出現(xiàn)機器語言之后,開始出現(xiàn)匯編語言匯編語言,匯編語言使,匯編語言使用用符號和助記符符號和助記符代替二進制機器語言代碼。代替二進制機器語言代碼。&采用符號寫的程序,計算機并不能理解,必須借采用符號寫的程序,計算機并不能理解,必須借助稱為助稱為匯編程序匯編程序的特定程序?qū)⒎柎a的特定程序?qū)⒎柎a翻譯翻譯為機器為機器語言代碼。語言代碼。7匯編語言示例匯編語言示例83、高級語言、高級語言&符號語言大大提高了編程效率,但它仍然是機器符號語言大大提高了編程效率,但它仍然是機器語言的近似。符號語言與計算機硬件相關(guān),按單條語言的近似。符號語言與計算機硬件相關(guān),按單條指令編碼比較煩瑣。指令編碼比較煩瑣。&高級語言適用于許多不同的計算機,使高級語言適用于許多不同的計算機,使程序員只程序員只關(guān)注要解決的問題關(guān)注要解決的問題,不用關(guān)心計算機硬件實現(xiàn)細(xì)節(jié)不用關(guān)心計算機硬件實現(xiàn)細(xì)節(jié)和復(fù)雜性上和復(fù)雜性上。&高級語言必須要轉(zhuǎn)化為間及其語言才能執(zhí)行,將高級語言必須要轉(zhuǎn)化為間及其語言才能執(zhí)行,將高級語言轉(zhuǎn)化為機器語言的過程稱為高級語言轉(zhuǎn)化為機器語言的過程稱為編譯或解釋編譯或解釋。9高級語言示例高級語言示例10本章內(nèi)容安排本章內(nèi)容安排&演化演化&翻譯翻譯&編程模式編程模式&共同概念共同概念11翻譯翻譯&現(xiàn)在的程序員編程多數(shù)使用高級語言,必須將高現(xiàn)在的程序員編程多數(shù)使用高級語言,必須將高級語言轉(zhuǎn)化為可執(zhí)行級語言轉(zhuǎn)化為可執(zhí)行(機器語言機器語言)文件,計算機才能文件,計算機才能執(zhí)行它們。執(zhí)行它們。&高級語言程序被稱為高級語言程序被稱為源程序源程序,翻譯后的機器語言,翻譯后的機器語言程序稱為程序稱為目標(biāo)程序目標(biāo)程序。&兩種翻譯方式:編譯和解釋。兩種翻譯方式:編譯和解釋。12編譯和解釋編譯和解釋&編譯:將整個源程序翻譯成目標(biāo)程序。編譯:將整個源程序翻譯成目標(biāo)程序。&解釋:使用解釋器把源程序翻譯成目標(biāo)程序。解釋:使用解釋器把源程序翻譯成目標(biāo)程序。JavaJava之前的解釋方式:逐行翻譯,立即執(zhí)行,遇到錯誤之前的解釋方式:逐行翻譯,立即執(zhí)行,遇到錯誤之前的解釋方式:逐行翻譯,立即執(zhí)行,遇到錯誤之前的解釋方式:逐行翻譯,立即執(zhí)行,遇到錯誤后停止執(zhí)行;后停止執(zhí)行;后停止執(zhí)行;后停止執(zhí)行;JavaJava:首先將:首先將:首先將:首先將JavaJava源程序編譯為源程序編譯為源程序編譯為源程序編譯為字節(jié)碼字節(jié)碼字節(jié)碼字節(jié)碼(不是特定機器(不是特定機器(不是特定機器(不是特定機器的目標(biāo)代碼),由的目標(biāo)代碼),由的目標(biāo)代碼),由的目標(biāo)代碼),由虛擬機(虛擬機(虛擬機(虛擬機(JVMJVM )編譯或解釋執(zhí)行字節(jié)編譯或解釋執(zhí)行字節(jié)編譯或解釋執(zhí)行字節(jié)編譯或解釋執(zhí)行字節(jié)碼。字節(jié)碼能被任何運行虛擬機的計算機編譯或解釋,碼。字節(jié)碼能被任何運行虛擬機的計算機編譯或解釋,碼。字節(jié)碼能被任何運行虛擬機的計算機編譯或解釋,碼。字節(jié)碼能被任何運行虛擬機的計算機編譯或解釋,實現(xiàn)跨平臺應(yīng)用。實現(xiàn)跨平臺應(yīng)用。實現(xiàn)跨平臺應(yīng)用。實現(xiàn)跨平臺應(yīng)用。13翻譯過程翻譯過程&編譯編譯:在執(zhí)行前翻譯整個源代碼;:在執(zhí)行前翻譯整個源代碼;&解釋解釋:一次只翻譯和執(zhí)行源代碼中的一行。:一次只翻譯和執(zhí)行源代碼中的一行。14翻譯過程翻譯過程&詞法分析器詞法分析器 讀取源代碼,創(chuàng)建源語言中的助記符;讀取源代碼,創(chuàng)建源語言中的助記符;讀取源代碼,創(chuàng)建源語言中的助記符;讀取源代碼,創(chuàng)建源語言中的助記符;&語法分析器語法分析器 分析助記符,找出指令或語句;分析助記符,找出指令或語句;分析助記符,找出指令或語句;分析助記符,找出指令或語句;&語義分析器語義分析器 檢查語法分析器創(chuàng)建的語句或指令,確保不含有二義性檢查語法分析器創(chuàng)建的語句或指令,確保不含有二義性檢查語法分析器創(chuàng)建的語句或指令,確保不含有二義性檢查語法分析器創(chuàng)建的語句或指令,確保不含有二義性&代碼生成器代碼生成器 將語義分析后創(chuàng)建的指令,轉(zhuǎn)化為特定計算機的機器語將語義分析后創(chuàng)建的指令,轉(zhuǎn)化為特定計算機的機器語將語義分析后創(chuàng)建的指令,轉(zhuǎn)化為特定計算機的機器語將語義分析后創(chuàng)建的指令,轉(zhuǎn)化為特定計算機的機器語言。言。言。言。15本章內(nèi)容安排本章內(nèi)容安排&演化演化&翻譯翻譯&編程模式編程模式&共同概念共同概念16編程模式編程模式基于一種計算機語言看待要解決問題基于一種計算機語言看待要解決問題的方式來劃分。的方式來劃分。17過程式模式過程式模式&將程序看成操縱被動對象的將程序看成操縱被動對象的活動主體活動主體。程序使用。程序使用稱為數(shù)據(jù)或數(shù)據(jù)項的稱為數(shù)據(jù)或數(shù)據(jù)項的被動對象被動對象,數(shù)據(jù)存儲在計算機,數(shù)據(jù)存儲在計算機內(nèi)存中。內(nèi)存中。&活動主體(程序)發(fā)布動作,稱為過程。程序通活動主體(程序)發(fā)布動作,稱為過程。程序通常由許多過程調(diào)用構(gòu)成。常由許多過程調(diào)用構(gòu)成。18過程式模式過程式模式19程序構(gòu)成程序構(gòu)成&對象創(chuàng)建對象創(chuàng)建&一組過程調(diào)用一組過程調(diào)用&過程代碼過程代碼 語言預(yù)定義過程語言預(yù)定義過程語言預(yù)定義過程語言預(yù)定義過程 自定義過程自定義過程自定義過程自定義過程20常見過程語言常見過程語言&FortranFortran:科學(xué)與工程應(yīng)用;:科學(xué)與工程應(yīng)用;&CobolCobol:面向商業(yè)應(yīng)用的語言;:面向商業(yè)應(yīng)用的語言;&PascalPascal:適合教學(xué)的結(jié)構(gòu)化編程語言;:適合教學(xué)的結(jié)構(gòu)化編程語言;&C C:&AdaAda:21面向?qū)ο竽J矫嫦驅(qū)ο竽J?面向?qū)ο竽J教幚砻嫦驅(qū)ο竽J教幚砘顒訉ο蠡顒訉ο?,在這些對象上執(zhí)行,在這些對象上執(zhí)行的動作包含在對象中,對象接收到刺激后執(zhí)行其中的動作包含在對象中,對象接收到刺激后執(zhí)行其中的一個動作。的一個動作。22面向?qū)ο筇卣髅嫦驅(qū)ο筇卣?封裝封裝:數(shù)據(jù)和可在數(shù)據(jù)上執(zhí)行的操作隱藏在對象:數(shù)據(jù)和可在數(shù)據(jù)上執(zhí)行的操作隱藏在對象內(nèi)部。對象使用者不直接訪問數(shù)據(jù)而是通過接口間內(nèi)部。對象使用者不直接訪問數(shù)據(jù)而是通過接口間接訪問數(shù)據(jù),調(diào)用者關(guān)心對象能做什么卻不關(guān)心是接訪問數(shù)據(jù),調(diào)用者關(guān)心對象能做什么卻不關(guān)心是如何實現(xiàn)的。如何實現(xiàn)的。&繼承繼承:一個對象可以從另一個對象繼承一般特征。:一個對象可以從另一個對象繼承一般特征。是代碼可重用的重要機制。是代碼可重用的重要機制。&多態(tài)多態(tài):不同層次的對象可以擁有相同名稱的操作,:不同層次的對象可以擁有相同名稱的操作,這些操作可以完成不同的功能。這些操作可以完成不同的功能。23典型面向?qū)ο笳Z言典型面向?qū)ο笳Z言&C+C+:C+C+是是C C語言的擴展,支持面向?qū)ο缶幊毯驼Z言的擴展,支持面向?qū)ο缶幊毯瓦^程化編程。過程化編程。&JavaJava:在:在C C和和C+C+基礎(chǔ)上發(fā)展而來,移除了基礎(chǔ)上發(fā)展而來,移除了C+C+中中一些復(fù)雜的和容易出錯的特征,使得一些復(fù)雜的和容易出錯的特征,使得JavaJava更加健壯;更加健壯;JavaJava是純面向?qū)ο笳Z言。使用是純面向?qū)ο笳Z言。使用JavaJava可以開發(fā)應(yīng)用程可以開發(fā)應(yīng)用程序和小程序序和小程序(applet)(applet),小程序嵌入在網(wǎng)頁中,可以,小程序嵌入在網(wǎng)頁中,可以由瀏覽器下載到本地運行。由瀏覽器下載到本地運行。24函數(shù)式模式函數(shù)式模式&在函數(shù)式模式中,程序被看成一個數(shù)學(xué)函數(shù),在函數(shù)式模式中,程序被看成一個數(shù)學(xué)函數(shù),函函數(shù)數(shù)是把一組輸入映射到一組輸出的黑盒子。是把一組輸入映射到一組輸出的黑盒子。25函數(shù)型語言函數(shù)型語言&系統(tǒng)定義一系列可供程序員調(diào)用的系統(tǒng)定義一系列可供程序員調(diào)用的基本基本(原子原子)函數(shù)函數(shù)。&允許程序通過允許程序通過組合若干基本函數(shù)創(chuàng)建新的函數(shù)組合若干基本函數(shù)創(chuàng)建新的函數(shù)。&示例:示例:FirstFirst基本函數(shù)完成從列表中抽取第一元素;基本函數(shù)完成從列表中抽取第一元素;RestRest函數(shù)完成從列表中抽取除第一個元素之外的所函數(shù)完成從列表中抽取除第一個元素之外的所有元素;則抽取第三個元素可以由兩個有元素;則抽取第三個元素可以由兩個RestRest和一個和一個FirstFirst組合而成。組合而成。26抽取第三個元素抽取第三個元素函數(shù)型語言鼓勵函數(shù)型語言鼓勵模塊化模塊化編程;程序編程;程序能夠利用已經(jīng)存在的函數(shù),循序漸能夠利用已經(jīng)存在的函數(shù),循序漸進開發(fā)出不易出錯的復(fù)雜程序。進開發(fā)出不易出錯的復(fù)雜程序。27典型函數(shù)型語言典型函數(shù)型語言&LISPLISP:是一種把列表作為處理對象的程序設(shè)計語:是一種把列表作為處理對象的程序設(shè)計語言。言。&SchemeScheme:LISPLISP語言沒有統(tǒng)一標(biāo)準(zhǔn)化,版本眾多,語言沒有統(tǒng)一標(biāo)準(zhǔn)化,版本眾多,實際使用的標(biāo)準(zhǔn)稱為實際使用的標(biāo)準(zhǔn)稱為SchemeScheme。該語言定義了一系。該語言定義了一系列基本函數(shù),函數(shù)名和函數(shù)的輸入列表寫在括號內(nèi),列基本函數(shù),函數(shù)名和函數(shù)的輸入列表寫在括號內(nèi),函數(shù)的執(zhí)行結(jié)果也是列表,可用做其它函數(shù)的輸入。函數(shù)的執(zhí)行結(jié)果也是列表,可用做其它函數(shù)的輸入。28Scheme示例示例&函數(shù)函數(shù)carcar,從列表中提取第一個元素;函數(shù),從列表中提取第一個元素;函數(shù)cdrcdr,從,從列表中提取除第一個以外的所有元素。列表中提取除第一個以外的所有元素。&(car 2 3 4 8 11 17 20)=2(car 2 3 4 8 11 17 20)=2&(cdr 2 3 7 8 11)=3 7 8 11(cdr 2 3 7 8 11)=3 7 8 11&(car(car(cdr(cdr (cdr list)(cdr list)用于提取列表的第三個元素。用于提取列表的第三個元素。如果將函數(shù)應(yīng)用于列表如果將函數(shù)應(yīng)用于列表2 3 7 8 112 3 7 8 11,則結(jié)果為,則結(jié)果為7 7。29說明式模式說明式模式&依據(jù)邏輯推理的原則響應(yīng)查詢依據(jù)邏輯推理的原則響應(yīng)查詢。是在由希臘數(shù)學(xué)。是在由希臘數(shù)學(xué)家定義的規(guī)范邏輯的基礎(chǔ)上發(fā)展而來的。家定義的規(guī)范邏輯的基礎(chǔ)上發(fā)展而來的。&說明性語言往往針對特定的領(lǐng)域,需要收集大量說明性語言往往針對特定的領(lǐng)域,需要收集大量的的該領(lǐng)域的知識該領(lǐng)域的知識(已知的事實已知的事實),還要定義邏輯上嚴(yán),還要定義邏輯上嚴(yán)謹(jǐn)?shù)闹?jǐn)?shù)囊?guī)則規(guī)則,使得程序能夠根據(jù)邏輯推理的可靠準(zhǔn)則,使得程序能夠根據(jù)邏輯推理的可靠準(zhǔn)則推導(dǎo)出新的論斷推導(dǎo)出新的論斷(事實事實)。說明性語言目前只局限于。說明性語言目前只局限于人工智能領(lǐng)域。人工智能領(lǐng)域。30簡單推理簡單推理&依據(jù)的兩個事實依據(jù)的兩個事實&推理得到的事實推理得到的事實31Prolog&最著名的說明性語言之一是最著名的說明性語言之一是PrologProlog。PrologProlog中的中的程序全部由事實和規(guī)則構(gòu)成。程序全部由事實和規(guī)則構(gòu)成。human(John)human(John)mortal(human)mortal(human)?-mortal(John)?-mortal(John)程序會應(yīng)答程序會應(yīng)答(yes)(yes)32本章內(nèi)容安排本章內(nèi)容安排&演化演化&翻譯翻譯&編程模式編程模式&共同概念共同概念331、標(biāo)識符、標(biāo)識符&高級語言編寫的程序,編譯后加載到內(nèi)存中運行高級語言編寫的程序,編譯后加載到內(nèi)存中運行時,指令和數(shù)據(jù)都加載到內(nèi)存中,時,指令和數(shù)據(jù)都加載到內(nèi)存中,每一個數(shù)據(jù)都存每一個數(shù)據(jù)都存儲在唯一的地址中儲在唯一的地址中。&高級語言中采用符號化的名稱,即高級語言中采用符號化的名稱,即標(biāo)識符標(biāo)識符表示數(shù)表示數(shù)據(jù)的位置;否則的話我們必須直接使用數(shù)據(jù)的地址據(jù)的位置;否則的話我們必須直接使用數(shù)據(jù)的地址來操作它們,實際上很難知道數(shù)據(jù)到底存放在內(nèi)存來操作它們,實際上很難知道數(shù)據(jù)到底存放在內(nèi)存何處。通過標(biāo)識符,你只要知道數(shù)據(jù)的名字就可以何處。通過標(biāo)識符,你只要知道數(shù)據(jù)的名字就可以訪問它們,跟蹤數(shù)據(jù)地址的工作便交給編譯器。訪問它們,跟蹤數(shù)據(jù)地址的工作便交給編譯器。342、數(shù)據(jù)類型、數(shù)據(jù)類型&數(shù)據(jù)類型定義了一系列數(shù)據(jù)類型定義了一系列值值以及應(yīng)用于這些值的一以及應(yīng)用于這些值的一系列系列操作操作。每種數(shù)據(jù)類型的值的集合稱為數(shù)據(jù)類型。每種數(shù)據(jù)類型的值的集合稱為數(shù)據(jù)類型的的域域。&簡單數(shù)據(jù)類型:整數(shù)、實時、字符、布爾等簡單數(shù)據(jù)類型:整數(shù)、實時、字符、布爾等&符合數(shù)據(jù)類型:數(shù)組、記錄符合數(shù)據(jù)類型:數(shù)組、記錄353、變量、變量&在計算機內(nèi)部,使用地址標(biāo)識一個數(shù)據(jù)在內(nèi)存中在計算機內(nèi)部,使用地址標(biāo)識一個數(shù)據(jù)在內(nèi)存中的位置,程序員卻難以直接使用地址,的位置,程序員卻難以直接使用地址,程序員并不程序員并不能確定數(shù)據(jù)和程序放在內(nèi)存的什么位置能確定數(shù)據(jù)和程序放在內(nèi)存的什么位置。&通常使用通常使用符號化的名字符號化的名字標(biāo)識一個存儲位置。程序標(biāo)識一個存儲位置。程序員可以使用一個員可以使用一個變量變量(符號化的名稱符號化的名稱),表示并引用,表示并引用內(nèi)存中的一個數(shù)據(jù);至于數(shù)據(jù)到底存儲在何處,交內(nèi)存中的一個數(shù)據(jù);至于數(shù)據(jù)到底存儲在何處,交給操作系統(tǒng)和編譯器協(xié)同解決。給操作系統(tǒng)和編譯器協(xié)同解決。36變量的示例變量的示例37字面值字面值&字面值是程序中使用的預(yù)定義的值。字面值是程序中使用的預(yù)定義的值。&多數(shù)語言中,支持整數(shù)、實數(shù)、字符和布爾字面多數(shù)語言中,支持整數(shù)、實數(shù)、字符和布爾字面值,還支持字符串字面值。值,還支持字符串字面值。3.14r23.14r2“Anne”“Anne”38常量常量&字面值是一種不好的編程實踐,尤其是會隨時間字面值是一種不好的編程實踐,尤其是會隨時間變化的字面值,應(yīng)避免使用。變化的字面值,應(yīng)避免使用。&通過定義常量解決該問題,常量是一個可以存儲通過定義常量解決該問題,常量是一個可以存儲值的命名位置。值的命名位置。394、輸入和輸出、輸入和輸出&多數(shù)語言使用預(yù)先定義好的函數(shù)實現(xiàn)輸入輸出。多數(shù)語言使用預(yù)先定義好的函數(shù)實現(xiàn)輸入輸出。輸出:輸出:printfprintf函數(shù)函數(shù)void main()void main()intint age=5;age=5;printf(“Imprintf(“Im%d%d year old.n”,age);year old.n”,age);運行結(jié)果運行結(jié)果運行結(jié)果運行結(jié)果Im 5 year old.Im 5 year old.40輸入和輸出輸入和輸出輸入:輸入:scanfscanfvoid main()void main()intint a,b;a,b;scanf(“scanf(“%d%d%d%d”,&a,&b);”,&a,&b);printf(“%d,%dn”,a,bprintf(“%d,%dn”,a,b););當(dāng)用戶輸入:當(dāng)用戶輸入:當(dāng)用戶輸入:當(dāng)用戶輸入:123123 456 456 運行結(jié)果運行結(jié)果123,456 415、表達式、表達式&表達式是由一系列操作數(shù)和運算符構(gòu)成的運算式,表達式是由一系列操作數(shù)和運算符構(gòu)成的運算式,運算結(jié)果是一個單一值。運算結(jié)果是一個單一值。1)1)運算符:完成特定運算的語法記號運算符:完成特定運算的語法記號 算術(shù)運算符:算術(shù)運算算術(shù)運算符:算術(shù)運算算術(shù)運算符:算術(shù)運算算術(shù)運算符:算術(shù)運算 關(guān)系運算符:比較兩個數(shù)據(jù)的大小關(guān)系,結(jié)果是邏輯值,關(guān)系運算符:比較兩個數(shù)據(jù)的大小關(guān)系,結(jié)果是邏輯值,關(guān)系運算符:比較兩個數(shù)據(jù)的大小關(guān)系,結(jié)果是邏輯值,關(guān)系運算符:比較兩個數(shù)據(jù)的大小關(guān)系,結(jié)果是邏輯值,truetrue或或或或falsefalse 邏輯運算符:組合邏輯值,得到一個新的邏輯值邏輯運算符:組合邏輯值,得到一個新的邏輯值邏輯運算符:組合邏輯值,得到一個新的邏輯值邏輯運算符:組合邏輯值,得到一個新的邏輯值 賦值運算符:向變量中存入值賦值運算符:向變量中存入值賦值運算符:向變量中存入值賦值運算符:向變量中存入值42表達式表達式2)2)操作數(shù):參與運算的數(shù)據(jù),可以是常量、變量或操作數(shù):參與運算的數(shù)據(jù),可以是常量、變量或函數(shù)調(diào)用的返回值。操作數(shù)接受運算符的動作,不函數(shù)調(diào)用的返回值。操作數(shù)接受運算符的動作,不同運算符要求的操作數(shù)個數(shù)不同,可能有同運算符要求的操作數(shù)個數(shù)不同,可能有1 1、2 2個或個或更多。更多。43算術(shù)運算符算術(shù)運算符44關(guān)系運算符關(guān)系運算符45邏輯運算符邏輯運算符466、語句、語句&語句使程序執(zhí)行相應(yīng)的動作。語句被翻譯成一條語句使程序執(zhí)行相應(yīng)的動作。語句被翻譯成一條或多條計算機可以執(zhí)行的指令。或多條計算機可以執(zhí)行的指令。C C語言要求在語句語言要求在語句后加分號后加分號(;)(;)做標(biāo)記。做標(biāo)記。賦值語句:給變量賦值,將一個值保存到變量中賦值語句:給變量賦值,將一個值保存到變量中賦值語句:給變量賦值,將一個值保存到變量中賦值語句:給變量賦值,將一個值保存到變量中 復(fù)合語句:包含復(fù)合語句:包含復(fù)合語句:包含復(fù)合語句:包含0 0或多條語句的代碼單元,也稱為塊或多條語句的代碼單元,也稱為塊或多條語句的代碼單元,也稱為塊或多條語句的代碼單元,也稱為塊 x=1;x=1;y=20;y=20;控制語句:控制程序執(zhí)行順序的語句控制語句:控制程序執(zhí)行順序的語句控制語句:控制程序執(zhí)行順序的語句控制語句:控制程序執(zhí)行順序的語句47選擇結(jié)構(gòu)選擇結(jié)構(gòu)48循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)497、子程序、子程序&過程式語言編寫的程序通常預(yù)先定義一組過程過程式語言編寫的程序通常預(yù)先定義一組過程&將哪些完成單一任務(wù)的過程放在獨立的程序單元將哪些完成單一任務(wù)的過程放在獨立的程序單元中,稱為子程序(中,稱為子程序(C C和和C+C+中的函數(shù))中的函數(shù))子程序一次編寫,多次調(diào)用子程序一次編寫,多次調(diào)用子程序一次編寫,多次調(diào)用子程序一次編寫,多次調(diào)用 子程序使得程序結(jié)構(gòu)更加清晰子程序使得程序結(jié)構(gòu)更加清晰子程序使得程序結(jié)構(gòu)更加清晰子程序使得程序結(jié)構(gòu)更加清晰 子程序使得程序更易于開發(fā)子程序使得程序更易于開發(fā)子程序使得程序更易于開發(fā)子程序使得程序更易于開發(fā)50子程序的概念子程序的概念&局部變量局部變量 可以在子程序中定義可以在子程序中定義可以在子程序中定義可以在子程序中定義局部變量局部變量局部變量局部變量 子程序每次被調(diào)用時,局部變量被創(chuàng)建,當(dāng)控制從子程子程序每次被調(diào)用時,局部變量被創(chuàng)建,當(dāng)控制從子程子程序每次被調(diào)用時,局部變量被創(chuàng)建,當(dāng)控制從子程子程序每次被調(diào)用時,局部變量被創(chuàng)建,當(dāng)控制從子程序返回后,局部變量被銷毀序返回后,局部變量被銷毀序返回后,局部變量被銷毀序返回后,局部變量被銷毀&參數(shù)參數(shù) 多數(shù)情況下,主程序希望被調(diào)用子程序處理由主程序創(chuàng)多數(shù)情況下,主程序希望被調(diào)用子程序處理由主程序創(chuàng)多數(shù)情況下,主程序希望被調(diào)用子程序處理由主程序創(chuàng)多數(shù)情況下,主程序希望被調(diào)用子程序處理由主程序創(chuàng)建的數(shù)據(jù),往往通過參數(shù)傳遞給子程序。建的數(shù)據(jù),往往通過參數(shù)傳遞給子程序。建的數(shù)據(jù),往往通過參數(shù)傳遞給子程序。建的數(shù)據(jù),往往通過參數(shù)傳遞給子程序。主程序中稱為實參,子程序中稱為形式參數(shù)主程序中稱為實參,子程序中稱為形式參數(shù)主程序中稱為實參,子程序中稱為形式參數(shù)主程序中稱為實參,子程序中稱為形式參數(shù)&返回值返回值 子程序被調(diào)用時,可以向主程序返回一個或多個值。子程序被調(diào)用時,可以向主程序返回一個或多個值。子程序被調(diào)用時,可以向主程序返回一個或多個值。子程序被調(diào)用時,可以向主程序返回一個或多個值。51參數(shù)的值傳遞參數(shù)的值傳遞&在值傳遞過程中,主程序和子程序創(chuàng)建各自不同在值傳遞過程中,主程序和子程序創(chuàng)建各自不同的變量,子程序中的變量(實參)將值復(fù)制給子程的變量,子程序中的變量(實參)將值復(fù)制給子程序中的變量(形式參數(shù))序中的變量(形式參數(shù))主程序到子程序的通信是單向的主程序到子程序的通信是單向的主程序到子程序的通信是單向的主程序到子程序的通信是單向的 主程序傳遞實參的值,存儲到子程序的形式參數(shù)中主程序傳遞實參的值,存儲到子程序的形式參數(shù)中主程序傳遞實參的值,存儲到子程序的形式參數(shù)中主程序傳遞實參的值,存儲到子程序的形式參數(shù)中52傳值的特點傳值的特點&子程序中的形參只是復(fù)制了實參的一個子程序中的形參只是復(fù)制了實參的一個拷貝拷貝,在,在子程序中修改或破壞形參的值,不會對主程序中的子程序中修改或破壞形參的值,不會對主程序中的實參產(chǎn)生任何影響。實參產(chǎn)生任何影響。53引用傳遞引用傳遞&引用傳遞方式,允許在子程序中通過修改形參,引用傳遞方式,允許在子程序中通過修改形參,而實現(xiàn)對主程序中變量的修改。而實現(xiàn)對主程序中變量的修改。引用傳遞,變量被主程序和子程序共享(傳遞內(nèi)存地址引用傳遞,變量被主程序和子程序共享(傳遞內(nèi)存地址引用傳遞,變量被主程序和子程序共享(傳遞內(nèi)存地址引用傳遞,變量被主程序和子程序共享(傳遞內(nèi)存地址實現(xiàn)),形參和實參在各自的程序中擁有不同的名字,實現(xiàn)),形參和實參在各自的程序中擁有不同的名字,實現(xiàn)),形參和實參在各自的程序中擁有不同的名字,實現(xiàn)),形參和實參在各自的程序中擁有不同的名字,但它們是內(nèi)存中的同一個數(shù)據(jù)(變量)。但它們是內(nèi)存中的同一個數(shù)據(jù)(變量)。但它們是內(nèi)存中的同一個數(shù)據(jù)(變量)。但它們是內(nèi)存中的同一個數(shù)據(jù)(變量)。54
收藏
編號:64238198
類型:共享資源
大小:16.23MB
格式:ZIP
上傳時間:2022-03-21
35
積分
- 關(guān) 鍵 詞:
-
計算機科學(xué)導(dǎo)論
計算機科學(xué)
導(dǎo)論
PPT
配套
課件
- 資源描述:
-
《計算機科學(xué)導(dǎo)論》PPT配套課件,計算機科學(xué)導(dǎo)論,計算機科學(xué),導(dǎo)論,PPT,配套,課件
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。