程序設(shè)計語言課件c4數(shù)據(jù)結(jié)構(gòu)與算法_第1頁
程序設(shè)計語言課件c4數(shù)據(jù)結(jié)構(gòu)與算法_第2頁
程序設(shè)計語言課件c4數(shù)據(jù)結(jié)構(gòu)與算法_第3頁
程序設(shè)計語言課件c4數(shù)據(jù)結(jié)構(gòu)與算法_第4頁
程序設(shè)計語言課件c4數(shù)據(jù)結(jié)構(gòu)與算法_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第4章算法與C語言程序1、程序(1)數(shù)據(jù)的描述:數(shù)據(jù)的類型和組織形式(數(shù)據(jù)結(jié)構(gòu))(2)數(shù)據(jù)操作的描述:操作步驟(算法)沃思指出:

數(shù)據(jù)結(jié)構(gòu)+算法=程序確切的說,除上述要素外,還要采取結(jié)構(gòu)化程序設(shè)計的方法和用何種語言來設(shè)施。

程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計方法+語言工具及環(huán)境數(shù)據(jù)結(jié)構(gòu):

反映各種類型數(shù)據(jù)的構(gòu)造形式,是計算機加工處理的對象算法:為解決某一特定問題而采取的確定的有限的步驟,它是程序設(shè)計的靈魂,解決做什么和怎么做程序設(shè)計方法:

結(jié)構(gòu)化程序設(shè)計面向?qū)ο蟪绦蛟O(shè)計語言工具和環(huán)境:

用計算機語言編制的程序需相應(yīng)的編譯系統(tǒng)和硬件環(huán)境加以實施2、程序設(shè)計就是通過對實際問題的分析,確定解題方法(算法),并應(yīng)用程序設(shè)計語言提供命令或語句將解題算法描述為計算機處理語句序列(即程序)。程序設(shè)計的步驟:問題定義----明確問題需求分析----精確描述系統(tǒng)設(shè)計----模型或算法的確定系統(tǒng)實現(xiàn)----程序編制系統(tǒng)運行----運行、求解3算法的描述算法常用的方法:自然語言、流程圖(傳統(tǒng)流程圖、結(jié)構(gòu)化流程圖)、偽代碼等3.1用自然語言表示算法自然語言:人們?nèi)粘J褂玫恼Z言,可以是英、中、中英文結(jié)合特點:通俗易懂缺點:文字冗長,易出現(xiàn)岐義性,表示算法的含義不太嚴格,根據(jù)上下文才能判斷其含義。3.2用流程圖表示算法ANSI規(guī)定的流程圖符號,已為世界各國采用,用圖框表示操作,用圖形表示算法。特點:直觀形象、易于理解。起止框:輸入輸出框:判別框:處理框:流程線:注釋框:連接點:

(1)傳統(tǒng)流程圖:用流程線指出各框的執(zhí)行順序,對流程線沒有嚴格的限制,因此設(shè)計者可以不受限制的使流程轉(zhuǎn)來轉(zhuǎn)去,流程毫無規(guī)律。(2)三種基本結(jié)構(gòu)和結(jié)構(gòu)化流程圖1966年Bohra和Jacopini提出的三種基本結(jié)構(gòu),表示良好結(jié)構(gòu)算法(1)順序結(jié)構(gòu)(2)選擇(選取、分支)結(jié)構(gòu)

例:用流程圖算法求5!開始1→t2→it×i→ti+1→ii>5打印t結(jié)束NY實踐證明:由三種結(jié)構(gòu)組成的算法結(jié)構(gòu)可以解決任何復雜問題。結(jié)論:基本結(jié)構(gòu)所構(gòu)成的算法,屬結(jié)構(gòu)化算法,它不存在無規(guī)律的轉(zhuǎn)向,只在基本結(jié)構(gòu)內(nèi)才允許存在分支和向前或向后跳轉(zhuǎn)。以上所述的四個基本特點,人們還可自己定義基本結(jié)構(gòu),并由這些基本結(jié)構(gòu)組成結(jié)構(gòu)化程序,如多分支選擇結(jié)構(gòu)等,但它們都是由三種基本結(jié)構(gòu)派生出來的。3.3用N-S流程圖表示算法1973年美國學者I.Nassi和B.Shneiderman提出了一種新的流程圖形式特點:去掉帶箭頭的流程線,全部算法在一個矩形框內(nèi),在該框內(nèi)還可包含從屬于它的框,這種流程圖稱為N-S結(jié)構(gòu)化流程圖,受到人們歡迎。(1)順序結(jié)構(gòu):A、B框組成一個順序結(jié)構(gòu)(2)選擇結(jié)構(gòu):當P成立時執(zhí)行A操作,P不成立時執(zhí)行B操作它們是一個整體,代表一個基本結(jié)構(gòu)AB成立

A

B不成立P(3)循環(huán)結(jié)構(gòu):①當型循環(huán):首先判斷P1,當P1成立時反復執(zhí)行A操作,P1不成立,可能一次也不執(zhí)行。②直到型循環(huán):首先執(zhí)行A操作,然后判斷P1,在C中真正的情況是,當P1為真時執(zhí)行A,直到P1為假。當P1成立AA直到P1成立用N-S流程圖表示算法討論上述各例2→i1→tt×i→ti+1→i直到i>5打印t例求5!用N-S圖表示算法3.4用偽代碼表示算法它是介于自然語言和計算機語言之間的文字和符號來描述算法。特點:自上而下書寫,每行表示一個基本操作,可用中、英、中英書寫。原則:意思要表達清楚,格式要清晰易懂。例2.16求5!算法用偽代碼表示BEGIN(算法開始)1→t2→iWhilei<=5{t×i→ti+1→i}printtEND(算法結(jié)束)計算機無法識別流程圖和偽代碼等計算機實現(xiàn)算法的過程:用計算機語言編寫的程序才能被計算機識別、解釋、執(zhí)行(編輯、編譯、連接,生成可執(zhí)行程序)用計算機語言表示算法必須嚴格遵循所用語言的語法規(guī)則。計算機的語言很多,如VF,VB,JAVA,DEPHIN,C等。下面用C語言討論兩個簡例:3.5用計算機語言表示算法例求5!前面討論的算法,用C語言表示main(){inti,t;t=1;i=2;while(i<=5){t=t*i;i=i+1;}printf(“%d”,t);}C語言程序的基本要點1、每個C程序由若干函數(shù)組成有且僅有一個主函數(shù)main若干個其它函數(shù)(被調(diào)用函數(shù))被調(diào)用函數(shù)由系統(tǒng)或用戶定義2、函數(shù)由兩個部分組成函數(shù)首部:函數(shù)的類型、名稱、形參及類型函數(shù)體:用{與}括起來聲明部分:定義函數(shù)中所用到的變量執(zhí)行部分(由語句組成)注意:C語句都是用來完成一定操作任務(wù)的,聲明部分的內(nèi)容如數(shù)據(jù)的定義不能稱為語句。3、每個語句和數(shù)據(jù)定義最后以分號結(jié)束4、一行可寫幾句,一句可寫在多行上5、程序執(zhí)行總是從main開始執(zhí)行與主函數(shù)、被調(diào)用函數(shù)在程序中位置無關(guān)6、輸入輸出由標準函數(shù)庫提供7、程序中可使用預(yù)編譯處理命令,如#include8、注釋:用/*……*/對任一部分內(nèi)容作注釋起說明作用,不編譯也不執(zhí)行目的是增強程序的可讀性C語言提供的語句分五大類:(1)控制語句,完成控制功能①if()~else~條件②for()~循環(huán)③while()~循環(huán)④do~while()循環(huán)⑤continue結(jié)束本次循環(huán)⑥break中止switch或循環(huán)⑦switch多分支選擇⑧goto轉(zhuǎn)向⑨return從函數(shù)返回(2)函數(shù)調(diào)用語句函數(shù)名(參數(shù));如:printf(“ThisisaCprogram.\n”);max(a,b);(3)表達式語句在表達式后加“;”構(gòu)成

a=6a=5;

如i=i+2表達式而i=i+2;表達式語句

x+yx+y;(4)空語句

;

無任何操作,但合法,可用于循環(huán)中的轉(zhuǎn)折(5)復合語句用{}將若干語句括起來而構(gòu)成的語句。

如:if(x>y)與if(x>y)意義不同

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論