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

下載本文檔

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

文檔簡(jiǎn)介

1第四講

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

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

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

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

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

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

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

printf("輸入三個(gè)整數(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.測(cè)試可運(yùn)行的程序并不一定是正確的程序,還要根據(jù)問(wèn)題的實(shí)現(xiàn)目標(biāo),設(shè)計(jì)測(cè)試用例來(lái)檢查所編寫的程序是否還存在邏輯錯(cuò)誤。測(cè)試的過(guò)程就是查找錯(cuò)誤的過(guò)程。測(cè)試用例的設(shè)計(jì)是測(cè)試程序的核心。精心設(shè)計(jì)一批測(cè)試用例[輸入數(shù)據(jù),預(yù)期輸出結(jié)果]

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

#include<stdio.h>voidmain(void){inta,b,c,max;printf("輸入三個(gè)整數(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測(cè)試用例設(shè)計(jì):測(cè)試用例一:輸入:1

2

3輸出:3測(cè)試用例二:輸入:3

2

1輸出:3測(cè)試用例三:輸入:1

3

2輸出:3

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

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

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

針對(duì)整型數(shù)據(jù)做除法取余數(shù)如:5%6=5,9%4=1,100%4=021整數(shù)類型intP10Integer[‘?nt?d??]整數(shù)存儲(chǔ)特點(diǎn):直接二進(jìn)制存儲(chǔ)存儲(chǔ)字節(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ù)變量聲明賦值語(yǔ)句——初值整數(shù)運(yùn)算:/,%輸出26整數(shù)運(yùn)算特性的運(yùn)用取位算法,例一個(gè)整數(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整除運(yùn)算取頭幾位求余運(yùn)算取末幾位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);}輸入語(yǔ)句:變量值的輸入加強(qiáng)程序通用性運(yùn)行體驗(yàn)printf作用?Printf輸出格式?P2/*簡(jiǎn)單計(jì)算器程序*/#include<stdio.h>#include<stdlib.h>voidmain(void){ intlOperator,rOperator; //定義兩個(gè)整型變量,用于存放左右操作數(shù) intnResult1,nResult2,nResult3,nResult4,nResult5;//定義五個(gè)整型變量,用于存放結(jié)果 lOperator=4; rOperator=5; nResult1=lOperator+rOperator;/*計(jì)算lOperator+rOperator將和存入nResult1*/ nResult2=lOperator-rOperator; /*計(jì)算lOperator-rOperator將差存入nResult2*/ nResult3=lOperator*rOperator;

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

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

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

lOperator=4; rOperator=5; nResult1=lOperator+rOperator;//計(jì)算lOperator+rOperator將和存入nResult1 nResult2=lOperator-rOperator;//計(jì)算lOperator-rOperator將差存入nResult2 nResult3=lOperator*rOperator;//計(jì)算lOperator*rOperator將積存入nResult3 nResult4=lOperator/rOperator;//計(jì)算lOperator/rOperator將商存入nResult4 nResult5=lOperator%rOperator;//計(jì)算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語(yǔ)言要素解釋如下sample01_03.cpp注釋(綠色)的作用——幫助理解程序程序的開(kāi)始功能、版本、修改時(shí)間、作者、程序名函數(shù)定義前P88功能,參數(shù)、返回值、作者、修改時(shí)間語(yǔ)句后功能注釋例2-5P4231注釋的規(guī)則P4行注釋//注釋內(nèi)容遇到空格,注釋結(jié)束多行注釋/*注釋內(nèi)容

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

0.453593//宏定義P96

宏名

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

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

實(shí)型float

(單精度浮點(diǎn)型)double

(雙精度浮點(diǎn)型)char

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

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

0.453593//宏定義P96

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

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

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

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

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

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

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

輸入?華氏溫度f(wàn)ahr=100;Fahrenheit

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

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

處理?將華氏溫度f(wàn)ahr=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;}運(yùn)行結(jié)果:fahr=100,celsius=37注:printf格式化輸出函數(shù)“”內(nèi)字符串直接輸出%d輸出對(duì)應(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);用雙引號(hào)括起來(lái),表示輸出的格式要輸出的數(shù)據(jù)printf——格式控制字符串例printf("HelloWorld!\n");printf(“fahr=%d,celsius=%d\n”,fahr,celsius);格式控制字符串:普通字符:原樣輸出格式控制說(shuō)明:按指定的格式輸出數(shù)據(jù),%…P315附6.1與數(shù)據(jù)類型有關(guān)int型:%dfloat和double型:%f默認(rèn)保留6位小數(shù)47注意雙引號(hào)之間的普通字符串依照原樣顯示在屏幕上printf("HelloWorld!\n");雙引號(hào)不輸出\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。若能從鍵盤輸入任何華氏溫度f(wàn)ahr的值即可轉(zhuǎn)換成相應(yīng)的攝氏溫度——通用程序。前例:輸入a,b,c三個(gè)數(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);用雙引號(hào)括起來(lái),表示輸入的格式變量地址:&x注:&取址運(yùn)算符變量x的地址而非內(nèi)容scanf-格式控制字符串格式控制字符串:格式控制說(shuō)明:按指定的格式輸入數(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ù),存儲(chǔ)到指定變量中。scanf("%d",£s);scanf(“%lf”,£s);%d和%f的作用:設(shè)定數(shù)據(jù)類型。鍵盤擊打字符——無(wú)數(shù)據(jù)類型;變量接受數(shù)據(jù)——明確數(shù)據(jù)類型。例:鍵入:12%d

整數(shù)12%f

實(shí)數(shù)12.0%s

字符串“12”£s的作用?將鍵盤輸入的值送到pounds變量所對(duì)應(yīng)的存儲(chǔ)單元中。課堂練習(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é)生在做奶粉市場(chǎng)調(diào)查時(shí)發(fā)現(xiàn)國(guó)產(chǎn)奶粉使用公斤為單位,進(jìn)口奶粉則使用磅為單位?,F(xiàn)在希望采用公斤統(tǒng)一計(jì)量單位,請(qǐng)寫出實(shí)行轉(zhuǎn)換的程序。分析:輸入pounds輸出kgs解題思路1公斤=0.453593磅55案例算法實(shí)現(xiàn)數(shù)據(jù)(變量)磅公斤數(shù)據(jù)類型選擇浮點(diǎn)數(shù)據(jù)功能輸入單位為磅的重量值將磅轉(zhuǎn)換成公斤顯示單位為公斤的重量值課堂練習(xí):將算法轉(zhuǎn)化為C語(yǔ)言程序完善程序

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

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

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

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

%md

輸出m列,不足位則左端補(bǔ)空格/*將磅值轉(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

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

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

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

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

return0;}沒(méi)有形參可省略空類型不產(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,功能:計(jì)算x的n次冪。返回值:x應(yīng)大于零,返回計(jì)算冪指數(shù)的結(jié)果。printf是一個(gè)實(shí)現(xiàn)復(fù)雜功能的系統(tǒng)函數(shù)只需學(xué)會(huì)調(diào)用它,而不需要寫函數(shù)函數(shù)可以多次被調(diào)用--嵌套。如printf(“%f”,pow(x,n));76如何調(diào)用(使用)一個(gè)函數(shù)printf是函數(shù)的名稱使用一個(gè)函數(shù),函數(shù)名后面一定要跟()()

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

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

絕對(duì)值函數(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為底的對(duì)數(shù)函數(shù)log(x):lnxlog(123.45)的值為4.815836以10為底的對(duì)數(shù)函數(shù)log10(x):log10xlog10(123.45)的值為2.091491。使用系統(tǒng)函數(shù)#include<庫(kù)文件名>按照函數(shù)調(diào)用的方法調(diào)用,如#include<stdio.h>voidmain(void){printf(“HelloCWorld\n”);printf(“HelloCWorld”);}80計(jì)算存款的本息

創(chuàng)建程序sample01_09.cpp輸入存款金額money、存期year和年利率rate,根據(jù)公式計(jì)算存款到期時(shí)的本息合計(jì)sum,輸出時(shí)保留2位小數(shù)。sum=money(1+rate)yearsum=money*pow((1+rate),year);課堂作業(yè):編程實(shí)現(xiàn)上述功能請(qǐng)寫出上述式子所對(duì)應(yīng)的C語(yǔ)言算術(shù)表達(dá)式和賦值語(yǔ)句: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輸入部分太繁瑣簡(jiǎn)化82作業(yè)3:高速公路收費(fèi)站為提高通行速度,準(zhǔn)備采用ETC收費(fèi)方式,現(xiàn)需要測(cè)算采用ETC收費(fèi)后車流量改善程度。假設(shè):人工收費(fèi)通道每輛車通過(guò)最快需要30秒,而ETC通道每輛車通過(guò)只需6秒。計(jì)劃先將10個(gè)收費(fèi)口中的若干個(gè)改成ETC收費(fèi)口,其中ETC收費(fèi)口的數(shù)量由程序執(zhí)行時(shí)輸入。請(qǐng)測(cè)算采用ETC收費(fèi)口后,每小時(shí)車流量增加多少輛?83#include<stdio.h>intmain(){intn_ETC;//ETC通道的數(shù)目

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

intnormal_flux;//現(xiàn)在收費(fèi)口的一小時(shí)流量

intnew_flux;//增加ETC后收費(fèi)口的一小時(shí)流量

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

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論