文档详情

C语言教材第5章循环结构学习资料.ppt

发布:2025-05-10约1.14万字共36页下载文档
文本预览下载声明

迭代:用一个变量既描述旧状态又描述新状态,变量的新值是在其旧值的基础上推出来的,这种不断用变量的新值取代变量的旧值的过程,称为迭代。例如:在数学中,表示为xk=f(xk-1)在编程过程中,使用变量x,x=f(x)例子:用牛顿切线法(迭代法)解一元三次方程x3+2x2+10x-20=0在x1=1.2附近的根的近似值。要求精度为1e-6。设f(x)=x3+2x2+10x-20在xk处的切线方程为y=f(xk)+f’(xk)(x-xk),该切线方程与X轴的交点为令f(xk)+f’(xk)(x-xk)=0=xk+1=xk–f(xk)/f’(xk),这就是牛顿迭代公式。f(x)=x3+2x2+10x-20的导数为d=3x2+4x+10xk+1=xk–f(xk)/f’(xk),这就是牛顿迭代公式。f(x)=x3+2x2+10x-20f(x)的导数为d=3x2+4x+10doublex1=1.2,f,d;for(inti=1;i100000;i++){f=x1*x1*x1+2*x1*x1+10*x1-20;d=3*x1*x1+4*x1+10;x1=x1-f/d;}printf(“x=%f\n”,x1);xk+1=xk–f(xk)/f’(xk),这就是牛顿迭代公式。f(x)=x3+2x2+10x-20f(x)的导数为d=3x2+4x+10doublex1,x2=1.2,f,d;/*x1旧状态,x2新状态*/do{x1=x2;/*新状态变成旧状态*/f=x1*x1*x1+2*x1*x1+10*x1-20;d=3*x1*x1+4*x1+10;x2=x1-f/d;}while(fabs(x2-x1)1e-6);printf(“x=%f\n”,x2);计算新状态递推法:假设有序列x1,x2,…,xn,…,该序列后面的每一项都能按某一公式由前面的一项或连续几项推算出来关键点:进行递推的通项公式和初始条件。例子:输出斐波那契数列1,1,2,3,5,8,13,…的前30项。要求每行输出6项。f1=1(n=1),f2=1(n=2),fn=fn-1+fn-2(n=3)longf1=1,f2=1,f3;printf(“%10ld%10ld”,f1,f2);count=2;for(i=3;i=30;i++){f3=f1+f2;printf(“%10ld”,f3);count++;if(count%6==0)printf(“\n”);f1=f2;f2=f3;}必做:一(1,6,7,11),二(1~11,16~23,25,26)*第五章循环结构 循环结构用于描述一个语句被重复执行的过程。 被重复执行的语句称为循环体。 C语言用while、do-while和for三个语句表示循环结构while(条件表达式)语句do语句while(条件表达式);for(表达式1;表达式2;表达式3)语句一、while语句语法: while(表达式) 语句语义:当“表达式”的值不等于0时执行“语句”,然后再计算“表达式”的值执行过程:表达式(真)=语句=表达式(真)=语句=表达式(假)或表达式(假)此时:“(循环体)语句”执行0次。表达式语句真假while循环语句可以是空语句,例如:while((ch=getchar())!=‘\n’);第五章循环结构一、while语句例:求1~n之间所有整数之和。程序1:#includestdio.hvoidmain(){

显示全部
相似文档