第八講 程序設計.ppt_第1頁
第八講 程序設計.ppt_第2頁
第八講 程序設計.ppt_第3頁
第八講 程序設計.ppt_第4頁
第八講 程序設計.ppt_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、習題課1,第 八 講,程序設計,加油,例1 編寫程序計算表達式的值:,#include”iostream.h” void main( ), float x,y;,cin“nInput x:”;,cinx;,if(x0),else if(x10),else,cout“x=“x“y=”y;,x0,真,y=x,假,x10,真,y=x-1,假,y=x+1,y=x;,y=x-1;,y=x+1;,輸入x值,輸出y值,例2 編寫程序計算表達式的值:,x0,真,y=x,假,x-5,cinx;,If(x-5,else,If(x10),y=x-1;,else,y=x+1;,cout“x=“x“y=”y;,x10,

2、真,y=x-1,y=x+1,假,輸入x值,例3、下面的程序要計算函數(shù)的值,判斷哪個程序正確.,if(x=0),if(x0) y=1;,else y=0;,else y=-1;,x,1,0,0,-9,-1,在if塊中嵌套具有else塊的if 語句,不會發(fā)生語法錯誤,y=-1;,if(x!=0),if(x0) y=1;,else y=0;,x,1,0,-1,-9,0,y=-1;,if(x!=0),if(x0) y=1;,else y=0;,x,1,0,0,-9,-1,在if塊中嵌套沒有else塊的if 語句,內(nèi)嵌的 if語句要用、括起來.,y,40,y,40,y,40,例4 輸入任意n個數(shù),計算其

3、中奇數(shù)和及偶數(shù)和,并統(tǒng)計奇數(shù)個數(shù)。, scanf(“%d”,scanf(”%d”,n);,for(i=1;i=n;i+), 如何求和、統(tǒng)計個數(shù)?,i=1,jh=0,oh=0,gs=0,輸入n,x%2=0,輸入x,真,oh+=x,假,jh+=x,gs+,當i=n時,輸出, 如何得到n個數(shù)?,#include”iostream.h” void main( ), int i=1,jh=0,oh=0,gs=0,n,x;,printf(“Please input n:”);,cinn;,for(i=1;i=n;i+),cinx;,if(x%2=0),oh+=x;,else,jh+=x; gs+;,cou

4、t“The result:”);,cout“ oh=%d”,oh);,cout“ jh=%d,gs=%d”,jh,gs);,例5、究竟是誰?,111111=111111,111111=11111 1,請問這多余的第三者 究竟是誰?,分析: 取值范圍 1,2,9,for k=1 to 9,等號兩邊相等,T,N,打印k值,for(k=1;k=9;k+),if(111111=111*11*k1),#include”iostream.h” void main( ),coutk;, int k;,(k*10+1),a=b,b=a+b,例6、有一分數(shù)序列:,求前20項之和。,分析:后一項的分母是前一項的分

5、子,而后一項 的分子是前一項的分母、分子之和。,a分母,b分子,t=b/a,s和 s=s+t,c=a+b,a=b, b=c,a=1 b=2 s=0,for(k=1;k=20;k+,t=b/a ;s=s+t c=a+b;a=b;b=c,輸出s的值,流程圖:,#include”iostream.h” void main( ) int k; float s=0,a=1,b=2,t,c; for(k=1;k=20;k+) t=b/a; s=s+t; c=a+b;a=b;b=c; cout“s=”s; ,運行,例7、百錢買百雞問題,每只公雞值5元,母雞值3元,小雞三只值1元。用100元錢買100只雞,問

6、公雞、母雞、小雞各買多少只?,設:X,Y,Z分別是公雞、母雞和小雞的只數(shù)。,由題意:X+Y+Z=100 5X+3Y+Z/3=100,for(y=0;y33;y+), z=100-x-y;,if(5*x+y*3+z/3=100),printf(“ %d %d %dn,x,y,z);,printf(“COOK HEN CHICKn”);,for(x=0;x19;x+),COOK HEN CHICK,0 25 75,3 20 77,4 18 78,7 13 80,8 11 81,11 6 85,12 4 84,運行,運行,算ai,算a,算b,通項 ai=,i!,(1)i+1,a,f,b,=,i=1,

7、2,,n,算f,s+=ai,n次,for i=1 to n,ai=f*b/a,a*=i,b=1,輸入x,n,輸出s,main( ), int i,m,n;,b=1,a=1,f= - 1,s=1;,for(i=1;i=n;i+), m= - m;,b*=x;,a*=i;,ai=f*b/a;,s+=ai; ,printf(“s=%.4f”,s);,f= - f,b*=x,a=1,f= -1,s=1,float x,p,q,s,ai;,scanf(“%f,%d”,xi,例9:輸出a printf(“a b c funn”); printf(“=n”); for(a=0;a=1;a+) for(b=0

8、;b=1;b+) for(c=0;c=1;c+) fun=a ,運行,例13 找出所有的水仙花數(shù)。,若m是水仙花數(shù),則:,b:m的百位數(shù),對于三位數(shù)有:,s:m的十位數(shù),g:m的個位數(shù),m=b3+s3+g3,如何分解數(shù)?,設 m =1 2 3,b=,m/100,s=,m/10-b*10,g=,m%10,#include”stdio.h” void main( ),int m,b,s,g;,for(m=100;m=999;m+), b=m/100;,s=m/10-b*10;,g=m%10;,if(b*b*b+s*s*s+g*g*g=m),printf(“%6d”,m); ,例14 從任意n個數(shù)中

9、找出最大的數(shù)。,1.假設第一個數(shù)最大max,2.第二個數(shù)與max比較,3.第三個數(shù)與max比較,n.第n個數(shù)與max比較,讀入a,max=a,讀入a,amax,真,max=a,for i=2 to n,讀入n,輸出,假,大數(shù)max,大數(shù) max,大數(shù) max,讀數(shù),比較,n-1次,#include”stdio.h” void main( ), int a,max,i,n;,max=a;,for(i=2;i=n;i+), scanf(“%d”,max=amax?a:max; ,printf(“max=%d”,max);,printf(“nInput n,a:”);,scanf(“%d,%d”,找

10、最大公約數(shù)可用輾轉相除的算法:,首先把兩個數(shù)中大的那個數(shù)作為被除數(shù),兩數(shù)相除得一余數(shù)。將除數(shù)作為被除數(shù),余數(shù)作為除數(shù)再作除法,得到一個新的余數(shù)。不斷重復這一過程直到余數(shù)為零,這時的除數(shù)就是兩個數(shù)的最大公約數(shù)。,算法:1.從f(x)=0,導出x=g(x)形式 2. 給x初值x0 3.代入g(x),得x1=g(x0) 4.令x0=x1,轉去3直到|xn+1-xn|10-6 得到x的近似根,若函數(shù)不收斂,將出現(xiàn)無休止迭代,所以應規(guī)定最高循環(huán)次數(shù).20次,解一元方程,例10.迭代法求解 x3+2x2+2x+1=0,#includemath.h main() int i; float x,x1; sca

11、nf(%f, ,運行,程序:,例11.牛頓迭代法求解f(x)=0,F(x),x1,x2,x3,f(x1)=f(x1)/(x1-x2) x2=x1-f(x1)/f(x1),4. 反復,直到|xn+1-xn|10-6 得到x的近似根,x,1.選一個接近x的近似根x1,2.求f(x1),3.過f(x1)作f(x)的切線,交x軸于x2,牛頓迭代公式,例12.二分法求解f(x)=0,F(x),x2,x1,x,x,1.任選兩點x1,x2,2.判斷(x1,x2)區(qū)間內(nèi)有實根,f(x1)和f(x2)反號,3.取(x1,x2)的中點x,判斷實根 在(x1,x)區(qū)間還是在(x,x2)區(qū) 間。然后舍去一半?yún)^(qū)間。 如

12、此重復直到|x1-x2|10-5,怎樣舍去一半的區(qū)間? 如何判斷兩個值的符號?,求f(x)=x3-6x-1=0 在x=2附近的一個實根。,設x1=0,x2=5,x,#includemath.h main() float x1,x2,x0,f1,f2,f0; do scanf(%f,%f,do x0=(x1+x2)/2; f0=x0*x0*x0-6*x0-1; if(f1*f01e-6); printf(%.2f,x0); ,程序:,運行,小測驗,小測驗一、改錯(在錯處劃橫線,并改正),1.程序: void main( ); int a,float x cina; x=a, coutx,a;,2

13、.已知,2.程序: #include”iostream.h” void main() int x; if(x 0) y =(sinx+cosx)/2 y=(sinx-cosx)/2 couty; ,程序: main( ) int k;float sum; for(k=0;k=20;k+) sum=sum+1/k; printf(“%.2f”,sum=sum);,3.計算 的前20項之和。,程序:#include”stdio.h” void main( ) int k,f=-1;float sum=0; for(k=1;k=20;k+) f=-f;sum=sum+f*1.0/k; printf(

14、“sum= %.2f”, sum);,二、寫出下列程序運行結果:,1.程序: main() int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+=1; printf(“%dn”,c); ,2.程序(鍵盤輸入3和4) main( ) int a,b,s; scanf(“%d%d”, ,3.程序: main( ) int k,j,s; for(k=2;k8;k+,k+) s=1; for(j=k;j6;j+) s+=j; printf(“%d”,s);,4.程序: main( ) int k,j,s=0; for(k=1;k=15;k+=4) for(j=3;j=19;j+=4) printf(“%dn”,s); for(j=3;j6;j+) printf(j%2)?(“*%d”):(”#%dn”),j);,三、填空:,1.下面的程序所表示的數(shù)學函數(shù)關系是: 。 程序: main ( ) int x,y;,scanf(“%d”, ,2.下列程序的功能是:從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論