結(jié)構(gòu)化程序設(shè)計與C語言_第1頁
結(jié)構(gòu)化程序設(shè)計與C語言_第2頁
結(jié)構(gòu)化程序設(shè)計與C語言_第3頁
結(jié)構(gòu)化程序設(shè)計與C語言_第4頁
結(jié)構(gòu)化程序設(shè)計與C語言_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第四講

結(jié)構(gòu)化程序設(shè)計與C語言

2主要內(nèi)容結(jié)構(gòu)化程序設(shè)計——三種基本結(jié)構(gòu)程序設(shè)計的過程分析問題算法設(shè)計編碼測試C程序要素函數(shù)主函數(shù)系統(tǒng)函數(shù)格式化輸入輸出函數(shù)常用數(shù)學(xué)函數(shù)程序設(shè)計方法面向機器結(jié)構(gòu)化程序設(shè)計方法--面向過程,特點:簡單:三種基本結(jié)構(gòu)程序可讀性強易維護(hù)是面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)面向?qū)ο蟪绦蛟O(shè)計方法,基本原則計算機程序是由單個能夠起到子程序作用的單元或?qū)ο蠼M合而成。4順序結(jié)構(gòu)選擇結(jié)構(gòu)三種基本結(jié)構(gòu)的圖示循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu)任何算法都是由三種基本結(jié)構(gòu)的程序模塊組合而成的組合程序:順序結(jié)構(gòu):語句之間為順序執(zhí)行關(guān)系的結(jié)構(gòu)選擇結(jié)構(gòu):根據(jù)條件作判斷,再決定執(zhí)行哪一種操作的結(jié)構(gòu)循環(huán)結(jié)構(gòu):從某處開始,按照一定條件,反復(fù)執(zhí)行某一處理過程,可細(xì)分為兩類:當(dāng)型和直到型循環(huán)結(jié)構(gòu)6三種基本結(jié)構(gòu)的共同特點三種基本結(jié)構(gòu)可表示一個良好算法的基本單元。特點:(1)只有一個入口。(2)只有一個出口。(3)結(jié)構(gòu)內(nèi)的每一部分都有機會被執(zhí)行到——無死語句。(4)結(jié)構(gòu)內(nèi)不存在“死循環(huán)”——無終止的循環(huán),需要有外部事件觸發(fā)的例外。注1:一個菱形判斷框有兩個出口,而一個選擇結(jié)構(gòu)只有一個出口。注2:不要將菱形框的出口和選擇結(jié)構(gòu)的出口混淆。目錄71.分析問題→2.算法設(shè)計→3.編碼→4.測試P14分析問題的方法輸入輸出處理——解決問題的基本方法數(shù)學(xué)中解答應(yīng)用題已知什么求什么解題思路82.算法設(shè)計——程序設(shè)計之第一步算法:解決問題所需的具體步驟算法設(shè)計:采用自頂向下的設(shè)計方法P14自頂向下的設(shè)計方法:整體規(guī)劃,自上而下、逐步將復(fù)雜問題分解成若干個簡單問題,各個擊破。例:畫女孩算法設(shè)計還應(yīng)該:由具體到抽象(個例→通用)求5!→n!編程問題的基本算法獲得數(shù)據(jù)--輸入執(zhí)行計算--處理顯示結(jié)果--輸出算法的描述方法自然語言流程圖P3偽代碼9①自然語言

求三個數(shù)中的最大值的算法如下:第1步:輸入三個正整數(shù)a,b,c;第2步:如果a大于b,則將a的值賦給max,否則將b的值賦給max;第3步:如果c大于max,則將c的值賦給max;第4步:打印“最大值為”=max10②流程圖P3求:1~100的偶數(shù)之和基本組件課堂作業(yè):畫流程圖

12請畫出處理以下問題的算法流程圖:輸入3個數(shù)a,b,c;若a>b,則max=a;否則max=b;若c>max,則max=c;輸出max③偽代碼

inputthreeintegernumbersprint“請輸入三個整數(shù)”inputa,b,cjudgethemaxonefromthreenumbersifa>bthenmax=aelsemax=bifc>maxthenmax=c

outputtheresultprint:“最大數(shù)是”;max

13143.編碼——程序?qū)崿F(xiàn)P3編碼是將算法轉(zhuǎn)化為程序的過程編碼的主要工作內(nèi)容輸入:確定數(shù)據(jù)的存儲方式--數(shù)據(jù)類型處理:完成處理的語句輸出:確定輸出格式算法=數(shù)據(jù)結(jié)構(gòu)+程序例:將算法轉(zhuǎn)化為C語言程序#include<stdio.h>voidmain(void){inta,b,c,max;

printf("輸入三個整數(shù):");scanf("%d%d%d",&a,&b,&c);

if(a>b)max=a;elsemax=b;if(c>max)max=c;

printf("最大數(shù)是:%d",max);}//sample01_02.cpp15返回P48164.測試可運行的程序并不一定是正確的程序,還要根據(jù)問題的實現(xiàn)目標(biāo),設(shè)計測試用例來檢查所編寫的程序是否還存在邏輯錯誤。測試的過程就是查找錯誤的過程。測試用例的設(shè)計是測試程序的核心。精心設(shè)計一批測試用例[輸入數(shù)據(jù),預(yù)期輸出結(jié)果]

,然后分別用這些測試用例運行程序,看程序的實際運行結(jié)果與預(yù)期輸出結(jié)果是否一致。例:C語言程序的測試sample01_02.cpp

#include<stdio.h>voidmain(void){inta,b,c,max;printf("輸入三個整數(shù):");scanf("%d%d%d",&a,&b,&c);

if(a>b)max=a;elsemax=b;if(c>max)max=c;

printf("最大數(shù)是:%d",max);}

17測試用例設(shè)計:測試用例一:輸入:1

2

3輸出:3測試用例二:輸入:3

2

1輸出:3測試用例三:輸入:1

3

2輸出:3

目錄18C語言要素解釋P2-P7,P95-96通過P7~16例講解注釋預(yù)處理指令數(shù)據(jù)類型常量和變量用戶自定義標(biāo)識符語句表達(dá)式函數(shù)1.2簡單程序擴展

P7C語言計算器解決方案(1)變量聲明:聲明用于存放數(shù)據(jù)的變量;(2)變量初始化:通過變量賦值或通過鍵盤輸入給出變量的初始值;(3)輸出結(jié)果:將運算結(jié)果輸出到屏幕或窗口;(4)在對變量初始化時,要保證作除法運算有意義,即保證除數(shù)不為零;注:整除——2個整數(shù)相除結(jié)果仍為整數(shù)P13(5)取余運算僅對于整數(shù)有意義。注:模運算僅對整數(shù)而言P13P8整數(shù)運算/整除運算符(求商)

整數(shù)除整數(shù)結(jié)果整數(shù),其中一個是實數(shù)結(jié)果也是實數(shù)如:1/2=0,9/4=2,3/2=1,3.0/2=1.5%模(求余)運算符

針對整型數(shù)據(jù)做除法取余數(shù)如:5%6=5,9%4=1,100%4=021整數(shù)類型intP10Integer[‘?nt?d??]整數(shù)存儲特點:直接二進(jìn)制存儲存儲字節(jié):TC:2字節(jié)32767~-32768

VC:4字節(jié)2147483647~-214748364822整數(shù)變量的定義分配內(nèi)存空間,按名存取操作不同的定義形式intx,y;intx;inty;23整數(shù)的輸入和輸出%d——格式控制符scanf(“%d”,&x);printf(“x=%d”,x);2425示例sample01_04.cppvoidmain(void){intx,y,q,c;x=230;y=107;

q=x/y;c=x%y;printf(“quotient=%d,remainder=%d”,q,c);}整數(shù)變量聲明賦值語句——初值整數(shù)運算:/,%輸出26整數(shù)運算特性的運用取位算法,例一個整數(shù)n由abcd4位數(shù)組成。如,1024a=abcd/1000%101024/1000%10=1b=abcd/100%101024/100%10=10%10=0c=abcd/10%101024/10%10=102%10=2d=abcd%101024%10=4整除運算取頭幾位求余運算取末幾位27示例sample01_06.cppvoidmain(void){intx,y,q,c;

printf(“inputx:”);

scanf(“%d”,&x);

printf(“inputy:”);

scanf(“%d”,&y);

q=x/y;

c=x%y;

printf(“quotient=%d,remainder=%d”,q,c);}輸入語句:變量值的輸入加強程序通用性運行體驗printf作用?Printf輸出格式?P2/*簡單計算器程序*/#include<stdio.h>#include<stdlib.h>voidmain(void){ intlOperator,rOperator; //定義兩個整型變量,用于存放左右操作數(shù) intnResult1,nResult2,nResult3,nResult4,nResult5;//定義五個整型變量,用于存放結(jié)果 lOperator=4; rOperator=5; nResult1=lOperator+rOperator;/*計算lOperator+rOperator將和存入nResult1*/ nResult2=lOperator-rOperator; /*計算lOperator-rOperator將差存入nResult2*/ nResult3=lOperator*rOperator;

/*計算lOperator*rOperator將積存入nResult3*/ nResult4=lOperator/rOperator; /*計算lOperator/rOperator將商存入nResult4*/ nResult5=lOperator%rOperator;

/*計算lOperator%rOperator將余數(shù)存入nResult5*/ printf(“%d“,nResult1); /*將和顯示在屏幕上*/ printf(“%d“,nResult2); /*將差顯示在屏幕上*/ printf(“%d“,nResult3); /*將積顯示在屏幕上*/ printf(“%d“,nResult4); /*將商顯示在屏幕上*/ printf(“%d“,nResult5); /*將余數(shù)顯示在屏幕上*/}因篇幅關(guān)系,參見P9完善顯示結(jié)果創(chuàng)建程序sample01_03_1.cpp/*簡單計算器程序*/#include<stdio.h>voidmain(void){ intlOperator,rOperator; //定義2個整型變量,存放左右操作數(shù)

intnResult1,nResult2,nResult3,nResult4,nResult5;//定義5個整型變量,存放結(jié)果

lOperator=4; rOperator=5; nResult1=lOperator+rOperator;//計算lOperator+rOperator將和存入nResult1 nResult2=lOperator-rOperator;//計算lOperator-rOperator將差存入nResult2 nResult3=lOperator*rOperator;//計算lOperator*rOperator將積存入nResult3 nResult4=lOperator/rOperator;//計算lOperator/rOperator將商存入nResult4 nResult5=lOperator%rOperator;//計算lOperator%rOperator將余數(shù)存入nResult5 printf("和=%d\n",nResult1); /*將和顯示在屏幕上*/ printf("差=%d\n",nResult2); /*將差顯示在屏幕上*/ printf("積=%d\n",nResult3); /*將積顯示在屏幕上*/ printf("商=%d\n",nResult4); /*將商顯示在屏幕上*/ printf("余數(shù)=%d\n",nResult5); /*將余數(shù)顯示在屏幕上*/}C語言要素解釋如下sample01_03.cpp注釋(綠色)的作用——幫助理解程序程序的開始功能、版本、修改時間、作者、程序名函數(shù)定義前P88功能,參數(shù)、返回值、作者、修改時間語句后功能注釋例2-5P4231注釋的規(guī)則P4行注釋//注釋內(nèi)容遇到空格,注釋結(jié)束多行注釋/*注釋內(nèi)容

*/位置出現(xiàn)在一行語句的右側(cè)或單獨成為一行編譯程序忽略注釋內(nèi)容,將注釋替換為一個空格注釋不能嵌套///**///×32編譯預(yù)處理P6預(yù)處理:在正式詞法掃描和語法分析前進(jìn)行預(yù)處理不是語句,不能編譯,在編譯前將預(yù)處理命令轉(zhuǎn)換成相應(yīng)的C程序段。預(yù)處理命令用#開頭,預(yù)處理命令后不加;分號。例如:#include<stdio.h>//頭文件,調(diào)用標(biāo)準(zhǔn)庫函數(shù)P5#include<stdlib.h>//常用函數(shù)P5#definekg_per_pound

0.453593//宏定義P96

宏名

宏定義字符串33頭文件包含(庫)P5、95~96文件包含:一個源文件包含一或多個源文件的全部內(nèi)容到包含文件中。P95#include<stdio.h>或#include“stdio.h”P96告訴編譯系統(tǒng),程序可訪問的系統(tǒng)函數(shù)和符號的集合stdio.h——標(biāo)準(zhǔn)輸入輸出系統(tǒng)函數(shù)庫,如:printf等一個#include只能包含一個頭文,如:#include<stdio.h>#include<stdlib.h>341.數(shù)據(jù)類型P10,P313附4C提供的基本數(shù)據(jù)類型int

(整型)integer[‘?nt?d??]

實型float

(單精度浮點型)double

(雙精度浮點型)char

(字符型)character[‘k?r?kt?]

算法的處理對象--數(shù)據(jù)數(shù)據(jù)以特定形式存儲--數(shù)據(jù)類型:是一組數(shù)據(jù)及在這組數(shù)據(jù)上的運算數(shù)據(jù)類型的選擇成績體積性別P18352.常量程序運行過程中值不會發(fā)生變化的量——常量。常量類型通常由書寫格式?jīng)Q定:int整數(shù)常量:23,0,-135double浮點數(shù)常量:0.263,123.8float浮點數(shù)常量:0.263f,123.8fchar字符常量:’a’,’A’,’0’,’\n’36常量--宏定義C語言常用宏來定義符號常量——宏定義。#definekg_per_pound0.453593示例#definePI3.1415926注:可用大寫字母表示,以示與一般變量的區(qū)別不帶參數(shù)的宏定義在C語言源程序中允許用一個標(biāo)識符來表示一個字符串,稱為“宏”。被定義為“宏”的標(biāo)識符稱為“宏名”。如:#definekg_per_pound

0.453593//宏定義P96

宏名宏定義字符串編譯時所有出現(xiàn)宏名的地方用宏定義字符串代替一般形式:

#define標(biāo)識符字符串P183.變量P10變量:程序運行時存儲在變量中的數(shù)據(jù)可以改變的量。存儲單元:用于存放程序的輸入數(shù)據(jù)、中間結(jié)果和計算結(jié)果的,而數(shù)學(xué)中則代表未知數(shù)。存儲單元的大小由數(shù)據(jù)類型決定,參見P313附4。先聲明(定義),后使用變量聲明(定義)一般格式:

數(shù)據(jù)類型變量表例:intfahr,

celsius;例:doublepounds;有若干個變量用,號分割變量名P18變量命名用戶自定義標(biāo)識符:變量名、函數(shù)名、符號常量1.由字母、數(shù)字、下劃線_構(gòu)成,如:a1,a_1,_a2.數(shù)字不能為首字符,如:1a×3.不能是保留字,如:int

×4.大小寫敏感,如:a1,A1分別為2個變量名關(guān)鍵字:C中具有固定含義的單詞P310附2int

chardoubleifelseforwhile……printfscanfmain……建議長度<=8位,見名知意doublepounds;P18復(fù)習(xí)——C語言組成元素注釋//或/**/預(yù)處理#include<stdio.h>#definemain函數(shù)“{”開始,“}”結(jié)束變量先定義,后使用數(shù)據(jù)類型inti;floatx;doubley;chara;常量書寫形式:12,,12.0符號常量#definePI4.13159640P641語句P6C的語句是向計算機系統(tǒng)發(fā)操作指令的。一條語句經(jīng)編譯后會產(chǎn)生若干條機器指令。C的程序是由若干條語句組成的,完成一個特定的操作任務(wù)。以;為C語句的結(jié)束符號,如intfahr,celsius;fahr=100;printf(“HelloWorld!\n”);//系統(tǒng)函數(shù)調(diào)用以下不是C的語句,所以沒有以;結(jié)束#include<stdio.h>intmain(void)#definekg_per_pound0.453593賦值語句(賦值運算符=)P11、13對一個變量進(jìn)行賦值:是以新內(nèi)容改寫變量中原存放的內(nèi)容。一般格式:變量=表達(dá)式;例:i=i+1;pounds=10;kgs=kg_per_pound*pounds;未知值0.45359310kgskg_per_poundpounds賦值前4.535930.45359310kgskg_per_poundpounds賦值后#definekg_per_pound0.453593編程:將華氏100度轉(zhuǎn)換為攝氏溫度

分析:已知?求?解題思路?

輸入?華氏溫度fahr=100;Fahrenheit

[‘f?r?n,ha?t]

輸出?攝氏溫度celsius的值[‘s?lsi?s]

處理?將華氏溫度fahr=100轉(zhuǎn)換為攝氏溫度:celsius=5*(fahr-32)/9創(chuàng)建程序sample01_05.cpp/*將華氏溫度轉(zhuǎn)換為攝氏溫度*/#include<stdio.h>intmain(void){intfahr,celsius;fahr=100;celsius=5*(fahr-32)/9;printf(“fahr=%d,celsius=%d\n”,fahr,celsius);return0;}運行結(jié)果:fahr=100,celsius=37注:printf格式化輸出函數(shù)“”內(nèi)字符串直接輸出%d輸出對應(yīng)的變量值\n換行試編寫程序!格式化輸出函數(shù)printfp11#include<stdio.h>printf("HelloWorld!\n");printf(“最大數(shù)是:%d“,max);printf(“fahr=%d,celsius=%d\n”,fahr,celsius);一般格式:printf("格式控制字符串",輸出參數(shù)1,…,輸出參數(shù)n);用雙引號括起來,表示輸出的格式要輸出的數(shù)據(jù)printf——格式控制字符串例printf("HelloWorld!\n");printf(“fahr=%d,celsius=%d\n”,fahr,celsius);格式控制字符串:普通字符:原樣輸出格式控制說明:按指定的格式輸出數(shù)據(jù),%…P315附6.1與數(shù)據(jù)類型有關(guān)int型:%dfloat和double型:%f默認(rèn)保留6位小數(shù)47注意雙引號之間的普通字符串依照原樣顯示在屏幕上printf("HelloWorld!\n");雙引號不輸出\n--換行輸出變量或表達(dá)式的值:格式控制符(%f或%d)printf("fahr=%d,celsius=%d\n",fahr,celsius);printf("kgs=%f",kg_per_pound*pounds);修改程序sample01_05.cpp:直接輸出表達(dá)式48分析:程序sample01_05.cpp非通用程序:只能將華氏溫度100轉(zhuǎn)換成攝氏溫度37。若能從鍵盤輸入任何華氏溫度fahr的值即可轉(zhuǎn)換成相應(yīng)的攝氏溫度——通用程序。前例:輸入a,b,c三個數(shù)

scanf(“%d%d%d”,&a,&b,&c);輸入fahrscanf(“%d”,&fahr);格式化輸入函數(shù)scanfP32數(shù)據(jù)輸入:格式化輸入函數(shù)scanf#include<stdio.h>scanf(“%d”,&fahr);一般格式:scanf("格式控制字符串",&輸入?yún)?shù)1,…,&輸入?yún)?shù)n);用雙引號括起來,表示輸入的格式變量地址:&x注:&取址運算符變量x的地址而非內(nèi)容scanf-格式控制字符串格式控制字符串:格式控制說明:按指定的格式輸入數(shù)據(jù),%…與數(shù)據(jù)類型有關(guān)P316附6.2int型:%dfloat型:%fdouble型:%lf普通字符:原樣輸出,例如:

scanf("x=%lf",&x);x=9.5注:盡量不要出現(xiàn)普通字符可配合printf一起使用采用printf(“x=”);scanf(“%lf\n”,&x);x=9.551輸入提示--良好的程序風(fēng)格//輸入單位為磅的重量值printf("Enterthequantityinpounds:");scanf("%d",£s);52scanf作用舉例接受鍵盤輸入的數(shù)據(jù),存儲到指定變量中。scanf("%d",£s);scanf(“%lf”,£s);%d和%f的作用:設(shè)定數(shù)據(jù)類型。鍵盤擊打字符——無數(shù)據(jù)類型;變量接受數(shù)據(jù)——明確數(shù)據(jù)類型。例:鍵入:12%d

整數(shù)12%f

實數(shù)12.0%s

字符串“12”£s的作用?將鍵盤輸入的值送到pounds變量所對應(yīng)的存儲單元中。課堂練習(xí)將左邊“將華氏溫度轉(zhuǎn)換為攝氏溫度”的程序改為通用程序——可以將任意值的華氏溫度轉(zhuǎn)換為攝氏溫度。修改后程序/*將華氏溫度轉(zhuǎn)換為攝氏溫度*/#include<stdio.h>intmain(void){intfahr,celsius;fahr=100;celsius=5*(fahr-32)/9;printf("fahr=%d,celsius=%d\n",fahr,celsius);return0;//返回0}printf("fahr=");scanf("%d",&fahr);54案例分析學(xué)生在做奶粉市場調(diào)查時發(fā)現(xiàn)國產(chǎn)奶粉使用公斤為單位,進(jìn)口奶粉則使用磅為單位?,F(xiàn)在希望采用公斤統(tǒng)一計量單位,請寫出實行轉(zhuǎn)換的程序。分析:輸入pounds輸出kgs解題思路1公斤=0.453593磅55案例算法實現(xiàn)數(shù)據(jù)(變量)磅公斤數(shù)據(jù)類型選擇浮點數(shù)據(jù)功能輸入單位為磅的重量值將磅轉(zhuǎn)換成公斤顯示單位為公斤的重量值課堂練習(xí):將算法轉(zhuǎn)化為C語言程序完善程序

sample01_07.cpp1、依“例題”(樣)畫葫蘆(編制)將磅值轉(zhuǎn)換為公斤的程序。源程序2、輸出保留6位小數(shù)——printf函數(shù)%f格式默認(rèn)保留6位小數(shù)點,不足位右側(cè)補0。

若只要保留2位小數(shù)怎么辦?

printf(“kgs=%.2f\n",kgs);注:%m.nf

輸出m列其中小數(shù)n列P315

%md

輸出m列,不足位則左端補空格/*將磅值轉(zhuǎn)換為公斤*/#include<stdio.h>intmain(void){floatpounds,kgs;printf("pounds=");scanf("%f",£s);kgs=0.453593*pounds;printf("kgs=%f\n",kgs);return0;}pounds=10Kgs=4.535930pounds=10kgs=4.5457磅轉(zhuǎn)換公斤:sample01_07.cpp

連接錯/*---------------------*//*磅到公斤的轉(zhuǎn)換*//*---------------------*/#include<stdio.h>#definekg_per_pound0.453593intmain()/*小括號內(nèi)void可省*/{intpounds;doublekgs;//獲得以磅表示的重量printf("Enterthequantityinpounds:");scanf("%d",£s);//將重量轉(zhuǎn)換成公斤kgs=kg_per_pound*pounds;//顯示以公斤表示的重量printf(“thatequals%.2fkilograms",kgs);return0;//返回值0}測試用例:輸入:10輸出:4.535930P3158例:交換算法分析:inta,b;a=10;b=20;交換變量a和b中的值?1瓶可樂與1瓶雪碧交換?必須借助第三方變量tt=a;a=b;b=t;或t=b;b=a;a=t;,t59交換的過程1020未知值abt102010t=a;202010a=b;b=t;201010交換前P29作業(yè)1:編程實現(xiàn)交換算法對變量a和b分別賦初值;交換變量a和b中的值;輸出結(jié)果請按軟件開發(fā)的過程完成問題的求解問題需求分析問題設(shè)計算法編碼測試答題要求如下作業(yè)本封面:學(xué)號、姓名、班級、C程序設(shè)計

頁面對折,布局如下:題目分析測試用例及結(jié)果(1)黑屏上內(nèi)容測試用例及結(jié)果(2)黑屏上內(nèi)容源程序P18作業(yè)2:修改作業(yè)1——通用程序從鍵盤接收2個數(shù),存入變量a和b;交換變量a和b中的值;輸出結(jié)果請按軟件開發(fā)的過程完成問題的求解問題需求分析問題設(shè)計算法編碼測試交換算法

通用程序#include<stdio.h>voidmain(void){ inta,b,t; scanf("%d%d",&a,&b); t=a;a=b;b=t; printf("a=%d,b=%d\n",a,b);}64算術(shù)運算符P11雙目(2個操作數(shù))運算符:+、-、*、/、%優(yōu)先級:()最高,*、/、%高于+、-單目運算符--1個操作數(shù)運算順序:從左至右按優(yōu)先級進(jìn)行運算65算術(shù)表達(dá)式用算術(shù)運算符將運算對象連接起來的符合C語言語法規(guī)則的式子——算術(shù)表達(dá)式。數(shù)學(xué)表達(dá)式:(a+b)(a-c)(a+b)÷(a-c)C表達(dá)式:(a+b)*(a-c)(a+b)/(a-c)P1866函數(shù)功能模塊與函數(shù)函數(shù)的種類主函數(shù)被調(diào)函數(shù)系統(tǒng)函數(shù)輸入輸出函數(shù)數(shù)學(xué)函數(shù)……用戶自定義函數(shù)67例:設(shè)計輸出簡圖的算法圖形女孩房子男孩68模塊結(jié)構(gòu)圖模塊結(jié)構(gòu)獨立函數(shù)69模塊的實現(xiàn)--函數(shù)自頂向下的分析結(jié)果得到模塊結(jié)構(gòu)圖,每一個模塊在C程序中的實現(xiàn)與函數(shù)相對應(yīng)。函數(shù)是C程序設(shè)計語言的基本單位P6當(dāng)用C來編程序時,一個復(fù)雜的大程序可被分割成更容易控制的函數(shù)和子函數(shù)P43函數(shù)的種類主函數(shù)main()系統(tǒng)函數(shù)P317~323附7常用系統(tǒng)函數(shù):輸入輸出函數(shù),如printf常用數(shù)學(xué)函數(shù),如sin用戶自定義函數(shù)70P4371最簡單的C程序voidmain(void){}它能被執(zhí)行,但無任何功能它包含一個main函數(shù)空語句在{}之間添加語句intmain(){return0;}72main函數(shù)每一個C程序有且只有一個main函數(shù)程序執(zhí)行自動調(diào)用main函數(shù)程序順次執(zhí)行每一條可執(zhí)行語句形式:voidmain(void)intmain(void){聲明{聲明

可執(zhí)行語句序列可執(zhí)行語句序列}

return0;}沒有形參可省略空類型不產(chǎn)生返回值整型,產(chǎn)生返回值并返回結(jié)果返回整型值0intmain()73最基本的C程序模塊(main函數(shù))IPO結(jié)構(gòu)始終是main函數(shù)模塊的基本結(jié)構(gòu)74示例#include<stdio.h>intmain(){intx,y,z;printf(“inputx,y);scanf(“%d%d”,&x,&y);z=x*100+y;printf(“z=%d”,z);}InputProcessOutputP43C函數(shù)可調(diào)用其他函數(shù)#include<stdio.h>voidmain(void){printf(“HelloCWorld\n”);printf(“HelloCWorld”);}頭文件:math.h,功能:計算x的n次冪。返回值:x應(yīng)大于零,返回計算冪指數(shù)的結(jié)果。printf是一個實現(xiàn)復(fù)雜功能的系統(tǒng)函數(shù)只需學(xué)會調(diào)用它,而不需要寫函數(shù)函數(shù)可以多次被調(diào)用--嵌套。如printf(“%f”,pow(x,n));76如何調(diào)用(使用)一個函數(shù)printf是函數(shù)的名稱使用一個函數(shù),函數(shù)名后面一定要跟()()

里是函數(shù)的參數(shù),它提供函數(shù)所需要的數(shù)據(jù)。例如printf(“Hello!\n”)。字符串“Hello!\n”是printf所需要的參數(shù)。例如pow(x,n)pow函數(shù)包含兩個參數(shù)n和x,參數(shù)之間以逗號分隔。P43系統(tǒng)函數(shù)介紹

系統(tǒng)提供的已寫好的功能代碼,可以直接調(diào)用系統(tǒng)函數(shù)的聲明:include文件夾中系統(tǒng)函數(shù)的程序段:lib文件夾中常用函數(shù)庫文件名stdio.h:標(biāo)準(zhǔn)輸入輸出函數(shù)庫math.h:數(shù)學(xué)函數(shù)庫string.h:字符串處理函數(shù)庫7778常用數(shù)學(xué)庫函數(shù)P317附7平方根函數(shù)sqrt(x)

絕對值函數(shù)fabs(x)fabs(-3.56)的值為3.56冪函數(shù)pow(x,n):xnpow(1.1,2)的值為1.21(即1.12)指數(shù)函數(shù)exp(x):exexp(2.3)的值為e2.3以e為底的對數(shù)函數(shù)log(x):lnxlog(123.45)的值為4.815836以10為底的對數(shù)函數(shù)log10(x):log10xlog10(123.45)的值為2.091491。使用系統(tǒng)函數(shù)#include<庫文件名>按照函數(shù)調(diào)用的方法調(diào)用,如#include<stdio.h>voidmain(void){printf(“HelloCWorld\n”);printf(“HelloCWorld”);}80計算存款的本息

創(chuàng)建程序sample01_09.cpp輸入存款金額money、存期year和年利率rate,根據(jù)公式計算存款到期時的本息合計sum,輸出時保留2位小數(shù)。sum=money(1+rate)yearsum=money*pow((1+rate),year);課堂作業(yè):編程實現(xiàn)上述功能請寫出上述式子所對應(yīng)的C語言算術(shù)表達(dá)式和賦值語句:81上例

程序#include<stdio.h>#include<math.h>intmain(void){intmoney,year;doublerate,sum;

printf("Entermoney:");

scanf("%d",&money);printf("Enteryear:");scanf("%d",&year);printf("Enterrate:");scanf("%lf",&rate);

sum=money*pow((1+rate),year);

printf("sum=%.2f",sum);return0;}Entermoney:1000Enteryear:

3Enterrate:

0.05sum=1157.63printf("Entermoney,year,rate:");scanf("%d%d%lf",&money,&year,&rate);P43輸入部分太繁瑣簡化82作業(yè)3:高速公路收費站為提高通行速度,準(zhǔn)備采用ETC收費方式,現(xiàn)需要測算采用ETC收費后車流量改善程度。假設(shè):人工收費通道每輛車通過最快需要30秒,而ETC通道每輛車通過只需6秒。計劃先將10個收費口中的若干個改成ETC收費口,其中ETC收費口的數(shù)量由程序執(zhí)行時輸入。請測算采用ETC收費口后,每小時車流量增加多少輛?83#include<stdio.h>intmain(){intn_ETC;//ETC通道的數(shù)目

intn_normal;//普通通道的數(shù)目

intnormal_flux;//現(xiàn)在收費口的一小時流量

intnew_flux;//增加ETC后收費口的一小時流量

printf("inputthenumberofETC:");scanf("%d",&n_ETC);normal_flux=1*60/0.5*10;n_normal=10-n_ETC;new_flux=1*60*60/6*n_ETC+1*60/0.5*n_normal;printf("theincreaseoffluxis%d\n",new_flux-normal_flux);

return0;}課堂作業(yè):編程實現(xiàn)上述功能#definen_normal(10-n_ETC)//84作業(yè)4勾股定理:指組成直角三角形的三邊,滿足兩條直角邊平方和等于斜邊的平方。設(shè)直角三角形兩直角邊為a

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論