




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo):3 1學(xué)會(huì)使用結(jié)構(gòu)化程序設(shè)計(jì)方法編寫(xiě)程序?qū)W會(huì)使用結(jié)構(gòu)化程序設(shè)計(jì)方法編寫(xiě)程序2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)調(diào)用函數(shù)調(diào)用2函數(shù)編寫(xiě)原則函數(shù)編寫(xiě)原則1、將比較復(fù)雜的問(wèn)題分解成小問(wèn)題(函、將比較復(fù)雜的問(wèn)題分解成小問(wèn)題(函數(shù)),以簡(jiǎn)化程序設(shè)計(jì)數(shù)),以簡(jiǎn)化程序設(shè)計(jì)2、將經(jīng)常用的、公共的功能定義成函數(shù),、將經(jīng)常用的、公共的功能定義成函數(shù),以在程序中重用以在程序中重用2022-3-7電氣與信
2、息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)調(diào)用函數(shù)調(diào)用2練習(xí)練習(xí)1:從鍵盤(pán)輸入一個(gè)數(shù)從鍵盤(pán)輸入一個(gè)數(shù)n,輸出他的所有質(zhì)因子,例輸出他的所有質(zhì)因子,例如輸入如輸入30 輸出輸出 2 3 5 要求:要求:1、定義一個(gè)函數(shù)、定義一個(gè)函數(shù)isPrime(int x)。函數(shù)的功能:。函數(shù)的功能:如果如果x是質(zhì)數(shù),返回是質(zhì)數(shù),返回1,否則返回,否則返回02、在主函數(shù)中,從、在主函數(shù)中,從2循環(huán)到循環(huán)到n/2,將是,將是n的因的因子,并且是質(zhì)數(shù)的輸出子,并且是質(zhì)數(shù)的輸出2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)應(yīng)用函數(shù)應(yīng)用3 例3:輸出乘法口訣表。20
3、22-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)應(yīng)用函數(shù)應(yīng)用3 例例3 3:輸出乘法口訣表。:輸出乘法口訣表。l分析分析: : 它是一個(gè)它是一個(gè)9行行9列的二維表格,加上一個(gè)列的二維表格,加上一個(gè)行標(biāo)題和一個(gè)列標(biāo)題,顯示出來(lái)應(yīng)該是行標(biāo)題和一個(gè)列標(biāo)題,顯示出來(lái)應(yīng)該是10行行10列。列。2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)應(yīng)用函數(shù)應(yīng)用3 問(wèn)題分析l行與行之間采用若干個(gè)“=”或“-”字符表示表格之間的線段,為此,可以定義一個(gè)函數(shù),專門用來(lái)連續(xù)地顯示若干個(gè)字符,以避免在每次需要顯示線段的時(shí)候,都重復(fù)地書(shū)寫(xiě)相應(yīng)的語(yǔ)句序列。( (
4、重用重用) ) 2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作#include void drawLine(int n,char ch); /* 連續(xù)顯示連續(xù)顯示n個(gè)個(gè)ch字符字符 */int main() int i,j; printf(n 9.9 tablen); /* 顯示表名顯示表名 */ drawLine(30, =); /* 顯示每列的標(biāo)題顯示每列的標(biāo)題 */ printf(n 1 2 3 4 5 6 7 8 9); drawLine(30, =); for (i=1; i=9; i+) /* 顯示每行的內(nèi)容顯示每行的內(nèi)容 */ printf(n%3d
5、, i); for (j=1; j=9; j+) printf(%3d, i*j); if (i9) drawLine(30, -); else drawLine(30, =); return 0;lesson13_03.c2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作void drawLine(int n, char ch) /*連續(xù)顯示連續(xù)顯示n個(gè)個(gè)ch字符字符*/ int i; putchar(n); /*換行換行*/ for (i=1; iy?x:y; return(z); int max(int x,int y);int main() int a,b,c
6、; scanf(%d,%d,&a,&b); c=max(a,b); printf(Max is %d,c); return 0;int max(int x, int y) int z; z=xy?x:y; return(z);形參形參實(shí)參實(shí)參例例1:函數(shù)執(zhí)行過(guò)程:函數(shù)執(zhí)行過(guò)程lesson13_01.c2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)調(diào)用函數(shù)調(diào)用2例例2:2:參數(shù)傳遞參數(shù)傳遞, ,分析程序結(jié)果分析程序結(jié)果#include int main() int x=7,y=11; printf(x=%d,y=%dn,x,y); printf
7、(swapped:n); swap(x,y); printf(x=%d,y=%dn,x,y);swap(int a,int b) int temp; temp=a; a=b; b=temp;711x:y:調(diào)用前:調(diào)用前:調(diào)用結(jié)束:調(diào)用結(jié)束:7 71111x:x:y:y:調(diào)用:調(diào)用:711a:b:711x:y:swap:711x:y:117a:b:temp實(shí)參和形參是單向值傳遞!實(shí)參和形參是單向值傳遞!一般地在函數(shù)體中修改形參的一般地在函數(shù)體中修改形參的值是不會(huì)影響實(shí)參的!值是不會(huì)影響實(shí)參的!lesson13_02.c2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作分
8、析如下程序的執(zhí)行結(jié)果分析如下程序的執(zhí)行結(jié)果#include int fun(int n,int s);int main() int sum=0; fun(5,sum); printf(sum=%d,sum);int fun(int n,int s) int i=0; for(i=1,s=0;i=n;i+) s+=i; return s;2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)應(yīng)用函數(shù)應(yīng)用3例例4:計(jì)算:計(jì)算要求精確度達(dá)到要求精確度達(dá)到10-6。 .! nx.! 3x! 2xx1en32x2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)
9、算機(jī)系制作3函數(shù)應(yīng)用函數(shù)應(yīng)用3 問(wèn)題分析問(wèn)題分析l在這個(gè)公式中,第在這個(gè)公式中,第i項(xiàng)的分子是項(xiàng)的分子是xi;分母是;分母是i!。!。為了便于計(jì)算每一項(xiàng)的數(shù)值,設(shè)計(jì)了兩個(gè)函數(shù)為了便于計(jì)算每一項(xiàng)的數(shù)值,設(shè)計(jì)了兩個(gè)函數(shù)power( )和和factorial( ) 分別用來(lái)完成計(jì)算分別用來(lái)完成計(jì)算xi和和i!的的任務(wù)。另外,為了更好地體現(xiàn)模塊化的設(shè)計(jì)思任務(wù)。另外,為了更好地體現(xiàn)模塊化的設(shè)計(jì)思路,再設(shè)計(jì)一個(gè)函數(shù)路,再設(shè)計(jì)一個(gè)函數(shù)e( ) 用于計(jì)算用于計(jì)算ex。 2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作 算法描述 開(kāi)開(kāi)始始 結(jié)結(jié)束束 1result 1i result
10、+tmpresult i+1i return result xi/i!tmp 精精度度不不夠夠 Y N 2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作#include long power(int x, int y);long factorial(int n);double e(int x);int main( ) int x; printf(nEnter x:); scanf(%d, &x); printf(ne%d=%f, x, e(x); return 0;long power(int x, int y) /* 計(jì)算計(jì)算xy */ long p =
11、1; int i; for (i=1; i=y; i+) p = p*x; return p;2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作long factorial(int n) /* 計(jì)算計(jì)算n! */ int i; long f = 1; for (i=2; i= 1E-6 ); /* 精度的檢查精度的檢查 */ return result;2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3課堂練習(xí)課堂練習(xí)4!nm * *!(n-m)2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)應(yīng)用函數(shù)應(yīng)用3
12、2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3函數(shù)應(yīng)用函數(shù)應(yīng)用3 問(wèn)題分析問(wèn)題分析l從問(wèn)題的求解要求可知,沒(méi)有必要保存輸入的所有文從問(wèn)題的求解要求可知,沒(méi)有必要保存輸入的所有文本行。只需保存已經(jīng)輸入各行中的最長(zhǎng)行,以及剛輸本行。只需保存已經(jīng)輸入各行中的最長(zhǎng)行,以及剛輸入的當(dāng)前行。入的當(dāng)前行。l設(shè)計(jì)一個(gè)專門用于計(jì)算最長(zhǎng)文本行的函數(shù)設(shè)計(jì)一個(gè)專門用于計(jì)算最長(zhǎng)文本行的函數(shù)void void readline(char maxline )readline(char maxline )。l其實(shí)現(xiàn)過(guò)程為:一邊輸入文本行保存于數(shù)組其實(shí)現(xiàn)過(guò)程為:一邊輸入文本行保存于數(shù)組linel
13、ine、一、一邊與當(dāng)前最長(zhǎng)的文本行長(zhǎng)度進(jìn)行比較。如果新輸入的邊與當(dāng)前最長(zhǎng)的文本行長(zhǎng)度進(jìn)行比較。如果新輸入的文本行更長(zhǎng),則更新記錄最長(zhǎng)文本行的信息,最后得文本行更長(zhǎng),則更新記錄最長(zhǎng)文本行的信息,最后得到的最長(zhǎng)文本行將通過(guò)參數(shù)帶出去。到的最長(zhǎng)文本行將通過(guò)參數(shù)帶出去。2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作 算法描述 開(kāi)開(kāi) 始始 結(jié)結(jié) 束束 0 maxlength 0 line0 非非 空空行行 Y N 新新 長(zhǎng)長(zhǎng)度度 maxlength 保保 存存新新 的的最最長(zhǎng)長(zhǎng)行行 輸輸 入入文文 本本行行l(wèi)ine 更更長(zhǎng)長(zhǎng) Y N 2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)
14、系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作#include #include void readline(char maxline );int main() char maxline80=; readline(maxline);/* 輸入并計(jì)算最長(zhǎng)行輸入并計(jì)算最長(zhǎng)行 */ printf(nThe longest line is:n); puts(maxline);/* 輸出最長(zhǎng)行輸出最長(zhǎng)行 */ return 0;lesson13_05.c2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作void readline(char maxline ) /* 輸入并計(jì)算最長(zhǎng)文本行輸
15、入并計(jì)算最長(zhǎng)文本行 */ char line80; int maxlength,n; maxlength=0; /*初始化初始化*/ line0=0; printf(nEnter text lines:n); do gets(line); /*輸入文本行輸入文本行*/ n = strlen(line); if (nstrlen(maxline) /*與記錄的最長(zhǎng)文本行進(jìn)行比較與記錄的最長(zhǎng)文本行進(jìn)行比較*/ maxlength = n; /*更新記錄最長(zhǎng)文本行的信息更新記錄最長(zhǎng)文本行的信息*/ strcpy(maxline, line); while (n0); return ;2022-3-7
16、電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3課堂練習(xí)課堂練習(xí)52022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3遞歸算法與遞歸函數(shù)遞歸算法與遞歸函數(shù)6語(yǔ)言允許函數(shù)語(yǔ)言允許函數(shù)1 1、嵌套調(diào)用,即在函數(shù)中可以調(diào)用、嵌套調(diào)用,即在函數(shù)中可以調(diào)用其它的函數(shù)。其它的函數(shù)。2 2、遞歸調(diào)用,即在、遞歸調(diào)用,即在。2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3遞歸算法與遞歸函數(shù)遞歸算法與遞歸函數(shù)6f( )調(diào)調(diào)f調(diào)調(diào)f2調(diào)調(diào)f1f1( )f2( )int f(int x) int y,z; z=f(y); . return(2*z
17、);int f1(int x) int y,z; z=f2(y); . return(2*z);int f2(int t) int a,c; c=f1(a); . return(3+c);2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3遞歸算法與遞歸函數(shù)遞歸算法與遞歸函數(shù)6的函數(shù)的函數(shù) n!=n * (n-1) * (n-2) * * 2*1 n!=n * (n-1) * (n-2) * * 2 * 1 n!=n * (n-1)!算算,必須算出,必須算出 計(jì)算出計(jì)算出 必須必須計(jì)算出計(jì)算出由此類推,直到推到由此類推,直到推到,返回后即可依次計(jì)算出返回后即可依次計(jì)算
18、出 2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3遞歸算法與遞歸函數(shù)遞歸算法與遞歸函數(shù)6當(dāng)求解一個(gè)問(wèn)題時(shí),如果求解過(guò)程又用到自當(dāng)求解一個(gè)問(wèn)題時(shí),如果求解過(guò)程又用到自己則可以使用遞歸求解己則可以使用遞歸求解)1()!1()1 ,0(1!nnnnnfloat fac(int n) float f; return f; if(n=0|n=1) f=1; else f=fac(n-1)*n; int main( ) float y; int n; printf(“輸入輸入:); scanf(%d,&n); y=fac(n); printf(%d! =%.0f,
19、n, y); return 0;lesson13_06.c2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3遞歸算法與遞歸函數(shù)遞歸算法與遞歸函數(shù)6main函數(shù)函數(shù)輸入輸入m 3y=fac(m)輸出輸出y 6調(diào)用調(diào)用facmn 3 因因 3!=1或或0 f=3*fac(3-1)返回返回f=6調(diào)用調(diào)用facmn 2返回返回f=2返回返回f=1 因因 2!=1或或0 f=2*fac(2-1)調(diào)用調(diào)用facmn 1因因1=1 f=1結(jié)束結(jié)束遞歸調(diào)用過(guò)程演示:遞歸調(diào)用過(guò)程演示:2022-3-7電氣與信息工程學(xué)院計(jì)算機(jī)系制作電氣與信息工程學(xué)院計(jì)算機(jī)系制作3課堂練習(xí)課堂練習(xí)7輸出下列數(shù)列輸出下列數(shù)列1 1 2 3 5 8 13的前的前20項(xiàng)項(xiàng)要求:要求:1、定義函數(shù)、定義函數(shù)fib(int n),函數(shù)的功能是返回該函數(shù)的功能是返回該數(shù)列中的第數(shù)列中的第n項(xiàng)項(xiàng)2、在主函數(shù)中循環(huán)逐次求每一項(xiàng)、在主函數(shù)中循環(huán)逐次求每一項(xiàng)3、提示:、提示:fib(n)=fib(n-1)+fib(n-2)2022-3-7電氣與信息工程學(xué)院計(jì)算
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 師德開(kāi)學(xué)第一講活動(dòng)方案
- 山東寒假義工活動(dòng)方案
- 小學(xué)自理大賽活動(dòng)方案
- 工地反詐騙活動(dòng)方案
- 展會(huì)準(zhǔn)客戶互動(dòng)活動(dòng)方案
- 山貨節(jié)活動(dòng)評(píng)選活動(dòng)方案
- 居家期間員工活動(dòng)方案
- 小班賀卡活動(dòng)方案
- 工會(huì)美食坊活動(dòng)方案
- 小學(xué)禮儀培訓(xùn)活動(dòng)方案
- 綜合管廊及道路實(shí)施性施工組織設(shè)計(jì)概述
- 中國(guó)民族鋼琴藝術(shù)鑒賞智慧樹(shù)知到期末考試答案章節(jié)答案2024年西安交通大學(xué)
- 新編旅游職業(yè)道德 課件 譚為躍 第6、7章 旅游交通從業(yè)者道德素養(yǎng)、旅游購(gòu)物店從業(yè)者道德素養(yǎng)
- 2024屆新疆維吾爾阿克蘇地區(qū)小升初語(yǔ)文檢測(cè)卷含答案
- 部編版《道德與法治》五年級(jí)下冊(cè)第11課《屹立在世界的東方》教學(xué)設(shè)計(jì)
- 國(guó)際商法概述
- 2023年新疆維吾爾自治區(qū)石河子市小升初數(shù)學(xué)試卷(內(nèi)含答案解析)
- 湖北煙草公司招聘考試真題
- 1000道100以內(nèi)進(jìn)位退位加減法題
- 中國(guó)銀行交易流水明細(xì)清單
評(píng)論
0/150
提交評(píng)論