当前课程知识点:高级语言程序设计 >  选择结构程序设计 >  3.1 为什么要用选择结构解决问题 >  为什么要用选择结构解决问题

返回《高级语言程序设计》慕课在线视频课程列表

为什么要用选择结构解决问题在线视频

为什么要用选择结构解决问题

下一节:如何正确表示选择结构中的条件

返回《高级语言程序设计》慕课在线视频列表

为什么要用选择结构解决问题课程教案、知识点、字幕

同学们好

今天我们一起来学习

选择结构程序设计这一章的知识

在学习选择结构这个知识之前呢

我要问大家一个问题

就是我们为什么要用选择结构

编写程序来解决问题

那么带着这样一个问题

我们用一个承上启下的例子

来和大家一起寻找答案

我们都知道

在前面学习过的顺序结构程序设计中

语句是按自上而下的顺序执行的

也就是说 执行完上一个语句

它就自动执行下一个语句

它是无条件的

也不必要做出任何的判断

我们记得

在顺序结构的学习中

曾经举过一个例子

我们一起回顾一下

这个例子讲的是

已知一元二次方程的三个系数

编程求ax2+bx+c=0这个方程的根

很显然

我们必须要用方程的系数来求根

那么方程中系数abc的值呢 由键盘输入

这个时候 假设abc的值

能够使得b2-4ac>=0成立

很显然 这个时候

一元二次方程

它肯定是有两个实根的

而且这两个实根

我们是可以用公式求出来的

那么求出来的第一个根

也就是x1

它等于(-b+√(b^2-4ac))/2a

求出来的第2个根呢 也就是x2

它等于(-b-√(b^2-4ac))/2a

那么在前面学习顺序结构时

这个求根的过程当中

大家可能会想到一个问题

什么问题呢 就是说

假如系数abc的值依然由键盘输入

但是在输入的时候

我们无法确定b2-4ac>=0是否成立

是吧 因为建立一个方程

它这个系数 它可以是任意的

那么这个时候方程求根的问题

该如何编程来解决呢

我想学过初等数学的人

应该都知道 有这样一个解题思路

这个时候我们首先要判断

b2-4ac>=0是否成立 对吧

如果成立我们就可以用公式

来求这个方程的两个实根

如果它不成立呢

那么这个方程很显然是没有实根的

按照这个思路

我们可以写出C程序的核心代码

很显然 处理问题的时候

对数据进行操作

我们是需要一些变量的

所以在代码里

我们定义了double类型的几个变量

它们分别是a b c disc x1 x2 p q

那么在这些变量当中a b c是系数

可以通过scanf语句输入abc的值

接下来呢 计算b2-4ac

这个时候是为了方便

后面能够书写简洁的代码

所以我们把这个b2-4ac表达式的值

赋给了disc变量

紧接着后面写了一对选择结构的语句

也就是if-else语句

那么大家可以看到这个if-else语句的结构

好这个时候大家一定要注意了

if后面它有一对圆括号

那么这个圆括号里写着disc>=0

也就是相当于b2-4ac>=0

意思就是说如果

if后面圆括号里的这个条件成立

那么它必须执行if下面

大括号里面的这些复合语句

由大括号括起来的这些语句是复合语句

在这些复合语句里

将-b/(2.0*a)表达式计算出来 赋给p

再将sqrt(disc)/(2.0*a)表达式也计算出来赋给q

接下来呢 把p+q的值赋给x1

把p-q的值赋给x2

很显然这个时候x1和x2的值

就是这个方程的实根

所以最后呢输出方程的这个实根

那么大家注意到

如果if后面的圆括号里的表达式它不成立

也就是disc小于零 该怎么办呢

那么这个程序就不会执行

if后面大括号的这个复合语句

它就会执行这个else后面的语句

这个else这个词是什么意思呢

else就表示if条件的否定

也就是满足disk小于零的条件

很显然 这个时候方程是没有实根的

那么就输出方程无实根的结果

所以我们可以通过这个例子呢

让大家能体会到

为什么用选择结构来解决问题

是因为处理问题时

要根据符合的某个条件

来决定执行的某一个操作

其实除了这个例子之外

还有很多情况下

都需要根据某个条件是否满足

来决定是否执行指定的操作任务

或者说从给定的两个或者多个操作中选择其一

下面我们可以简单的看一下几个小例子

这几个例子都需要用选择结构解决

第一个例子呢是要编程

判断一个学生的某门课的成绩是否及格

那么需要通过成绩score的值

大于等于60是否成立进行判断

最后得到相应的结果

第二个例子

就是判断某门课的成绩是否在ABCD等级

也是通过一些判断的条件

看成绩是否在ABCD等级的范围

来决定他的这个成绩的这样一个等级

第三个例子

是求abc三个实数的最大值

也是通过多次的条件判断

最后来确定最大值

第四个例子是将三个实数abc

进行由小到大的顺序进行排序

也是通过条件是否满足

来决定这些实数两两之间是否进行交换

从而得到最后的排序结果

好 既然很多时候

要用选择结构解决问题

那么在编程的时候

C语言给我们提供了哪些框架语句呢

其实 它提供了两种选择结构语句

一种是我们刚才已经用过的if语句

这个if语句呢

它是用来实现两个分支的选择结构

还有一种呢是switch语句

switch语句呢是用来实现多分支的选择结构

那么这两种语句呢在后面的章节中

我们将会和大家一起

来详细的学习

今天的这一节课就到这里 谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

为什么要用选择结构解决问题笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。