第3章 流程控制结构
- 格式:doc
- 大小:188.00 KB
- 文档页数:23
第3章程序的流程控制一一语句1、编写一个程序,将华氏温度转换为摄氏温度。
转换公式为:c= |(f-32),其屮,c为摄氏温度,f为华氏温度解:#include <iostream>using namespace std;int main(){ double c, f;cout «H Please input an F-temperature : n « end!;cin » f;c = (f-32)*5/9;cout « "The C-temperature is :u « c « endl;return 0;)2、编写一个程序,将用24小时制表示的时间转换为12小时制表示的时间。
例如,输入20和16 (20点16分),输出8:16pm;输入8和16 (8点16分),输出8:16am。
解:#include <iostream>using namespace std;int main(){ int hour, minute;char noon;cout «H Please input a time in 24-hour format: u « endl;cout« "hour: M; cin » hour;if (hour<0 || hour>23){ cout « "The input hour is wrong!0 « endl;return -1;}讦(hour> 12){ hour =hour - 12;noon = p;}elsenoon = X;cout«H minute: M; cin » minute;if (minute<0 || minute>59){ cout « "The input minute is wrong!n « endl;return -1;)cout « endl «”The time in 12-hour format is : n « hour «« minute;if (noon == P)cout «M pm u « endl;elsecout «H am n « endl;return 0;}3、编写一个程序,分别按正向和逆向输出小写字母a〜z。
实验(实训)报告项目名称实验三程序控制结构所属课程名称C语言程序设计项目类型验证性实验(实训)日期2011.4.2班级10信息与计算科学学号100112200134姓名邹雯指导教师马雪英浙江财经学院教务处制一、实验(实训)概述:【实验目的】1.熟练掌握顺序结构、分支语句、循环结构的使用;理解break语句在多路分支处理中的作用。
2.理解break,continue语句的作用。
3.熟练掌握程序测试和调试。
【实验要求】1.正确建立控制台工程。
2.正确定义变量、正确使用控制结构表达程序逻辑。
3.能区分break,continue等语句的作用。
4.熟练使用VC的DEBUG功能对程序进行调试。
【基本原理】见第三章课件【实施环境】(使用的材料、设备、软件)Visual C++ 6.0二、实验(实训)内容:实验任务一用DEBUG跟踪程序流程,回答问题第1题【项目内容】一只1英寸的蠕虫在一口长为n英寸的井的底部。
每分钟蠕虫可以爬u英寸,但必须休息1分钟才能接着爬。
在休息的过程中,蠕虫又下滑了d英寸。
上爬和下滑重复进行。
蠕虫需要多长时间才能爬出井?不足一分钟按一分钟计,并且假定只要在某次上爬过程中蠕虫爬到了井的顶部,那么蠕虫就完成任务了。
已经有如下正确的程序了,请为该程序建立控制台工程,然后按照要求进行测试和调试。
#include <iostream>using namespace std;int main(){int n; //n是井的高度(0<n<100)int u; //u是蠕虫每分钟上爬的距离int d; //d是蠕虫在休息的过程中下滑的距离(假定d<u,u>0,d>0)int time=0; //所花时间int curh=0; //当前高度int s=1; //s=1表示上爬,s=-1表示下滑cin >> n >> u >> d;while(curh<n){if(s==1) //上升curh+=u;//上升u距离else//下滑curh-=d;//下滑d距离time++;s=-s;}cout << time << endl;return 0;}【方案设计】请画出该程序的流程图。
53 printf("%d %d",a,b);}复合语句在逻辑上相当于一个单一语句,在流程控制结构if 结构、for 结构、while 结构中经常用到。
复合语句在书写时采用向右缩进的方式,多个语句相对于花括号向右缩进一个制表位。
复合语句和函数体虽然都是用一对花括号({})来定界的,但是两者间是有区别的。
复合语句是由两条或两条以上语句序列组成的,而函数体内可以是多条语句的语句序列,也可以只有单条语句,还可以没有语句,即为空。
3.2 条件控制语句在程序的三种基本结构中,第二种即为选择结构,其基本特点是:程序的流程由多路分支组成,在程序的一次执行过程中,根据不同的情况,只有一条支路被选中执行,而其他分支上的语句被直接跳过。
C 语言中,条件控制语句有if 语句和switch 语句,if 语句用于两者选一的情况,而switch 用于多分支选一的情形。
if 语句是用来判定给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
先来看这样一个问题,计算分段函数:212050x x y x x −⎧⎪=⎨⎪>⎩ ≤ 求解问题的流程如下。
(1)输入x 。
(2)如果x ≤0,则y =2x −12;否则y =5x 。
(3)输出y 的值。
要完成该问题计算,显然程序的流程必须由x 的值确定。
像这样的流程要根据某个变量或表达式的值做出判定,以决定执行某个模块和跳过某个模块,这就需要选择语句。
3.2.1 if 语句用if 语句可以构成分支结构。
它根据给定的条件进行判断,以决定执行某个分支程序段。
C语言的if 语句有三种基本形式。
1.第一种形式为基本形式:if 结构生活中充满了选择,在C 语言编程过程中同样如此,最简单的条件判断语句是if 语句,其基本格式为:if(判断表达式) {语句}判断表达式可以是简单的逻辑语句(逻辑表达式或关系表达式),也可以是多个逻辑语句的“与”、“或”、“非”组合,也可以是一般表达式,甚至还可以是一个变量或常量,执行到if 结构时,该表达式的值被首先计算,当判断表达式的值不为0(真)时,if 后花括号中的语句代码被执行,否则,跳过花括号中的代码。
《C语言程序设计》课程教案表算法2:分析:设想用sum作为累加器,初值为0,利用sum+=i(i依次取值为1、2。
100)此分析需要解决的3个问题:1)sum=0,i=1;2)每执行一次sum+=i 后,i增1(i=i+1);3)判断如果i小于或等于100,重新执行步骤(2),否则停止计算main(){int i,s=0;i=1;while(i<=100)/*i<=100为循环条件*/{s=s+i;i++; /*改变i的值*/}printf(″s=%d″,s);}运行结果:s=5050说明:循环结构的三个术语:1、循环条件:循环结构中的条件表达式如while (i<=100)其中,i<100就是循环条件。
2、循环体:在每个循环周期均要执行一次的语句序列。
如while下用{ }括起来的语句序列。
3、循环控制变量:能够决定控制条件是真是假的量。
如while(i<=100)中的变量i要写出一个正确的循环结构,对控制变量要做三方面的工作:1、对循环控制变量赋初值。
2、将循环控制变量写入正确的控制条件。
3、对循环控制变量值的更新。
使用while语句需要注意以下几点:while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句。
因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。
当循环体为多个语句组成,必须用{}括起来,形成复合语句。
在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。
下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,gotowhile(s<=10){s=s+i*i;i++;}printf(“%d”,--i);}A) 4 B) 3 C) 5 D) 6对以下程序段,描述正确的是________________。
int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);A) 运行程序段后输出0 B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次下面程序段的运行结果是[ ]。
流程控制的概念及基本类型小故事
标题:流程控制的奇幻之旅
在一个遥远的王国,有一位名叫“程序”的魔法师。
他以强大的魔法——流程控制,闻名于世。
今天,让我们跟随他的脚步,一起探索流程控制的世界。
首先,我们要了解的是“顺序结构”,这是最简单的流程控制类型。
就像每天早上,“程序”魔法师起床后,他会先洗脸、刷牙,然后吃早餐。
这就是一种按照固定顺序进行的操作,没有分支和循环。
接下来是“选择结构”,也被称为条件结构。
有一天,“程序”魔法师在森林中迷路了。
他面前有两条路,一条通往城堡,另一条则通向未知的地方。
这时,他需要做出选择。
如果选择了正确的道路,就能回到城堡;否则,可能会陷入更深的困境。
这就像是我们编程中的if-else语句,根据条件的不同,执行不同的操作。
最后,我们来到了“循环结构”。
有一年,王国遭受了严重的干旱。
“程序”魔法师决定用魔法帮助人们找水。
他开始在地面上挖洞,每次挖到一定的深度,如果没有找到水,就再向下挖一点,直到找到为止。
这种重复执行某个操作,直到满足特定条件的过程,就是循环结构。
通过这个小故事,我们可以更好地理解流程控制的概念及其基本类型:顺序结构、选择结构和循环结构。
它们就像是魔法师手中的魔杖,指引着我们的程序走向正确的方向。
只有掌握了这些基础,我们才能编写出更强大、更复杂的程序。
(单元教案首页)单元标题第3章流程控制结构教学时数:()学时,其中理论()学时、实验()学时、上机()其它()学时,其它是指:教学目的与要求:1.理解程序的的三大控制结构。
2.掌握选择结构实现语句的用法编程应用3.掌握循环结构实现语句的用法及其编程应用。
4.理解并掌握各种跳转语句的使用方法。
主要教学内容:1.程序的控制结构:顺序、选择、循环。
2.选择结构语句:if语句(两种格式)和switch语句、程序举例。
3.循环结构语句:for语句、while、语句、do-while语句、三种循环语句的互相转化、程序举例。
4.控制结构跳转语句:break语句、continue语句、return语句教学重点与难点:重点:if语句、switch语句、for语句、while语句、do-while语句难点: switch语句、选择结构编程应用、循环结构编程应用、跳转语句的编程应用课后作业:1.课本P66 综合练习三:第一题~第四题2.上机实习:实习3:Java流程控制课后体会:兰州资源环境职业技术学院教师授课教案兰州资源环境职业技术学院教师授课教案——————————————————————第3章流程控制结构一、本章主要内容:本章主要讲述Java程序的基本控制结构和控制语句,使得学生能利用这三种结构来解决一些比较复杂的问题。
Java程序的基本控制结构有三种:顺序结构、选择结构、循环结构。
二、具体授课内容:3.1 概述3.2 选择结构3.3 循环结构3.4 跳转语句三、本章授课思路:1. 回顾C语言中结构化程序设计方法所所用的程序三大控制结构(顺序结构、选择结构、循环结构)语法知识,以复习回顾的方式引入讲解Java语言的程序控制结构知识(和 C语言用法一致),学生易于理解记忆。
2.具体讲解选择结构(if、switch)和循环结构语法(while、for、do-while)及其编程用法的典型程序编写举例,使学生理解掌握Java语言中控制结构的使用特点及编程技巧。
3.引入讲解Java语言的输入数据的两种方法,分别是:使用java.util.Scanner类取得输入和使用java.io.bufferedReader类取得输入。
将两种输入数据的编程方法融入到控制结构用法的编程举例的程序中,使学生对输入数据方法的能够有一定的理解掌握和编程使用,结合在后续第4章面向对象的程序设计的方法的具体学习中再加强理解和掌握。
4.课堂上通过练习和讲解第3章课后习题,加强和巩固学生对所学知识的理解和掌握使用。
兰州资源环境职业技术学院教师授课教案——————————————————————3.1 流程控制结构概述引例:要编写Java程序,首先要了解Java程序的结构。
例如:一个程序模拟用户从银行账户中取钱的业务过程。
public class demo {/** Creates a new instance of demo */public demo() { }public static void main(String args[]){double account ;double withdraw ;int count=0; //count为可提出的次数account=10000 ; //account为账户余额withdraw = 4023; /*withdraw为一次提出金额 *///如果余额不足提取,则提取失败并对用户进行提示if( withdraw > account){ System.out.println("You donnot have sufficient money to withdraw!");return ;}else //进行业务处理{ //提取现金while(account>withdraw){account=account-withdraw;count++;}System.out.println("You balance is $ " + account );System.out.println("You can withdraw $ "+ count+"times." );}}}说明:一个完整的Java程序包括主类、主函数、变量、常量声明语句、赋值语句、程序主体功能语句、控制语句以及注释语句等。
该程序中,有两个重要的语句结构,如: (1) (2)If() while() { … } { … } else { … }程序结构组成:这两种语句结构为本章要讲的选择结构和循环结构。
这两种语句结构和顺序结构共同构成Java 语言的基本语法结构。
顺序结构是最简单的程序结构,如图3-1所示。
3.2 选择结构一、If 语句形式11.if else 语句的形式为:if(条件判断){ 语句A ; } [ else{ 语句B ; } ] 2.举例:例如,下面程序判断a,b 值的大小:if (a>b)System.out.println("a>b") ; elseSystem.out.println("a<=b") ; 例如:if (a>0)System.out.println(a) ; 3.简化的if 分支语句形式:if (条件判断) { 语句A ; }流程图:它表达的逻辑关系如右图3-3所示。
二、if 语句形式2 1.引入:很多情况下,两个分支选择并不够用,有时需要多分支结构。
多分支选择的逻辑结构如图3-4所示。
说明:对于这种多分支选择结构,也可以用if else语句来表达。
将上面的逻辑结构图转化为if else结构的多分支选择逻辑结构,如图3-5所示。
2.嵌套的if else语句的多分支选择结构⑴格式:if (判断A1)语句A1;else{ if(判断A2)语句A2;else{if(判断A3)语句A3;else{……}}}⑵简化格式:if (判断A1)语句A1;else if(判断A2)语句A2;else if(判断A3)语句A3;……[ else语句; ]⑶编程用法举例:例如:表3-1学生成绩等级划分程序如下:int score=90;if (score>=90)System.out.println("A" );else if(score>=80)System.out.println("B" );else if(score>=70)System.out.println("C" );else if(score>=60)System.out.println("D" );elseSystem.out.println("E" );三、switch 语句内容引入:对于图3-4所示的分支选择结构,无论有多少个分支,理论上说都可以使用嵌套的if else语句表达。
但是,if else语句的嵌套层次太多容易造成程序结构不清晰。
Java程序允许使用一种专门的多分支选择语句——switch 语句来表达这种多分支结构,这简化了多分支结构的表达,使程序简明易懂。
1.switch语句的具体格式为:switch(整型或者字符型变量){case n1 :语句1;break;case n2 :语句2;break;case n3 :语句3;break;……case nn :语句n;break;[ default :语句n+1; ]}2.执行过程为:(1)求出switch括号内整型变量的值。
(2)将其值顺序地和n1.n2.n3 ……比较,如果整型变量值和某个n值相等,程序就转到这个n后面的语句开始执行,遇到break语句则跳出整个switch语句。
(3)如果整型变量值和任何n值都不等,则执行default后面的语句,最后跳出switch结构。
(4)default 子句可有可无。
3.格式说明:⑴switch 语句括号里面的类型只能是整数,或者是其他和整型兼容的数据类型(如char类型),不能是其他的数据类型(如String类型)。
⑵case后面只能是一个整型数据,不能是一个“>=”、“<”等符号的一个范围。
4.应用举例—成绩等级的问题。
//例程3-1:demoswith.javapublic class demoswitch {public demoswitch() { }public static void main(String args[]){ char rank;rank = 'A';switch(rank){case 'A':System.out.println("优秀"); break;case 'B':System.out.println("良好"); break;case 'C':System.out.println("中等"); break;case 'D' :System.out.println("及格"); break;default:System.out.println("不及格");}}}程序运行结果:优秀兰州资源环境职业技术学院教师授课教案——————————————————————3.3 循环结构循环:重复执行某段程序,直到循环条件不满足为止。
循环语句:for循环、while循环、do-while循环循环三要素:循环变量赋初值、循环条件、循环变量增量。
一、for循环语句1.for语句的格式:for(初始化循环变量;测试循环变量;修改循环变量 ){ 循环体; } Array 2.执行过程:先初始化循环变量,然后测试循环变量是否满足条件,不满足则跳出循环,满足就执行循环体里面的语句;接着修改循环变量的值,测试循环变量……,进行新一轮的循环。
3.for循环的逻辑结构如右图3-6所示。
4.编程举例:求解1+2+3+…+100的累加和。
【例程3-2 】 forDemo.javapublic class ForDemo {public ForDemo() { }public static void main(String args[]){int sum = 0;int i;//从1循环到100,每次把值加到sum中去for(i=1;i<=100;i++){ sum+= i; }System.out.println("1+2+3+ … + 100="+sum);}}运行结果为:1+2+3+ … + 100=5050二、while循环语句很多问题,事先是很难确定循环到底会执行多少次的,只知道循环执行的条件。