C語言程序設(shè)計算法和基本程序設(shè)計胡濱_第1頁
C語言程序設(shè)計算法和基本程序設(shè)計胡濱_第2頁
C語言程序設(shè)計算法和基本程序設(shè)計胡濱_第3頁
C語言程序設(shè)計算法和基本程序設(shè)計胡濱_第4頁
C語言程序設(shè)計算法和基本程序設(shè)計胡濱_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學(xué)1C語言程序設(shè)計算法和基本程序設(shè)計胡濱2第1頁/共41頁3評價標(biāo)準(zhǔn)正確性:合法輸入有正確輸出可讀性:易懂健壯性:容錯高效率和低存儲量需求第2頁/共41頁4

C語言程序設(shè)計

第三章算法和基本程序設(shè)計算法的表示可用自然語言、數(shù)學(xué)方法、某種計算機(jī)語言描述規(guī)范的方法:流程圖、結(jié)構(gòu)圖、偽代碼、PAD圖流程圖第3頁/共41頁5例:求三個整數(shù)的和流程圖開始輸出sum的值結(jié)束輸入x,y,zsum=x+y+zmain(){floatx,y,z,sum;scanf(“%f%f%f\n”,&x,&y,&z);

sum=x+y+z;printf(“sum=%f\n”,sum);}第4頁/共41頁6例2:求三個數(shù)中最小數(shù)流程圖開始輸出min的值輸入a,b,ca<bNmin=amin=bY結(jié)束c<minmin=cYN#include<stdio.h>main(){inta,b,c,min;scanf("%d%d%d",&a,&b,&c);

if(a<b) min=a;

else min=b;

if(c<min) min=c;printf("min=%d",min);}第5頁/共41頁7N-S圖 完全去掉流程線,由一些基本框組成一個大的框基本元素框第6頁/共41頁8例:求三個整數(shù)的和流程圖開始輸出sum的值結(jié)束輸入x,y,zsum=x+y+z輸出sum的值sum=x+y+z輸入x,y,zN-S圖第7頁/共41頁9例:求三個數(shù)中最小數(shù)。流程圖開始輸出min的值輸入a,b,ca<bNmin=amin=bY結(jié)束c<minmin=cYNN-S圖min=bmin=aa<bYNmin=cc<minYN輸入a,b,c輸出min的值第8頁/共41頁10背景 軟件危機(jī)

1968年,荷蘭學(xué)者E.W.Dijkstra提出GOTO語句的三大危害采用結(jié)構(gòu)化程序設(shè)計方法應(yīng)遵循的原則自頂向下模塊化

功能模塊模塊的劃分模塊間的接口

限制使用GOTO語句結(jié)構(gòu)化程序設(shè)計方法第9頁/共41頁111.從程序流程控制的角度,分為三種基本結(jié)構(gòu):

順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)2.這三種基本結(jié)構(gòu)可以組成所有的各種復(fù)雜程序3.結(jié)構(gòu)化程序是只由三種基本結(jié)構(gòu)構(gòu)成的程序程序的基本結(jié)構(gòu)第10頁/共41頁12結(jié)構(gòu)化程序設(shè)計基本思想:把一個復(fù)雜問題的求解過程分步進(jìn)行,后一步在前一步的基礎(chǔ)上細(xì)化,這樣每步所考慮的子問題都相對易于理解和處理,每步都只用三種基本結(jié)構(gòu)進(jìn)行復(fù)合和嵌套。也可以概括為:自頂向下,逐步求精的方法。第11頁/共41頁13基本程序結(jié)構(gòu)三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)1.順序結(jié)構(gòu)AB先執(zhí)行A,再執(zhí)行B.第12頁/共41頁142.選擇結(jié)構(gòu)ABPYN若P為真,則執(zhí)行A,

否則執(zhí)行B。APNY若P為真,則執(zhí)行A,

否則跳過A。第13頁/共41頁15

另外:由選擇結(jié)構(gòu)可以派生出多分支結(jié)構(gòu)。K=K1A1A2AiAn……K2KiKn第14頁/共41頁163.循環(huán)結(jié)構(gòu)PNYA(1)當(dāng)型循環(huán)當(dāng)P為真,反復(fù)執(zhí)行A,P為假時出循環(huán)。APYN(2)直到型循環(huán)先執(zhí)行A,再判斷,若P為真,反復(fù)執(zhí)行A,直到P為假出循環(huán)。第15頁/共41頁17順序結(jié)構(gòu)程序設(shè)計C程序語句分類:由語句組成,每個語句以分號結(jié)束。①控制語句②表達(dá)式語句③函數(shù)調(diào)用語句④空語句⑤復(fù)合語句9種控制語句:1.條件判斷語句

if()…else… switch(){…}

2.循環(huán)控制語句

for()… while()…do…while()3.轉(zhuǎn)移語句

breakcontinuegotoreturn例如:main(){inta,b;a=b=100;

{floatc=10.23;printf("%f\n",c);

}printf("%d%d\n",a,b);}第16頁/共41頁18C中數(shù)據(jù)的輸入輸出輸入:將數(shù)據(jù)送入計算機(jī)。輸出:將計算機(jī)處理的結(jié)果數(shù)據(jù)送出到輸出設(shè)備。說明:1、C語言中,數(shù)據(jù)輸入/輸出是通過調(diào)用庫函數(shù)完成。2、使用庫函數(shù)時,用預(yù)編譯命令將有關(guān)“頭文件”包括到源文件中。3、標(biāo)準(zhǔn)輸入輸出庫函數(shù):“stdio.h”文件4、源文件開頭應(yīng)有以下預(yù)編譯命令:

#include<stdio.h>或#include"stdio.h"第17頁/共41頁191.putchar

函數(shù)(字符輸出函數(shù))字符數(shù)據(jù)的輸入/輸出格式:

putchar(c)參數(shù):c為字符常量、變量或表達(dá)式功能:把字符c輸出到顯示器上例:#include<stdio.h>main(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}AB第18頁/共41頁202、getchar函數(shù)(字符輸入函數(shù))格式:getchar()功能:從鍵盤讀入一字符,

遇回車結(jié)束并回顯例:#include<stdio.h>main(){charc;c=getchar();putchar(c);}a

a第19頁/共41頁21getch函數(shù)格式:getch()功能:從鍵盤讀入一字符,

不用回車結(jié)束,不回顯例:#include<stdio.h>main(){charc;c=getch();putchar(c);}aa第20頁/共41頁22getche函數(shù)格式:getche()功能:從鍵盤讀入一字符,

不用回車結(jié)束,回顯例:#include<stdio.h>main(){charc;c=getche();putchar(c);}aaa第21頁/共41頁23getche函數(shù)例:#include<stdio.h>main(){ charch; ch=getch(); putchar(ch-32);}第22頁/共41頁24gets,puts函數(shù)例:#include<stdio.h>main(){ charch[80]; gets(ch); puts(ch);}第23頁/共41頁25格式輸入與輸出輸出若干個任意類型的數(shù)據(jù)1、printf函數(shù)(格式輸出)格式:printf(“格式控制串”,輸出表)功能:按指定格式向顯示器輸出數(shù)據(jù)說明:標(biāo)準(zhǔn)庫函數(shù),函數(shù)原型在頭文件“stdio.h”中格式控制串:格式說明:普通字符或轉(zhuǎn)義序列:%格式字符,用于指定輸出格式原樣輸出輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以“,”分隔)第24頁/共41頁26格式字符1、%d十進(jìn)制格式2、%o八進(jìn)制格式3、%x十六進(jìn)制格式4、%u無符號的十進(jìn)制格式5、%c一個字符格式6、%s字符串格式7、%f實數(shù)格式8、%e指數(shù)格式9、%g第25頁/共41頁27dx,Xoucse,Efg%%十六進(jìn)制無符號整數(shù)不帶符號十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點小數(shù)單一字符字符串八進(jìn)制無符號整數(shù)小數(shù)形式浮點小數(shù)e和f中較短一種百分號本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=-1;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff10165535AABC5.67789e+02567.789000567.789%格式字符第26頁/共41頁28附加格式說明符

.n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功能m

輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度<m,左補(bǔ)空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l第27頁/共41頁292、scanf函數(shù)(格式輸入)格式:scanf(“格式控制串”,地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指

定的存儲單元中,按回車鍵結(jié)束說明:標(biāo)準(zhǔn)庫函數(shù),在頭文件“stdio.h”中定義格式控制串:和格式輸出函數(shù)的含義相同地址表:變量的地址,用取地址運算符&例

inta;

scanf(“%d”,&a);10a=10第28頁/共41頁30關(guān)于格式輸入函數(shù)的幾點說明:1、輸入數(shù)據(jù)時不能規(guī)定精度;2、參數(shù)中“格式控制”之后應(yīng)該是變量地址;3、如果在“格式控制”字符串中除了格式說明以外,還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符;例:scanf(”%7.2f”,&a);例:scanf(”%f”,a);例:scanf(”a=%d,b=%d”,&a,&b);輸入時應(yīng)該是:a=3,b=4第29頁/共41頁314、在用“%c”格式輸入字符時,空格字符和轉(zhuǎn)義字符都作為有效的字符輸入。例:scanf(”%d%d”,&a,&b);輸入時可為:34343Tab鍵4例:scanf(”%c%c%c”,&c1,&c2,&c3);若輸入時為:abc則結(jié)果為:

c1=a,c2=,c3=b5、double型數(shù)據(jù)輸入時,必須用%lf或%le格式第30頁/共41頁32程序舉例例1、輸入三角形邊長,求面積。公式:s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));#include<stdio.h>#include<math.h>

main(){floata,b,c,s,area;printf("inputa,b,c:");scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%7.2f\n",area);}

inputa,b,c:3,4,6area=5.33第31頁/共41頁33C程序上機(jī)的步驟C程序從開發(fā)到執(zhí)行的過程用戶C源程序.c文件目標(biāo)程序.obj文件可執(zhí)

溫馨提示

  • 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

提交評論