当前课程知识点:计算思维导论 > 第七章 问题求解 > 7.4 选择结构设计 > 图文教学

条件式是我们在程序中做一些判断时要用的句型,最常用的是比较两个数值的关系,其语法如下:
数值一 关系操作数 数值二
因为条件式本身还不是一行指令,所以后面是不用加分号 ; 的,而上面的关系操作数有:
< 小于
> 大于
= 等于 (注意,是两个等号)
<= 小于或等于
>= 大于或等于
<> 或 != 不等于

下面我们看一些例子:
变量 a 是否大于 9 : a > 9
变量 a 和 b 的值是否相等 : a = b
变量 c 是否小于等于 100 : c <= 9
变量 d 是否不等于 e : d != e
另外,有时候我们必须有两个以上的条件,则可以使用 and(与、且)及Or(或)将之连起来,例如:
变数 a 大于10 且小于 100: a>10 and a<100
变数 a 等于b 或等于 c: a=b or a=c
最后,如果我们在条件式的前面加上Not(否定),例如:
Not a>9 和 a<=9 是一样的。


接下来我们看到 if 语句的语法:
(1)单分支语句
if 条件式 语句
上面的语法是如果符合该条件,则执行语句。上述语句是单行形式,也可以写成块状形式:
if 条件式 then
语句
end if
示例:如果停电,则不上晚自习。
单行:if 停电 then 不上晚自习
块状:
if 停电 then
不上晚自习
endif

(2)双分支语句
有时候我们在条件不成立的时候也必需执行一些指令,这时候可以改用下面的语法:
if 条件式 语句一 else 语句二
上面 else 后面的语句二就是当条件不成立时所要执行的语句。当然也可以写成块状形式。
if 条件式 then
语句一
else
语句二
endif
示例:如果起床早,则坐公交,否则打的。
单行:if 起床早 then 坐公交 else 打的
块状:
if 起床早 then
坐公交
else
打的
endif

(3)多分支语句
有时候我们要执行的语句并不只一行,而是语句组,例如:
if 条件式
语句一
语句二
…
语句n
else
语句n+1
指令n+2
…
语句m
endif
上面的语法,当条件成立时程序会执行语句一至n,而当条件不成立的时候则是执行语句n+1至语句m。
注意:多分支语句没有单行形式。
示例:如果 中一等奖等,则新马泰旅游,否则如果 中二等奖,则港澳台旅游,否则如果 中三等奖,则张家界旅游,否则宅在家(没中奖)。
if 一等奖 then
新马泰
else if 二等奖 then
港澳台
else if 三等奖 then
张家界
else
宅在家
endif


示例1:奇偶判断问题
如下是判断一个整数奇偶性的伪代码
input x
if ____________________ then
output "even"
else
output "odd"
endif
解析:判断奇数与偶数要从该整数与2 的余数入手,如果该整数与2 的余数是1,说明该整数是奇数,如果余数是0,说明该整数是偶数。求余数的运算符伪代码是mod。故本例应该填 x mod 2 = 0,或者 x mod 2 != 0,“!=”是不等于。

示例2:求极值问题
如下是求三个整数中的最大值的伪代码
input a,b,c
max = a
if ______________ then
max = b
endif
if ______________ then
max = c
endif
output c
解析:求n个数中的最大值的方法是“打擂台算法”。所谓“打擂台算法”是指将第一个人送上擂台,成为擂主,台底下的人都需登上擂台,和擂主进行PK,如果挑战成功,则成为新擂主。同理,三个数中求最大值,先将a送上擂台,max=a,然后b登上擂台,和擂主max比较,如果b>max,则max=b,最后c登上擂台,和擂主max比较,如果c>max,则max=c。故,第一个空填b>max;第二个空c>max。

示例3:分段函数问题
已知函数
,写出伪代码和画出流程图。
解析:分段函数的分类个数为3,分别是x>0,x=0,x<0。显然,用多分支结构实现。
伪代码如下:
input x
if x>0 then
y=1
else if x=0 then
y=0
else
y=-1
endif
output y
流程图如下:

示例4:过马路问题
根据信号灯的颜色,判断是否可以过马路,注意请不要中国式过马路。红灯停,绿灯行。黄灯要减速。
解析:过马路问题有3个选择,红灯、绿灯和黄灯,俗话说“红灯停、绿灯行、黄灯亮了停一停”。显然,用多分支结构实现。设0代表红灯、1代表绿灯、其他数字代表黄灯。
伪代码如下:
input sign
if _____________ then
output "stop"
else if ____________ then
output "pass"
else
output "slow down"
endif
第一个空填sign=0;第二个空填sign=1
流程图如下:

-1.1 计算与计算思维1
--计算与计算思维1
--图文教学
--1-1 巩固练习--作业
-1.2 计算与计算思维2
--计算与计算思维2
--图文教学
--1-2 巩固练习--作业
-1.3 计算工具与计算机
--计算工具与计算机
--图文教学
--什么是摩尔定律?
--1-3 巩固练习--作业
-实验1-1 初识计算思维
--计算机发展简史
--这才是大学
--实验1-1 初识计算思维
-本章小结
--知识点回顾
--习题与解析
--章节自测--作业
-2.1 初识二进制
--初识二进制
--图文教学
--2-1 巩固练习--作业
-2.2 二进制的运算
--二进制的运算
--图文教学
--2-2 巩固练习--作业
-2.3 数制转换
--数制转换
--常见进制
--图文教学
--数制转换口诀
--2-3 巩固练习--作业
-2.4 数的表示
--数的表示
--图文教学
--负数补码问题
--2-4 巩固练习--作业
-2.5 字符编码
--字符编码
--图文教学
--汉字编码问题
--2-5 巩固练习--作业
-2.6 声音图像编码
--声音图像编码
--延伸学习:小趣闻
--图文教学
--2-6 巩固练习--作业
-本章小结
--知识点回顾
--习题与解析
--本章测验--作业
-3.1 计算机系统构成
--计算机系统构成
--图文教学
--3-1 巩固练习--作业
-3.2 主板
--主板
--图文教学
--主板的作用
--3-2 巩固练习--作业
-3.3 接口与总线
--接口与总线
--图文教学
--总线和接口的区别
--3-3 巩固练习--作业
-3.4 CPU
--CPU
--延伸学习:从沙子到CPU的制造过程告诉你造芯片到底有多难
--图文教学
--什么是主频?
--3-4 巩固练习--作业
-3.5 内存
--内存
--图文教学
--主流内存类型
--3-5 巩固练习--作业
-3.6 外存
--外存
--图文教学
--硬盘类型
--3-6 巩固练习--作业
-3.7 输入输出设备
--输入输出设备
--图文教学
--微机故障检测
--I/O设备
--3-7 巩固练习--作业
-3.8 计算机工作原理
--计算机工作原理
--图文教学
--人类与计算机
--3-8 巩固练习--作业
-3.9 操作系统1
--图文教学
--虚拟内存?
--3-9 巩固练习--作业
-3.10 操作系统2
--图文教学
--操作系统
--3-10 巩固练习--作业
-实验3-1 计算机原理与硬件组装
--上机实验3-1:计算机工作原理与硬件组装
-本章小结
--知识点回顾
--习题与解析
--章节自测--作业
-4.1 初识网络
--初识网络
--图文教学
--4.1 巩固练习--作业
-4.2 网络分类
--网络分类
--图文教学
--校园网
--4.2 巩固练习--作业
-4.3 网络体系结构
--网络体系结构
--图文教学
--4.3 巩固练习--作业
-实验4-1:简单网络布线
-4.4 网络设备
--网络设备
--图文教学
--4.4 巩固练习--作业
-实验4-2:将计算机添加到现有网络中
-4.5 局域网搭建
--局域网搭建
--图文教学
--4.5 巩固练习--作业
-实验4-3 无线路由器连接与设置
-4.6 IP与域名系统
--IP与域名系统
--图文教学
--4.6 巩固练习--作业
-实验4-4:测试无线连接
-4.7 划分子网
--划分子网
--图文教学
--子网掩码
--4.7 巩固练习--作业
-4.8 Internet 服务
--工信部部长谈5G
--图文教学
--4.8 巩固练习--作业
-4.9 数字公民与网络安全
--图文教学
--数字签名
--4.9 巩固练习--作业
-本章小结
--知识点回顾
--习题与解析
--章节自测--作业
-5.1 数据库基本概念
--数据库基本概念
--图文教学
--5.1 巩固练习--作业
-5.2 数据库的设计方法
--图文教学
--数据库的设计步骤
--5.2 巩固练习--作业
-5.3 数据库的规范化设计1
--图文教学
--为什么要规范化数据库设计?如果不规范化设计会有什么问题?
--5.3 巩固练习--作业
-5.4 数据库的规范化设计2
--图文教学
--规范化设计数据库
--5.4 巩固练习--作业
-5.5 ACCESS数据库的创建与查询
--图文教学
--主键与外键
--5.5 巩固练习--作业
-5.6 关系代数理论
--关系代数理论
--图文教学
--5.6 巩固练习--作业
-5.7 SQL语句查询
--SQL语句查询
--图文教学
--5.7 巩固练习--作业
-实验5-1:数据库设计与实现(PBL直播课)
-本章小结
--知识点回顾
--习题与解析
--章节自测--作业
-6.1 逻辑思维及其训练方法
--图文教学
--白马非马论
--6-1 巩固练习--作业
-6.2 命题及命题判断
--命题及命题判断
--图文教学
--命题判断条件
--6.2 巩固练习--作业
-6.3 命题符号化
--命题符号化
--图文教学
--蕴含运算符
--6-3 巩固练习--作业
-6.4 布尔代数与真值表
--布尔代数与真值表
--图文教学
--构造真值表
--6-4 巩固练习--作业
-6.5 命题演算和逻辑推理
--图文教学
--永真式和永假式
--6-5 巩固练习--作业
-实验6-1:用真值表进行逻辑推理(PBL录屏课)
-本章小结
--知识点回顾
--习题与解析
--章节自测--作业
-7.1 什么是问题求解
--什么是问题求解
--图文教学
--7-1 巩固练习--作业
-7.2 算法与算法描述
--算法与算法描述
--图文教学
--算法描述方法
--7-2 巩固练习--作业
-7.3 顺序结构设计
--顺序结构设计
--图文教学
--温度转换问题
--7-3 巩固练习--作业
-7.4 选择结构设计
--选择结构设计
--图文教学
--7-4 巩固练习--作业
-7.5 循环结构设计
--循环结构设计
--图文教学
--7-5 巩固练习--作业
-7.6 算法策略基础之数组
--图文教学
--7.6 巩固练习--作业
-7.7 算法策略基础之函数
--图文教学
--用户自定义函数
--7.7 巩固练习--作业
-实验7-1:Raptor的基本操作(PBL录屏课)
-7.8 算法策略之枚举法
--算法策略之枚举法
--图文教学
--7-8 巩固练习--作业
-7.9 算法策略之递归法
--算法策略之递归法
--图文教学
--德罗斯特效应
--7.9 巩固练习--作业
-7.10 算法策略之递推法
--算法策略之递推法
--图文教学
--7-10 巩固练习--作业
-7.11 算法策略之迭代法
--算法策略之迭代法
--图文教学
--7-11 巩固练习--作业
-实验7-2:算法设计与分析(PBL直播课)
-7.12 算法策略之分治法
--算法策略之分治法
--图文教学
--分治法思想
--7-12 巩固练习--作业
-7.13 算法策略之动态规划
--图文教学
--什么是动态规划?
--7-13 巩固练习--作业
-7.14 算法策略之贪心算法
--图文教学
--贪心策略
--7.14 巩固练习--作业
-7.15 算法策略之回溯法
--算法策略之回溯法
--图文教学
--回溯现象
--7-15 巩固练习--作业
-7.16 算法策略之查找算法
--图文教学
--7-16 巩固练习--作业
-7.17 算法策略之排序算法
--图文教学
--冒泡排序
--7-17 巩固练习--作业
-本章小结
--知识点回顾
--习题与解析
--章节自测--作业
-8.1 数据挖掘概述
--数据挖掘概述
--图文教学
--数据挖掘案例
--8-1 巩固练习--作业
-8.2 数据采集
--数据采集
--图文教学
--数据采集
--8-2 巩固练习--作业
-8.3 数据探索之数据质量分析
--图文教学
--异常值处理
--8-3 巩固练习--作业
-8.4 数据探索之数据特征分析
--图文教学
--帕累托法则
--8-4 巩固练习--作业
-8.5 数据特征分析之分布分析
--图文教学
--分组方法
--8-5 巩固练习--作业
-8.6 数据特征分析之统计分析
--图文教程
--加权平均数
--8-6 巩固练习--作业
-8.7 数据特征分析之统计分析(续)
--图文教学
--无量纲数
--8-7 巩固练习--作业
-8.8 数据预处理
--数据预处理
--图文教学
--数据预处理
--8-8 巩固练习--作业
-8.9 数据挖掘之分类
--数据挖掘之分类
--图文教学
--8-9 巩固练习--作业
-8.10 数据挖掘之预测
--数据挖掘之预测
--图文教学
--分类与预测
--8-10 巩固练习--作业
-8.11 数据挖掘之聚类分析
--图文教学
--聚类和分类
--8-11 巩固练习--作业
-8.12 数据挖掘之关联规则
--图文教学
--智能推荐系统
--8-12 巩固练习--作业
-本章小结
--知识点回顾
--习题与解析
--章节自测--作业
-期中考试(1-4章)
-期末考试(5-8章)







