計(jì)算機(jī)和計(jì)算機(jī)程序



第第 二二 章章計(jì)算機(jī)和計(jì)算機(jī)程序計(jì)算機(jī)和計(jì)算機(jī)程序1計(jì)算機(jī)和計(jì)算機(jī)程序 本章主要內(nèi)容本章主要內(nèi)容計(jì)算機(jī)是實(shí)現(xiàn)算法的有效工具計(jì)算機(jī)是實(shí)現(xiàn)算法的有效工具;計(jì)算機(jī)的基本組成計(jì)算機(jī)的基本組成;計(jì)算機(jī)中存儲信息的方法計(jì)算機(jī)中存儲信息的方法;計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)語言和計(jì)算機(jī)程序;程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境;程序開發(fā)的步驟程序開發(fā)的步驟計(jì)算機(jī)和編程基礎(chǔ)知識2計(jì)算機(jī)和計(jì)算機(jī)程序算法是解題的方法和步驟的描述算法是解題的方法和步驟的描述;對于算法對于算法(俠義俠義)的實(shí)現(xiàn)可以有多種途徑的實(shí)現(xiàn)可以有多種途徑;(如心算、計(jì)算器、計(jì)算尺、算盤等等計(jì)算如心算、計(jì)算器、計(jì)算尺、算盤等等計(jì)算工具來實(shí)現(xiàn)算法工具來實(shí)現(xiàn)算法);由于電子計(jì)算機(jī)所具有的基本特征(高速由于電子計(jì)算機(jī)所具有的基本特征(高速度、大容量等),直到目前為止還是實(shí)現(xiàn)度、大容量等),直到目前為止還是實(shí)現(xiàn)各種復(fù)雜算法的最有效工具各種復(fù)雜算法的最有效工具3計(jì)算機(jī)和計(jì)算機(jī)程序電子計(jì)算機(jī)的特點(diǎn):電子計(jì)算機(jī)的特點(diǎn):使用脈沖數(shù)字電路,能進(jìn)行高速數(shù)據(jù)傳輸和使用脈沖數(shù)字電路,能進(jìn)行高速數(shù)據(jù)傳輸和數(shù)據(jù)計(jì)算數(shù)據(jù)計(jì)算(數(shù)據(jù)處理數(shù)據(jù)處理)任務(wù);(速度上)任務(wù);(速度上)計(jì)算精度高計(jì)算精度高;(;(如 的精度達(dá)到200萬位)具有存儲信息的能力;具有存儲信息的能力;由程序控制、全自動(dòng)運(yùn)行;(邏輯判斷)由程序控制、全自動(dòng)運(yùn)行;(邏輯判斷)使用的是二進(jìn)制數(shù)據(jù)表示;使用的是二進(jìn)制數(shù)據(jù)表示;可靠性高、通用性強(qiáng)。
可靠性高、通用性強(qiáng)4計(jì)算機(jī)和計(jì)算機(jī)程序電子計(jì)算機(jī)的主要用途:電子計(jì)算機(jī)的主要用途:科學(xué)計(jì)算科學(xué)計(jì)算;數(shù)據(jù)處理;數(shù)據(jù)處理;自動(dòng)控制;自動(dòng)控制;輔助設(shè)計(jì)與制造輔助設(shè)計(jì)與制造(CAI CAT CAD CAM);(CAI CAT CAD CAM);人工智能人工智能(Artificial Intelligengce)(Artificial Intelligengce)等等5計(jì)算機(jī)和計(jì)算機(jī)程序2.2 計(jì)算機(jī)的基本組成計(jì)算機(jī)的基本組成6計(jì)算機(jī)和計(jì)算機(jī)程序用用 戶戶數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)程程 序序存儲區(qū)存儲區(qū)輸出設(shè)備輸出設(shè)備輸入設(shè)備輸入設(shè)備外部存儲設(shè)備外部存儲設(shè)備控制器控制器運(yùn)算器運(yùn)算器存儲器存儲器信息流信息流控制流控制流7計(jì)算機(jī)和計(jì)算機(jī)程序2.2 計(jì)算機(jī)的基本組成計(jì)算機(jī)的基本組成運(yùn)算器運(yùn)算器 運(yùn)算器或稱算術(shù)邏輯單元(運(yùn)算器或稱算術(shù)邏輯單元(Arithmetical and Logical Unit-ALU)的主要功能是對數(shù)據(jù)進(jìn)行各種)的主要功能是對數(shù)據(jù)進(jìn)行各種運(yùn)算它由運(yùn)算它由ALU、通用和專用寄存器組、內(nèi)部總、通用和專用寄存器組、內(nèi)部總線組成加法器加法器+邏輯功能部件邏輯功能部件邏輯邏輯運(yùn)算運(yùn)算)存儲器存儲器 存儲器(存儲器(Memory Unit)的主要功能是存儲程序)的主要功能是存儲程序和各種數(shù)據(jù)信息,并能在計(jì)算機(jī)運(yùn)行過程中高速、和各種數(shù)據(jù)信息,并能在計(jì)算機(jī)運(yùn)行過程中高速、自動(dòng)地完成程序或數(shù)據(jù)的存取。
根據(jù)存儲器在系自動(dòng)地完成程序或數(shù)據(jù)的存取根據(jù)存儲器在系統(tǒng)中的作用,可分為:高速緩沖存儲器、內(nèi)存儲統(tǒng)中的作用,可分為:高速緩沖存儲器、內(nèi)存儲器、外存儲器器、外存儲器8計(jì)算機(jī)和計(jì)算機(jī)程序2.2 計(jì)算機(jī)的基本組成計(jì)算機(jī)的基本組成控制器控制器控制器控制器(Control UnitControl Unit)是整個(gè)計(jì)算機(jī)系統(tǒng)的控制中)是整個(gè)計(jì)算機(jī)系統(tǒng)的控制中心,它指揮計(jì)算機(jī)各部分協(xié)調(diào)工作,保證計(jì)算機(jī)按照心,它指揮計(jì)算機(jī)各部分協(xié)調(diào)工作,保證計(jì)算機(jī)按照預(yù)先規(guī)定的目標(biāo)和步驟有條不紊地進(jìn)行操作及處理預(yù)先規(guī)定的目標(biāo)和步驟有條不紊地進(jìn)行操作及處理控制器由以下五個(gè)部件組成:控制器由以下五個(gè)部件組成:1 1)程序計(jì)數(shù)器(存放下一條指令地址);)程序計(jì)數(shù)器(存放下一條指令地址);2 2)指令寄存器(存放來自存儲器的待執(zhí)行的指令);)指令寄存器(存放來自存儲器的待執(zhí)行的指令);3 3)指令譯碼器(指令譯碼,將指令的操作碼部分)指令譯碼器(指令譯碼,將指令的操作碼部分“翻譯翻譯”成相成相 應(yīng)的操作);應(yīng)的操作);4 4)時(shí)序部件(產(chǎn)生計(jì)算機(jī)工作中所需的各種時(shí)序信號)時(shí)序部件(產(chǎn)生計(jì)算機(jī)工作中所需的各種時(shí)序信號-節(jié)拍)節(jié)拍);5 5)微操作部件(控制器的主體:一條指令的執(zhí)行過程可更進(jìn))微操作部件(控制器的主體:一條指令的執(zhí)行過程可更進(jìn) 一步地看做是微操作的產(chǎn)生過程)一步地看做是微操作的產(chǎn)生過程);9計(jì)算機(jī)和計(jì)算機(jī)程序10計(jì)算機(jī)和計(jì)算機(jī)程序2.2 計(jì)算機(jī)的基本組成計(jì)算機(jī)的基本組成輸入設(shè)備輸入設(shè)備用來向計(jì)算機(jī)輸入各種原始數(shù)據(jù)和程序用來向計(jì)算機(jī)輸入各種原始數(shù)據(jù)和程序的設(shè)備叫輸入設(shè)備(的設(shè)備叫輸入設(shè)備(Input DeviceInput Device)。
有文字輸入設(shè)備、圖形輸入設(shè)備、圖像有文字輸入設(shè)備、圖形輸入設(shè)備、圖像輸入設(shè)備、語音輸入設(shè)備等等輸入設(shè)備、語音輸入設(shè)備等等輸出設(shè)備輸出設(shè)備從計(jì)算機(jī)輸出各類數(shù)據(jù)(信息)的設(shè)備從計(jì)算機(jī)輸出各類數(shù)據(jù)(信息)的設(shè)備叫做輸出設(shè)備(叫做輸出設(shè)備(Output DeviceOutput Device)有的設(shè)備是:有的設(shè)備是:Input and Output(I/O)Input and Output(I/O)11計(jì)算機(jī)和計(jì)算機(jī)程序2.2 計(jì)算機(jī)的基本組成計(jì)算機(jī)的基本組成馮諾依曼計(jì)算機(jī)的基本工作過程,計(jì)算機(jī)的基本工作過程,概括地說就是:概括地說就是:存儲指令取指令分析指令執(zhí)行指令再取下一條指令,依次周而復(fù)始地執(zhí)行指令,依次周而復(fù)始地執(zhí)行指令序列的過程序列的過程12計(jì)算機(jī)和計(jì)算機(jī)程序2.2 計(jì)算機(jī)的基本組成計(jì)算機(jī)的基本組成13計(jì)算機(jī)和計(jì)算機(jī)程序存儲信息的單位:存儲信息的單位:存儲容量:一個(gè)存儲器能容納的存儲單元存儲容量:一個(gè)存儲器能容納的存儲單元總數(shù);一般使用總數(shù);一般使用:字(字(word)字節(jié)字節(jié)(Bytes)位位(Bit)KB MB GB(吉吉)TB(太拉)(太拉)14計(jì)算機(jī)和計(jì)算機(jī)程序數(shù)制的轉(zhuǎn)換:數(shù)制的轉(zhuǎn)換:1)二進(jìn)制二進(jìn)制十進(jìn)制十進(jìn)制(1101)(1101)2 2=12=123 3+12+122 2+02+021 1+12+120 0 =(13)=(13)10102)二進(jìn)制二進(jìn)制十六進(jìn)制、八進(jìn)制十六進(jìn)制、八進(jìn)制 (111101.111)2(0011 1101.1110)2 (3D.E)16(111101.111)2(111 101.111)2 (75.7)8小數(shù)部分是2的負(fù)次方之和15計(jì)算機(jī)和計(jì)算機(jī)程序數(shù)的多項(xiàng)式表示數(shù)的多項(xiàng)式表示對于一個(gè)對于一個(gè)k進(jìn)制的數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)進(jìn)制的數(shù)轉(zhuǎn)換為十進(jìn)制數(shù):k:基數(shù):基數(shù) m:數(shù)字(數(shù)字(0k-1的數(shù)字)的數(shù)字)n:整數(shù)和小數(shù)部分的位數(shù)值整數(shù)和小數(shù)部分的位數(shù)值16計(jì)算機(jī)和計(jì)算機(jī)程序3)十進(jìn)制十進(jìn)制二進(jìn)制二進(jìn)制(53)10=(110101)2除取余除取余17計(jì)算機(jī)和計(jì)算機(jī)程序(0.375)10=(0.011)2乘取整乘取整18計(jì)算機(jī)和計(jì)算機(jī)程序非數(shù)值領(lǐng)域非數(shù)值領(lǐng)域:ASCIIASCII(American Standard Code for Information American Standard Code for Information Interchange Interchange)美國信息交換標(biāo)準(zhǔn)代碼)美國信息交換標(biāo)準(zhǔn)代碼 。
一個(gè)字節(jié)為一個(gè)字節(jié)為8 8位二進(jìn)制,一個(gè)位二進(jìn)制,一個(gè)ASCIIASCII碼占一個(gè)字節(jié)碼占一個(gè)字節(jié)的低的低7 7位,最高位為規(guī)定為位,最高位為規(guī)定為0 0,這樣一個(gè)字節(jié)可表示,這樣一個(gè)字節(jié)可表示2 2的的7 7次方即次方即128128種狀態(tài)種狀態(tài),從從00001,00001,每種狀態(tài)與一個(gè)每種狀態(tài)與一個(gè)ASCIIASCII碼字符唯一對應(yīng),即可表示碼字符唯一對應(yīng),即可表示128128個(gè)字符,包括個(gè)字符,包括2626個(gè)英文大寫字符、個(gè)英文大寫字符、2626個(gè)英文小寫字符、個(gè)英文小寫字符、1010個(gè)數(shù)字個(gè)數(shù)字字符、字符、3333個(gè)標(biāo)點(diǎn)符號和個(gè)標(biāo)點(diǎn)符號和3333個(gè)控制符個(gè)控制符EBCDICEBCDIC擴(kuò)充的二擴(kuò)充的二十進(jìn)制交換碼(用于大型機(jī))十進(jìn)制交換碼(用于大型機(jī))19計(jì)算機(jī)和計(jì)算機(jī)程序?yàn)榱耸谷撕陀?jì)算機(jī)能進(jìn)行信息交互而使為了使人和計(jì)算機(jī)能進(jìn)行信息交互而使用的、人機(jī)都能理解的特定語言用的、人機(jī)都能理解的特定語言計(jì)算機(jī)語言計(jì)算機(jī)語言人機(jī)共同語言)人機(jī)共同語言)計(jì)算機(jī)語言的種類計(jì)算機(jī)語言的種類:機(jī)器語言;機(jī)器語言;符號語言;(符號語言;(Symol)算法語言;算法語言;非過程化語言非過程化語言(面向?qū)ο蟮拿嫦驅(qū)ο蟮腛OP)。
20計(jì)算機(jī)和計(jì)算機(jī)程序機(jī)器語言:機(jī)器語言:每一類計(jì)算機(jī)都規(guī)定了由若干位二進(jìn)制信息每一類計(jì)算機(jī)都規(guī)定了由若干位二進(jìn)制信息組成的一條條指令所有這些指令的集合就組成的一條條指令所有這些指令的集合就是該機(jī)器的指令系統(tǒng)計(jì)算機(jī)能直接執(zhí)行這是該機(jī)器的指令系統(tǒng)計(jì)算機(jī)能直接執(zhí)行這些二進(jìn)制指令些二進(jìn)制指令機(jī)器指令機(jī)器指令.全部機(jī)器指令的總和就稱之為該機(jī)器的機(jī)器全部機(jī)器指令的總和就稱之為該機(jī)器的機(jī)器語言為求解某一實(shí)際問題而從指令系統(tǒng)中挑選一為求解某一實(shí)際問題而從指令系統(tǒng)中挑選一些指令組成一個(gè)序列些指令組成一個(gè)序列就是機(jī)器語言程序就是機(jī)器語言程序21計(jì)算機(jī)和計(jì)算機(jī)程序B0 07 Mov AL,07B3 03 Mov BL,0328 D8 Sub AL,BLCD 20 Int 2022計(jì)算機(jī)和計(jì)算機(jī)程序符號語言符號語言:由于機(jī)器語言指令的二進(jìn)制碼難以記憶由于機(jī)器語言指令的二進(jìn)制碼難以記憶,使用使用也很繁瑣也很繁瑣,人們想到使用符號來代替原來的指人們想到使用符號來代替原來的指令的辦法令的辦法符號語言符號語言一般來說一般來說,一條符號語言指令對應(yīng)一條機(jī)器指一條符號語言指令對應(yīng)一條機(jī)器指令因此,使用符號語言指令編寫程序就需要使用符號語言指令編寫程序就需要一個(gè)翻譯工具一個(gè)翻譯工具匯編程序就是匯編程序就是來完成這個(gè)任務(wù)來完成這個(gè)任務(wù)的的(也稱之為也稱之為“匯編匯編”或或“代真代真”過程過程),最后,最后得到的機(jī)器指令就是得到的機(jī)器指令就是“目標(biāo)程序目標(biāo)程序”;MOV AX,1000 ADD AX,BX SUB AX,BX23計(jì)算機(jī)和計(jì)算機(jī)程序算法語言算法語言:對于機(jī)器語言和符號語言都是面向機(jī)器的對于機(jī)器語言和符號語言都是面向機(jī)器的,可移植性較差,屬于可移植性較差,屬于“低級語言低級語言”;”;算法語言的表示方式接近自然語言和數(shù)學(xué)語算法語言的表示方式接近自然語言和數(shù)學(xué)語言言,是面向是面向“過程過程”的語言的語言高級語言高級語言;常用的算法語言常用的算法語言:BASIC;FORTRAN;COBOL;PASCAL;C系列系列;ADA(每種語言都有不同版本每種語言都有不同版本)面向過程的語言面向過程的語言24計(jì)算機(jī)和計(jì)算機(jī)程序非過程化語言非過程化語言:算法語言是過程化的語言算法語言是過程化的語言,就是在解題中要就是在解題中要詳盡規(guī)定解題過程的每一步驟詳盡規(guī)定解題過程的每一步驟,清楚地描述清楚地描述(由程序安排由程序安排)“)“做什么做什么”,“”,“怎么做怎么做”。
現(xiàn)在人們開發(fā)出了非過程化語言,就是只現(xiàn)在人們開發(fā)出了非過程化語言,就是只要確定要確定“做什么做什么”,計(jì)算機(jī)就能完成任務(wù)計(jì)算機(jī)就能完成任務(wù)如如“打印出我校入學(xué)成績打印出我校入學(xué)成績600600分以上的學(xué)生姓名分以上的學(xué)生姓名”LIST ALL FOR 入學(xué)成績?nèi)雽W(xué)成績=60025計(jì)算機(jī)和計(jì)算機(jī)程序2.4 計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)程序計(jì)算機(jī)程序語言:是指全部指令的集合,每一種語言都語言:是指全部指令的集合,每一種語言都規(guī)定了各自的語法規(guī)則以及語用含義規(guī)定了各自的語法規(guī)則以及語用含義程序:為解決某一特定問題而用某一種語言程序:為解決某一特定問題而用某一種語言編寫的指令序列編寫的指令序列它們之間的關(guān)系類似于它們之間的關(guān)系類似于:如:中文如:中文語言語言 一篇中文論文一篇中文論文程序程序26計(jì)算機(jī)和計(jì)算機(jī)程序2.4 計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)語言和計(jì)算機(jī)程序用計(jì)算機(jī)語言編程要掌握三個(gè)基本概念:用計(jì)算機(jī)語言編程要掌握三個(gè)基本概念:語法:掌握嚴(yán)格的語法規(guī)則編程,不然編譯系語法:掌握嚴(yán)格的語法規(guī)則編程,不然編譯系 統(tǒng)會給出語法錯(cuò)誤統(tǒng)會給出語法錯(cuò)誤語義:掌握語法成分的含義:語義:掌握語法成分的含義:Print Print是打印輸出;是打印輸出;Write Write是輸出到指定的設(shè)備上;是輸出到指定的設(shè)備上;語用:要善于利用語法規(guī)則中有關(guān)規(guī)定和語言語用:要善于利用語法規(guī)則中有關(guān)規(guī)定和語言成分的含義組織程序以達(dá)到特定的目的。
如怎成分的含義組織程序以達(dá)到特定的目的如怎樣得到所需的循環(huán)次數(shù),如何得到我要的打印樣得到所需的循環(huán)次數(shù),如何得到我要的打印格式格式正確使用語言問題正確使用語言問題都是表示輸出27計(jì)算機(jī)和計(jì)算機(jī)程序2.4 計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)語言和計(jì)算機(jī)程序N.WIRTHN.WIRTH指出:指出:“程序就是在數(shù)據(jù)的某些程序就是在數(shù)據(jù)的某些特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上,對抽象特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上,對抽象算法的具體描述算法的具體描述”:1 1)對求解一個(gè)問題,先應(yīng)有正確的算法;對求解一個(gè)問題,先應(yīng)有正確的算法;2 2)程序處理的對象是數(shù)據(jù),數(shù)據(jù)有自己的特)程序處理的對象是數(shù)據(jù),數(shù)據(jù)有自己的特 性,而且它們還有內(nèi)在聯(lián)系等要合理組性,而且它們還有內(nèi)在聯(lián)系等要合理組 織它們就要選擇合適的數(shù)據(jù)結(jié)構(gòu)織它們就要選擇合適的數(shù)據(jù)結(jié)構(gòu)3 3)程序不僅要描述算法,還要描述數(shù)據(jù)結(jié)構(gòu))程序不僅要描述算法,還要描述數(shù)據(jù)結(jié)構(gòu)算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)=程序程序理理 解解28計(jì)算機(jī)和計(jì)算機(jī)程序2.4 計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)語言和計(jì)算機(jī)程序?qū)Τ绦虻脑u價(jià)對程序的評價(jià):根據(jù)根據(jù)N.WIRTHN.WIRTH提出的提出的“算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)=程序程序”的公式來評價(jià)一個(gè)程序時(shí)的公式來評價(jià)一個(gè)程序時(shí),除除了要求程序的正確性和有效性外了要求程序的正確性和有效性外,還要還要求程序具有簡明性、可靠性、可修改求程序具有簡明性、可靠性、可修改性、可重用性等特征。
性、可重用性等特征29計(jì)算機(jī)和計(jì)算機(jī)程序2.4 計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)語言和計(jì)算機(jī)程序?qū)τ趯τ凇敖Y(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)”,除了,除了“算法算法”和和“數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)”外,我們還應(yīng)該遵循:外,我們還應(yīng)該遵循:算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)+結(jié)構(gòu)化方法結(jié)構(gòu)化方法+語言工具語言工具結(jié)構(gòu)化程序結(jié)構(gòu)化程序結(jié)結(jié)構(gòu)構(gòu)化化程程序序設(shè)設(shè)計(jì)計(jì)的的四四大大要要素素30計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境要運(yùn)行一個(gè)程序,除了硬件外,要運(yùn)行一個(gè)程序,除了硬件外,還需要有軟件環(huán)境的支持對于還需要有軟件環(huán)境的支持對于語言程序除了有相應(yīng)的匯編、解語言程序除了有相應(yīng)的匯編、解釋、編譯程序外,還必須有操作釋、編譯程序外,還必須有操作系統(tǒng)這個(gè)最大的、最基本的軟件系統(tǒng)這個(gè)最大的、最基本的軟件環(huán)境的支持環(huán)境的支持31計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境軟件環(huán)境軟件環(huán)境:操作系統(tǒng);操作系統(tǒng);編輯程序;編輯程序;翻譯程序;翻譯程序;裝配連接程序裝配連接程序硬硬件件操作系統(tǒng)操作系統(tǒng)應(yīng)用軟件層應(yīng)用軟件層32計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境 操作系統(tǒng)操作系統(tǒng)操作系統(tǒng)是指對計(jì)算機(jī)系統(tǒng)的硬件資源(操作系統(tǒng)是指對計(jì)算機(jī)系統(tǒng)的硬件資源(CPUCPU、存儲器、存儲器、I/OI/O設(shè)備)和軟件資源(各種系統(tǒng)軟設(shè)備)和軟件資源(各種系統(tǒng)軟件和應(yīng)用軟件)進(jìn)行統(tǒng)一指揮、統(tǒng)一管理、件和應(yīng)用軟件)進(jìn)行統(tǒng)一指揮、統(tǒng)一管理、統(tǒng)一分配、統(tǒng)一調(diào)度的軟件系統(tǒng),是計(jì)算機(jī)統(tǒng)一分配、統(tǒng)一調(diào)度的軟件系統(tǒng),是計(jì)算機(jī)系統(tǒng)正常運(yùn)行的控制中心系統(tǒng)正常運(yùn)行的控制中心,是現(xiàn)代計(jì)算機(jī)必備是現(xiàn)代計(jì)算機(jī)必備系統(tǒng)軟件。
人們常常將沒有操作系統(tǒng)的計(jì)算系統(tǒng)軟件人們常常將沒有操作系統(tǒng)的計(jì)算機(jī)稱之為機(jī)稱之為“裸機(jī)裸機(jī)”33計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境操作系統(tǒng)分為:操作系統(tǒng)分為:單用戶系統(tǒng)(用戶獨(dú)占方式)單用戶系統(tǒng)(用戶獨(dú)占方式)批處理方式(多道作業(yè))批處理方式(多道作業(yè))分時(shí)系統(tǒng)(多終端系統(tǒng))分時(shí)系統(tǒng)(多終端系統(tǒng))實(shí)時(shí)系統(tǒng)(強(qiáng)調(diào)響應(yīng)速度)實(shí)時(shí)系統(tǒng)(強(qiáng)調(diào)響應(yīng)速度)目前流行的系統(tǒng):目前流行的系統(tǒng):UNIX、WINDOWS、部分、部分DOS34計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境 操作系統(tǒng)的功能操作系統(tǒng)的功能存儲管理存儲管理處理機(jī)管理處理機(jī)管理設(shè)備管理設(shè)備管理文件管理文件管理進(jìn)程管理進(jìn)程管理控制控制CPU每瞬時(shí)每瞬時(shí)的工作,接受中的工作,接受中斷信號,為用戶斷信號,為用戶提供提供CPU處理有效地管理計(jì)算有效地管理計(jì)算機(jī)的各種設(shè)備,機(jī)的各種設(shè)備,使之有效地工作使之有效地工作合理地為用戶分合理地為用戶分配存儲空間,有配存儲空間,有效地管理內(nèi)存效地管理內(nèi)存管理外存中的程管理外存中的程序和數(shù)據(jù),在需序和數(shù)據(jù),在需要時(shí)及時(shí)調(diào)入內(nèi)要時(shí)及時(shí)調(diào)入內(nèi)存使用是指處理機(jī)執(zhí)行是指處理機(jī)執(zhí)行程序?qū)?shù)據(jù)進(jìn)行程序?qū)?shù)據(jù)進(jìn)行處理的全過程所處理的全過程所進(jìn)行的管理。
進(jìn)行的管理合理地調(diào)度用戶合理地調(diào)度用戶作業(yè),負(fù)責(zé)組織作業(yè),負(fù)責(zé)組織和控制作業(yè)的運(yùn)和控制作業(yè)的運(yùn)行,決定什么時(shí)行,決定什么時(shí)候可以使用處理候可以使用處理機(jī)35計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境編輯程序編輯程序 是源程序的建立與修改是源程序的建立與修改(修改、插入、刪除等修改、插入、刪除等)的平臺一般來說可以是一個(gè)文字編輯系統(tǒng)一般來說可以是一個(gè)文字編輯系統(tǒng)如:如:EDLIN EDIT 寫字板寫字板 WORD等等 翻譯程序翻譯程序 是一個(gè)將符號語言或高級語言翻譯成機(jī)器語言是一個(gè)將符號語言或高級語言翻譯成機(jī)器語言的程序有以下三種:的程序有以下三種:匯編程序;匯編程序;解釋程序;解釋程序;編譯程序;編譯程序;例如例如36計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境 匯編程序的功能:匯編程序的功能:將符號語言程序翻譯成機(jī)器語言程序,它將符號語言程序翻譯成機(jī)器語言程序,它對符號語言源程序逐行掃描,將機(jī)器碼代對符號語言源程序逐行掃描,將機(jī)器碼代替助記符替助記符(代真代真),并進(jìn)行語法檢查并進(jìn)行語法檢查編譯程序的功能:編譯程序的功能:將高級語言程序?qū)⒏呒壵Z言程序(算法語言算法語言)轉(zhuǎn)換成機(jī)器語轉(zhuǎn)換成機(jī)器語言程序,具有翻譯和查錯(cuò)功能。
詞法、語言程序,具有翻譯和查錯(cuò)功能詞法、語法、語義分析、生成目標(biāo)程序以及優(yōu)化目法、語義分析、生成目標(biāo)程序以及優(yōu)化目標(biāo)程序等功能標(biāo)程序等功能例如37計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境 解釋程序解釋程序:也是將高級語言程序轉(zhuǎn)換成機(jī)器語言程序,也是將高級語言程序轉(zhuǎn)換成機(jī)器語言程序,它是邊翻譯邊執(zhí)行,即輸入一句,翻譯一句,它是邊翻譯邊執(zhí)行,即輸入一句,翻譯一句,執(zhí)行一句,不產(chǎn)生整個(gè)目標(biāo)程序遇見錯(cuò)誤執(zhí)行一句,不產(chǎn)生整個(gè)目標(biāo)程序遇見錯(cuò)誤語句就立即停止執(zhí)行語句就立即停止執(zhí)行典型的使用解釋程序的語言是典型的使用解釋程序的語言是BASICBASIC語言語言)38計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境裝配連接程序:裝配連接程序:經(jīng)過編譯得到的目標(biāo)程序經(jīng)過編譯得到的目標(biāo)程序(*.OBJ)(*.OBJ)是不能是不能立即執(zhí)行的,因?yàn)樵谀繕?biāo)程序中,一般立即執(zhí)行的,因?yàn)樵谀繕?biāo)程序中,一般包含著內(nèi)部函數(shù)、外部函數(shù)、子程序、包含著內(nèi)部函數(shù)、外部函數(shù)、子程序、過程庫中的程序等,需要進(jìn)一步的將它過程庫中的程序等,需要進(jìn)一步的將它們連接起來們連接起來-裝配連接程序,最后變成裝配連接程序,最后變成可執(zhí)行的程序可執(zhí)行的程序(*.EXE).(*.EXE).源程序源程序編譯編譯裝配連接裝配連接運(yùn)行運(yùn)行39計(jì)算機(jī)和計(jì)算機(jī)程序2.5 程序運(yùn)行環(huán)境程序運(yùn)行環(huán)境編輯編輯(源程序的建立)(源程序的建立)編譯編譯(源程序生成目標(biāo)程序)(源程序生成目標(biāo)程序)裝配連接裝配連接(將目標(biāo)程序與子程序連接)(將目標(biāo)程序與子程序連接)運(yùn)行算算法法語語言言程程序序設(shè)設(shè)計(jì)計(jì)步步驟驟40計(jì)算機(jī)和計(jì)算機(jī)程序2.6 程序開發(fā)的步驟程序開發(fā)的步驟軟件生命期和軟件工程的概念軟件生命期和軟件工程的概念與計(jì)算機(jī)硬件的發(fā)展過程一樣,軟件也與計(jì)算機(jī)硬件的發(fā)展過程一樣,軟件也有它們的生命期限(伴隨著硬件)如有它們的生命期限(伴隨著硬件)如微軟最近公布停止對微軟最近公布停止對XP進(jìn)行進(jìn)行“主流支持主流支持”,而進(jìn)入所謂的,而進(jìn)入所謂的“延長支持期延長支持期”,年內(nèi)淡出市場這樣,我們的年內(nèi)淡出市場這樣,我們的Win XP、Office2003等需要升級,不然可能造成危等需要升級,不然可能造成危險(xiǎn)。
對于系統(tǒng)的升級:險(xiǎn)對于系統(tǒng)的升級:Win 7 或或Vista41計(jì)算機(jī)和計(jì)算機(jī)程序2.6 程序開發(fā)的步驟程序開發(fā)的步驟軟件生命期和軟件工程的概念軟件生命期和軟件工程的概念開發(fā)一個(gè)應(yīng)用系統(tǒng)所經(jīng)過的階段:開發(fā)一個(gè)應(yīng)用系統(tǒng)所經(jīng)過的階段:建立數(shù)學(xué)模型;建立數(shù)學(xué)模型;確定算法,畫出流程圖;確定算法,畫出流程圖;編寫程序;編寫程序;程序測試程序測試對于一個(gè)復(fù)雜的問題,直接寫出算法是對于一個(gè)復(fù)雜的問題,直接寫出算法是困難的,這就要運(yùn)用困難的,這就要運(yùn)用“軟件工程軟件工程”的方的方法來開發(fā),也就是運(yùn)用工程學(xué)的知識和法來開發(fā),也就是運(yùn)用工程學(xué)的知識和方法指導(dǎo)和規(guī)范軟件開發(fā)全過程方法指導(dǎo)和規(guī)范軟件開發(fā)全過程42計(jì)算機(jī)和計(jì)算機(jī)程序2.6 程序開發(fā)的步驟程序開發(fā)的步驟軟件生命期和軟件工程的概念軟件生命期和軟件工程的概念-軟件生命期軟件生命期(階段)(階段):定義階段定義階段:u軟件開發(fā)計(jì)劃軟件開發(fā)計(jì)劃:確定總目標(biāo)確定總目標(biāo),選定可行的方案選定可行的方案u需求分析需求分析:詳細(xì)分析用戶需求詳細(xì)分析用戶需求,最后形成功能說明書最后形成功能說明書開發(fā)階段開發(fā)階段:u總體設(shè)計(jì)總體設(shè)計(jì):確定軟件系統(tǒng)結(jié)構(gòu)確定軟件系統(tǒng)結(jié)構(gòu),即大系統(tǒng)下的子系統(tǒng)即大系統(tǒng)下的子系統(tǒng)u詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì):使用流程圖對各個(gè)子系統(tǒng)完成設(shè)計(jì)算法使用流程圖對各個(gè)子系統(tǒng)完成設(shè)計(jì)算法u編程編程:用語言程序來實(shí)現(xiàn)算法用語言程序來實(shí)現(xiàn)算法u軟件測試軟件測試:重復(fù)運(yùn)行以糾正錯(cuò)誤:常規(guī)測試、極限測試重復(fù)運(yùn)行以糾正錯(cuò)誤:常規(guī)測試、極限測試維護(hù)階段維護(hù)階段u交付使用交付使用:交付程序和文檔資料交付程序和文檔資料,說明運(yùn)行環(huán)境等說明運(yùn)行環(huán)境等u軟件維護(hù)軟件維護(hù):在使用中不斷修改錯(cuò)誤直至軟件消亡在使用中不斷修改錯(cuò)誤直至軟件消亡.43計(jì)算機(jī)和計(jì)算機(jī)程序2.6 程序開發(fā)的步驟程序開發(fā)的步驟軟件生命期和軟件工程的概念軟件生命期和軟件工程的概念-各階段的工作量之比各階段的工作量之比:定義定義(1),設(shè)計(jì)和編碼設(shè)計(jì)和編碼(10),測試測試(50),維護(hù)維護(hù)(501000)設(shè)計(jì)人員工作范疇設(shè)計(jì)人員工作范疇:系統(tǒng)分析員系統(tǒng)分析員:系統(tǒng)的分析與定義系統(tǒng)的分析與定義 高級程序員高級程序員:總體設(shè)計(jì)以及測試總體設(shè)計(jì)以及測試 程程 序序 員員:詳細(xì)設(shè)計(jì)和編程、維護(hù)。
詳細(xì)設(shè)計(jì)和編程、維護(hù)44計(jì)算機(jī)和計(jì)算機(jī)程序2.6 程序開發(fā)的步驟程序開發(fā)的步驟結(jié)構(gòu)程序設(shè)計(jì)方法:結(jié)構(gòu)程序設(shè)計(jì)方法:一個(gè)結(jié)構(gòu)化程序就是用高級語言表示的結(jié)構(gòu)化一個(gè)結(jié)構(gòu)化程序就是用高級語言表示的結(jié)構(gòu)化算法只要是使用三種結(jié)構(gòu)(順序、選擇、循算法只要是使用三種結(jié)構(gòu)(順序、選擇、循環(huán))組成的程序一定是結(jié)構(gòu)化(就是層次分明、環(huán))組成的程序一定是結(jié)構(gòu)化(就是層次分明、結(jié)構(gòu)清晰、算法準(zhǔn)確)的程序結(jié)構(gòu)清晰、算法準(zhǔn)確)的程序結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思想:將復(fù)雜問題結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思想:將復(fù)雜問題的求解分階段、分模塊地進(jìn)行:的求解分階段、分模塊地進(jìn)行:1 1)自頂向下)自頂向下(從下到上從下到上);2 2)逐步細(xì)化;)逐步細(xì)化;3 3)模塊化設(shè)計(jì);)模塊化設(shè)計(jì);4 4)結(jié)構(gòu)化編碼結(jié)構(gòu)化編碼45計(jì)算機(jī)和計(jì)算機(jī)程序?qū)W院財(cái)務(wù)管理系統(tǒng)學(xué)院財(cái)務(wù)管理系統(tǒng)一系財(cái)務(wù)二系財(cái)務(wù)三系財(cái)務(wù)院部財(cái)務(wù)教工工資科研經(jīng)費(fèi)實(shí)驗(yàn)經(jīng)費(fèi)辦公經(jīng)費(fèi)46計(jì)算機(jī)和計(jì)算機(jī)程序一個(gè)簡單的結(jié)構(gòu)化程序設(shè)計(jì)舉例一個(gè)簡單的結(jié)構(gòu)化程序設(shè)計(jì)舉例將將1 1 10001000之間的素?cái)?shù)打印出來之間的素?cái)?shù)打印出來用篩選法用篩選法求素?cái)?shù)表求素?cái)?shù)表輸入輸入11000的各個(gè)數(shù)的各個(gè)數(shù)把所有的非把所有的非素?cái)?shù)去掉素?cái)?shù)去掉打印全打印全部素?cái)?shù)部素?cái)?shù)輸入輸入11000的各的各個(gè)數(shù)個(gè)數(shù)-A把所有的非素?cái)?shù)把所有的非素?cái)?shù)去掉去掉-B打印全部素?cái)?shù)打印全部素?cái)?shù) -C古希臘數(shù)學(xué)家古希臘數(shù)學(xué)家Eratosthenes提提出的這個(gè)篩選法出的這個(gè)篩選法47計(jì)算機(jī)和計(jì)算機(jī)程序A輸入N1I當(dāng)I=NIXiI+1I輸入數(shù)據(jù)輸入數(shù)據(jù)個(gè)數(shù)個(gè)數(shù)(數(shù)據(jù)數(shù)據(jù)由程序產(chǎn)生由程序產(chǎn)生)當(dāng)N=10時(shí),則有:X1=1 X2=2 X3=3.X10=1048計(jì)算機(jī)和計(jì)算機(jī)程序B0X12I當(dāng)I I+1I是否Xi=0?I+1JJ+1J當(dāng)J=N是否Xj=0?0Xj否是Xj能被Xi整除外循環(huán):外循環(huán):確定確定Xi內(nèi)循環(huán):內(nèi)循環(huán):確定該數(shù)是否確定該數(shù)是否是素?cái)?shù)。
是素?cái)?shù)將將X1=1去掉去掉1 2 3 4 5 6 7 8 9 100 0 0 0 00 2 3 0 5 0 7 0 9 00 0 0 0 0 049計(jì)算機(jī)和計(jì)算機(jī)程序1I當(dāng)I=NI+1ICPRINT Xi是否Xi=0?當(dāng)該數(shù)為當(dāng)該數(shù)為0時(shí)表示該數(shù)時(shí)表示該數(shù)已經(jīng)去掉已經(jīng)去掉完50計(jì)算機(jī)和計(jì)算機(jī)程序本章小結(jié)本章小結(jié)計(jì)算機(jī)的基本組成及工作原理計(jì)算機(jī)的基本組成及工作原理;計(jì)算機(jī)中數(shù)的表示、編碼方法等;計(jì)算機(jī)中數(shù)的表示、編碼方法等;計(jì)算機(jī)的基本特點(diǎn)及應(yīng)用分類計(jì)算機(jī)的基本特點(diǎn)及應(yīng)用分類;計(jì)算機(jī)中存儲信息的方法與容量表示計(jì)算機(jī)中存儲信息的方法與容量表示;計(jì)算機(jī)語言和計(jì)算機(jī)程序計(jì)算機(jī)語言和計(jì)算機(jī)程序;計(jì)算機(jī)程序運(yùn)行環(huán)境計(jì)算機(jī)程序運(yùn)行環(huán)境;算法語言程序的建立算法語言程序的建立運(yùn)行的步驟;運(yùn)行的步驟;應(yīng)用系統(tǒng)開發(fā)的步驟應(yīng)用系統(tǒng)開發(fā)的步驟51計(jì)算機(jī)和計(jì)算機(jī)程序ENDEND練習(xí)解釋練習(xí)解釋52計(jì)算機(jī)和計(jì)算機(jī)程序面向過程的語言:面向過程的語言:定義:不考慮機(jī)器內(nèi)部構(gòu)造和不同機(jī)器的定義:不考慮機(jī)器內(nèi)部構(gòu)造和不同機(jī)器的特點(diǎn),只要按照解題的算法寫出解題過程特點(diǎn),只要按照解題的算法寫出解題過程就能執(zhí)行的語言程序就能執(zhí)行的語言程序。
早期的算法語言基本都是面向過程的語言,早期的算法語言基本都是面向過程的語言,現(xiàn)在人們已經(jīng)使用了更新的算法語言現(xiàn)在人們已經(jīng)使用了更新的算法語言面面向?qū)ο蟮某绦蛟O(shè)計(jì)語言向?qū)ο蟮某绦蛟O(shè)計(jì)語言(OOP)(OOP)返回53計(jì)算機(jī)和計(jì)算機(jī)程序Eratosthenes篩選法1 1)輸入)輸入1100011000的數(shù)據(jù);的數(shù)據(jù);2 2)先去掉)先去掉1 1;3 3)用剛才去掉的數(shù)的后一個(gè)數(shù),去掉后面)用剛才去掉的數(shù)的后一個(gè)數(shù),去掉后面的各數(shù)中是該數(shù)的倍數(shù);的各數(shù)中是該數(shù)的倍數(shù);4 4)判斷這個(gè)數(shù))判斷這個(gè)數(shù)P P是否大于是否大于N N的開方數(shù);的開方數(shù);5 5)剩下的數(shù)就都是素?cái)?shù)剩下的數(shù)就都是素?cái)?shù)返回54計(jì)算機(jī)和計(jì)算機(jī)程序第二章的練習(xí)第二章的練習(xí)12題題3小題小題給定給定10個(gè)數(shù)個(gè)數(shù),打印出其中最大的一個(gè)數(shù)打印出其中最大的一個(gè)數(shù)輸入輸入10個(gè)數(shù)個(gè)數(shù)找出其中最大的數(shù)找出其中最大的數(shù)打印最大的數(shù)打印最大的數(shù)采用自頂向下采用自頂向下,逐步細(xì)化的結(jié)逐步細(xì)化的結(jié)構(gòu)化算法構(gòu)化算法55計(jì)算機(jī)和計(jì)算機(jī)程序第二章的練習(xí)第二章的練習(xí)12題題3小題小題給定給定10個(gè)數(shù)個(gè)數(shù),打印出其中最大的一個(gè)數(shù)打印出其中最大的一個(gè)數(shù)讀入一個(gè)數(shù)給讀入一個(gè)數(shù)給MAX分別對分別對9個(gè)數(shù)比較個(gè)數(shù)比較打印最大的數(shù)打印最大的數(shù)MAX讀入一個(gè)數(shù)給讀入一個(gè)數(shù)給A將將A與與MAX比較比較,大者保存大者保存MAX中中56計(jì)算機(jī)和計(jì)算機(jī)程序第二章的練習(xí)第二章的練習(xí)12題題3小題小題給定給定10個(gè)數(shù)個(gè)數(shù),打印出其中最大的一個(gè)數(shù)打印出其中最大的一個(gè)數(shù)N=1當(dāng)當(dāng)NMAXT F 57計(jì)算機(jī)和計(jì)算機(jī)程序第二章的練習(xí)第二章的練習(xí)12題題7小題小題給定一個(gè)偶數(shù)給定一個(gè)偶數(shù)M(M6),將它表示為兩個(gè)素?cái)?shù)將它表示為兩個(gè)素?cái)?shù)之和(如:之和(如:8=3+5 16=5+11 22=5+17)輸入輸入MA=3直到直到AM若若A、B均為素?cái)?shù),均為素?cái)?shù),打印則打印則A、B否則否則A+2AB=M-A采用自頂向下采用自頂向下,逐步細(xì)化的結(jié)逐步細(xì)化的結(jié)構(gòu)化算法構(gòu)化算法58計(jì)算機(jī)和計(jì)算機(jī)程序第二章的練習(xí)第二章的練習(xí)12題題7小題小題FLAG=0FLAG=1A=A+2FLAG=0A是素?cái)?shù)TTFFB是素?cái)?shù)TF打印:M=A+BA=A+2給定一個(gè)偶數(shù)給定一個(gè)偶數(shù)M(M6),將它表示為兩個(gè)素?cái)?shù)將它表示為兩個(gè)素?cái)?shù)之和(如:之和(如:8=3+5 16=5+11 22=5+17)59計(jì)算機(jī)和計(jì)算機(jī)程序第二章的練習(xí)第二章的練習(xí)12題題7小題小題I=2F1=0當(dāng)I和F1=0MOD(A,I)給定一個(gè)偶數(shù)給定一個(gè)偶數(shù)M(M6),將它表示為兩個(gè)素?cái)?shù)將它表示為兩個(gè)素?cái)?shù)之和(如:之和(如:8=3+5 16=5+11 22=5+17)60計(jì)算機(jī)和計(jì)算機(jī)程序給定一個(gè)偶數(shù)給定一個(gè)偶數(shù)M(M6),將它將它表示為兩個(gè)素表示為兩個(gè)素?cái)?shù)之和數(shù)之和如:如:8=3+5 16=5+11 22=5+17 以以8和和18為例說明為例說明M61計(jì)算機(jī)和計(jì)算機(jī)程序本章完本章完62計(jì)算機(jī)和計(jì)算機(jī)程序back63計(jì)算機(jī)和計(jì)算機(jī)程序在在Word中建立中建立Fortran源程序源程序直接按直接按Fortran源程序輸入;源程序輸入;以以TXT純文本格式保存;純文本格式保存;重命名文件后綴(重命名文件后綴(*.For 或或*.F90)在編譯環(huán)境中打開該文件在編譯環(huán)境中打開該文件back64計(jì)算機(jī)和計(jì)算機(jī)程序。
