当前位置:文档之家› 程序的控制结构分支循环举例

程序的控制结构分支循环举例


if(delta >= 0)
// 实根情况
cout << "x1 = " << p+q << endl << "x2 = " << p-q << endl;
else
// 存在共轭复根情况
{
cout << "x1 = " << p << " + " << q <<"i"<< endl;
cout << "x2 = " << p << " - " << q <<"i"<<endl;
结论:理论上已经证明,用以上三种基本程序结构的组合可以实现任何复杂的算法。
三大基本结构示意图
顺序结构 选择结构
模块(语句)A 模块(语句)B
循环结构
(当型循环)
条件
不成立
成立
程序模块
成立 程序模块1
条件
不成立
程序模块2
成立
(直到型循环) 程序模块
条件 不成立
顺序结构的实现
r = p; p = q; q = r;
#include <iostream>
using namespace std;
int main()
{ int grade;
cout<<"请输入(百分制)分数:";
cin >>grade;
switch (grade/10)
// 根据转换值进行分支选择
{
case 10:
case 9:
cout<<"优秀"<<endl;
else if(( a==0 ) && (b != 0))
// 转换为一元一次方程情况
cout << "x1 = x2 = " << -c/b << endl;
else
// 一般情况
{
delta = b*b-4*a*c;
p = -b/(2*a);
q = sqrt(fabs(delta))/(2*a);
break;
case 8:
cout<<"良好"<<endl;
break;
case 7:
cout<<"中等"<<endl;
break;
case 6:
cout<<"及格"<<endl;
break;
default:
cout<<"不及格"<<endl;
}
return 0;
}
3.3 循环结构
C++语言中实现循环结构的语句形式主要有三种: while语句 do-while语句 for语句
}
}
return 0;
}
2. switch语句
多路(开关)选择语句 :
switch (表达式)
{
case 数值1:
语句序列1;
case 数值2:
语句序列2;
case 数值3:
语句序列3; ...
数值1
default: 语句序列n;
语句序列1
}
表达式的值等于?
数值2
数值3
语句序列2
语句序列3

其他 语句序列n
while语句 |
do-while语句
当型循环
直到型循环
while (表达式)
do
{ 语句序列
{ 语句序列
}
} while (表达式);
循 环
循 环 体

条件? 不成立 成立
语句序列
成立
语句序列
条件? 不成立
案例:谁打烂了玻璃?
有四个小孩踢皮球,不小心打烂了玻璃,老师问是谁干的。
A说:不是我
B说:是C
C说:是D
D说:他胡说
现已知3个小孩说的是真话,一个小孩是假话。根据这些信息,编程找出打烂玻璃的 孩子。
int main()
{ double a, b, c, delta, p, q;
cout << "请输入系数a, b, c = ";
cin >> a >> b >> c;
if(( a==0 ) && ( b==0 ) && ( c==0 ))
// 最极端情况
cout << "方程的根可为任意值" << endl;
程序的控制结构分支循环举例
2020/11/26 1
教学目标
(1) 理解控制语句的作用和分类,掌握相关语句的使用方法; (2) 了解使用伪代码或流程图描述算法的方法。
基本内容
3.1 基本控制结构 3.2 选择结构 3.3 循环结构
3.1 基本控制结构
三大基本程序结构: 顺序结构:程序是按程序语句或模块在执行流中的顺序逐个执行。 选择结构:程序是按设定的条件实现程序执行流的多路分支。 循环结构:程序是按给定的条件重复地执行指定的程序段或模块。
int i; cout<<"请输入(百分制)分数:"; cin>>i; if(i>=60)
cout<<"及格"<<endl; else
cout<<"不及格"<<endl; return 0; }
例 3-3:求一元二次方程的根
#include <iostream>
#include <cmath>
using namespace std;
例 3-1 交换两个变量的值
#include <iostream>
using namespace std;
int main()
{
int a=1, b=2;
int tmp;
// 定义一个整型变量作为中间交换之用
cout << "交换前:a= " << a << ", b= " << b << endl;
图3.6 switch语句
实现真正的多路选择 在每一个case模块的最后加上一个break语句
表达式的值等于?
数值1
数值2
数值3
语句序列1 语句序列2
语句序列3

其他 语句序列n
图3.7 与break语句连用的switch语句
例3.2 百分制化为优秀、良好、中等、及格和不及格的五级制成绩
算法分析: 取一个百分成绩经过运算得到5级制成绩。构造什么样的表达式呢? “百分成绩/10 =” ? 共有5个分数档,选择分支大于2,因此用多路开关语句switch。 计算结果应该是唯一的。转换后应从switch中break出来。
tmp = a;
a = b;
b = tmp;
cout << "交换后:a= " << a << ", b= " << b << end 选择结构
C++语言中实现选择结构的语句形式主要有两种: if语句 switch语句
一路分支: if (表达式) 语句序列
1. if语句
两路分支: if (表达式) 语句序列1 else 语句序列2
条件? 成立
语句序列
不成立
成立
不成立 条件?
语句序列 1
语句序列 2
语句序列可以是一个语句,也可以是用花括号括起来的复合语句结构
例 3-2:判断成绩是否及格
#include <iostream> using namespace std; int main() {
相关主题