第五章 循环结构程序设计[1]

合集下载

C语言 第五章-循环结构程序设计

C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/

第5章 循环结构程序设计

第5章 循环结构程序设计
龙诚数码:
do-while语句的简单应用 do-while语句的简单应用
【例5.3】用辗转相除法求m和n的最大公约数 5.3】用辗转相除法求m
定义m、 、 定义 、n、r m<n T F m和n交换 和 交换 r=m%n m=n n=r 当r != 0时 时 输出最大公约数m 输出最: 算法和程序:
main( ) { int m,n,r; scanf("%d, %d",&m,&n); if (m<n) { r=m; m=n; n=r; } do { r=m%n; 程序运行情况如下: 程序运行情况如下: m=n; 24, 60 24, n=r; 12 }while(r!=0); while(r!=0 printf("%d\n",m); }
for语句的算法 for语句的算法
流程图 计算表达式1 计算表达式
表达式2 表达式 为真? 为真
15
N-S结构图 结构图 for (表达式 表达式 表达式 表达式1;表达式 表达式3) 表达式 表达式2;表达式 N 语句
Y 语句 计算表达式3 计算表达式
例如: 例如: 可部分或全部省略, 可部分或全部省略, main( ) 但“;”不可省略 { int i,sum; sum=0; for ( i=1; i<=100; i++) i=1 i<=100; sum=sum+i; sum=sum+i; printf("sum=%d\n",sum); }
龙诚数码:
18
for语句的简单应用 for语句的简单应用
【例5.4】求n! ,即计算p=1×2×3×…×n 5.4】 即计算p=1× 的值。 的值。

第5章 循环结构1

第5章 循环结构1

说明:
(3)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值) 例如:for(i=1;i<=10;i++) sum=sum+i; (4)三个表达式均可缺省,但起分割作用的两个分号 不可省略。 例如:for( ; ; ) i=1;for(;i<=10;i++) sum=sum+i; 或 for(i=1;i<=10;) {sum=sum+i;i++;} • 表达式1省略,应在for之前对循环变量赋初值 • 表达式2省略,则不判断条件,循环无终止进行下去 • 表达式3省略,则应另设法保证循环的结束
5.4
循环的嵌套
一个循环体内又包含另一个完整的循环结构称为循 环的嵌套。
① while() {… while() {…} } ② do {… do {…} while(); } while() ; ③ for(;;) { for(;;) {…} }
5.4
④ while() {… do {…} while(); … } 说明:
在许多问题中都需要用到循环结构,如
要求计算全校每个学生的平均成绩,计算两 个正整数的最大公约数和最小公倍数等都需
要用到循环控制。C语言中有三种循环语句, 分别是while语句、do…while语句和for语 句。
5.1 while循环语句
while循环语句是用来实现“当型”循环结构的。 它的特点是先判断表达式,后执行语句。 格式: while(表达式) 语句; 该语句的执行顺序是:先计算表达式的值,再判 断其值是否为“真”(即非0)。若结果为“真”, 则执行语句;此过程重复执行,直到表达式的值为 “假”(即为0)时,结束循环。其流程图和N-S图 分别如图5-1和5-2所示。

C语言程序设计:第5章 循环结构

C语言程序设计:第5章 循环结构
执行过程: 先执行循环体语句,再检查 循环条件表达式的值是否为真, 如果为真则继续执行循环体语句, 否则结束循环。
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;

第五章循环结构程序设计习题解答

第五章循环结构程序设计习题解答

5、设某县2000年工业产值为200亿元,如果该县预计平均 每年工业总产值增长率为4.5%,那么多少年后该县工业总 产值将超过500亿? 算法步骤: 第一步,输入2000年的年生产总值. 第二步,计算下一年的年生产总值. 第三步,判断所得的结果是否大于 500.若是,则输出该年的年份;否则,返 回第二步. (1)确定循环体:设a为某年的年生产 总值,t为年生产总值的年增长量,n为 年份,则循环体为t=0.045a,a=a+t,n=n+1. (2)初始化变量: n=2000, a=200. (3)循环控制条件: a>500
3、从键盘输入一个正整数n,计算该数的各位数字之和并输出。 #include <stdio.h> void main() { long n; int s, i=1,j=10; scanf("%ld",&n); s=n%10; while(n/j!=0) { s=s+n/j%10; j=j*10; i++; } printf("i=%d, s=%d ",i,s); }
11、 九· 九表----1
1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81
2、输入一串字符,直到输入一个星号为止, 统计(输出)其中的字de <stdio.h> void main() { char ch; int char_num=0,int_num=0; ch=getchar(); while(ch!='*') { if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) char_num++; else if(ch>='1'&&ch<='9') int_num++; ch=getchar(); } printf("char_num = %d, int_num = %d\n",char_num,int_num); }

八年级信息技术教案第五章循环结构程序设计实践课题的设计与研究

八年级信息技术教案第五章循环结构程序设计实践课题的设计与研究

八年级信息技术教案第五章循环结构程序设计实践课题的设计与研究在八年级信息技术的教学中,学习循环结构程序设计是为了让学生掌握程序设计中业务处理的基本思想,熟悉常用循环语句的使用,进而学习和掌握循环控制语句的使用。

为了贯彻实践教学的基本思想,本文将围绕八年级信息技术教学中的循环结构程序设计实践课题,对这方面的设计和研究进行深入分析和研讨,为学生的学习提供更好的指导和帮助。

一、课程目标通过本实践课程,学生应能够:1、了解循环结构程序设计的基础知识和技术,掌握常见循环结构的使用方法和应用场景;2、了解循环控制语句的基本构成和使用方法,掌握常见循环控制语句的使用规则和应用场景;3、熟悉利用循环结构和循环控制语句实现数字彩票模拟的具体方法,能够自主设计和实现数字彩票模拟程序;4、通过实践掌握和深入理解循环结构程序设计的基本思想和实际应用,提高对编程实践的理解和兴趣。

二、教学思路本课程的教学思路是:分析循环结构程序设计的基本理念和相关技术,通过具体的实践案例,让学生对循环结构程序设计有比较深刻的理解和认识。

三、教学重点本课程的教学重点主要包括以下两方面:1、循环结构程序设计的基本思想和技术2、利用循环结构和循环控制语句实现数字彩票模拟的具体方法四、教学方法本课程教学中,我们将采用如下教学方法:1、理论讲解我们将介绍循环结构程序设计的基本概念和相关技术,包括循环结构的使用方法和应用场景,循环控制语句的构成和使用方法等。

2、案例分析为了更好地使学生理解循环结构程序设计的实际应用,我们将选取数字彩票模拟程序作为我们的教学案例,介绍数字彩票模拟程序的设计方法和实现技术。

3、编程实践为了更好地让学生熟悉循环结构程序设计的具体操作,我们还将提供相关的编程实践机会,让学生自主设计和实现数字彩票模拟程序,并在实践中不断掌握和加深对循环结构和循环控制语句的理解和应用。

五、教学具体步骤本课程的教学具体步骤为:1、制定教学计划和教学目标,明确教学任务和要求;2、介绍循环结构程序设计的基本概念和相关技术,包括循环结构的使用方法和应用场景,循环控制语句的构成和使用方法等;3、介绍数字彩票模拟程序的设计思路和实现方法,重点介绍如何利用循环结构和循环控制语句实现数字彩票的模拟,并给出具体的程序代码;4、提供编程实践机会,让学生自主设计和实现数字彩票模拟程序,并在实践中不断掌握和加深对循环结构和循环控制语句的理解和应用;5、进行课堂讨论和互动,让学生自主分组进行彩票模拟程序的对比和分享,帮助学生检验和提高其自主设计和实现的能力;6、总结本次教学内容和成果,对学生进行评价和反馈,激励学生进一步探索和深入研究循环结构程序设计的相关技术。

C语言第5章循环结构程序设计1

C语言第5章循环结构程序设计1

(2)在循环体中应有使循环趋向于结束的语句。 比如上例中,循环结束的条件是“score>=0”, 那么当我们把这个班的成绩全部输入完后, 一定要输入一个负数,才能使程序往下执行。 (3)循环体语句有可能一次也不执行。比如说上 例中,当第一次输入的分数就为负数时,则 循环体一次也不执行。
§5.3 do …while语句
① ② ④ ③
for(i=1; i<100; i++) s=s+i; printf(″s=%d″, s); }
/*循环体语句*/
对于for循环,有一点非常重要,即条件测 试永远是在循环开始时进行,如果在循环开 始时条件为假,那么循环体语句就不会被执 行。如: int i=10; for (k=10;k!=i;k++) printf(″%d″,k); printf(″%d″,k);
2、循环控制变量必须在循环体内有所改变,才 能使while和do-while语句的循环控制条件表达 式的值不断改变,直至循环结束。否则会造 成死循环。例如: i=1; while(i<=100) putchar(′*′); i++; 这个循环永远不会结束,因为“i++;”语句 不属于循环体中的语句,循环控制变量i没有 在循环体内被改变。 程序应该作如下改变:
在使用while语句的时候,我们要注意以下 两个问题: (1)循环体如果包含一个以上的语句,应该用花 括号括起来,以复合语句的形式出现。如果 不加花括号,则while语句的范围只到while后 面的第一个分号处。比如上例中,while语句 中如无花括号,则while语句范围只到 “average+=score;”。
#include <stdio.h> main() {int i,n;long fac; Scanf(―%d‖,&n); i=1 while (i<=n) fac=fac*i; i++; } Printf(―%d!=%ld‖,n,fac); }

第5章 循环结构程序设计

第5章 循环结构程序设计

运行结果:
printf("%d\n",sum);
sum = 5050
}
while语句和用do-while语句的比较:
一般情况,用while循环语句和用do -while循环语句处理问 题时,若循环体部分一样,结果也一样。但是如果while循 环语句循环条件一开始为“假”,则循环结果不同。while 循环语句一次也不执行,而do -while循环语句不论条件是 否成立,先执行一次循环体语句。
循环变量不增值。无终止地执行循环体。
例5-7用for语句求1 + 2 + 3 + … + 100
#include <stdio.h> void main() {
int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i;/*实现累加*/ printf("sum=%d\n",sum); } 程序运行的结果为: sum=5050 解析:先执行变量赋初值,然后判定循环继续条件, 如果为“真”,执行循环体语句,i 为运算项目和循 环变量,执行完一次,增加一次,最后累加和。
if(n%3!=0) /*循环体*/
printf("%5d",n);
}
§5.4 多重循环
• 当循环中的内嵌语句是循环语句时,称为循 环的嵌套使用。内嵌的循环中嵌套循环,称 为多重循环。
C语言程序设计技术基础
第5章 循环结构程序设计
第5章 循环结构程序设计
5.1 while 循环语句 5.2 do while循环语句 5.3 for循环语句 5.4 多重循环 5.5 break语句与continue语句 5.6 几种循环语句的比较 5.7 循环结构程序举例
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、某人设计了如下程序用来计算并输出7!(7的阶乘) Private Sub Command1_Click() t=0 For k=7 To 2 Step -1 t=t*k Next Print t End Sub 执行程序时,发现结果是错误的,下面的修改方案中 能够得到正确结果的是 A)把t=0改为t=1 B)把For k = 7 To 2 Step -1改为For k =7 To 1 Step -1 C)把For k = 7 To 2 Stip-1改为For k=1 To 7 D)把Next改为Next k
5.4 While…Wend语句
使用格式如下:
While <条件 >
<循环块> Wend 说明:该语句的功能与Do While <条件>….Loop实现的 循环完全相同。
例1:从键盘输入若干个数,求其平均值。 分析:求均值需要知道总和与总个数,需要 设置两个变量,可以分别称它们为累加器 变量和计数器变量,它们的初值一般为0, 对于不固定个数的数求和,其累加、计数 的次数也不固定,应采用DO循环。但为了 使循环能结束,需设定一个结束标志,本 题可设置-9999做结束标志。
A)9!
B)10!
C)1!+2!+…+9!
D)1!+2!+…+10!
2、设有如下程序: Private Sub Comrnandl_Click() Dim c As Integer,d As Integer c=4 d=InputBox(“请输入一个整数”) DO While d>0 If d>c Then c=c+1 End If d=InputBox(“请输入一个整数”) Loop Print c+d End Sub 程序运行后,单击命令按钮,如果在输入对话框中依次输入l、2、3、4: 5、6、7、8、9、0,则输出结果是_______ 。 A)12 B)ll C)10 D)9
循环变量在终值 内
F T
语句块
Exit For
步长
>0 初值<终值 =1 时,可省略 <0 初值>终值 =0 死循环(ctrl+break终止运行)
语句块 循环变量加步长
图 1-3-13 For 循环语句
循环次数
Int( 终值初值 1) 步长
例: For I=2 To 13 Step 3 Print I , Next I Print I条 件源自FT语 块 句
Exit Do 语 块 句
Do
W hile„ Loop执 过 行 程
有可能一次都不执行循环体!
形式2:(直到循环—2个结构)
表 式 表1 达 列
F
语 块 句
T
语 块 句 Do 语句块 Exit Do [Exit Do] 语句块 语句块 Loop While <条件>
Exit Do 语 块 句
Private Sub Command1_Click() Dim sum!, n%, x!, aver! sum = 0 n=0 x = InputBox("请输入第一个数:") Do While x <> -9999 sum = sum + x n=n+1 x = InputBox("请输入下一个数") Loop aver = sum / n MsgBox "共输入" & n & "个数,平均值为" & aver End Sub
答案:【1】求整数1-8之和 【2】36
4、有如下程序: Private Sub Form_Click() n=10 i=0 Do i=i+n n=n-2 Loop While n>2 Print i End Sub 程序运行后,单击窗体,输出结果为 【 】
说明:
(1)当使用While<条件>构成循环时,当条件为“真”, 则反复执行循环体,当条件为“假”,则退出循环。
Private Sub Command2_Click() End End Sub
例2:(教材103页)在FORM1的窗体上,有一个Text1 和一个Command1。当程序运行,在Text1中输入数据 后,单击Command1判断该数据是否为素数,若不是 则对大于1的正数分解为a*b的形式。
Private Sub Command1_Click()
For i =1 To 10 For j=1 To 20 … Next i Next j
For i =1 To 10 For i=1 To 20 … Next i Next i
几种循环语句比较
For....to Next 循环类型 循环控制条 件 当型循环 Do while/until.... Loop 当型循环 do .... Loop While/until... 直到循环 条件成立/不成立 执行循环 在 DO 之前
1、阅读下面的程序: Private Sub Form Click() Dim Check As Boolean,Counter As Integer Check=True Counter=5 Do Do While Counter<20 Counter=Counter+l If Counter=lO Then Check=False Exit Do End If Loop Loop Until Check=False Print Cunter End Sub 程序运行后,单击窗体,输出结果为 【9】 。
Int( 133 2 1) 4
循环执行次数
输出I的值分别为:
2
5
8
5
11
8 11 14
出了循环输出为: 14 所以输出为: 2
例:编程计算:S=1+2+3+…+100
Dim S%, I%
S=0 ‘累加前变量S赋值为0
For I=1 to 100
S=S+I
Next I Print " S=",S
3、执行以下程序段后,x的值为_________。 Dim i As Integer.x As Integer x=0 For i=20 To l Step-2 x=x+i\5 Next Print x A)16 B)17 C)18 D)19
5.3 使用 Do…Loop语句 (4种结构) Do循环语句用于控制循环次数未知的循环结构。 形式1:(当型循环—2个结构) Do While <条件> 语句块 [Exit Do] 语句块 Loop Do Until <条件> 语句块 [Exit Do] 语句块 Loop
循环变量大于 条件成立/不成立 或小于终值 执行循环 在 DO 之前
循环变量初 在 FOR 语句行 值 中 使循环结束 使用场合 For 语句中无 需专门语句
请编写程序,当单击命令按钮计算S, S=1+2+3+….100的值在窗体上显示出来。
5.2 使用For/Next语句 For循环语句 (一般用于循环次数已知) For 循环变量=初值 to 终值 [Step 步长] 语句块 [Exit For] 循环体 语句块 Next 循环变量
循环变量得初 值
对于循环的嵌套,要注意以下事项:
(1) 内循环变量与外循环变量不能同名; (2) 外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外循环转向内循环.




For i =1 To 10 For j=1 To 20 … Next j Next i For i =1 To 10 … Next i For i =1 To 10 … Next i
5.5 多重循环结构——循环的嵌套
如果在一个循环内完整地包含另一个循环结构,则称为多重 循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一 层称为二重循环,嵌套二层称为三重循环。 上面介绍的几种循环控制结构可以相互嵌套,下面是几种 常见的二重嵌套形式:
(1)For I=…. ….. For J=…. …. Next J ….. Next I
课堂练习
2、在窗体上画1个名称为Command1的命令按钮,然
后编写如下事件过程: Private Sub Command1_Click() a=0 For i=1 To 2 For j=1 To 4 If j Mod 2<>0 Then a=a-1 End If a=a+1 Next j Next i Print a End Sub 程序运行后,单击命令按钮,输出结果是: A) 0 B) 2 C) 3 D) 4
Do…Loop Until执行过程
课堂练习
1、在窗体上画一个名称为Command1的命令按钮,并编写以下程序:
Private Sub Command1_Click() Dim n%,b,t t = 1:b = 1:n = 2 Do b = b*n t=t+b n = n +1 Loop Until n>9 Print t End Sub 此程序计算并输出一个表达式的值,该表达式是
T
条 件
F
Do „ Loop W hile 的 行 程 执 过
图1-3-15
Do
W hile„ Loop
Do 语句块 [Exit Do] 语句块 Loop Until <条件>
至少执行一次循环体!
条 件 F 语句块 Exit Do 语句块
T
语句块 Exit Do 语句块 F 条 件 T
Do Until…Loop执行过程
课堂练习
1、有如下程序: Private Sub Form_Click() Dim i As Integer, sum As Integer sum = 0 For i = 2 To 10 If i Mod 2 <> 0 And i Mod 3 = 0 Then sum = sum + i End If Next i Print sum End Sub 程序运行后,单击窗体,输出结果为 A)12 B)30 C)24 D)18
相关文档
最新文档