04 循环结构程序设计(第4章)
循环结构习题参答

第4章循环结构程序设计_编程序练习题aP110–18题:编写程序,输入某门功课的若干同学的成绩,以-1作为终止的特殊成绩,计算平均成绩并输出。
程序如下(用while语句编写):#include <stdio.h>void main( ){ int i=0,cj;float s=0,vs;scanf(“%d”,&cj);while(cj!=-1){ i=i+1 ; s=s+cj; scanf(“%d”,&cj); }vs=s/i ;printf("vs=%f\n",vs);}输入数据:80↙78↙90↙66↙88↙-1↙输出结果:vs =80.400000bP110–5题:编写程序,输出九九乘法表。
1×1=1 1×2=2 1×3=3 1×4=4 1×5=5 1×6=6 1×7=7 1×8=8 1×9=9 2×1=2 2×2=4 2×3=6 2×4=8 2×5=10 2×6=12 2×7=14 2×8=16 2×9=18 …程序如下(二重循环for语句):#include <stdio.h>void main( ){ int i,j;for(i=1;i<=9;i++){ for(j=1;j<=9;j++)printf("%d*%d=%2d ",i,j,i*j);printf("\n");}}输出结果:见上面形式bP110–6题:编写程序,输入一组字符(以#结尾),对该组字符进行统计,统计字母、数字和其他字符的个数,输出统计结果。
程序如下(单循环while语句):#include <stdio.h>void main( ){ int an=0,sn=0,tn=0; char ch;while((ch=getchar())!=’#’)if(ch>=’a’ && ch<=’z’ || ch>=’A’ && ch<=’Z’)an++;else if(ch>=’0’ && ch<=’9’)sn++;elsetn++;printf(“字母个数=%d\n ”,an);printf(“数字个数=%d\n ”,sn);printf(“其他字符个数=%d\n ”,tn);}输入数据:sd45&*abc23K+-D8wEv$s#↙输出结果:字母个数=11数字个数=5其他字符个数=5aP111–8题(修改):求 的值并输出。
Python程序设计 第4章 循环结构程序设计(第7次课)2

sum += score[i]
#循环体——对列表元素求和
aver = sum / 8.0 #循环之后,求平均值 print '\naver = ', aver
计算机编程导论
Copyright © SWFU-CISD, 2012. All rights reserved.
Copyright © SWFU-CISD, 2012. All rights reserved. 1-11
为 i 赋初值 1 False
判断 i <= 100? True
判断 i 是否能被 7 整除但不能被 5 整 除 ?
False
True 输出 i
i 自增 1
结束 图 4-10 整除问题的框图
计算机编程导论
1 1 2 1 2 3 1 2 3 4 1 2 n 1 2 3 3 5 3 5 7 3 5 7 9 3 5 (2n 1)
Copyright © SWFU-CISD, 2012. All rights reserved.
1-10
Copyright © SWFU-CISD, 2012. All rights reserved.
计算机编程导论
【例4-8】求1 ~ 100之间能被7整除,但不能同 时被5整除的所有整数 。
开始
【分析】 (1)本题需要对1 ~ 100 范围内的所有数一一进 行判断。 (2)本题的循环次数确 定是100次。 (3)在每次循环过程中 需要用 if 语句进行条件 判断。因此本题是循环 嵌套选择的结构。
1-19
利用for语句实现双层循环嵌套
循环的嵌套是指在一个循环中又包含另外一个 完整的循环,即循环体中又包含循环语句。 while循环和for循环可以相互嵌套。 循环嵌套的执行过程是:一次外循环对应着完 整的一轮内循环。
004第4章结构化程序设计

4.3.1 条件语句
if (InputScore >= 70) { if (InputScore >= 80) { if (InputScore >= 90) { OutputScore = "优秀"; //优秀 } else { OutputScore = "良好"; //良好 } } else { OutputScore = "中等"; //中等 } }
if (Score >= 60) { Console.WriteLine("该成 绩合格。"); } else { Console.WriteLine("该成 绩不合格。"); } }
}
4.3.1 条件语句
如果程序的逻辑判定关系比较复杂,可以用if…else嵌套语句 形式如下: if(表达式1) if(表达式2) if(表达式3) ... 语句1; else 语句2; else 语句3; else 语句4;
}
4.3.1 条件语句
2. if…else语句 if…else语句是一种更为常用的选择语句。if…else语 句的语法如下: if(表达式) { 语句块A; }
else
{ 语句块B; }
【例4-3】根据输入的学生
成绩Score的值,显示 其是否及格。
using System; class Score { static void Main() { Console.WriteLine("请您 输入学生成绩:"); int Score = int.Parse(Console.ReadLi ne());//转换为整数
【例4-4】假设考查课的成绩按优秀、良好、中等、及格和不及
C语言程序设计课件 第4章 循环结构.ppt

while语句
语法形式:
while (表达0(式假)) 表达式?循环体;
非0(真) 循环体
后续语句
11
执行过程:
step1:求解表达式,若 为0(假),则退出循 环执行后续语句。若 为非0(真),则执行 循环体。
step2: 转回step1继续 判断。
while语句应用实例
【例4.3】从键盘上读入一个非0的整数,统计该数的
语句功能
{count++; number=number/10;
?
}
printf ("It contains %d digits.\n",count);
}
12
while语句应用实例
【例4.4】计算表达式a+aa+aaa+…+aaa…a,其中a与x的值从 键盘上输入。
int a,x;
long sum=0,n=1,tn;
scanf("%d,%d", &a,&x);
tn=a; while(n<=x) {sum+=tn; tn=tn*10+a; n++;
循环次数 第1次 第2次 第3次 第4次
循环条件 1<=4为真 2<=4为真 3<=4为真 4<=4为真
}
第5次
5<=4为假
sum值
tn值
n值
0+2
2*10+2
2
2+22
C语言程序设计
第4章 循环结构
本章主要内容
1. 循环结构设计理念 2. for循环语句 3. while循环语句 4. do…while循环语句 5. 循环嵌套 6. 流程控制语句
C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构

第4章循环结构【练习 4-1】在例 4-1 程序中,如果对 item 赋初值 0,运行结果是什么?为什么?如果将精度改为 10-3,运行结果有变化吗?为什么?解答:如果对 item 赋初值 0,则程序运行结果是 pi=0,因为 item 为 0 时不满足 while 循环的执行条件,即不执行循环,故 pi 值为 0。
如果将精度改为10-3,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度变大使得 while 循环次数减少,必然影响到π的值。
【练习 4-2】运行例 4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是 -1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。
如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则 while 循环条件不成立,不执行循环体。
【练习 4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数 eps,计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps(保留6位小数)。
试编写相应程序。
解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习 4-4】如果将例 4-3 程序中的 do-while 语句改为下列 while 语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10;count ++;}解答:会有影响,因为当输入数据 number 为 0 时,上述 while 循环将不执行,count 值仍为 0,故输出为 0,不符合题目要求。
第四章 结构化程序设计的三种结构

第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。
printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。
格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。
(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。
转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。
格式字符串中的普通字符,原样输出。
例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。
2.输出项表输出项表是可选的。
如果要输出的数据不止1个,相邻2个之间用逗号分开。
下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。
第4章程序控制结构及循环结构

int n=0 n
y n++
#include <stdio.h> main() { int n=0; printf(“input a string:”); while (getchar( )!='\n') n++; printf("number of charaters=%d\n",n); }
【例4.28】打印不超过200的圆面积。 #include <stdio.h> 运行结果: main() r=1 area=3.141593 {int r; r=2 area=12.566372 float area; „„ r=7 area=153.938065 for(r=1;r<=10;r++) now r=8 {area=3.141593*r*r; if(area>200.0) break; printf(“r=%-3d area=%f\n",r,area); } printf(“now r=%d\n”,r); }
第四章
程序控制结构及结构化程序设计
§4.6 循环结构
循环结构:
重复执行某段程序,直到 某个条件不成立为止的一 种程序结构。
表达式
n
y
语句
§4.6.1 while语句 while语句的一般形式: while(表达式) 语句;
【例】计算sum=1+2+3+…..+100之和。 初始化部分:int sum=0 ,i=1; 循环部分: sum=sum+1; sum=sum+2; sum=sum+i; 工作部分 sum=sum+3; i++; 修改部分 …… sum=sum+100; i<=100
循环程序设计

编号:GXJG/JX-JL-12(08) 保存期限:三年教案审批表课题名称:4.1 while循环4.2 do...while循环教学目标:(1)知识目标:掌握while语句的格式及使用,掌握do…while语句的格式及使用;(2)能力目标:熟练使用while语句;(3)情感目标:培养学生的逻辑思维,提高学生分析问题解决问题的能力。
教学分析与准备:1.教学重点while语句的功能及运行过程,do…while语句的运行过程。
2.教学难点while语句的运行过程。
3.教学策略采用启发式教学方法,逐步引导学生对while,do...while语句的认识,结合具体实例由浅入深,加强学生对while,do...while语句认识。
4.课时安排2课时(45分钟×2)5.教学环境多媒体教室学习过程:在许多问题中需要用到循环控制,例如要求100个数之和,计算全班各个学生的成绩及其平均值等。
循环结构是结构化程序设计的三种基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。
因此熟练掌握选择结构和循环结构的基本概念和使用技巧是程序设计的最基本的要求。
请考虑以下一个问题:要计算全班各个学生某门课程考试的平均成绩应如何做呢?假定该班有40名学生,我们可以在程序中写40个scanf 函数,从键盘上输入40个学生的成绩。
实质上是重复40个同样的函数,如果你还能“忍受”的话,那么如果要统计全校1000名学生某门课程的成绩,难道你要在程序中写上1000个scanf 函数吗?这种重复操作的现象,在计算机中称为“循环”,程序设计中采用“循环语句”来完成该功能。
在任何一种高级语言中都存在循环语句。
我们将反复运行的那一部分程序称为循环的“循环体”。
在C 语言中有三种可以实现循环的语句:while 语句、for 语句和do 一while 语句。
4.1 while 语句while 语句的一般形式是:while (表达式)语句while 语句的执行流程是先计算表达式的值,如果值非零(真),则循环控制条件成立,执行while 中的“语句”,然后再计算表达式的值,如果此值仍旧为非零(真)则仍旧执行while 中的“语句”……,如此循环,直到表达式值为零(假),程序控制退出while 语句。
Python程序设计循环结构程序设计ppt课件

1-21
第6次上机作业: 1.计算,参考值: S=1.718282
S 1 1 1
1
1*2 1*2*3
1*2*3* 50
2.编程求斐波拉契数列的前20项,已知该数列
的第一、二项分别0、1,从第三项开始,每
一项都是前两项之和。例如:0, 1, 1, 2, 3, 5,
8, 13……
3.求1~100之间所有的素数,并统计素数的 个数。
(1)顺序结构(2)选择结构(3)循环结构
顺序结构 —— 是指程序流程按先后顺序执行,只有执行
了前一步,才能执行后一步。例如火车在轨道上行驶,只 有过了上一站点才能到达下一站点。
选择结构 —— 又称分支结构,是指程序流程可以分几条
路径执行。例如在一个十字路口处,可以选择向东、南、 西、北几个方向行走。
程序:
#Exp4_4.py
a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
i 小于列表长度吗? True
输出列表元素
False
i 自增 1
结束 图 4-6 依次输出列表元素的框图
Copyright © SWFU-CISD, 2012. All rights reserved.
a_len = len(a_list)
i=0
while i < a_len: print '列表的第', i+1, '个元 素是:', a_list[i]
i += 1
1-20
练习:
1. 求1+3+5+…+99 2. 求2*4*6*…*12
项目04 循环结构程序设计

while语句和do„while语句。本章是程序设计的重点内容,
重点培养读者的逻辑思维能力和程序编写基本能力。要求读 者能理解循环结构的工作过程,并且能用循环语句解决
项目四
循环结构程序设计
实际问题,提高编程能力。
【学习目标】
(1) 掌握for语句、while语句和do„while语句的使用。 (2) 掌握break语句和continue语句的使用。 (3) 能够利用循环语句解决实际问题。
所有商品的总价格;收银员每扫描一次,也就是把该商品的
价格输入给x,然后把x的值转移加入到s盒子里,重复操作, 直到收银员按回车键,在这里用“0”代表回车;最后输出s 盒子中的值,就可得到所有商品的总价格。
第一部分
任 务 学 习
【解决方案】
#include<stdio.h> void main() { float x,s=0;
注:从上面的说明可以看出,C语言的for语句功能强大,
使用灵活,可以把循环体和一些与循环控制无关的操作也都 作为表达式出现,程序短小简洁。但是,如果过分使用
(3) 循环。这样的语句一直重复写到h满足题目要求为
止。 程序代码如下:
第一部分
任 务 学 习
#include<stdio.h> void main() { double h=0.1; int n=0; /*n用来累计对折次数*/ while(h<=8848180) { h=h*2;
n=n+1;
} printf("对折次数为:%d,此时厚度:%.2f\n",n-1,h/2);
第一部分
一、while语句 二、for语句
任 务 学 习
第四章 循环结构程序设计

while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }
第四章。循环结构(while、do-while、for)

Top1.循环结构(while、do…while、for)1. 循环结构(while、do…while、for)1.1. 什么是循环结构在日常生活中,会有很多需要反复执行的事情,比如:每一年的4个季节,每一周的7天,每日的3餐,打印机每份文档打印50份,一圈跑道400米跑3圈,都是在反复执行的。
再看软件系统中的需求:问题1:输出100行语句,每行语句都一样,即:∙行动是成功的阶梯,行动越多,登得越高!∙行动是成功的阶梯,行动越多,登得越高!∙行动是成功的阶梯,行动越多,登得越高!…问题2:输出100行语句,每行语句都类似,即:∙第1,行动是成功的阶梯,行动越多,登得越高!∙第2,行动是成功的阶梯,行动越多,登得越高!∙第3,行动是成功的阶梯,行动越多,登得越高!∙…∙第100,行动是成功的阶梯,行动越多,登得越高!问题3:计算1到50乘以8.88的结果∙1×8.88 =8.88∙ 2 ×8.88 =17.76∙ 3 ×8.88 =26.64∙ 4 ×8.88 =35.52∙…∙50 ×8.88 =444诸如此类问题都是在反复执行的,在软件系统中可以通过循环这种语法结构来解决。
循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性执行。
对于循环来说,需要考虑两个要素,其一要素为循环体,也就是被反复执行的相同或相似的语句,其二要素为循环的条件,也就是循环得以继续执行下去的条件,常常以循环次数的方式体现。
常用的循环结构有:while、do-while、for。
1.2. while语句1.2.1. while语句的执行逻辑while语句是循环的一种常见语法结构,语法如下:1.while(boolean表达式){语句块;2.}while语句的执行过程为,首先计算boolean表达式的值,而后进行判断,若值为true则执行语句块,语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块,如此循环往复,直到boolean表达式的值为false时退出while循环而执行while之后的语句。
程序设计基础实验报告4-循环结构

程序设计基础实验指导及实验报告专业班级:学号:姓名:时间:指导老师:魏银珍实验四循环结构程序设计一、实验目的1.熟练掌握三种循环语句的应用。
2.熟练掌握循环结构的嵌套。
3.掌握break和continue语句的使用。
4.练习调试与修改程序。
二、实验内容1、读下面程序并运行,结果是什么?2、读下面程序并运行,改正其中的错误。
main( ) main( ){{int m, k ,I , n =0; int s ;for(m=101;m<=200;m=m+2) float n ,t ,pi ;{ t=1 ;pi=0 ;n=1.0 ;s=-1 ;k=sqrt(m) ; while(fabs(t)>1e+6)for(i=2;i<=k; i++) {pi=pi+t ;if(m%i= =0)break; n=n+2 ;if(i>=k+1) s=-s ;{ t=s/n ;printf(“%d”,m); }n=n+1; pi=pi*4 ;} printf(“pi=%10.6d\n”, pi);if(n%10= =0)printf(“\n”); }}printf(“\n”);}3.用while语句、do-while语句编写程序,计算e≈1+1/1!+1/2!+...+1/n!。
使误差小于给定的ε=10-5。
输出e和总的项数n。
4、如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。
例如6的因子是1,2,3,且6=1+2+3,因此6是完数。
编写程序找出1000之内的所有完数及这些完数的和。
5.输入并运行下面的程序,观察程序的运行结果。
#include"stdio.h"main( ){int n;while (1){printf("Enter a number:");scanf("%d",&n);if (n%2==1){printf("I said");continue;}break;}printf("Thanks. I needed that!");6. 打印九九乘法表,用for语句实现1X1=11X2=2 2X2=4……1X9=9 …… 9X9=81教材 6.6,6.147. 5.提高题:打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。
第4章循环结构程序设计

提示: 使用Math.random()可以 产生0 ~ 1之间的随机数 int number=(int)(Math.rand om()*5); //产生0~4之间 的随机整数
方法二: import java.util.Scanner; public class Guess1 { public static void main(String[] args) { int count=0; //玩家猜对的次数 int guess; //玩家猜的数字 Scanner input = new Scanner(System.in); int i=1; //循环变量 while(i <= 3){ int number = (int)(Math.random()*5); //产生0~4之间的随机数 System.out.println("有一个0到4之间的整数,猜猜是什么?"); guess = input.nextInt(); //从键盘获取一个数字 if(guess == number){ System.out.println("猜对了!"); count++; }else { System.out.println("猜错了!"); } i++; } System.out.println("\n猜对"+count+"次!"); if(count==3||count==2) System.out.println("你太有才了!"); else if(count==1) System.out.println("很聪明呀!"); else System.out.println("多努力!"); } }
c语言第4章循环

4.3 输入一个正整数 ,判断它是否为素数 输入一个正整数m, 4.3.1 程序解析 算法:除了1和 ,不能被其它数整除。 算法:除了 和m,不能被其它数整除。 设 i 取值 [2, m-1] 如果m不能被该区间上的任何一个数整除 不能被该区间上的任何一个数整除, 如果 不能被该区间上的任何一个数整除,即对 每个i, 都不为0, 每个 ,m%i 都不为 ,则m是素数 是素数 只要找到一个i, 只要找到一个 ,使m%i为0,则m肯定不是素数 为 , 肯定不是素数 for( i = 2; i <= m/2; i++) i 取值 [2, m-1] 、 [2, m/2] 、 [2, if( m % i == 0) break; if( i > m/2) printf("yes\n") else printf("no\n”);
循环条件? 循环条件 循环的结束条件? 循环的结束条件
if (i > m/2 ) printf("%d is a prime number! \n", m); else printf("No!\n"); }
4.3.2
while(exp){ 语句1 语句 if (expb) break; 语句2 语句 }
为下次循环准备
flag = -flag; denominator = denominator +2; } pi = pi * 4; printf ( “pi = %f\n”, pi ); return 0; }
pi = 3.141613
4.1.2 while 语句
while (条件 条件) 条件 循环体语句; 循环体语句
#include <stdio.h> 例4-6 嵌套循环源程序 int main(void) { int i, j; double item, sum; /* item 存放阶乘 */ sum = 0; for(i = 1; i <= 100; i++) { item = 1; /* 每次求阶乘都从1开始 */ for (j = 1; j <= i; j++) /* 内层循环 item = i! */ item = item * j; sum = sum + item; } printf("1! + 2! + 3! + … + 100! = %e\n", sum); }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验04 循环结构程序设计
(第4章MATLAB程序设计)
一、实验目的
二、实验内容
1. 求π的近似值
根据
2
2222
1111
6123n
π
=++++,求π的近似值。
当n分别取100、1000、10000时,
结果是多少?
要求:分别用循环结构和向量运算(使用sum函数)来实现。
程序及运行结果:
《数学软件》课内实验王平
2. 求级数部分和
根据
111
1
3521
y
n
=++++
-
,求:
(1) y<3时的最大n值。
(2) 与(1)的n值对应的y值。
3. 迭代过程收敛问题
考虑以下迭代公式:
1
n n
a
x b x +=
+ 其中a 、b 为正的常数。
(1) 编写程序求迭代的结果,迭代的终止条件为|x n+1-x n |≤10-5,迭代初值x 0=1.0,迭代次数不超过500次。
(2) 如果迭代过程收敛于r ,那么r 的准确值是2
b -,当(a,b)的值取(1,1)、
(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。
4. 求解数列
已知
123123
11021323
n n n n f n f n f n f f f f n ---==⎧⎪==⎪⎨
==⎪⎪=-+>⎩
求f 1~f 100中:
(1) 最大值、最小值、各数之和。
(2) 正数、零、负数的个数。
5. 亲密数对问题
若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。
例如,2×3-1=5,由于5是素数,所以2和3是亲密数,5是亲密素数。
求[2,50]区间内:
(1) 亲密数对的对数。
(2) 与上述亲密数对对应的所有亲密素数之和。
程序及运行结果:
三、实验提示
四、教程:第4章 MATLAB程序设计(2/3)
4.2.3 循环结构p65
1.for语句
表达式1的值为循环变量的初值
表达式2的值为步长
表达式3的值为循环变量的终值。
步长为1时,表达式2可省略。
例4.7(for)水仙花数p65
一个三位整数各位数字的立方和等于该数本身(称水仙花数)。
输出全部水仙花数。
例4.8(for )求和 p66
已知
2
2221111123
y n
=
++++
例4.9(for )用梯形法求定积分 p66
设 0.5()sin 6x
f x e
x π-⎛
⎫=+ ⎪⎝
⎭,求30()s f x dx π=⎰。
for语句更一般的格式为:
执行过程是:
依次将矩阵的各列元素赋给循环变量;
然后执行循环体语句;
直至各列元素处理完毕。
例4.10(for)写出下列程序的执行结果。
2.while 语句
执行过程:
若条件成立,则执行循环体语句;
执行后再判断条件是否成立,若不成立则结束循环。
例4.11(while )求数组的平均值及和 p68
从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
例4.12(while )求矩阵指数
23
2!3!
!
n X
X X X e I X n =++++
++
3. break语句和continue语句
break 执行到该语句时,跳出循环。
continue 执行到该语句时,跳过循环体中剩下的语句,继续下一次循环。
例4.13 使用continue和break语句p69
4. 循环的嵌套(多重循环结构)
循环结构的循环体又包括一个循环结构。
例4.14(for二重循环)求完数p70
一个数恰好等于除它本身外的因子之和,称完数,如6=1+2+3,6是完数。
例4.15(for)用筛选法求某自然数范围内的全部素数p70。