




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機科學(xué)概論十一五國家級規(guī)劃教材
◆
國家精品資源共享課程1計算機十一五國家級規(guī)劃教材
◆
國家精品資源共享課程第6章
程序設(shè)計語言2計算機科學(xué)概論第6章
程序設(shè)計語言2計算機科學(xué)概論本章提要3123程序設(shè)計語言概述高級程序語言的種類程序設(shè)計的基本概念程序單元程序設(shè)計語言的執(zhí)行45高級話題6本章提要3123程序設(shè)計語言概述高級程序語言的種類程序設(shè)計的
程序設(shè)計語言:指揮計算機工作的命令。
沒有程序,計算機將無法進(jìn)行工作。
最早的程序語言:
1945年的Plankalkul,非存儲式高級程序。6.1.2程序語言的發(fā)展歷史46.1.1什么是程序語言
6.1程序設(shè)計語言程序設(shè)計語言:指揮計算機工作的命令。最早的程序語言:6.
程序設(shè)計語言的發(fā)展經(jīng)歷了三代的發(fā)展變化:
第一代:機器語言第二代:符號語言第三代:高級語言
表6.1:一些主要程序語言的發(fā)展歷史。56.1.2程序語言的發(fā)展歷史程序設(shè)計語言的發(fā)展經(jīng)歷了三代的發(fā)展變化:表6.1:一些主
按人與機器的交互程度分類:機器語言;匯編語言;高級語言。6.1.3程序語言的分類
表6.2:部分重要的程序設(shè)計語言的分類。6按人與機器的交互程度分類:6.1.3程序語言的分類表由“0”和“1”組成的二進(jìn)制碼構(gòu)成。優(yōu)點:速度快,不需要翻譯。特點:依賴機器,可讀性差,難以掌握。一個機器語言的例子:表6.3。用符號和助記符來代表機器語言,為各操作碼分配助記符。(如:Asm,Masm)優(yōu)點:速度快,可讀性較好。特點:依賴機器,較難掌握,需要翻譯。一個符號語言的例子:表6.4。76.1.4機器語言6.1.5匯編語言由“0”和“1”組成的二進(jìn)制碼構(gòu)成。用符號和助記符來代表機
用類英語描述對機器的指令。
(如:Fortran,Basic,C,Pascal,C++等。)
優(yōu)點:可讀性好,易于掌握。
特點:不依賴機器,需要翻譯。
程序設(shè)計就是尋找解決問題的方法,不需關(guān)心計算機本身的具體實現(xiàn)。 兩個高級語言的例子:表6.5、表6.6。86.1.6高級語言 用類英語描述對機器的指令。
(如:Fortran,Basi
目前常用的程序語言大約有50多種。
(詳見表6.7)
每月對程序設(shè)計語言的使用情況有一個排名:
(詳見表6.8)注:排名結(jié)果并不代表程序語言的好壞。6.2.1常用高級程序語言6.2高級程序語言的類型9目前常用的程序語言大約有50多種。6.2.1常用高級程
按照程序的運行方式分類:
1、匯編型語言
2、解釋型語言
3、編譯型語言
4、混合型語言
5、腳本性語言106.2.1常用高級程序語言按照程序的運行方式分類: 1、匯編型語言106.2.1
根據(jù)程序語言解決問題的方法及功能分類: 1、過程化語言
2、函數(shù)式語言
3、邏輯式語言
4、面向?qū)ο笳Z言
5、專用語言116.2.1常用高級程序語言根據(jù)程序語言解決問題的方法及功能分類: 1、過程化語言
又稱為命令式語言或強制性語言。
(如:Fortran語言,COBOL語言,Ada語言,C語言,Basic語言,Pascal語言等。)
過程化語言程序——按順序的機器指令。
過程化語言的命令表現(xiàn)在兩個方面:
1、操作數(shù)據(jù)項。
2、控制下一條要執(zhí)行的指令。
126.2.2過程化語言 又稱為命令式語言或強制性語言。126.2.2過程化語
過程化語言的特點:過程化語言特點適用領(lǐng)域Fortran高精度運算復(fù)雜數(shù)據(jù)的處理能力指數(shù)運算()科學(xué)計算和工程應(yīng)用。COBOL能快速訪問,更新數(shù)據(jù)庫能生成大量報表方便的格式化輸出商業(yè)領(lǐng)域。Pascal結(jié)構(gòu)化編程學(xué)術(shù)界,應(yīng)用軟件。Ada具有并行處理能力大型計算機和工業(yè)領(lǐng)域。C具有一些低級指令簡潔,高效已被ANSI和ISO標(biāo)準(zhǔn)化操作系統(tǒng),系統(tǒng)軟件,應(yīng)用軟件。136.2.2過程化語言過程化語言的特點:過程化語言特點適用領(lǐng)域Fortran高
又稱為表處理語言。
(如:LISP語言,Scheme語言。)
將函數(shù)看成是“黑盒”,程序就是將一系列的“黑盒”連起來。146.2.3函數(shù)式語言又稱為表處理語言。
(如:LISP語言,Scheme語言。
函數(shù)式語言程序設(shè)計的特點:1、定義函數(shù)
(也可通過基本函數(shù)創(chuàng)建新的函數(shù)。)2、調(diào)用函數(shù)
(可通過函數(shù)的組合解決問題。)156.2.3函數(shù)式語言函數(shù)式語言程序設(shè)計的特點:156.2.3函數(shù)式語言
一個Scheme語言的范例:P.169函數(shù)(car(List))的作用:從列表List中取出第一個元素。函數(shù)(cdr(List))的作用:從列表List中取出除第一個元素
以外的所有元素?,F(xiàn)有列表List:List=491242354726則:(car(List))的結(jié)果為4(cdr(List))的結(jié)果為91242354726若要從List表中取出第四個元素,則:(car(cdr(cdr(cdrList))))166.2.3函數(shù)式語言一個Scheme語言的范例:P.169166.2.3函數(shù)
又稱為聲明式語言或說明性語言。
程序設(shè)計主要是進(jìn)行事實歸納和規(guī)則推理,適合于特定的領(lǐng)域。
(如:Prolog語言)
一個Prolog語言的例子:P.169176.2.4邏輯式語言又稱為聲明式語言或說明性語言。176.2.4邏輯式語言
采用面向?qū)ο蟮乃枷脒M(jìn)行程序設(shè)計。
(如:Smalltalk語言,C++語言,Java語言等。)
面向?qū)ο笳Z言的特點:
對象和操作被捆綁在一起。
通過對象去調(diào)用操作,有可能產(chǎn)生的結(jié)果:
1、改變對象自身的狀態(tài)
2、改變其他對象的狀態(tài)
3、改變系統(tǒng)的狀態(tài)186.2.5面向?qū)ο笳Z言采用面向?qū)ο蟮乃枷脒M(jìn)行程序設(shè)計。186.2.5面向?qū)ο罄纾簣D形用戶界面系統(tǒng)。
●圖標(biāo)——對象
●圖標(biāo)所允許的操作
(如:單擊鼠標(biāo)左鍵、右鍵,雙擊鼠標(biāo)左鍵等)——對象的操作。●操作的結(jié)果——對象通過該對象內(nèi)部的操作產(chǎn)生的結(jié)果。196.2.5面向?qū)ο笳Z言例如:圖形用戶界面系統(tǒng)。196.2.5面向?qū)ο笳Z言
應(yīng)用于網(wǎng)絡(luò)和數(shù)據(jù)庫的語言。 如:HTML語言,Perl語言,PHP語言,
SQL語言等。
特點:屬于腳本語言,易于掌握。206.2.6專用語言應(yīng)用于網(wǎng)絡(luò)和數(shù)據(jù)庫的語言。206.2.6專用語言
一個HTML程序的例子:<html><head><title>標(biāo)題</title></head><body>這是一個HTML范例!</body></html>216.2.6專用語言一個HTML程序的例子:<html>216.2.6專用
過程化程序語言具有的共性:
1、標(biāo)識符
2、變量與數(shù)據(jù)類型
3、常量和文字
4、表達(dá)式和賦值語句
5、控制語句
6、注釋
過程化程序語言的語句:
1、聲明語句:說明程序中要使用的元素。
2、命令語句:描述算法的步驟。
3、注釋語句:解釋程序的功能。6.3程序設(shè)計語言的基本概念22過程化程序語言具有的共性:過程化程序語言的語句:6.
標(biāo)識符的作用:命名。
計算機通過標(biāo)識符與地址的聯(lián)系來操作數(shù)據(jù)。
不同的程序語言對標(biāo)識符有不同的規(guī)定。例如:語言正確的標(biāo)識符錯誤的標(biāo)識符Cstu_No,Number3_stu_No,stu.no,3numberFortranxyz7,ab8c,Total127xyz,AB_t,total123,ab.cPascalxtable8,Apple9xtable8,Apple_xBasicExp5,team.34game,_abc(表6.11)236.3.1標(biāo)識符標(biāo)識符的作用:命名。語言正確的標(biāo)識符錯誤的標(biāo)識符Cstu1、變量:
以標(biāo)識符作為名字,代替存儲地址。
變量的特點:保存程序的計算結(jié)果。2、數(shù)據(jù)類型
數(shù)據(jù)類型決定了數(shù)據(jù)可執(zhí)行的操作以及
數(shù)據(jù)的取值范圍。
程序設(shè)計語言的基本數(shù)據(jù)類型見表6.12。246.3.2變量與數(shù)據(jù)類型1、變量:
以標(biāo)識符作為名字,代替存儲地址。246.3.3、變量的聲明將變量指定為某種
數(shù)據(jù)類型。如:語言變量聲明語句C語言floatlength,width;intTax,Total;charSymbol;Fortran語言REALLength,widthINTEGERTax,TotalCHARACTERSymbolPascal語言varLength,width:real;Tax,Total:integer;Symbol:char;Basic語言number%price!name$256.3.2變量與數(shù)據(jù)類型3、變量的聲明語言變量聲明語句C語言floatlength常量:程序執(zhí)行過程中不能更改的數(shù)據(jù)。 常量分兩種:文字常量和命名常量。
文字常量:直接以數(shù)字的形式出現(xiàn)在程序中。 如c語言中:Area=3.14159*r*r;/*r為變量*/
命名常量:以標(biāo)識符的形式出現(xiàn)在程序中。
如c語言中:Area=PI*r*r;/*r為變量*/266.3.3常量和文字常量:程序執(zhí)行過程中不能更改的數(shù)據(jù)。266.3.3常量和1、表達(dá)式:由一系列操作數(shù)和運算符的組合構(gòu)成。
操作數(shù):變量或表達(dá)式。
(表達(dá)式的結(jié)果為一個具體的值)運算符:制定運算規(guī)則。
常用的運算符有四種(表6.14~6.17):算術(shù)運算符;
關(guān)系運算符;
邏輯運算符;
賦值運算符。276.3.4表達(dá)式和賦值語句1、表達(dá)式:276.3.4表達(dá)式和賦值語句
控制語句的作用:改變程序中語句的執(zhí)行順序。
主要有兩種:分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。1、分支結(jié)構(gòu)
有兩種分支結(jié)構(gòu):
①if~else結(jié)構(gòu)(流程圖見圖6.5)。②switch結(jié)構(gòu)(流程圖見圖6.6)。286.3.5控制語句控制語句的作用:改變程序中語句的執(zhí)行順序。286.3.52、循環(huán)結(jié)構(gòu)
有三種循環(huán)結(jié)構(gòu):
①for循環(huán)結(jié)構(gòu)(流程圖見圖6.7)。②while循環(huán)結(jié)構(gòu)(流程圖見圖6.7)。③do~while循環(huán)結(jié)構(gòu)(流程圖見圖6.8)。注:在不同的程序語言中,分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)
的語法描述會稍有差異。296.3.5控制語句2、循環(huán)結(jié)構(gòu)296.3.5控制語句3、強制轉(zhuǎn)移語句
是一種強命令型語句,無條件轉(zhuǎn)移程序指令。
具有統(tǒng)一的語句形式:
goto<語句標(biāo)號>goto語句的特點:
①給程序的執(zhí)行帶來極大的方便;
②會降低程序的可讀性;
③可能導(dǎo)致程序發(fā)生嚴(yán)重的錯誤。一個使用goto語句的例子:P.177
建議:不用或少用goto語句306.3.5控制語句3、強制轉(zhuǎn)移語句306.3.5控制語句
注釋是對程序的語句或功能進(jìn)行說明,
為閱讀程序提供額外的信息,幫助理解。
注釋的存在與否都不影響程序的執(zhí)行。
不同的程序語言有不同的注釋符號。 常見語言的注釋符號見表6.18。
建議:為程序?qū)懮线m當(dāng)?shù)淖⑨尅?/p>
316.3.5注釋注釋是對程序的語句或功能進(jìn)行說明,
1、過程:一些指令的集合。(指令:由順序結(jié)構(gòu)、分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu)組成)
2、過程頭部:過程名。(建議用動詞作為過程名)
3、過程調(diào)用:請求過程提供服務(wù)。
注:過程就是程序的縮影。6.4程序單元326.4.1過程
程序單元:具有獨立的功能。
過程或函數(shù):具有獨立的功能的程序單元。1、過程:一些指令的集合。6.4程序單元326.4.1
過程調(diào)用的控制流:336.4.1過程過程調(diào)用的控制流:336.4.1過程1、參數(shù):過程中要用到的通用變量。
●形參:過程中制定的參數(shù)。
●實參:調(diào)用過程時傳遞給形參的數(shù)據(jù)。2、參數(shù)的位置:過程頭部的括號中。3、參數(shù)的傳遞方式: ①傳值:將實參的副本傳遞給形參。
②傳引用:將實參變量的地址傳遞給形參。
346.4.2參數(shù)1、參數(shù):過程中要用到的通用變量。346.4.2參數(shù)
C語言中描述的一個過程如下:voidpush(floatf){if(sp<Max)val[sp++]=f;
elseprint(“Error!StackFull\n”);}
過程的調(diào)用:push(12.3);356.4.2參數(shù)C語言中描述的一個過程如下:voidpush(floa
函數(shù)與過程類似。
函數(shù)與過程的不同之處:
函數(shù)必須向調(diào)用它的地方傳回一個值。(函數(shù)必須要有一個計算結(jié)果。)
函數(shù)的頭部:函數(shù)名。(建議用名詞作函數(shù)名)366.4.3函數(shù)函數(shù)與過程類似。366.4.3函數(shù)
一個C語言函數(shù)的例子:floatmyroot(floatx,floaty,floatz){floattemp;
temp=y*y-4*x*z;
if(temp<0.0)return-1;
elsereturn(root(temp));}
函數(shù)調(diào)用:
X1=(-b+myroot(a,b,c))/(2*a);
X2=(-b-myroot(a,b,c))/(2*a);376.4.3函數(shù)一個C語言函數(shù)的例子:floatmyroot(floa
由程序語言的實現(xiàn)提供的一種底層操作,與開發(fā)工具一起提供給程序設(shè)計人員。
常用的標(biāo)準(zhǔn)輸入/輸出語句如下:PRINTaINPUTaBasicwirteln(a)readln(a)Pascal語言PRINT*,aREAD*,aFortran語言將變量a的值輸出到屏幕上。printf(“%d\n”,a);
從鍵盤接收整型變量a的值。scanf(“%d”,&a);C語言功能輸出函數(shù)功能輸入函數(shù)
庫函數(shù)語句6.4.4輸入與輸出38由程序語言的實現(xiàn)提供的一種底層操作,與開發(fā)工具一起提供給程序翻譯就是對源程序進(jìn)行編譯。
源程序:由程序設(shè)計語言編寫的程序。
注:源程序是不能被執(zhí)行的。
將源程序變成可執(zhí)行程序的過程:6.5程序設(shè)計語言的執(zhí)行396.5.1程序翻譯第1步第2步程序翻譯就是對源程序進(jìn)行編譯。6.5程序設(shè)計語言的執(zhí)行
源程序的翻譯:由編譯器完成。編譯器的三個重要進(jìn)程:
①詞法分析;
分析源程序中的哪些符號串代表了一個實體的進(jìn)程,將結(jié)果
保存在一個稱為記號的結(jié)構(gòu)單元里。
②語法分析;
對記號進(jìn)行分析,根據(jù)一系列的語法規(guī)則來識別程序的語法
結(jié)構(gòu)所代表的進(jìn)程。
③目標(biāo)代碼生成;
將沒有語法錯誤的程序指令轉(zhuǎn)換成機器語言指令。406.5.1程序翻譯源程序的翻譯:由編譯器完成。406.5.1程序翻譯
一個C語言源程序編譯的例子:第1步:編輯源程序:mytest.c第2步:用microsoftC編譯器,命令方式進(jìn)行編譯:
cl–cmytest.c
結(jié)果:若源程序沒有錯誤,會生成目標(biāo)代碼程序:
mytest.obj。注:①不同的程序語言有不同的編譯器。②編譯的方式不是唯一的。416.5.1程序翻譯一個C語言源程序編譯的例子:416.5.1程序翻譯
目標(biāo)代碼并不是可執(zhí)行代碼。
要獲得可執(zhí)行的程序,需將目標(biāo)代碼鏈接起來。
鏈接器的任務(wù)就是將目標(biāo)程序鏈接成可執(zhí)行的程序
(或稱載入模塊)。426.5.2鏈接程序目標(biāo)代碼并不是可執(zhí)行代碼。426.5.2鏈接程序
一個鏈接C語言目標(biāo)代碼的例子:第1步:對源程序mytest.c編譯后生成了目標(biāo)代碼程序
mytest.obj;第2步:用microsoftC編譯器,命令方式進(jìn)行鏈接:
link/out:mytest.extmytest.obj結(jié)果:
如果不發(fā)生錯誤,會生成一個載入模塊:
mytest.exe注:①不同的程序語言有不同的鏈接器。②鏈接的方式不是唯一的。436.5.2鏈接程序一個鏈接C語言目標(biāo)代碼的例子:436.5.2鏈接程序
集成開發(fā)環(huán)境(IDE):也稱為軟件開發(fā)包、開發(fā)工具。
將編輯器、翻譯器、鏈接器和其他軟件單元集合在一起。
集成開發(fā)環(huán)境一般都是為特定的程序語言定制的。
(不同的程序語言有不同的開發(fā)環(huán)境)
同一種語言的開發(fā)包也會有一些不同的產(chǎn)品和版本。446.5.3集成開發(fā)環(huán)境集成開發(fā)環(huán)境(IDE):也稱為軟件開發(fā)包、開發(fā)工具。446
幾種常用程序語言的開發(fā)環(huán)境:程序語言軟件開發(fā)包CTurboC,BorlandC,gcc,Microsoftc/c++等C++BorlandC++,VisualC++,BuildC++,Microsoftc++等Fortranf77,PowerstationFortran等PascalTurborPascal,Dephi
等456.5.3集成開發(fā)環(huán)境幾種常用程序語言的開發(fā)環(huán)境:程序語言軟件開發(fā)包CTurbo
用面向?qū)ο蟮姆椒▉碓O(shè)計程序。
(與過程化程序設(shè)計方法不同)
面向?qū)ο蟮南到y(tǒng)需包含三個要素:
對象、類和繼承。1、對象所有資源都是對象。
資源:以數(shù)據(jù)和模塊的形式表
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨物運輸代理授權(quán)委托合同
- VR技術(shù)在教育培訓(xùn)行業(yè)的創(chuàng)新應(yīng)用
- 客戶往來商務(wù)信函管理規(guī)范
- 《歷史經(jīng)典著作〈紅樓夢〉閱讀教學(xué)設(shè)計》
- 產(chǎn)品采購及供應(yīng)協(xié)議規(guī)范內(nèi)容
- 高考語文復(fù)習(xí):文言文專題訓(xùn)練《莊子》
- 人才培訓(xùn)與招聘服務(wù)協(xié)議
- 中小學(xué)必讀經(jīng)典書目征文
- 古詩詞中情感與意象的探討
- 2025中國船舶集團(tuán)限公司招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 土壤侵蝕與碳匯-深度研究
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年上半年中電科太力通信科技限公司招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年沙洲職業(yè)工學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 【化學(xué)】常見的鹽(第1課時)-2024-2025學(xué)年九年級化學(xué)下冊(人教版2024)
- 2024甘肅省公務(wù)員(省考)行測真題
- 體育活動策劃與組織課件
- JJG 1204-2025電子計價秤檢定規(guī)程(試行)
- 咨詢公司顧問聘用協(xié)議書
- 認(rèn)養(yǎng)一頭牛-雙寡格局下新品牌如何實現(xiàn)彎道超車
評論
0/150
提交評論