![《C語(yǔ)言程序設(shè)計(jì)》課件算法及結(jié)構(gòu)化程序設(shè)計(jì)方法_第1頁(yè)](http://file4.renrendoc.com/view3/M02/10/1A/wKhkFmZRc2qAJyvXAAKEfYvMC2I772.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件算法及結(jié)構(gòu)化程序設(shè)計(jì)方法_第2頁(yè)](http://file4.renrendoc.com/view3/M02/10/1A/wKhkFmZRc2qAJyvXAAKEfYvMC2I7722.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件算法及結(jié)構(gòu)化程序設(shè)計(jì)方法_第3頁(yè)](http://file4.renrendoc.com/view3/M02/10/1A/wKhkFmZRc2qAJyvXAAKEfYvMC2I7723.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件算法及結(jié)構(gòu)化程序設(shè)計(jì)方法_第4頁(yè)](http://file4.renrendoc.com/view3/M02/10/1A/wKhkFmZRc2qAJyvXAAKEfYvMC2I7724.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件算法及結(jié)構(gòu)化程序設(shè)計(jì)方法_第5頁(yè)](http://file4.renrendoc.com/view3/M02/10/1A/wKhkFmZRc2qAJyvXAAKEfYvMC2I7725.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
概述
程序設(shè)計(jì)的關(guān)鍵是設(shè)計(jì)算法,算法與程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)密切相關(guān)。
算法是解決問(wèn)題的一系列操作步驟的集合,是設(shè)計(jì)思路的描述,也是指令的有限序列。
比如,廚師做菜時(shí),都經(jīng)過(guò)一系列的步驟——洗菜、切菜、配菜、炒菜和裝盤(pán)。用計(jì)算機(jī)解題的步驟就叫算法,編程人員必須告訴計(jì)算機(jī)先做什么,再做什么,即按照算法的思想去工作,從而解決實(shí)際問(wèn)題。
(數(shù)據(jù)結(jié)構(gòu)+算法=程序)1、有窮性:有限步驟之內(nèi)正常結(jié)束,不能形成無(wú)窮循環(huán)。算法的特性:2、確定性:算法中的每一個(gè)步驟必須有確定含義,無(wú)二義性得以實(shí)現(xiàn)。3、可行性:原則上能精確進(jìn)行,操作可通過(guò)已實(shí)現(xiàn)基本運(yùn)算執(zhí)行有限次而完成。4、有輸入:有多個(gè)或0個(gè)輸入。5、有輸出:至少有一個(gè)或多個(gè)輸出。算法的評(píng)價(jià)標(biāo)準(zhǔn)
設(shè)計(jì)算法時(shí),通常需要考慮達(dá)到以下目標(biāo):
一般可分為四個(gè)層次:(1)程序不含語(yǔ)法錯(cuò)誤;(2)程序?qū)τ趲捉M輸入數(shù)據(jù)能夠得出滿足規(guī)格說(shuō)明要求的結(jié)果;(3)程序?qū)τ诰倪x擇的典型、苛刻而帶有刁難性的幾組輸入數(shù)據(jù)能夠得出滿足規(guī)格說(shuō)明要求的結(jié)果;(軟件測(cè)試)(4)程序?qū)τ谝磺泻戏ǖ妮斎霐?shù)據(jù)都能產(chǎn)生滿足規(guī)格說(shuō)明要求的結(jié)果。(極為困難)2、可讀性3、健壯性(魯棒性)4、高效率與低存儲(chǔ)量需求例如:求n個(gè)數(shù)的最大值問(wèn)題給出算法如下:
max:=0;for(i=1;i<=n;i++)
{scanf("%f",x);if(x>max)max=x;}正確?1、正確性算法的表示(1)流程圖:是描述算法最常用的一種方法,它是用圖形符號(hào)來(lái)表示算法。描述方法:自然語(yǔ)言、數(shù)學(xué)方法、某種計(jì)算機(jī)語(yǔ)言描述規(guī)范的方法:流程圖、N-S結(jié)構(gòu)流程圖、偽代碼和PAD圖等。起至框輸入輸出判斷框處理框或流程線連接點(diǎn)注釋框算法的表示(2)N-S結(jié)構(gòu)流程圖:完全去掉了流程線,全部算法寫(xiě)在一個(gè)矩形框內(nèi),而且在框內(nèi)還可以包含其他的框。N-S結(jié)構(gòu)流程圖算法清晰,流程不會(huì)無(wú)規(guī)律亂轉(zhuǎn)移。N-S結(jié)構(gòu)流程圖基本元素流程圖例1:求三個(gè)整數(shù)的和開(kāi)始輸出sum的值結(jié)束輸入x,y,zsum=x+y+z輸出sum的值sum=x+y+z輸入x,y,zN-S結(jié)構(gòu)流程圖main(){floatx,y,z,sum;scanf("%f%f%f\n",&x,&y,&z);
sum=x+y+z;printf("sum=%f\n",sum);}結(jié)構(gòu)化程序設(shè)計(jì)的方法伴隨著軟件產(chǎn)業(yè)的蓬勃發(fā)展,軟件系統(tǒng)變得越來(lái)越復(fù)雜,開(kāi)發(fā)成本越來(lái)越高,而且在開(kāi)發(fā)過(guò)程出現(xiàn)一系列問(wèn)題,將軟件開(kāi)發(fā)與維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題被人們稱為“軟件危機(jī)”。為此,荷蘭學(xué)者E.W.Dijkstra提出了程序設(shè)計(jì)中常用的GOTO語(yǔ)句的三大危害,并由此產(chǎn)生了結(jié)構(gòu)化程序設(shè)計(jì)方法,隨后誕生了基于這一設(shè)計(jì)方法的程序設(shè)計(jì)語(yǔ)言Pascal、C語(yǔ)言等。
結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言的簡(jiǎn)潔明了及豐富的數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu),為程序員提供了極大的方便性與靈活性。
結(jié)構(gòu)化程序設(shè)計(jì)的方法
結(jié)構(gòu)化程序設(shè)計(jì)思想采用了模塊分解與功能抽象和自頂向下、分而治之的方法,解決人腦思維能力的局限性和所處理問(wèn)題的復(fù)雜性之間的矛盾,從而便于開(kāi)發(fā)和維護(hù),減少程序的出錯(cuò)概率和提高軟件的開(kāi)發(fā)效率。
采用結(jié)構(gòu)化程序設(shè)計(jì)方法應(yīng)遵循的原則:
1、自頂向下
2、模塊化
3、限制使用GOTO語(yǔ)句一、自頂向下設(shè)計(jì)方法敘述要解決的問(wèn)題定義輸入和輸出設(shè)計(jì)算法將算法轉(zhuǎn)換C語(yǔ)句測(cè)試程序問(wèn)題分解逐步細(xì)化開(kāi)始結(jié)束二、模塊化
將一個(gè)大任務(wù)分成若干個(gè)較小的部分,每一部分承擔(dān)一定的功能,稱為“功能模塊”。每個(gè)模塊可以分別編程和調(diào)試,然后組成一個(gè)完整的程序。模塊的劃分遵循一些基本原則,如模塊內(nèi)部聯(lián)系要緊密,關(guān)聯(lián)程度要高;模塊間的接口要盡可能簡(jiǎn)單,以減少模塊間的數(shù)據(jù)傳遞。三、限制使用GOTO語(yǔ)句
goto語(yǔ)句無(wú)條件跳轉(zhuǎn),會(huì)降低代碼的可讀性。結(jié)構(gòu)化程序質(zhì)量的衡量標(biāo)準(zhǔn)同樣以正確性作為前提。在正確的前提下,程序符合“清晰第一,效率第二”的質(zhì)量標(biāo)準(zhǔn)。#include<stdio.h>intmain(){inti=10,s=0;
L1:s+=i;i--;
if(i!=0){gotoL1;}printf("s=%d\n",s);return0;}#include<stdio.h>intmain(){inti=10,s=0;
while(i){s+=i;i--;}printf("s=%d\n",s);return0;}一個(gè)好的程序在滿足運(yùn)行結(jié)果正確的基本條件之后,首先要有良好的結(jié)構(gòu),使程序清晰易懂。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇科版數(shù)學(xué)八年級(jí)上冊(cè)5.1《物體位置的確定》聽(tīng)評(píng)課記錄
- 八年級(jí)道德與法治下冊(cè)第三單元人民當(dāng)家作主第五課我國(guó)基本制度第3框基本政治制度(第1課時(shí)中國(guó)共產(chǎn)黨領(lǐng)導(dǎo)的多黨合作和政治協(xié)商制度)聽(tīng)課評(píng)課記錄(新人教版)
- 人教版九年級(jí)數(shù)學(xué)上冊(cè)第二十五章概率初步《25.3用頻率估計(jì)概率》聽(tīng)評(píng)課記錄
- 八年級(jí)思想讀本《6.2軍強(qiáng)才能?chē)?guó)安》聽(tīng)課評(píng)課記錄
- 小學(xué)二年級(jí)上乘法口算天天練
- 五年級(jí)下冊(cè)數(shù)學(xué)聽(tīng)評(píng)課記錄《折紙》北師大版
- 孵化樓租賃合同范本
- 二零二五年度酒店設(shè)施租賃及使用權(quán)購(gòu)買(mǎi)合同
- 外架工班組勞務(wù)分包協(xié)議書(shū)范本
- 工程項(xiàng)目全過(guò)程管理協(xié)議書(shū)范本
- 一級(jí)建造師繼續(xù)教育最全題庫(kù)及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門(mén)窗
- GB/T 17854-1999埋弧焊用不銹鋼焊絲和焊劑
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 直線加速器專項(xiàng)施工方案
- 聯(lián)苯二氯芐生產(chǎn)工藝及產(chǎn)排污分析
- 儲(chǔ)能設(shè)備項(xiàng)目采購(gòu)供應(yīng)質(zhì)量管理方案
- 2022年全國(guó)卷高考語(yǔ)文答題卡格式
- 復(fù)旦大學(xué)簡(jiǎn)介 (課堂PPT)
- CKD馬達(dá)使用說(shuō)明
評(píng)論
0/150
提交評(píng)論