版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計(jì)第二章程序的靈魂 -- 算法,2-2,主要內(nèi)容2.1 算法的概念2.2 簡單算法舉例2.3 算法的特性2.4 怎樣表示一個(gè)算法2.5 結(jié)構(gòu)化算法設(shè)計(jì)方法,2-3,2.1 算法的概念,沃思公式: 數(shù)據(jù)結(jié)構(gòu)+算法=程序具體化:程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語言工具和環(huán)境,對(duì)數(shù)據(jù)的描述,要指定數(shù)據(jù)的類型、數(shù)據(jù)的組織形式,對(duì)操作的描述,即操作步驟,2-4,2.1 算法的概念,做
2、任何事都有一定的次序和步驟;如:召開會(huì)議,購物等;算法是為解決一個(gè)問題而采取的方法和步驟;注意:解決同一個(gè)問題可以有不同的方法和步驟,方法有優(yōu)劣之分,采用簡單的和運(yùn)算步驟少的方法為優(yōu)!,2-5,2.1 算法的概念,算法分兩大類別數(shù)值運(yùn)算算法:目的是求數(shù)值解,算法成熟;非數(shù)值運(yùn)算算法:種類繁多,要求各異,難以規(guī)范,2-6,2.2 簡單算法舉例,例1 求1×2×3×4×5手工計(jì)算方法:
3、通用的方法: 設(shè)兩個(gè)變量(被乘數(shù)p,乘數(shù)i)第一步:1=>p第二步:2=>i第三步:p×i=>p第四步: i+1=>i第五步:若i≤5,返回第三步;否則結(jié)束,2-7,2.2 簡單算法舉例,如果題目改為求1×3×5×7×9×11第一步:1=>p第二步:3=>i第三步:p×i=>p第四步: i+2=>i
4、第五步:若i≤11,返回第三步;否則結(jié)束用這種方法表示的算法具有通用性、靈活性,2-8,2.2 簡單算法舉例,例2 有50個(gè)學(xué)生,要求將他們之中成績?cè)?0分以上者打印出來算法分析:用n表示學(xué)生學(xué)號(hào),n1代表第一個(gè)學(xué)生學(xué)號(hào),ni代表第i個(gè)學(xué)生的學(xué)號(hào),g1代表第一個(gè)學(xué)生成績,gi代表第i個(gè)學(xué)生成績算法第一步: 1=>i第二步: 若gi≥80則打印ni和gi,否則不打印第三步: i+1=>i第四步: 若i≤50
5、返回第二步,否則算法結(jié)束,2-9,2.2 簡單算法舉例,例3 判斷2000-2500年中的每一年是否閏年,將結(jié)果輸出。分析:閏年的條件:能被4整除,但不能被100整除的年份都是閏年,如1996,2004年是閏年;能被100整除,又能被400整除的年份是閏年,如1600,2000年是閏年。不符合這兩個(gè)條件的年份不是閏年,2-10,2.2 簡單算法舉例,算法2000=>y若y不能被4整除,輸出y“不是閏年”,然后
6、轉(zhuǎn)到第5步若y能被4整除,不能被100整除,則輸出y“是閏年”,轉(zhuǎn)第6步若y能被100整除,又能被400整除,則輸出y“是閏年”, 轉(zhuǎn)第6步,(否則順序執(zhí)行)輸出y“不是閏年”y+1=>y當(dāng)y≤2500時(shí)轉(zhuǎn)第2步,否則算法結(jié)束,2-11,2.2 簡單算法舉例,例4 求 1- 1/2 + 1/3 -1/4+ … + 1/99 - 1/100算法:sign=1sum=1deno=2sign=-signterm=s
7、ign×(1/deno)sum=sum+termdeno=deno+1若deno≤100返回第4步,否則算法結(jié)束,2-12,2.3 算法的特性,算法應(yīng)具有以下特點(diǎn):有窮性確定性有零個(gè)或多個(gè)輸入有一個(gè)或多個(gè)輸出有效性,2-13,2.4 怎樣表示一個(gè)算法,用自然語言表示算法:通俗易懂,但文字冗長,容易產(chǎn)生歧義。用流程圖表示算法: 直觀形象,容易理解。,,,,,,,,,,2-14,2.4 怎樣表示一個(gè)算法,算
8、法的三種基本結(jié)構(gòu),2-15,2.4 怎樣表示一個(gè)算法,例1 用流程圖表示算法:1×2×3×4×5第一步:1=>p第二步:2=>i第三步:p×i=>p第四步: i+1=>i第五步:若i≤5,返回第三步;否則結(jié)束,2-16,2.4 怎樣表示一個(gè)算法,例2 有50個(gè)學(xué)生,要求將他們之中成績?cè)?0分以上者打印出來.用流程圖表示算法。第一步: 1=&
9、gt;i第二步: 若gi≥80則打印ni和gi,否則不打印第三步: i+1=>i第四步: 若i≤50返回第二步,否則算法結(jié)束,2-17,2.4 怎樣表示一個(gè)算法,例 用偽代碼表示1×2×3×4×5:開始 置t的初值為1 置i的初值為2 當(dāng)i≤5,執(zhí)行下面操作 使t=t×i 使i=i+1 (循環(huán)到此結(jié)束) 打
10、印t的值結(jié)束,2-18,2.4 怎樣表示一個(gè)算法,也可以寫成以下形式:BEGIN(算法開始) 1=>t 2=>i while it i+1=>i } print tEND (算法結(jié)束),2-19,2.4 怎樣表示一個(gè)算法,用計(jì)算機(jī)語言表示算法:求5!用c語言表示,void main( ){ int i,t; t=1; i=2;
11、 while(i<=5){t=t*i; /* 120 */ i=i+1; } printf("%d",t); },2-20,2.5 結(jié)構(gòu)化程序設(shè)計(jì)方法,一個(gè)結(jié)構(gòu)化程序就是用高級(jí)語言表示的結(jié)構(gòu)化算法用三種基本結(jié)構(gòu)組成的程序必然是結(jié)構(gòu)化程序結(jié)構(gòu)化程序的特點(diǎn)自頂向下逐步細(xì)化模塊化設(shè)計(jì)結(jié)構(gòu)化編碼,2-21,本章小結(jié),算法的概念簡單算法的設(shè)計(jì)算法的特性算法的表示(流程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第二章、c語言程序設(shè)計(jì)基礎(chǔ)
- c--語言程序設(shè)計(jì)第二章解析
- c語言程序設(shè)計(jì)第二章網(wǎng)上作業(yè)
- c++程序語言教程 第二章
- c語言程序設(shè)計(jì)第8章
- 《c語言程序設(shè)計(jì)》
- c語言程序設(shè)計(jì)
- c語言程序設(shè)計(jì)
- c語言程序設(shè)計(jì)
- c語言程序設(shè)計(jì)
- fortran90第二章 選擇結(jié)構(gòu)程序設(shè)計(jì)
- c語言程序設(shè)計(jì)ppt課件_第2章_簡單程序設(shè)計(jì)-
- c語言程序設(shè)計(jì)第6章課件-
- 概論 ★第二章 java語言基礎(chǔ) ★第三章 面向?qū)ο蟪绦蛟O(shè)計(jì)
- 第02章c語言程序設(shè)計(jì)基礎(chǔ)
- c語言程序設(shè)計(jì)學(xué)習(xí)指導(dǎo)第二版 答案
- c語言程序設(shè)計(jì)(譚浩強(qiáng))
- c語言程序設(shè)計(jì)教程
- c語言程序設(shè)計(jì)3
- c語言程序設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論