版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2024/1/25電氣與信息工程學院計算機系制造Lesson13程序的組織構(gòu)造2024/1/25電氣與信息工程學院計算機系制造學習目的:31學會運用構(gòu)造化程序設計方法編寫程序2024/1/25電氣與信息工程學院計算機系制造3函數(shù)調(diào)用2函數(shù)編寫原那么1、將比較復雜的問題分解成小問題〔函數(shù)〕,以簡化程序設計2、將經(jīng)常用的、公共的功能定義成函數(shù),以在程序中重用2024/1/25電氣與信息工程學院計算機系制造3函數(shù)調(diào)用2練習1:從鍵盤輸入一個數(shù)n,輸出他的一切質(zhì)因子,例如輸入30輸出235要求:1、定義一個函數(shù)isPrime(intx)。函數(shù)的功能:假設x是質(zhì)數(shù),前往1,否那么前往02、在主函數(shù)中,從2循環(huán)到n/2,將是n的因子,并且是質(zhì)數(shù)的輸出2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3例3:輸出乘法口訣表。2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3例3:輸出乘法口訣表。分析:它是一個9行9列的二維表格,加上一個行標題和一個列標題,顯示出來應該是10行10列。2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3問題分析行與行之間采用假設干個“=〞或“-〞字符表示表格之間的線段,為此,可以定義一個函數(shù),專門用來延續(xù)地顯示假設干個字符,以防止在每次需求顯示線段的時候,都反復地書寫相應的語句序列。(重用)2024/1/25電氣與信息工程學院計算機系制造#include<stdio.h>voiddrawLine(intn,charch);/*延續(xù)顯示n個ch字符*/intmain(){inti,j;printf("\n9.9table\n"); /*顯示表名*/drawLine(30,'='); /*顯示每列的標題*/printf("\n123456789");drawLine(30,'=');for(i=1;i<=9;i++){ /*顯示每行的內(nèi)容*/printf("\n%3d",i);for(j=1;j<=9;j++)printf("%3d",i*j);if(i<9)drawLine(30,'-');else drawLine(30,'=');}return0;}lesson13_03.c2024/1/25電氣與信息工程學院計算機系制造voiddrawLine(intn,charch)/*延續(xù)顯示n個ch字符*/{inti;putchar('\n');/*換行*/for(i=1;i<=n;i++)putchar(ch);/*延續(xù)顯示n個字符ch*/return;}2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3從鍵盤輸入圖形的行數(shù),按照如下規(guī)那么輸出圖形,例如行數(shù)等于5的圖形如下:*************************課堂練習2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3提示:1、定義函數(shù)printSpace(intn),輸出n個空格2、定義函數(shù)printStar(intn),輸出n個*號3、在主函數(shù)根據(jù)圖形的行數(shù)循環(huán),調(diào)用前面的函數(shù)輸出圖形的每一行2024/1/25電氣與信息工程學院計算機系制造3函數(shù)調(diào)用2函數(shù)調(diào)用的普通方式:函數(shù)名(實參列表);方式參數(shù)(形參):定義函數(shù)時寫在函數(shù)名后括號內(nèi)的變量,形參前必需有數(shù)據(jù)類型intfun(intn)實踐參數(shù)〔實參〕:調(diào)用函數(shù)時寫在函數(shù)名后括號內(nèi)的變量,實參僅寫變量名sum+=fun(i)2024/1/25電氣與信息工程學院計算機系制造3函數(shù)調(diào)用2參數(shù)的傳送當函數(shù)沒有執(zhí)行時,參數(shù)此時并不存在,只是用來闡明在調(diào)用這個函數(shù)時需求在這個位置向函數(shù)提供的數(shù)據(jù)類型。在調(diào)用函數(shù)之后,參數(shù)傳送需求閱歷兩個根本步驟:首先,根據(jù)方式參數(shù)的聲明格式,為每一個方式參數(shù)分配存儲空間;然后再將真實參數(shù)的值賦給對應的方式參數(shù)。2024/1/25電氣與信息工程學院計算機系制造3函數(shù)調(diào)用2c=max(a,b);max(intx,inty){intz;z=x>y?x:y;return(z);}intmax(intx,inty);intmain(){inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("Maxis%d",c);return0;}intmax(intx,inty){intz;z=x>y?x:y;return(z);}形參實參例1:函數(shù)執(zhí)行過程lesson13_01.c2024/1/25電氣與信息工程學院計算機系制造3函數(shù)調(diào)用2例2:參數(shù)傳送,分析程序結(jié)果#include<stdio.h>intmain(){intx=7,y=11;printf("x=%d,y=%d\n",x,y);printf("swapped:\n");swap(x,y);printf("x=%d,y=%d\n",x,y);}swap(inta,intb){inttemp;temp=a;a=b;b=temp;}711x:y:調(diào)用前:調(diào)用終了:711x:y:調(diào)用:711a:b:711x:y:swap:711x:y:117a:b:temp實參和形參是單向值傳送!普通地在函數(shù)體中修正形參的值是不會影響實參的!lesson13_02.c2024/1/25電氣與信息工程學院計算機系制造分析如下程序的執(zhí)行結(jié)果#include<stdio.h>intfun(intn,ints);intmain(){intsum=0;fun(5,sum);printf("sum=%d",sum);}intfun(intn,ints){inti=0;for(i=1,s=0;i<=n;i++)s+=i;returns;}2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3例4:計算
要求準確度到達10-6。
2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3問題分析在這個公式中,第i項的分子是xi;分母是i!。為了便于計算每一項的數(shù)值,設計了兩個函數(shù)power()和factorial()分別用來完成計算xi和i!的義務。另外,為了更好地表達模塊化的設計思緒,再設計一個函數(shù)e()用于計算ex。2024/1/25電氣與信息工程學院計算機系制造算法描畫2024/1/25電氣與信息工程學院計算機系制造#include<stdio.h>longpower(intx,inty);longfactorial(intn);doublee(intx);intmain(){intx;printf("\nEnterx:");scanf("%d",&x);printf("\ne^%d=%f",x,e(x));return0;}longpower(intx,inty) /*計算xy*/{longp=1;inti;for(i=1;i<=y;i++)p=p*x;returnp;}2024/1/25電氣與信息工程學院計算機系制造longfactorial(intn) /*計算n!*/{inti;longf=1;for(i=2;i<=n;i++)f=f*i;returnf;}doublee(intx) /*計算ex*/{doubleresult=1.0,tmp;inti=1;do{tmp=power(x,i)*1.0/factorial(i);i++;result+=tmp;}while(tmp>=1E-6); /*精度的檢查*/returnresult;}2024/1/25電氣與信息工程學院計算機系制造3課堂練習4!nm*!!(n-m)計算下式,n和m從鍵盤輸入2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3例5:從鍵盤輸入一組文本行,求出最長行并且輸出。2024/1/25電氣與信息工程學院計算機系制造3函數(shù)運用3問題分析從問題的求解要求可知,沒有必要保管輸入的一切文本行。只需保管曾經(jīng)輸入各行中的最長行,以及剛輸入的當前行。設計一個專門用于計算最長文本行的函數(shù)voidreadline(charmaxline[])。其實現(xiàn)過程為:一邊輸入文本行保管于數(shù)組line、一邊與當前最長的文本行長度進展比較。假設新輸入的文本行更長,那么更新記錄最長文本行的信息,最后得到的最長文本行將經(jīng)過參數(shù)帶出去。2024/1/25電氣與信息工程學院計算機系制造算法描畫2024/1/25電氣與信息工程學院計算機系制造#include<stdio.h>#include<string.h>voidreadline(charmaxline[]);intmain(){charmaxline[80]="";readline(maxline); /*輸入并計算最長行*/printf("\nThelongestlineis:\n");puts(maxline); /*輸出最長行*/return0;}lesson13_05.c2024/1/25電氣與信息工程學院計算機系制造voidreadline(charmaxline[]) /*輸入并計算最長文本行*/{charline[80];intmaxlength,n;maxlength=0;/*初始化*/line[0]='\0';printf("\nEntertextlines:\n");do{gets(line);/*輸入文本行*/n=strlen(line);if(n>strlen(maxline)){/*與記錄的最長文本行進展比較*/maxlength=n;/*更新記錄最長文本行的信息*/strcpy(maxline,line);}}while(n>0);return;}2024/1/25電氣與信息工程學院計算機系制造編寫程序,將從鍵盤輸入的字符串兩頭的空格去掉后輸出。例如輸入的字符串是〞ABC〞,輸出〞ABC〞要求:1、定義函數(shù)trim(chars[]),函數(shù)的功能是將字符串兩頭的空格去掉2、在主函數(shù)中調(diào)用trim函數(shù)將從鍵盤輸入的字符串兩頭的空格去掉后輸出3課堂練習52024/1/25電氣與信息工程學院計算機系制造3遞歸算法與遞歸函數(shù)6C言語允許函數(shù)1、嵌套調(diào)用,即在函數(shù)中可以調(diào)用其它的函數(shù)。2、遞歸調(diào)用,即在函數(shù)內(nèi)部直接地調(diào)用本人。2024/1/25電氣與信息工程學院計算機系制造3遞歸算法與遞歸函數(shù)6f()調(diào)f調(diào)f2調(diào)f1f1()f2()intf(intx){inty,z;……z=f(y);…….return(2*z);}intf1(intx){inty,z;……z=f2(y);…….return(2*z);}intf2(intt){inta,c;……c=f1(a);…….return(3+c);}2024/1/25電氣與信息工程學院計算機系制造3遞歸算法與遞歸函數(shù)6例6:計算階乘的函數(shù)n!=n*(n-1)*(n-2)*…*2*1n!=n*(n-1)*(n-2)*…*2*1n!=n*(n-1)!1!=1遞歸關(guān)系終止條件算n!,必需算出(n-1)!;計算出(n-1)!,必需計算出(n-2)!;…;由此類推,直到推到1!=1,前往后即可依次計算出2!,3!,…,(n-1)!,n!。2024/1/25電氣與信息工程學院計算機系制造3遞歸算法與遞歸函數(shù)6當求解一個問題時,假設求解過程又用到本人那么可以運用遞歸求解floatfac(intn){floatf;
returnf;}if(n==0||n==1)f=1;elsef=fac(n-1)*n;intmain(){floaty;intn;printf(“輸入:");scanf("%d",&n);y=fac(n);printf("%d!=%.0f",n,y);return0;}lesson13_06.c2024/1/25電氣與信息工程學院計算機系制造3遞歸算法與遞歸函數(shù)6main函數(shù)輸入m3y=fac(m)輸出y
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京語言大學《數(shù)字邏輯A》2023-2024學年第一學期期末試卷
- 貼牌生產(chǎn)合同
- 2025年版學校安全欄桿安裝與維護服務合同范本3篇
- 2025年二零二五年度二手房按揭買賣合同創(chuàng)新版3篇
- 2022“同上一堂思政課”觀后感(10篇)
- 北京印刷學院《古典園林設計》2023-2024學年第一學期期末試卷
- 2024年中國人造革皮箱市場調(diào)查研究報告
- 高三勵志演講稿15篇
- 監(jiān)控設備安裝施工合同
- 2025版石材開采與建筑工程施工同步合同3篇
- 酒店英語會話(第六版)教案全套 李永生 unit 1 Room Reservations -Unit 15 Handling Problems and Complaints
- 創(chuàng)傷失血性休克中國急診專家共識2023解讀課件
- 大學英語智慧樹知到期末考試答案章節(jié)答案2024年海南經(jīng)貿(mào)職業(yè)技術(shù)學院
- 執(zhí)行力神經(jīng)機制與腦成像研究
- 冷鏈物流高質(zhì)量發(fā)展“十四五”規(guī)劃
- 2024年新疆烏魯木齊市選調(diào)生考試(公共基礎知識)綜合能力題庫完美版
- 2024年中荊投資控股集團有限公司招聘筆試沖刺題(帶答案解析)
- DZ∕T 0207-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 硅質(zhì)原料類(正式版)
- 修理廠合伙人合同協(xié)議書模板
- 大學生醫(yī)療創(chuàng)新創(chuàng)業(yè)
- 危險化學品無倉儲經(jīng)營單位生產(chǎn)安全事故應急救援預案(新導則版)
評論
0/150
提交評論