




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、高等職業(yè)院校教材 C語言程序設(shè)計主編:王斌 項目三項目三 順序程序設(shè)計順序程序設(shè)計 p 學(xué)習(xí)目標 掌握順序程序結(jié)構(gòu) 認識語言程序結(jié)構(gòu),掌握C語 言基本語句 認識結(jié)構(gòu)化程序設(shè)計 了解算法的概念,掌握常用簡單 算法 掌握用流程圖表示算法 主編:王斌C語言程序設(shè)計 項目任務(wù) 任務(wù)一 三角形面積計算器 任務(wù)二 三位數(shù)數(shù)字拆分 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 任務(wù)描述任務(wù)描述 在實際應(yīng)用及數(shù)學(xué)問題中經(jīng)常需要按已知條件求三角形的 面積,現(xiàn)已知三角形的三邊長分別為a、b、c,求三角形 的面積。 任務(wù)分析任務(wù)分析 三角形面積求法較多,任務(wù)中已知三角形的三邊長,這里 可以按公式 (其中s=(
2、a+b+c)/2),求三角形的面積。 在程序中需要先初始化三角形三邊長a,b,c(可通過鍵 盤輸入三個數(shù)分別賦值給變量a,b,c),然后求出s= (a+b+c)/2,再求出 ,最后打印出三角形面積。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 任務(wù)實施任務(wù)實施 1.程序源代碼 /*P_Task1.c*/ #include main() float a,b,c,s,area; printf(Enter Side length of triangle:n); scanf(%f,%f,%f, s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); pr
3、intf(a=%7.2f,b=%7.2f,c=%7.2fn,a,b,c); printf(area=%7.2fn,area); getch(); 2.程序運行結(jié)果 三角形面積計算器運行結(jié)果如圖所示。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 一、順序程序設(shè)計結(jié)構(gòu) 順序程序設(shè)計結(jié)構(gòu)是程序設(shè)計結(jié)構(gòu)最簡單最基本的結(jié)構(gòu),順 序程序結(jié)構(gòu)中所在語句都是按先后出現(xiàn)的順序依次執(zhí)行。 順序結(jié)構(gòu)的示意圖,如圖所示。 前面任務(wù)程序及舉例程序均為順序結(jié)構(gòu)程序。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 二、語句 1程序的結(jié)構(gòu) 一個完整的程序可以存儲于多個文件中,
4、這些文件可以使用#include (*.*)預(yù)處理命令聯(lián)系起來。C程序中最基本的組成是函數(shù),C程序結(jié)構(gòu), 如圖所示。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 2C語句 C程序的執(zhí)行部分是由語句組成的。 程序的功能也是由執(zhí)行語句實現(xiàn)的。 C語句可分為以下五類:簡單語句、空語句、復(fù)合語句、結(jié)構(gòu)化語句、非結(jié)構(gòu)化 語句。其分類,如圖所示。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 (1)表達式語句 表達式語句由表達式加上分號“;”組成。其一般形式為: 表達式; 執(zhí)行表達式語句就是計算表達式的值。例如: x=y+z; 賦值語句; y+z; 加法運
5、算語句,但計算結(jié)果不能保留,無實際意義; i+; 自增1語句,i值增1。 (2)函數(shù)調(diào)用語句 函數(shù)調(diào)用語句由函數(shù)名、實際參數(shù)加上分號“;”組成。其一般形式為: 函數(shù)名(實際參數(shù)表); 執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體并把實際參數(shù)賦予函數(shù)定義中的形式參數(shù), 然后執(zhí)行被調(diào)用函數(shù)體中的語句,返回函數(shù)值。例如: printf(C Program);調(diào)用庫函數(shù),輸出字符串。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 (3)控制語句 控制語句用于控制程序的流程,以實 現(xiàn)程序的各種結(jié)構(gòu)方式。它們由特 定的語句定義符組成。語言有九 種控制語句,可分成三類,如表3 1所示。 分類控制語句
6、條件判斷語句if語句、switch語句 循環(huán)執(zhí)行語句do while語句、while語句、for語句 轉(zhuǎn)向語句break語句、goto語句、continue語句、return語句 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 (4)復(fù)合語句 復(fù)合語句是把多個語句用括號括起來組成的一個語句。 在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句。例如: x=y+z; a=b+c; printf(%d%d,x,a); 是一條復(fù)合語句。 復(fù)合語句內(nèi)的各條語句都必須以分號“;”結(jié)尾,在括號“”外不能加分號。 (5)空語句 只有分號“;”組成的語句稱為空語句??照Z句是什么也不執(zhí)行的
7、語句。在程序中空語句可 用來作空循環(huán)體。例如: while(getchar()!=n); 這里的循環(huán)體為空語句。它的功能是,只要從鍵盤輸入的字符不是回車則重新輸入。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 (6)賦值語句 賦值語句是由賦值表達式再加上分號構(gòu)成的表達式語句。其一般形式為: 變量=表達式; 賦值語句的功能和特點都與賦值表達式相同。它是程序中使用最多的語句之一。 在賦值語句的使用中需要注意以下幾點: 由于在賦值符“=”右邊的表達式也可以又是一個賦值表達式,因此,下述形式: 變量=(變量=表達式); 是成立的,從而形成嵌套的情形。 其展開之后的一般形式為:
8、 變量=變量=表達式; 例如: a=b=c=d=e=5; 按照賦值運算符的右接合性,因此,實際上等效于: e=5; d=e; c=d; b=c; a=b; 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 注意在變量說明中給變量賦初值和賦值語句的區(qū)別。給變量賦初值是變量說明的一部分, 賦初值后的變量與其后的其它同類變量之間仍必須用逗號間隔,而賦值語句則必須用 分號結(jié)尾。例如: int a=5,b,c; 在變量說明中,不允許連續(xù)給多個變量賦初值。 如下述說明是錯誤的: int a=b=c=5; 必須寫為 int a=5,b=5,c=5; 而賦值語句允許連續(xù)賦值。 注意賦值表達
9、式和賦值語句的區(qū)別。賦值表達式是一種表達式,它可以出現(xiàn)在任何允許 表達式出現(xiàn)的地方,而賦值語句則不能。 下述語句是合法的: if(x=y+5)0) z=x; 語句的功能是,若表達式x=y+5大于0則z=x。 下述語句是非法的: if(x=y+5;)0) z=x; 因為x=y+5;是語句,不能出現(xiàn)在表達式中。 主編:王斌C語言程序設(shè)計 任務(wù)一 三角形面積計算器 相關(guān)知識相關(guān)知識 三、結(jié)構(gòu)化程序設(shè)計三、結(jié)構(gòu)化程序設(shè)計 1結(jié)構(gòu)化程序設(shè)計概念 結(jié)構(gòu)化程序設(shè)計(structured programming)是以模塊功能和處理過程設(shè)計為主, 采用自頂向下、逐步求精的程序設(shè)計方法,使用三種基本控制結(jié)構(gòu)構(gòu)造程
10、序 的程序設(shè)計方法。任何結(jié)構(gòu)化程序都可由順序、選擇、循環(huán)三種基本控制結(jié) 構(gòu)構(gòu)造,結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是程序的易讀性。 2結(jié)構(gòu)化程序設(shè)計三種基本結(jié)構(gòu) 結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 順序結(jié)構(gòu):表示程序中的各操作是按照它們出現(xiàn)的先后順序執(zhí)行的。 選擇結(jié)構(gòu):表示程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇 其中的一個分支執(zhí)行。 循環(huán)結(jié)構(gòu):表示程序反復(fù)執(zhí)行某個或某些操作,直到某條件為假(或為真)時 才可終止循環(huán)。在循環(huán)結(jié)構(gòu)中最主要的是:什么情況下執(zhí)行循環(huán)?哪些操作 需要循環(huán)執(zhí)行? (選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)將分別在項目四、項目五中詳細介紹。) 主編:王斌C語言程
11、序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 任務(wù)描述任務(wù)描述 在進行數(shù)碼處理、底層顯示、鍵盤輸入等程序中經(jīng)常要對數(shù) 據(jù)進行拆分,即要求求出一個數(shù)各個位數(shù)上的數(shù)字,如 803,要求得到8,0,3三個數(shù)。為了使程序簡單,這里 假定數(shù)據(jù)為三位的十進制整數(shù)。 任務(wù)分析任務(wù)分析 一個十制數(shù)三位數(shù)數(shù)字拆分的基本思想是:首先把這個數(shù)除以10,其余 數(shù)即為個位數(shù)數(shù)字,再把上一次的商除以10,其余數(shù)為十位數(shù)數(shù)字, 商為百位數(shù)數(shù)字。這里我們以 a3表示原數(shù),a2表示原數(shù)除以10后的 商,r0表示個位數(shù);a1表示a2除以10后的商,r1表示十位數(shù)數(shù)字,r2 表示百位數(shù)數(shù)字。按順序結(jié)構(gòu)進行程序設(shè)計,程序?qū)崿F(xiàn)如下。 主編:王斌C語
12、言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 任務(wù)實施任務(wù)實施 1.程序源代碼 /*P3_Task2.c*/ #include int main(int argc, char *argv) int a3,a2,a1,r0,r1,r2; printf(Enter a Three-digit integer:n); scanf(%d, r0=a3%10; a2=a3/10; r1=a2%10; a1=a2/10; r2=a1%10; printf(One-digit is %dnTen-digt is %dnHundred-digit is %dn,r0,r1,r2); getch(); return 0;
13、 2.程序運行結(jié)果 三位數(shù)數(shù)字拆分程序運行結(jié)果如圖所示。 主編:王斌C語言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 相關(guān)知識相關(guān)知識 一、算法 1算法的概念 做任何事情都有一定的步驟。為解決一個問題而采取的方法和步驟,我們通常稱 之為流程、程序,用計算機解決問題,能夠在計算機中被執(zhí)行的流程稱為計 算機算法。 2簡單算法舉例 例3.1 求12345。 直接用漢語描述的算法: 步驟1:先求12,得到結(jié)果2。 步驟2:將步驟1得到的乘積2乘以3,得到結(jié)果6。 步驟3:將6再乘以4,得24。 步驟4:將24再乘以5,得120。 這樣的算法沒有錯誤,易懂,但是太繁雜,而且沒有通用性,當要求 1234567n(n
14、1000)。還用上述方法就很難描述 了。 主編:王斌C語言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 相關(guān)知識相關(guān)知識 引進符號描述的算法: S1:設(shè)P=1; S2:設(shè)i=2; S3:求乘積Pi,并令P=Pi; S4:i的值+1,并令i=i+1; S5:如果i5, 則重新從步驟S3做;否則,結(jié)束。 這個算法比用直接用漢語描述的算法優(yōu)越得多,它具有通用性,在S5中改in,它則是求 1234567n的值。 實際上,只要是有規(guī)律的數(shù)連乘都可以使用這個算法,在上面的算法上只需要改動i變化規(guī)律即可。例如: 求1357911。 算法改動如下: S1:P=1; S2:i=3; S3:P=Pi; S4:i=i+2; S
15、5:若i11,返回S3,否則,結(jié)束。 編寫程序,不僅要找到解決問題的正確算法,而且找到的算法還要適合在計算機內(nèi)執(zhí)行。 主編:王斌C語言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 相關(guān)知識相關(guān)知識 例3.2 有50個學(xué)生,要求將他們之中成績在80分以上者打印出來。 如果,n表示學(xué)生學(xué)號,ni表示第i個學(xué)生學(xué)號;g表示學(xué)生成績,gi表示第i個學(xué)生成績; 則算法可表示如下: S1:1i; S2:如果gi80,則打印ni和gi,否則不打印; S3:i+1i; S4:若i50,返回S2,否則,結(jié)束。 例3.3 判定20002500年中的每一年是否閏年,將結(jié)果輸出。 潤年的條件: 能被4整除,但不能被100整除的年
16、份; 能被100整除,又能被400整除的年份; 設(shè)y為被檢測的年份,則算法可表示如下: S1: 2000y; S2:若y不能被4整除,則輸出y“不是閏年”,然后轉(zhuǎn)到S6; S3:若y能被4整除,不能被100整除,則輸出y“是閏年”,然后轉(zhuǎn)到S6; S4:若y能被100整除,又能被400整除,輸出y“是閏年” 否則輸出y“不是閏年”,然后轉(zhuǎn)到S6; S5:輸出y“不是閏年”; S6:y+1y; S7:當y2500時, 返回S2繼續(xù)執(zhí)行,否則,結(jié)束。 主編:王斌C語言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 相關(guān)知識相關(guān)知識 例3.4求。 算法可表示如下: S1:sigh=1; S2:sum=1; S3:
17、deno=2; S4:sigh=(-1)sigh ; S5:term= sigh(1/deno ); S6:term=sum+term; S7:deno= deno +1; S8:若deno100,返回S4;否則,結(jié)束。 例3.5 對一個大于或等于3的正整數(shù),判斷它是不是一個素數(shù)。 算法可表示如下: S1:輸入n的值; S2:i=2; S3:n被i除,得余數(shù)r; S4:如果r=0,表示n能被i整除,則打印n“不是素數(shù)”,算法結(jié)束;否則執(zhí)行S5; S5:i+1i; S6:如果in-1,返回S3;否則打印n“是素數(shù)”;然后算法結(jié)束。 主編:王斌C語言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 相關(guān)知識相關(guān)知
18、識 3算法的特性(如表所示) 特性說明 有窮性一個算法應(yīng)包含有限的操作步驟而不能是無限的。 確定性算法中每一個步驟應(yīng)當是確定的,而不能應(yīng)當是含糊的、模棱兩可的。 輸入有零個或多個輸入。 輸出有一個或多個輸出。 有效性 算法中每一個步驟應(yīng)當能有效地執(zhí)行,并得到確定的結(jié)果。對于程序設(shè)計 人員,必須會設(shè)計算法,并根據(jù)算法寫出程序。 主編:王斌C語言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 相關(guān)知識相關(guān)知識 4算法的表示方法 自然語言表示:算法能夠用自然語言描述,但復(fù)雜問題算法用自然語言描述難讀難理解,除了很簡單的 問題,一般不用自然語言表示算法。 流程圖表示:流程圖是使用符號、圖示表示算法,使用流程圖表示表
19、示算法直觀形象,易于理解。 偽代碼表示:偽代碼使用介于自然語言和計算機語言之間的文字和符號來描述算法。 計算機語言表示:計算機語言是計算機能夠識別、執(zhí)行的語法規(guī)則,進行程序設(shè)計的最終目的是把人能 夠理解的算法使用計算機語言表示出來,即計算機程序。用計算機語言表示算法必須嚴格遵循所用 語言的語法規(guī)則。 例3.6將例3.1用C語言表示,代碼如下: main() int i,P; P=1; i=2; while(i=5) P=P*i; i=i+1; printf(%d,P); 主編:王斌C語言程序設(shè)計 任務(wù)二 三位數(shù)數(shù)字拆分 相關(guān)知識相關(guān)知識 二、流程圖二、流程圖 1流程圖符號 流程圖是使用符號、圖示、 說明表示算法,使用流 程圖表示具有直觀形象, 易于理解的優(yōu)點。流程 圖常用圖示
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能領(lǐng)域人才引進措施
- 特殊學(xué)生遠程教育幫扶措施
- 機電安裝施工進度計劃和工期保證措施
- 2025高一下學(xué)期物理作業(yè)布置計劃
- 混凝土工程施工質(zhì)量驗收措施
- 西師版五年級下冊數(shù)學(xué)學(xué)科競賽計劃
- 2025幼兒園保教安全管理計劃
- 高校英語興趣小組比賽活動計劃
- 中華師道視角的智慧校園建設(shè)范文
- 2025年職業(yè)技術(shù)院校教師培訓(xùn)計劃
- 2025年市場營銷學(xué)考試題及答案
- 2025-2030中國婚介網(wǎng)站行業(yè)發(fā)展趨勢與投資戰(zhàn)略研究報告
- 火災(zāi)撲救無人機應(yīng)急預(yù)案(3篇)
- 2025-2030年中國中硼硅玻璃行業(yè)市場深度調(diào)研及競爭格局與投資前景研究報告
- 2025年一級建造師之一建公路工程實務(wù)??寄M試題(全優(yōu))
- 2025-2030年中國天然氣液化裝置市場前景趨勢調(diào)研及發(fā)展戰(zhàn)略研究報告
- 社會治安綜合治理與維穩(wěn)培訓(xùn)課件
- 100米課件教學(xué)課件
- 廢水拉運服務(wù)合同協(xié)議
- 足療技師服務(wù)意識培訓(xùn)
- 陪護公司管理制度規(guī)定
評論
0/150
提交評論