第4章过程化语句及程序设计

合集下载

C++程序设计教程第四章

C++程序设计教程第四章

22
4.6 过程应用:求∏ 程序设计的目的是要用正确的方法解决实际问题. 对于软件工程来说,程序设计只是其中的一个环节. 程序设计的任务是根据给定的数据定义和算法(程序 模块),实现程序的编码和调试. 一个复杂性不大的小问题,可以将其看作是一个 过程,该过程具有输人,处理和输出. 程序设计方法有3个层次: (1) 简单的问题求解分析方法(过程化方法).它适 用于简单,孤立的问题求解.一般定义2-3个函数便 可解决. (2) 结构化程序设计方法.它适用于一个问题大小适 中,能够方便地分解成相对独立的几个功能模块,从 而用几个程序文件分别描述并调试实现之.
11
4.4 switch语句
switch语句是多分支选择语句.if语句是二分支选择 语句,但在实际问题中常常需要用到多分支的选择. switch语句的一般形式为: switch(表达式) { case常量表达式1:语句组1 case常量表达式2:语句组2 case常量表达式3:语句组3 default:语句组 n+1 }
4
例子: 用do…while实现上例求1+2+3+…+99+100的值: int i, sum=0; i=1; //循环变量初始化 do { sum=sum+i; i=i+1; //改变循环变量 } while (i<=100); //继续条件 注意:do-while循环至少执行一次,直到程序到 达循环体尾部遇到while时,才知道继续条件是 什么.在许多场合,do-while可以做while能做 的事.
12
例如,根据考试成绩的等级输出百分制分数段: char grade; //… switch (grade) { case'A': cout << "85 ~ l00 \ n"; case'B': cout << "70 ~ 84 \ n"; case'C': cout << "60 ~ 69 \ n"; case'D': cout << "< 60 \ n"; defau1t: cout << "error \ n"; }

c++第4章过程化语句

c++第4章过程化语句

} cout<<count<<endl; cout<<count<<endl; }
4.5 转向语句
1.break语句 break语句 break语句的作用是:结束当前正在执行的循环 ( for、 break 语句的作用是:结束当前正在执行的循环( for、 while和 do…while) 或多路分支( switch) 程序结构 , while 和 do…while) 或多路分支 ( switch) 程序结构, 转而执行这些结构后面的语句。 转而执行这些结构后面的语句。 2.continue语句 continue语句 continue语句的作用是:结束当前正在执行的这一次循环 continue语句的作用是:结束当前正在执行的这一次循环 (for、while和do…while),接着执行下一次循环。即 for、while和do…while) 接着执行下一次循环。 跳过循环体中尚未执行的语句, 跳过循环体中尚未执行的语句,接着进行下一次是否执 行循环的判定。 行循环的判定。(p65 图4-4) 3.goto语句 goto语句 goto语句的语法格式为: goto语句的语法格式为: goto 标号; 标号;
line
练习:输'a' && c<='z' || c<='Z') letters++; letters++; else if (c>='0' && c<='9') (c>='0 c<='9 digit++; digit++; else others++; others++; } } c>='A' &&

Pascal004语句与控制流程

Pascal004语句与控制流程
二级求精
1、输入数n1、n2、n3; 2-1 如果 n1>n2则, m←n1 2-2 否则 m←n2 3、如果 n3>m,则 m←n3
if 嵌套
if 聪明 then if 努力学习 then 计算机试点班
else 计算机普通班
else 其他专业
if ~ else 配对原则:
else总是和它上面离它 最近的未配对的if配对。
否则交换x、y的值后输出x、y。
(2)算法: 1、输入两个整数x、y; 2、如果x<y,输出x、y 3、否则,交换数值,输出x、y
11
(2)算法: 1、输入两个整数x、y; 2、如果x>y,交换数值; 3、输出x、y
定义中间变量z 2-1、将x的值赋给z; 2-2、将y的值赋给x; 2-3、将z的值赋给y;
18
开始
流程图
输入 Score


Score>=90


Score>=80


Score>=60
Level←'A' Level←'B' Level←'C'
Level←'D'
输出Level 结束
选择结构
• 多分支选择结构(二)
case语句
表达式K
case 表达式 of

常量k1:语句A1;
K=k1
begin y := 0; x + y := 78; × z := 25; √
end.
【例4-3-1】交换两个整型变量的值
program swap1;
var
x, y, z : integer;

第4章 过程化语句

第4章 过程化语句

return 0;
2019/}10/28
14
例4:找出从键盘输入若干数据中的最大和最小的数.
请同学们自己动手写一写程序.
提示: 最大和最小的数保存在哪? 如何设置最大数和最小数的初始值?
2019/10/28
15
例4:找出从键盘输入若干数据中的最大和最小的数.
#include <IOstream.h>
max= d;
}
cout << "\n其中最大值为: " << max << "\n其中最小值为: " << min << endl;
return 0; }
2019/10/28
16
例5. 文本加密,加密的规则设定为:
A->E, B->F,...,W->A,X->B,Y->C,Z->D a->e, b->f, …,w->a, x->b, y->c, z->d 其它的字符不变.
判断是还能被3、5、7同时 整除为重复执行的语句(循 环体)
ห้องสมุดไป่ตู้
2019/10/28
11
例2:程序代码
#include “iostream.h”
#include “iomanip.h” void main( )
循环控制条件
{ int a=1;
循环初值(入口)
while (a<1000) {
循环终值(出口)
if( a%3==0&&a%5==0&&a%7==0)
cout<<setw(4)<<a;

c++语言(第四章 程序流程控制结构)(第一部分)

c++语言(第四章 程序流程控制结构)(第一部分)

case 4:cout << "Thursday" << endl; break; case 5:cout << "Friday" << endl; break; case 6:cout << "Saturday" << endl; break; default: cout << "Day out of range \ Sunday .. Saturday" << endl; break; } }
IsLeapYear = ((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0)); 等价于: 等价于: if ((year %4 == 0 && year %100 !=0) || (year % 400 == 0)) (year { IsLeapYear = true; } else { IsLeapYear = false; }
If语句嵌套 If语句嵌套 if语句能够被嵌套,也就是说,一个if语句能够出 if语句能够被嵌套,也就是说,一个if语句能够出 语句能够被嵌套 现在另一个if语句里 语句里。 现在另一个if语句里。 现实生活中的各种条件是很复杂的, 现实生活中的各种条件是很复杂的,在一定的条 件下,又需要满足其它的条件才能确定相应的动作。 件下,又需要满足其它的条件才能确定相应的动作。 为此, 提供了if语句的嵌套功能 也即一个if 语句的嵌套功能, 为此,C++ 提供了if语句的嵌套功能,也即一个if 语句能够出现在另一个if语句或 -else语句里。 语句能够出现在另一个if语句或if-else语句里。 语句或if 语句里

过程化语句

过程化语句

例: int i,sum=0; i=1; while (i<= 10) { sum=sum+i; i++ ; }
//循环变量初始化 //循环条件 //循环体 //改变循环变量的值
思考:循环结束后i的值是多少?
使用循环语句时,一定要确保循环最终会终止,也即不会出现死循 环。因此,循环体内常常包含有改变循环条件表达式值的语句。
(7)表达式1可以作为循环变量定义
//逗号表达式
for(int i=1;i<=100;i++) sum+=i;
● for语句中的3个表达式并不一定需要存在。但是每个表达式后的分 号不能省略。如果3个表达式都省略,for语句的形式如下: for(;;) 语句 在循环体内必须有其他控制循环执行的语句,否则会形成死循环。 注 意 事 项 ● 表达式1如果省略或不是用来给循环变量赋初值,则应在for语句前 给循环变量赋初值。 ● 表达式2如果省略,则在for语句循环体内必须有其他控制循环执行 的语句,否则会形成死循环。 ● 表达式3如果省略或不是用来修改循环变量的值,则应在for语句循 环体内设置相应的语句。
可以灵活使用for语句 (1)表达式1可以省略 i=1; for(;i<100;i++) //分号不能省略 sum+=i; (2)表达式2可以省略 for (i=1;;i++) //等效于for(i=1;1;i++) { sum+=i; if(i>100) break; } (3)表达式3可以省略 for(i=1;i<=100;) sum+=i++; //i++起到表达式3的作用 (4)表达式1和表达式3可以同时省略 for(;i<=100;) sum+=i++;

《PHP程序设计基础教程》第4章 流程控制语句

《PHP程序设计基础教程》第4章 流程控制语句
第4章 流程控制语句
本章概述 本章的学习目标 主要内容
第1页
本章概述
程序流程控制在编程语言中占有非常重要
的地位,大部分的程序段都要依靠其来完 成。PHP脚本文件由一系列的语句构成, 如果没有流程控制语句,PHP程序将从第 一条PHP语句开始执行,一直运行到最后 一条PHP语句。流程控制语句用于改变程 序的执行次序,从而控制程序的执行
第21页
4.3 循环控制语句
在实际应用中,经常遇到一些操作并不复 杂但需要反复多次处理的问题。对于这类 问题,如果用顺序结构的程序来处理,将 是十分繁琐的,有时甚至是难以实现的, 为此,PHP中提供了循环语句来实现循环 结构的程序设计。
第22页
循环控制语句是指能够按照一定的条件重 复执行某段功能代码的代码结构。循环控 制语句分为以下4中:
,应用了break语句。return语句在应用环
境上较前两者相对单一,一般被用在自定
义函数和面向对象类中。本节将对这3种跳
转语句进行介绍。
第31页
break语句
break跳转语句用了结束当前的循环,包括 while循环语句、do…while循环语句、for 循环语句、foreach循环语句和switch分支 语句的执行。
况下,使用switch语句将使多分支选择结
构更加清晰。
第20页
switch语句根据variable的值,依次与 case中的value值相比较,如果不相等,继 续查找下一个case;如果相等 ,就执行对 应的语句,直到switch语句结束或遇到 break为止。一般switch语句的结尾都有一 个默认值default,如果在前面的case中没 有找到相符合的条件,则输出默认语句, 这和else语句类似。

《Visual Basic程序设计基础》习题

《Visual Basic程序设计基础》习题

《Visual Basic程序设计基础》教材习题第1章Visual Basic 6.0程序设计概述习题一、判断题1.Visual Basic是以结构化的Basic语言为基础、以事件驱动作为运行机制的可视化程序设计语言。

2.属性是Visual Basic对象性质的描述,对象的数据就保存在属性中。

3.同一窗体中的各控件可以相互重叠,其显示的上下层次的次序不可以调整。

4.在Visual Basic中,有一些通用的过程和函数作为方法供用户直接调用。

5.控件的属性值不可以在程序运行时动态地修改。

6.许多属性可以直接在属性表上设置、修改,并立即在屏幕上看到效果。

7.所谓保存工程,是指保存正在编辑的工程的窗体。

8.在面向对象的程序设计中,对象是指可以访问的实体。

9.决定对象是否可见的属性是Visible属性,决定对象可用性的属性是Enabled属性。

10.保存Visual Basic文件时,若一个工程包含多个窗体或模块,则系统先保存工程文件,再分别保存各窗体或模块文件。

11.xxx.vbp文件是用来管理构成应用程序xxx的所有文件和对象的清单。

12.事件是由Visual Basic预先定义的对象能够识别的动作。

13.事件过程可以由某个用户事件触发执行,它不能被其他过程调用。

14.窗体中的控件,是使用工具箱中的工具在窗体上画出的各图形对象。

15.同一个窗体文件只能用于一个工程中。

16.由Visual Basic语言编写的应用程序有解释和编译两种执行方式。

17.在打开一个Visual Basic工程进行修改后,要另存为一个版本,只需单击“工程另存为…”就行,因为系统将同时保存其他文件。

18.当用Load命令将窗体装入内存时,一定触发窗体的load事件和Activate事件19.“方法”是用来完成特定操作的特殊子程序。

20.“事件过程”是用来完成事件发生后所要执行的程序代码。

二、选择题1.工程文件的扩展名为。

A、.frxB、.basC、.vbpD、.frm2.以下4个选项中,属性窗口未包含的是。

过程化语句及程序设计

过程化语句及程序设计

三种基本结构
按照操作的执行顺序,程序可以分为三类基本结构: 顺序结构 选择结构 循环结构 1996年,计算机科学家Bohm和Jacopini证明:任何简 单或复杂的算法都可以由顺序结构、选择结构和循环 结构这三种结构组合而成。所以,这三种结构就被称 为程序设计的三种基本结构,也是结构化程序设计建 议采用的结构。
操作2
操作2
B
B
3、循环结构
在循环结构中,是反复地执行一系列操作,直到某 条件为假(或为真)时才终止循环。按照判断条件 出现的位置,可以分为while循环结构和until循环结 构。
while循环结构
while循环结构中,先判断条件,如下图所示。如果 A不大于1,则直接退出循环体到达流程出口处;如 果满足A大于1,执行操作1,并且在操作1结束后返 回到循环入口,重新判断条件;如果A还是大于1, 再次执行操作1,再返回结构入口„„,如此反复。
A X>1? 是 否 操作1
B
until型循环结构
until型循环结构中,在结构入口处先执行循环体, 然后再判断条件,如下图所示。当程序执行完操作1 后,判断A是否大于1。如果是,则再执行操作1; 然后再次判断A是否大于1;如果结果仍然为是,则 再次执行操作1„„
A 操作1 是
X>1? 否 B
循环结构
第一节 结构化程序设计
结构化程序设计是荷兰科学家E.W.Dijikstra在1965年 提出的 主要思想是通过分解复杂问题为若干简单问题的方 式降低程序的复杂性。 主要观点是采用自顶向下、逐步细化的程序设计方 法 同时严格使用三种基本控制结构构造程序。 三种基本控制结构是指顺序结构、选择结构和循环 结构。所有的程序结构都可以分解为这三个基本控 制结构。

《C语言程序设计》第四章 流程控制语句

《C语言程序设计》第四章 流程控制语句
40
第四章
流程控制语句
m=b; m=m*m; printf(“%d”,m); } A、14 B、16 C、18 D、20 4.4 下列程序的输出结果是: main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) {case 0:a++;break; case 1:b++;break; } case 2: a++;b++;break; case 3: a--;b--;break; default:a++;b--; } printf(“\n%d, %d”,a,b); } A、1,0 B、2,1 C、1,1 4.5 设 m 和 n 都是 int 类型,则 for 循环语句 for(m=0,n=0;m<=9&&n!=87;m++) scanf(“%d”,x); A、最多执行 10 次 B、最多执行 9 次 C、最多执行 87 次 D、一次也不执行 4.6 下述循环语句的循环次数为: int k=2; while(k=0) { k--; printf(“\n%d”,k); } A、无限次 B、0 次
例题 4 水手分椰子。五个水手在一个岛上发现了一堆椰子,由第一个水
手把椰子分为 5 等分,多出 1 个给了猴子,自己藏起 1 堆,第二个水手把 剩下的 4 堆椰子混合再分。他又分为 5 等分,多出 1 个给了猴子,自己藏 起 1 堆。第三、四个水手也同样来分,第五个水手把椰子分为 5 等分后, 正好多出 1 个给猴子,问这堆椰子有多少个? 这是一个古老的智力数学题,问题的原型出自加德纳发表在《科学的美国人》 1958 年第 4 期上的《数学游戏》一文。 问题分析:可以用迭代法解决这个问题:设某个水手面临 n 个椰子,则他前一 个水手面临的则为 5*n/4+1 个,依此类推,若某一个整数 m 经上述 5 次迭代都是整 数,则为最后的所求结果。 程序如下: main() { int n,k; float m; n=1; /*初始化每堆椰子数 m*/} m=5*n+1;

主要内容安排

主要内容安排

4.4 switch语句(续5)
例: 根据考试成绩的等级输出百分制分数段。
char grade;//… swith(grade) { case’A’: cout<<”85-100\n”;break;
case’B’: cout<<”70-84\n”; break; case’C’: cout<<”60-69\n”; break; case’D’: cout<<”<60\n”; break; default: cout<<”error\n”; }
主要内容安排
第一章:C++入门 第二章:基本数据类型与输入输出 第三章:表达式与语句 第四章:过程化语句 第五章:函数 第六章:程序结构 第七章:数组
第四章 过程化语句
4.1 while语句 4.2 do…while语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2
第四章 过程化语句
4.1 while语句 4.2 do…while语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2
小结
4.5 转向语句
主要内容:
一、break语句 二、cห้องสมุดไป่ตู้ntinue语句 三、goto语句
4.5 转向语句
一、break语句 引言:
char grade;//… swith(grade) { case’A’: cout<<”85-100\n”;
case’B’: cout<<”70-84\n”; case’C’: cout<<”60-69\n”; case’D’: cout<<”<60\n”; default: cout<<”error\n”; }

第4章 过程化语句

第4章 过程化语句
do
while (<表达式>)
<语句>
while (<表达式>);
<语句>
循环变量初始化
表达式
循环变量初始化
0
循环体
改变循环变量
非0
循环体
改变循环变量
非0
表达式
0
4.2 do…while语句
例2:统计输入的一行字符(直到 '#' 号为止)的个数。
分析: (1)统计数目需要一个计数器n ,n的初始值为0 。
结束
0
While & do…while语句
while语句与do…while语句的区别:
当 第 一 次 执 行 时 , 若 表 达 式 =0 时 , 则 while 语 句 与
do…while 有 所 不 同 , do…while 执 行 一 次 后 面 的 语 句 , 而
while不执行。
循环变量初始化
4.2 do…while语句
• 流程结构:
循环变量初始化
do
<语句>
循环体
改变循环变量
while (<表达式>);
非0
表达式
0
说明:(1)循环体至少执行一次。
(2)循环变量——在循环之前要进行初始化;在循环
过程中其值会发生变化,并最终使循环退出。
4.2 do…while语句
例:求1+2+3+……+100的值
输入半径radius
1. 分析:
(1)输入圆的半径radius
(2)检测:若radius<0,则重新
输入圆的半径radius;

[工学]第04章-流程控制语句

[工学]第04章-流程控制语句
第四章 流程控制语句
1
主要内容
本章介绍C++语言所提供语句的概况,并重点介绍条件语句、 循环语句、开关语句,是程序设计的基础,学习本章后,要求 掌握 C++ 各种过程化控制语句的结构,并理解常用的过程化程 序的实例,掌握其开发方法。

C++语言的语句和程序结构


选择结构语句
循环结构语句


控制执行顺序的其它语句
5
C++系统提供了三种基本算法结构,它们是: 1. 顺序结构,按语句在程序中的先后位置依次执行的结构。 2. 选择结构 用于控制程序执行的顺序。选择结构必须有一个用于判断的 条件,然后根据条件成立与否,即“真”和“假”来确定此后执行 哪个嵌套语句。
3. 循环结构 程序中的某些语句可能要反复执行多次才能达到目的,这种反复 执行的过程就是循环。用于循环结构的语句显然也是控制语句。 C++在执行程序时,只要未遇到控制语句,总是从上到下 (包括 从左到右)地顺序执行的。遇到控制语句时,则会根据条件来改变 从上到下的执行顺序。控制语句结束后,又恢复从上到下的顺序。
2024
2028 2032
2 9
a b
6 9
c
max
2036
10
【例3.1】 输入一个年份,判断是否闰年。 分析:假定年份为year, 闰年的条件是 : year%4==0&&year%100!=0||year%400==0。 程序如下: #include <iostream.h> void main( ){ int year; cout<<"输入年份:"<<endl; cin>>year; if (year%4==0&&year%100!=0||year%400==0) cout<<year<<"是润年"<<endl; else cout<< year<<"不是润年"<<endl; }

第四章过程化语句

第四章过程化语句

cin >> dval;
// 输入语句
C++程序设计课件 设计制作:徐龙琴
4
§选择控制语句
➢选择控制语句:又称为分支语句,它通过对给定的条件进行判断,从
而决定执行两个或多个分支中的哪一支。因此,在编 写选择语句之前,应该首先明确判断条件是什么,并 确定当判断结果为“真”或“假”时应分别执行什么样的 操作。
if(sex= =0)
If(height>=160) printf(“\npass”); else printf(“\n not pass”)
else if(sex= =1)
If(height>=168) printf(“\npass”); else printf(“\n not pass”); else printf(“\n error”); }
分析:设用sex表性别:为1时表男,0时表女。height表身高。 ①首先判断性别 ②再据不同的性格判断是否符合要求,若输入的性别不 是0和1,则给出提示错误。
据上可得程序流程图为:
C++程序设计课件 设计制作:徐龙琴
18
开始
输入
No
sex =0
sex =1
No
Yes
error
height>=168 Yes No
6
③ if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3
… else 语句 n
表达式1 真
语句1
假 表达式2 真
语句2
假 表达式3 真
语句3

表达式4 真
语句4
假 语句5
C++程序设计课件 设计制作:徐龙琴

C语言程序设计 流程控制语句

C语言程序设计 流程控制语句

4.1.2 if 语句的嵌套
if语句的三种形式的语句体中可以是任意的c语言语句, 包括if语句。如果if的语句体又是if语句,称为嵌套的if 语句。内嵌的if语句既可以嵌套在if子句,也可以在else 子句中。
例如: if (表达式1) if (表达式2) 例如:求a,b,c三个数中最大值
语句序列1;
常量表达式1
表达式
常量表达式n
其它
常量表达式2
语句1
语句2

语句n
语句n+1
说明: 1.switch后面括弧内的“表达式”和case常量表达式,可 以是任何类型。 2.当表达式的值与某一个case后面的常量表达式的值相 等时,就执行此case后面的语句,若所有的case中的常 量表达式的值都没有与表达式的值匹配的,就执行 default后面的语句。 3.每一个case的常量表达式的值必须不相等,否则就会 出现矛盾的现象(对表达式的同一个值,有多种执行 方案)
假(0)
结束,因此else之前有 一分号,整个语句结束处有一分号。 例: if(a>b) printf(“%d”,a); else printf (“%d”,b); 正确 if(a>b) printf(“%d”,a) else printf (“%d”,b); 错误
#include <stdio.h> main() {int magic=123; int guess; printf("Enter your guess:"); scanf("%d",&guess); if (guess==magic) printf("**Right**\n"); else if(guess>magic) printf("**Wrong**\nToo high**\n") else printf("**Wrong**\nToo low**\n");}

四章节程序流程控制语句

四章节程序流程控制语句

第六章
简单应用综合举例
第3页
§4-1 C语言语句概述
按照C语言语句的作用分类:
◆ 说明语句
声明变量名称、数据类型及 其存储属性的说明性语句
◆ 注释语句
编程者对程序本身的解释
◆ 程序流程控制语句 是“可执行”的语句, 构成程序的主体
第4页
§4-1 C语言语句概述-语句分类
表达式语句 赋值表达式+分号(;)
max<b
不成立
成立
max=b
以上两个程序等价
第 15 页
§4-4-1 选择语句-if语句
例C3_4102.C:从键盘输入被除数a和除数b,求商。
main( )
{ int a,b; printf("Enter two numbers: "); scanf("%d%d", &a, &b); if (b!=0) printf("%d\n", a/b); else printf("cannot divide by zero.\n");
else printf ("X=Y\n");
}
说明:在if-else语句中,一般采用“缩进”的书写 形式来表示“语句1”或“语句2”所属的层次。
注意:缩进仅是一种书写的形式,不具有逻辑意义
第 17 页
§4-4-1 选择语句-if语句
嵌套if-else语句的配对关系
例:if(a>b)
/*………………………………1 */
if (b==c) printf("a=b=c\n"); else printf(”a!=b\n”); 尽管书写格式如此,真实的正确的含义是:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例:求一元二次方程式ax2+bx+c=0的根。a,b,c的值在 运行时由键盘输入,它们的值满足b2-4ac≥0。 #include <iostream.h> //预处理命令 #include <cmath.h> //要用到数学函数sqrt,应包含头 文件cmath.h int main( ){ float a,b,c,x1,x2; //声明语句 cin>>a>>b>>c; //对象调用语句 x1=(-b+sqrt(b*b-4*a*c))/(2*a); //表达式语句 x2=(-b-sqrt(b*b-4*a*c))/(2*a); cout<<″x1=″<<x1<<endl; cout<<″x2=″<<x2<<endl; return 0; }
操作2
操作2
B
B
3、循环结构
在循环结构中,是反复地执行一系列操作,直到某 条件为假(或为真)时才终止循环。按照判断条件 出现的位置,可以分为while循环结构和until循环结 构。
while循环结构
while循环结构中,先判断条件,如下图所示。如果 A不大于1,则直接退出循环体到达流程出口处;如 果满足A大于1,执行操作1,并且在操作1结束后返 回到循环入口,重新判断条件;如果A还是大于1, 再次执行操作1,再返回结构入口„„,如此反复。
指定数据的类型和数据的组织 形式——数据结构(data structure)。
数据结构是一个个实体,是程序存储、组织数据的 方式; 而算法是将它们联系在一起的手段。
什么是算法
算法就是解决一个问题的完整的步骤描述,是指 完成一个任务准确而完整的步骤描述,也就是说给 于初始状态或数据,按照算法描述的步骤进行运算, 能够得出所要求或所期望的终止状态或输出数据。 解决一个问题的方法有高明的的,也有糟糕的;同 样,同一个问题的算法也存在优劣之分。 一个算法的优劣可以用空间复杂度与时间复杂度 来衡量。
if( )~else~
在if语句中,用括号中表达式的值来判断程序的流 向,如果表达式的值不为0(即为true),表示条件成 立;否则(即表达式的值等于0或false)表示条件不 成立。
A X>1?
A X>1? 是 否

是 操作1 B
操作1
操作2
B
if p44
if(条件表达式) 语句; 或 if(条件表达式) { 语句; } int main(){ int a,b,max; cout<<"\n input two numbers:"; cin>>a>>b; max=a; if (max<b) max=b; cout<<"max="<<max; }
第二节选择结构编程
C/C++语言提供了多种手段来实现选择结构:if语 句、switch语句、条件表达式和逻辑表达式。它们各 有优劣和适用的场景。 if语句是C/C++语言中实现选择结构最常用的方式。 当if语句和else语句组合时候时,可以实现更灵活更 复杂的选择结构。学会熟练地使用if语句是C/C++编 程的基础。
A X>1? 是 否 操作1
B
until型循环结构
until型循环结构中,在结构入口处先执行循环体, 然后再判断条件,如下图所示。当程序执行完操作1 后,判断A是否大于1。如果是,则再执行操作1; 然后再次判断A是否大于1;如果结果仍然为是,则 再次执行操作1„„
A 操作1 是
X>1? 否 B
循环结构
使用if语句中注意问题
1、表达式通常是逻辑表达式或关系表达式,但也可 以是其它表达式,如赋值表达式等,甚至也可以是一 个变量。例如,if(a=5)语句;if(b)语句;,都是允许的。 2、在if语句中,条件判断表达式必须用括号括起来, 在语句之后必须加分号。 3、在if语句中的3种形式中,所有的语句应为单个语 句,如果要想在满足条件时执行一组(多个)语句, 则必须把这一组语句用{}括起来。但要注意的是在} 之后,不能再加分号。
正确的配对。 用{}括起来的第三if不可见了
程序的改进
if(x>=0) if(x<50) cout<<〝x is ok\n〞 else cout<<〝x is not ok\n〞
if(x>=0 &&x<50) cout<<〝x is ok\n〞 else cout<<〝x is not ok\n〞
条件表达式中的==与=
C/C++语言中赋值运算符(= )和等于运算符(==) 只相差一个等号,前者多写一个“=”符号就变成 后者,而后者少写 “=”也变成前者。这种错误在 编程中十分常见。而且,这两种写法都是合法的写 法,编译器无法自动检测。如果这种错误出现在if 语句的判断表达式中,很可能出现期望外的,逻辑 完全不一样的程序。因此,编程时必须特别小心! 例:
解释1
解释2
if(x>=0) { if(x<50) cout<<〝x is ok\n〞 else cout<<〝x is not ok\n〞 }
if(x>=0) { if(x<50) cout<<〝x is ok\n〞 } else cout<<〝x is not ok\n〞
规则
if-else语句成对的规则:else连接到上面没有配对的且 为可见的if上。 if(条件) if(条件) { if(条件) 语句; } else 语句;
int a=1; if(a==2) cout<<"Yes\n"; else<<"No\n“ 输出:No
int a=1; if(a=2) cout<<"Yes\n"; else<<"No\n“ 输出:Yes
if的嵌套 二义性 p46
if(x>=0) if(x<50) cout<<〝x is ok\n〞 else cout<<〝x is not ok\n〞
三种本结构
按照操作的执行顺序,程序可以分为三类基本结构: 顺序结构 选择结构 循环结构 1996年,计算机科学家Bohm和Jacopini证明:任何简 单或复杂的算法都可以由顺序结构、选择结构和循环 结构这三种结构组合而成。所以,这三种结构就被称 为程序设计的三种基本结构,也是结构化程序设计建 议采用的结构。
第二节 顺序结构编程
掌握了数据类型、表达式以及基本的输入输出方法 后,就可以编写程序来解决一些简单问题。 例:交换两个变量 #include <iostream.h> //预处理命令 int main(){ int a=1, b=2; //定义待交换的两个整型变量,并赋值 int tmp; //定义一个整型变量作为中间交换用 cout<<"交换前:a="<<a<<",b="<<b<<endl; tmp=a; a=b; b=tmp; cout<<"交换后:a="<<a<<",b="<<b<<endl; }
A 操作1
操作2 B
2、选择结构
选择结构,也叫分支结构。选择结构的程序里存在 一些分支,程序通过对一些条件的判断选择执行的 分支。 按照分支数目,选择结构又可以分为单选择、双选 择和多选择三种形式。
A X>1?
A X>1? 是 否
1 2
A Type 4 3
是 操作1 B

操作1
操作2
操作1
操作2
1、顺序结构
在顺序结构的程序里,各操作是按照它们出现的 先后顺序执行的。 如下图所示,操作1和操作2按自上而下地顺序执行。 这是最简单的一种基本结构。这个结构里只有一个 入口点A和一个出口点B,其特点是从入口点A开始, 按顺序执行所有操作,直至出口点B处。事实上, 所有的程序的总流程总是一个顺序结构。
起止框
处理框
判断框
数据输入/输出 框
预定义处理 框
连接点
流线
N-S流程图
A A 操作1 操作2 B 顺序结构 A 是 操作1 B 选择结构 X>1? 否 操作2 B until结构 操作1 操作1 X>1? B while结构 A X>1?
由I.Nassi和B.Shneiderman在1973年提出。去掉了程 序流程图中的流程线(当程序流程复杂时,程序流 程图的流线使人眼花缭乱),将整个流程放在一个 大框中,使程序流程更清晰。
程序流程图
程序流程图是算法的图形描述方式。它使用一些简 单的几何图形来表示各种不同性质的程序操作,使 用流程线将各个图形连接起来,指示算法的执行过 程。由于流程图的符号统一,且画法简单,结构清 晰,逻辑性强,便于理解,因此成为描述程序流程 的主要方法。下图中的图形是流程图中常用的一些 标志。
常见程序流程图图形符号
语义:如果条件表达 式的值为真,则执行 其后的语句, 否则不 执行该语句。
if…else p45
int main() { int a, b; cout<<"\n input two numbers:"; cin>>a>>b; if(a>b) 语义:如果条件表达 cout<<"max="<< a; 式的值为真,则执行 else 语句1,否则执行语句 cout<<"max="<< b; 2。 } if(条件表达式) 语句1; else 语句2;
相关文档
最新文档