上机说明 TSINGHUA UNIVERSITY PRESS 穷举:列举所有可能情况,逐个测试,如求完数 递推:从已知出发,利用递推公式向未知靠拢,如 Fibnacci数列 for(n=1;n<=1000;n++) sum=0 注意(循环) fl=1;f2=1 for(i=l; i<n; i++ 变量初值, 输出f1f2 n%i=0 语句位置 边界分析 for(i=1;i<=19;i++) sum+ fl=fl+n2 sumEn 数据类型 22=f2+f1 输出f1f2 拾出m for(i=l; i<n; i+ mol 出i eC语言程序设计(第三版)htt: ccf. tsinghua. edu.cn
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 1 上机说明 穷举:列举所有可能情况,逐个测试,如求完数 递推:从已知出发,利用递推公式向未知靠拢,如Fibnacci数列 for(i=1;i<=19;i++) f1=f1+f2 f2=f2+f1 输出f1 f2 输出f1 f2 注意 f1=1;f2=1 (循环) 变量初值, 语句位置, 边界分析, 数据类型 for(n=1;n<=1000;n++) for(i=1;i<n;i++) n%i==0 Y N sum+=i sum=0 sum==n Y N 输出m for(i=1;i<n;i++) m%i=0 Y N 出i
综合实验:子函数一迭代 K PRESS 法1:输入x1,计算x2,进行迭代,直到相邻两项很接近 法2:输入x1,计算x2,当相邻两项不接近时进行迭代 为x1赋初始迭代值 为x1赋初始迭代值 X2=f(x1) x2=f(X1 XI=x2 while( fabs(x1-x2 >1e-6) x2=f(x2) x1=f(x2) while(fabs(x1-x2)>1e-6 x2=f(XI 输出x2 输出x2 思路要清晰,注意(循环)变量初值,注意迭代步长 eC语言程序设计(第三版)htt: ccf. tsinghua. edu.cn2
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 2 综合实验:子函数--迭代 法1:输入x1,计算x2,进行迭代,直到相邻两项很接近 while(fabs(x1-x2)>1e-6) x1=f(x2) x2=f(x1) x2=f(x1) 为x1赋初始迭代值 输出x2 思路要清晰,注意(循环)变量初值,注意迭代步长 while(fabs(x1-x2)>1e-6) x1=x2 x2=f(x2) x2=f(x1) 为x1赋初始迭代值 输出x2 法2:输入x1,计算x2,当相邻两项不接近时进行迭代
二分法说明 TSINGHUA UNIVERSITY PRESS 方法1:输入两边界点,直到函数值异号。“计算中点与中点 值,用中点替换函数值与其同号的端点”,直到中点值接近零 方法2:输入两边界点,当同号时重新输入.当中点值不接近零时 “用中点替换函数值与其同号的端点,再计管中点与中点值” 输入x1与x2 输入x1与x2,计算y1,2 当yy2>0 yl=f(x1)’y2=f(x2)yl 输入x1与x2 直到yl*y2<0 I y1=f(x1),y2=f(x2) x0=(x1+x2)/2,y0=f(x0) x0=(x1+x2)/2,y0=f(x0) 1xy0>0 while (fabs(yo>le-6) yoyo>0 x1=x0,y1=v0x2=x0,y2=y0 while(fabs(yo)>le-6) x1=x0, y1=y0 x2=X0, y2=y0 输出x0 x0=(x1+x2)/2,y0=f(x0 拾0 注意(循环)变量初值与循环类型的选择 eC语言程序设计(第三版)htt: ccf. tsinghua. edu.cn3
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 3 二分法说明 方法1:输入两边界点,直到函数值异号。“计算中点与中点 值,用中点替换函数值与其同号的端点”,直到中点值接近零 方法2:输入两边界点,当同号时重新输入.当中点值不接近零时, “用中点替换函数值与其同号的端点,再计算中点与中点值” 直到y1*y2<0 while(fabs(y0)>1e-6) y1=f(x1),y2=f(x2) y1 输出x0 y1*y0>0 Y N x1=x0,y1=y0 x2=x0,y2=y0 x0=(x1+x2)/2,y0=f(x0) 输入x1与x2 while(fabs(y0)>1e-6) x0=(x1+x2)/2,y0=f(x0) 输出x0 y1*y0>0 Y N x1=x0,y1=y0 x2=x0,y2=y0 x0=(x1+x2)/2,y0=f(x0) 当y1*y2>0 y1=f(x1),y2=f(x2) 输入x1与x2 输入x1与x2,计算y1,y2 注意(循环)变量初值与循环类型的选择
清华大学出版社 TSINGHUA UNIVERSITY PRESS 第七章
第七章
清华大学出版社 TSINGHUA UNIVERSITY PRESS ●引言 实际问题中常需处理同一类型的大批数据,如1000 个学生的成绩。每个成绩用一个变量存储则需定义的变 量过多,使用不方便 C语言引入数组,借助数组可以用名相同、下标不同 的变量表示同类型的大批数据,如S[们代表1号学生的 成绩,S[2]代表2号学生的成绩 用一组具有相同名字、不同下标的变量表示具有同 种类型的一组数据,这就是数组,如ints1000] 每个人3门课,则用s[T][1],s[1][2],s[1][3]s[2]1] ,根据下标个数分一维数组与多维数组
⚫引言 实际问题中常需处理同一类型的大批数据,如1000 个学生的成绩。每个成绩用一个变量存储则需定义的变 量过多,使用不方便 C语言引入数组,借助数组可以用名相同、下标不同 的变量表示同类型的大批数据,如s[1]代表1号学生的 成绩,s[2]代表2号学生的成绩 用一组具有相同名字、不同下标的变量表示具有同 种类型的一组数据,这就是数组,如int s[1000] 每个人3门课,则用s[1][1], s[1][2], s[1][3],s[2][1]… ,根据下标个数分一维数组与多维数组