项目04循环结构程序设计概论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目四 循环结构程序设计
实际问题,提高编程能力。
【学习目标】
(1) 掌握for语句、while语句和do…while语句的使用。 (2) 掌握break语句和continue语句的使用。 (3) 能够利用循环语句解决实际问题。
第一部分 任 务 学 习
一、while语句 二、for语句 三、do…while语句 四、break语句和continue语句
(1) while语句一般形式。 while(表达式) {
循环体语句; }
第一部分 任 务 学 习
其中,表达式称为“循环条件”,语句称为“循环体”。 为便于初学者理解,可以读做“当条件(循环条件)成立(为 真)时,循环执行语句(循环体)”。
(2) 执行过程是:先计算while后面圆括号内循环条件 的值,如果其值为真(非0),则执行循环体语句,然后再计 算while后面圆括号内循环条件的值,并重复上述过程,直 到循环条件的值为“假”(值为0)时,退出循环,并转入下 一语句去执行。
(3) 特点:先判断表达式,后执行语句。 (4) 执行过程如图4-2所示。
第一部分 任 务 学 习 图4-2 while语句执行过程
第一部分 任 务 学 习 (5) 使用while语句时,需注意如下几个问题。 1) while语句的特点是先判断表达式的值,然后根据
表达式的值决定是否执行循环体中的语句。因此,如果表达 式的值一开始就为“假”,则循环体将一次也不执行。
第一部分 任 务 学 习
一、while语句——超市收费系统
【问题提出】
有些在日常生活中遇到的循环问题,事先不知道循环次 数。例如在刚生产的1批药丸(每粒10g)中混入一个外观完 全相同的不合格药丸(15g),为了查找该药丸,逐个称重量, 直到查到15g的药丸为止,但事先并不知道要查多少次,这 时候就要使用循环语句中的while语句。
项目四 循环结构程序设计
项目四 循环结构程序设计
1 第一部分 任务学习 2 第二部分 项目学习 3 第三部分 实验学习
项目四 循环结构程序设计
许多问题的求解可归结为重复执行的操作,例如输入多 个同学的成绩、对象遍历、迭代求根等问题。这种重复执行 的操作在程序设计语言中用循环控制来实现,几乎所有实用 程序都包含循环。特别是在现代多媒体处理程序(图像、声 音、通信)中,循环更是必不可少。循环结构也是结构化程 序设计中的3种基本结构之一;最常用的循环语句有for语句、 while语句和do…while语句。本章是程序设计的重点内容, 重点培养读者的逻辑思维能力和程序编写基本能力。要求读 者能理解循环结构的工作过程,并且能用循环语句解决
第一部分 任 务 学 习
【思路指导】
(1) 收银员对商品条形码扫描的过程就是把商品的价格 输入的过程,定义一个变量x为商品的价格。
(2) 收银员要重复对商品的价格进行扫描,但是收银员 并不知道这种重复的动作要进行多少次,所以编程时要思考 用哪种循环语句。
(3) 在求总价格的时候可以假设有一个盒子s,用来放 所有商品的总价格;收银员每扫描一次,也就是把该商品的 价格输入给x,然后把x的值转移加入到s盒子里,重复操作, 直到收银员按回车键,在这里用“0”代表回车;最后输出s 盒子中的值,就可得到所有商品的总价格。
程序代码如下:
第一部分 任 务 学 习
#include<stdio.h> void main() {
int a=0,b=0; float score; printf("请输入学生成绩:\n"); scanf("%f",&score); while(score!=0)
{ if(score>=60) a++; else b++; scanf("%f",&score);
第一部分 任 务 学 习
【解决方案】
#include<stdio.h>
void main()
{
float x,s=0;
/*定义变量,分别存放每个商品
的价钱和总价钱,实型数据*/
printf("请输入商品价格");
scanf("%f",&x);
/*输入第一个商品的价钱给x*/
while(x!=0)
/*不是"回车"就执行*/
第一部分 任 务 学 习
【工作任务】
如果你在超市工作,你领导让你为超市编写一个收费系 统,你能做到吗?那就要想想,这个收费系统的工作过程。 当顾客从超市购物出来要付款的时候,顾客把购买的东西递 给收银员,收银员对所有的商品条形码扫描,扫描一个就得 到该商品的价格并自动累加,最后扫描完,收银员按回车键, 就能得到总价格。这个超市的收费系统到底是如何实现的呢?
第一部分 任 务 学 习
可以在循环体中实现。 4) 遇到数列求和、求积的一类问题,一般可以考虑使
用循环解决。 注意循环初值的设置。一般对于累加器常设 置为0,ቤተ መጻሕፍቲ ባይዱ乘器常设置为1。
5) 循环体也可以是空语句,只有分号,什么也不做。 例如,while();。
第一部分 任 务 学 习
【技能训练1】
期末考试结束之后,老师让你分别统计C语言这门课程 及格和不及格的人数,编程来实现这个操作。
2) 当循环体为多个语句组成时,必须用“{}”括起来, 形成复合语句。如果不加花括号,则while 语句的范围只到 while语句后面第一个分号的基本语句处。
3) 为了使循环最终能够结束,而不至于使循环体语句 无穷执行(产生“死循环”),每执行一次循环体,条件表达 式的值都应该有所变化,这既可以在表达式本身中实现,也
} printf("a=%d,b=%d\n",a,b); }
第一部分 任 务 学 习 程序运行结果如图4-3所示。
图4-3 成绩统计程序运行结果
第一部分 任 务 学 习
【技能训练2】
有一张厚度为0.1mm的纸,假设它足够大,重复将其对 折,问对折多少次之后,其厚度可达(再对折一次就超过)珠 穆朗玛峰的高度?
{
s=s+x;
/*加到总价钱里*/
scanf("%f",&x); /*输入每个商品的价钱给x*/
}
printf("总价钱=%f",s); /*输出总价钱*/
}
第一部分 任 务 学 习
【运行情况】
超市收费系统程序运行结果如图4-1所示。
图4-1 超市收费系统程序运行结果
第一部分 任 务 学 习
【归纳分析】