




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章
程序設計初步參考書:編程思想及基礎:《數(shù)據結構》、《計算機算法基礎》、《算法設計與分析》、《面向面向對象技術》各種編程語言:《C語言程序設計》、《visualC++面向對象程序設計教程》、《JAVA程序設計》等章節(jié)內容4.1計算機程序的一般概念
4.2結構化程序設計方法的產生
4.3結構化程序設計方法的基本思想
4.4計算機程序的運行過程
4.5C語言對結構化程序設計方法的支持4.6算法
4.7
面向對象編程思想
4.1計算機程序的一般概念做一件事或解決一個問題都要有程序(具體的步驟)計算機程序:計算機為完成某一任務所必須執(zhí)行的一系列的指令的集合。!要想更好地駕馭計算機,就需要進行“編程(Programming),即程序設計。老兄,幫我計算一下2+3=?自然語言機器語言程序設計語言編程翻譯或解釋4.1計算機程序的一般概念當然,若有現(xiàn)成的軟件,就無需編程了。程序設計語言的發(fā)展簡史機器語言匯編語言例:C++,JAVA等面向對象的接近人類的自然語言和數(shù)學語言。例:Fortran、Basic、C、Prolog等面向過程的用助記符表示指令由0、1序列構成的指令碼例:SQL等面向問題的高級語言/~nkinners/LangList/Extras/langlist.htm簡單介紹了約2500種計算機語言各種語言編寫的1+1程序機器語言:101110000000000100000000000001010000000100000000匯編語言:MOVAX,1ADDAX,1像不像天書?C語言:printf("%d\n",1+1);一個計算機程序主要描述兩部分內容:一是實施的動作,二是動作所施加的對象。程序的共性目的性:有窮性:有序性:操作性:4.1計算機程序的一般概念4.2結構化程序設計方法的產生20世紀60年代,在開發(fā)大型軟件的過程中出現(xiàn)了所謂的“軟件危機”,其主要表現(xiàn)是:開發(fā)進度被推遲;成本超出預算;軟件產品不可靠。人們認識到軟件開發(fā)要比想象的復雜得多。為解決“軟件危機”,誕生了“結構化程序設計”的概念。4.3結構化程序設計
的基本概念、理論和方法44.自頂向下,逐步求精將一個大的原始問題分解為多個可獨立進行編程的小問題(即小模塊)。學生成績處理輸入輸出查找排序輸入到內存按學號查找按姓名查找從文件讀數(shù)據統(tǒng)計總分輸出到文件排序從文件讀數(shù)據從文件讀數(shù)據輸出到屏幕輸出到屏幕輸出到屏幕4.3結構化程序設計
的基本概念、理論和方法33.單入口和單出口無需對內部具體過程進行詳細的了解,只由入口與出口與其他模塊相連即可。第i個模塊和上一個模塊的出口相連和下一個模塊的入口相連4.3結構化程序設計
的基本概念、理論和方法11.結構定理
三種結構:順序、選擇、循環(huán)BABNA條件PYA假條件PNY4.3結構化程序設計
的基本概念、理論和方法22.goto之爭
Goto語句不符合結構化程序設計的基本原則,或者說它破壞了三種結構有一定的用處結構化程序設計方法的基本思想
信息隱蔽和局部化是結構化程序設計方法的另一基本思想。
結構化程序設計方法的基本思想還應該包括盡量使用3種基本結構、保持單入口和單出口形式、限制使用goto語句等,使得程序容易理解、容易維護和容易驗證其正確性。
W邊解釋邊運行1、編輯:程序員按某種程序設計語言的語法規(guī)則編寫程序源代碼4運行可執(zhí)行程序2編譯3連接可執(zhí)行程序4.4計算機程序的運行過程
編輯-編譯-連接-運行4.4計算機程序的運行過程
1.操作系統(tǒng):語言處理軟件的基礎(環(huán)境)
2.編輯程序:書寫程序代碼的程序寫好的程序以相應的文件擴展名存放在磁盤上。3.翻譯程序:將程序設計語言翻譯為機器語言(目標程序)4.連接程序:將目標程序與引用的其它程序等連接成一個整體。C語言的發(fā)展簡史原型ALGOL60語言1963年CPL(CombinedProgrammingLanguage)1967年BCPL語言1970年B語言1973年C語言1978年
《TheCProgrammingLanguage》1982-90年制定現(xiàn)行的C語言標準--ANSIC1983年C++C語言的設計者
DennisM.Ritchie4.5C語言對結構化程序設計方法的支持為什么選擇C語言?是一種高級語言具有所有高級語言所具備的易學、易用、易讀、易懂、強大、可移植的特點;歷史悠久,戰(zhàn)勛卓著誕生于上世紀70年代初,成熟于80年代“ANSIC”標準的發(fā)布是C語言成熟的標志很多重量級軟件都是用C寫的上天入地,無所不能幾乎沒有不能用C寫出來的軟件,且代碼簡潔沒有不支持C的系統(tǒng)為什么選擇C語言?硬件(Hardware)操作系統(tǒng)(OS)應用程序
(Application)低級語言的地盤高級語言的地盤C語言的地盤為什么選擇C語言?C語言被分類為高級語言,但實際上它是一種介于高級語言和低級語言之間的語言。很多流行語言、新生語言都借鑒了它的思想、語法從C++,到Java,再到C#正確地學好C語言,是學習這些流行語言的基礎,也是學好其它后續(xù)課程的基礎。4.5C語言對結構化程序設計方法的支持4.5.1C程序設計的一般結構(三種結構)4.5.2子程序結構(模塊化)C語言的順序結構
順序結構是指程序中語句的執(zhí)行次序是按照語句在程序中的自然次序來一條條執(zhí)行。
BAmain(){
printf(“welcometoC!”);
printf(“welcomeagain!”);}選擇結構(分支結構)選擇結構又稱分支結構。三種:單分支,雙分支,多分支BNA條件PYNA表達式PYA1條件P有n種情況情況1?A2情況2?An情況n?…C語言的選擇結構(分支結構)if(條件P){
執(zhí)行語句1; 執(zhí)行語句2; …}else{
執(zhí)行語句m;
執(zhí)行語句m+1;
…}
switch(條件P){
case
值1:語句1;…;break;
case
值2:語句m;…;break; …
case
值n:語句k;…;break;
default:語句k;…;break;}C語言的循環(huán)結構APT循環(huán)變量增加步長循環(huán)變量賦初值F1.while語句
while(條件A) {
執(zhí)行語句1;執(zhí)行語句2;…}
2.do…while語句
do{
執(zhí)行語句1;執(zhí)行語句2;…}while(條件A);3.for語句:for(初始化表達式1;條件判斷表達式2;計數(shù)表達式3) {執(zhí)行語句1;… }4.5.2子程序結構在C語言中,每一個模塊都是一個函數(shù),即子程序,也稱子函數(shù)。函數(shù)是一組相關語句的集合,能完成一個獨立的功能調用和被調用轉向語句1、break語句break語句只能用在switch語句或循環(huán)語句中,其作用是跳出switch語句或跳出本層循環(huán),轉去執(zhí)行后面的程序。由于break語句的轉移方向是明確的,所以不需要語句標號與之配合。2、continue語句continue語句只能用在循環(huán)體中,執(zhí)行該命令后結束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語句之后的語句,轉入下一次循環(huán)條件的判斷與執(zhí)行。小結程序與程序設計語言結構化程序設計思想(重點)程序的運行過程理解結構化程序設計思想在C語言中的具體體現(xiàn)作業(yè)思考題第2題4.6算法
4.6.1算法概述4.6.2算法的表示4.6.3算法舉例
一個公式計算機程序=數(shù)據結構+算法+程序設計語言
一、數(shù)據結構數(shù)據結構:數(shù)據元素之間具有某種相互關系,稱之為數(shù)據結構。常指數(shù)據的邏輯結構。邏輯結構數(shù)據結構線性非線性樹圖存儲結構鏈接存儲結構順序存儲結構抽象運算:初始化、讀取訪問、插入、刪除等二、算法-程序設計的靈魂1、算法的概念:為解決一個問題而采取的具體方法和步驟。2、算法的分類:數(shù)值運算和非數(shù)值運算3、特點:(1)有窮性:每個步驟執(zhí)行的次數(shù)及時間是有限的(2)確定性:每個步驟含義明確,無二義性。(3)可行性:描述的操作都可實現(xiàn)。(4)輸入:一個算法應具有一個或多個輸入。(5)輸出:一個算法應具有一個或多個輸出。二、算法-程序設計的靈魂4、評價算法的標準:正確性與可靠性簡單性與易理解性效率5、算法的表示方法:(1)自然語言描述(2)流程圖描述(3)N-S盒圖(4)偽碼表示法等現(xiàn)在的問題是:找出三個數(shù)的最大值。先來分析一下問題(1)自然語言描述求三個數(shù)最大值:
先將兩個數(shù)a和b進行比較,找出其最大者,然后再把它和第三個數(shù)c進行比較,如果它比第三個數(shù)大,則它就是最大數(shù),否則第三個數(shù)c就是最大數(shù)。特點:書寫簡單,但比較哆嗦,看起來結構也不夠清晰
(2)流程圖這是一種圖語言表示法,它用一些不同的圖例來表示算法的流程。常用的圖例主要有如下幾種。流程圖表示法常用圖例求三個數(shù)的最大值問題的流程圖表示優(yōu)點:結構清晰缺點:流程線過長,圖較大(3)N-S盒圖也是一種圖語言表示法,其特點是在一個矩形框內完成算法的流程說明AB順序AB條件TF選擇當條件成立A直到條件成立A循環(huán)N-S圖表示的三種基本結構求三個數(shù)的最大值問題的N-S盒圖表示優(yōu)點:結構清晰(4)偽碼表示法所謂偽碼就是類似于程序設計語言的語句,但又不是任何一種真實的程序設計語言的語句,
優(yōu)點:很容易將其轉換成程序設計語言ifa>bthen把a交給maxelse把b交給maxifmax>cthen輸出最大值maxelse輸出最大值cif(a>b)max=a;elsemax=b;if(max>c)
printf(“themaxis%d\n”,max);else
printf(“themaxis%d\n”,c);總之,選擇一種自己習慣讀、寫的一種去表示即可。總結:程序設計的大致步驟開始分析問題,確定數(shù)據結構和算法寫算法用程序設計語言編程結束編譯調試4.6.3算法舉例
例4.1:將兩個變量a,b的值交換.c=a
a=b
b=c開始結束4.6.3算法舉例例4.2、求一元二次方程的解。要求輸入系數(shù)a、b、c的值,判斷是否有解,并得出該方程的解。
是開始delta=b*b-4acDelta<0?delta=0?結束是否否輸入a,b,c的值輸出:沒有實根輸出兩個相同的實根輸出兩個不同的實根4.6.3算法舉例例4.3:求1+2+3+4+……+100的值。
是開始結束sum=0,n=1n=n+1n<=100?sum=sum+n否輸出sum課堂練習國王的許諾:相傳國際象棋是古印度舍罕王的宰相達依爾發(fā)明的。舍罕王十分喜歡象棋,決定讓宰相自己選擇何種賞賜。這位聰明的宰相指著8×8共64格的象棋盤說:陛下,請您賞給我一些麥子吧,就在棋盤的第一個格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盤上的64個格子,我就感恩不盡了。sum=1+2+22+23+…+263是開始結束sum=0,n=0n=n+1n<=63?sum=sum+2n否輸出sum4.7面向對象編程思想
面向過程與面向對象面向過程:數(shù)據與操作分離面向對象:數(shù)據與操作一起封裝起來面向對象技術的基本概念對象:客觀事物由(內部)屬性和行為組成例:一個學生,其內在屬性指班級、學號等相關信息或數(shù)據,行為可以是對其各項數(shù)據的查詢、修改、輸出等。類:具有相同屬性和行為的對象的集合類是對同類對象的抽象(歸納),模板對象是類中一個具體的實例例:學生類類的劃分至關重要面向對象技術的基本概念消息是指對象間相互聯(lián)系和相互作用的方式。一個消息主要由5部分組成:發(fā)送消息的對象、接
收消息的對象、消息傳遞辦法、消息內容(參數(shù))、反饋消息是對象之間發(fā)出的行為請求,也是描述事件發(fā)生的信息,事件由多個消息組成。程序的執(zhí)行順序不再是預先設定好了的,而是由事件驅動的。面向對象技術的特性抽象性:學生1學
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國快餐盒行業(yè)市場全景監(jiān)測及投資前景展望報告
- 武漢綠色建材項目申請報告模板參考
- 2025年中國壓力式噴霧造粒干燥機市場前景預測及投資規(guī)劃研究報告
- 中國家電連鎖行業(yè)市場全景評估及發(fā)展戰(zhàn)略規(guī)劃報告
- 2025年中國電纜附件行業(yè)發(fā)展運行現(xiàn)狀及投資潛力預測報告
- 2024-2029年中國椰子汁行業(yè)市場需求與投資規(guī)劃分析報告
- 綿陽特種電器項目可行性研究報告
- 2022-2027年中國克拉霉素分散片行業(yè)發(fā)展前景及投資戰(zhàn)略咨詢報告
- 2021-2026年中國太陽能恒溫閥行業(yè)市場運行態(tài)勢與投資戰(zhàn)略咨詢報告
- 高精度寬幅超硬合金鋁板項目可行性研究報告申請立項
- 《小型混凝土預制件標準化生產管理辦法》
- 六年級上冊英語教案-Culture 2 Going Green 第二課時 廣東開心英語
- 警察叔叔是怎樣破案的演示文稿課件
- 青年教師個人成長檔案
- 2021譯林版高中英語選擇性必修三課文翻譯
- 2022年華中科技大學博士研究生英語入學考試真題
- 《網店運營與管理》整本書電子教案全套教學教案
- 打印版 《固體物理教程》課后答案王矜奉
- CAD術語對照表
- 中考《紅星照耀中國》各篇章練習題及答案(1-12)
- Q∕GDW 11612.43-2018 低壓電力線高速載波通信互聯(lián)互通技術規(guī)范 第4-3部分:應用層通信協(xié)議
評論
0/150
提交評論