没有合适的资源?快使用搜索试试~ 我知道了~
03 教师用书_第3章_分支结构 2017021
需积分: 0 0 下载量 43 浏览量
2022-08-03
12:47:48
上传
评论
收藏 1.71MB PDF 举报
温馨提示
试读
27页
第 3 章 分支结构3.1 教学要点本章通过典型程序解析,主要介绍分支结构程序设计的思想和实现方法,并介绍字符类型和逻辑运算等语言知识。使学生理解 else-i
资源详情
资源评论
资源推荐
第 3 章 分支结构
3.1 教学要点
本章通过典型程序解析,主要介绍分支结构程序设计的思想和实现方法,并介绍字符类
型和逻辑运算等语言知识。使学生理解 else-if 语句和 switch 语句的执行机制以及能综合运
用编写分支结构类的程序。
3.1 节通过引例“简单的猜数游戏”, 主要介绍分支结构的特征以及实现分支结构的
if-else 语句和 else-if 语句三个知识点。教师在讲授时,应详细介绍上述三个知识点,特别是
else-if 语句的执行机制(流程),使学生能使用 else-if 结构进行多分支程序的设计。
3.2 节通过引例“四则运算”, 引入字符类型、逻辑运算。教师在讲授时,应重点介绍字
符类型的特征、字符的 ASCII 码、逻辑运算符以及逻辑表达式的表示方法,并结合示例说
明对字符类型数据的处理方法。
3.3 节通过引例“查询自动售货机中商品的价格”,主要介绍 switch 语句以及多分支结
构的程序设计。教师在讲授时,应重点介绍 switch 语句的语法结构,可根据 break 语句的使
用方式分三种情况介绍,对 switch 后的表达式以及 case 后的常量表达式应作重点说明。使
学生能使用 switch 结构进行分支程序的设计。在此基础上,分析多分支结构的程序设计方
法,重点介绍嵌套的 if 结构实现方法,特别是 else 与 if 的配对问题。
讲授学时:4 学时,实验学时同讲授学时。
本章的知识能力结构图见图 3.1。
图 3.1 知识能力结构图
字符型
(char)
字符型特征
常量与变量
输入
输出
逻辑表达式
逻辑运算符
! && ||
逻辑表达式
多分支程序
设计
else-if 语句
switch
语句
嵌套的
if
能根据实际情况合理使用
合理使用 scanf()、getchar()
合理使用 printf()、putchar()
能根据实际情况合理使用
能根据实际情况合理使用
3.2 讲稿
1
本章分 3 节。
2
提出本章的学习要点。
3
借助引例提出要解决的问题,并简要分
析,提供思路,指出与第 2.3 节学习的二
分支结构的异同。
可以通过运行例 3-1 程序,让学生感受多
分支的场景。
本节介绍为解决这个问题所编写的程序
和涉及到的语言知识。
4
具体分析示例的处理流程,提出问题:
猜数与被猜数的关系有几种情况?
各种情况如何表述?
如何一一对应结果?
程序如何实现?
Chap 3
3.1
3.2
3.3
!
! switch break
!
!
3.1
3.1.1
3.1.2 if – else
3.1.3 else – if
1~100
3.1.1
3-1
yournumber(1~100)
mynumber
yournumber vs mynubmer3
! yournumber == mynumber
! yournumber > mynumber
! yournumber < mynumber
if (==) ok
else
if (>) bigger
else smaller
5
展示、运行例 3-1 程序,并概要解读程序:
(1)程序运行过程:
输入一个整数;
判断该整数与计算机指定数的关系,并显
示结果。
(2)简要分析判断条件和 if 结构。
(3)提示:多层缩进的书写格式,使程
序层次分明。
提示:强烈推荐养成“{语句}”的 好 习 惯 ,
即使只有一条语句。如本例中 if 语句。在
Dev-C 环境下,这样写能自动调整对齐为
多层缩进的格式,使程序层次分明。
6
二分支结构说明:
(1)基本的 if 语句的一般形式;
(2)执行流程
注意事项:
语句 1 和语句 2 必须且只执行其中一个;
else 部分可省略;
if-else 是一条语句;
语句 1 和语句 2 只允许一条语句,否则应
用{}把这些语句括起来组成复合语句。
提示:强烈推荐养成“{语句}”的 好 习 惯 ,
即使只有一条语句。
7
举例说明二分支结构程序设计。
本例是标准的 if-else 结构。
使用求余运算符“%”表达条件:
如何判断一个数是偶数?
number % 2 == 0
设问:
如何判断一个数是奇数?
number % 2 != 0
如何判断一个数是 3 的倍数?
number % 3 == 0
……
8
展示、运行程序。
提示:强烈推荐养成“{语句}”的 好 习 惯 ,
即使只有一条语句。如本例中 if 语句。
在 Dev-C 环境下,这样写能自动调整对齐
为多层缩进的格式,使程序层次分明。
-
# include <stdio.h>
int main (void)
{
int mynumber = 38;
int yournumber;
printf ("Input your number: ");
scanf ("%d", &yournumber);
if (yournumber == mynumber){
printf ("Ok! you are right!\n");}
else{
if (yournumber > mynumber ){
printf ("Sorry! your number is bigger than my number!\n");}
else{
printf ("Sorry! your number is smaller than my number!\n");}
}
return 0;
}
Input your number:48
Sorry! your number is bigger than my number!
Input your number:38
Ok! you are right!
3.1.2 if-else
if (
else
if (
(0)
(0)
(0) (0)
3-2
1
if (2)
else
number % 2 == 0
-
#include <stdio.h>
int main (void)
{ int number;
printf ("Enter a number: ");
scanf ("%d", &number);
if (number % 2 == 0){
printf ("The number is even. \n");
}
else{
printf("The number is odd. \n");
}
return 0;
}
Enter a number: 329
The number is odd.
Enter a number: 1028
The number is even.
9
本例综合运用循环和分支。建议先运行程
序,使学生感受场景。
首先引导学生理解问题的要求,输入什
么?要求输出什么结果?如何处理?如
何构建程序结构?抓住主要矛盾!
为计算平均分需要计算 n 个学生的总成
绩,故需要一个变量(total)来存放;为
统计不及格人数,也需要一个变量(count)
来计数。
重复 n 次,每次输入 1 个成绩,然后累加
其分值到 total,若不及格,则还需计数至
count。
10
展示、运行程序,注意提醒:
(1)变量 total、count 初值置零;
(2)for 循环体内 printf 函数是输入的提
示信息,锦上添花之举,非主要矛盾;
(3)最后运算结果必须在全部处理完后
输出,故输出在 for 语句后。
11
重点说明:
结合例 3-1,该例即有三个分支;
else-if 语句是实现多路选择最常用的方法
之一;
详细解释 else-if 的一般形式。
提示:else-if 语句的书写格式为左对齐。
在 Dev-C 环境下,能自动调整对齐。
12
重点说明 else-if 语句的执行流程:
按书写顺序逐个比较,一旦符合条件则执
行相应语句。
3-3 nn
for(i = 1; i <= n; i++){
1grade
total
count
}
#include <stdio.h>
int main (void)
{ int count, i, n;
double grade, total;
printf ("Enter n: "); scanf ("%d", &n);
total = 0; count = 0;
for (i = 1; i <= n; i++){
printf ("Enter grade #%d: ", i);
scanf ("%lf", &grade);
total = total + grade;
if (grade < 60){
count++;}
}
printf ("Grade average = %.2f\n", total/n);
printf ("Number of failures = %d\n", count);
return 0;
}
-
Enter n: 4
Enter grade #1: 67
Enter grade #2: 54
Enter grade #3: 88
Enter grade #4: 73
Grade average = 70.50
Number of failures = 1
else
if (1)
1;
else if (2)
2;
else if (n-1
n-1;
else
n;
3.1.3 else – if
else-if
if (1) 1
else if (2) 2
else if (n-1n-1
else n
n-1
n
n-1
nn-1
else – if
13
改写例 3-1,并作比较与分析,体会多分
支的实现方式,并引入嵌套 if 的概念。
提示:else-if 语句的书写格式为左对齐。
在 Dev-C 环境下,能自动调整对齐。
14
对例 2-4 分段计算水费问题的完善,增加
输入小于 0 的情况。
练习使用 else-if 语句实现。
15
分析程序结构、运行程序,输入 3 个不同
区间值 x,查看运行结果,必要时可单步
运行程序。
设问:
是否还需要增加测试数据 x?为什么?若
要增加,应输入多少?
答:最好再增加两组测试用例,因为尚未
对分段函数参数的边界值进行测试。可再
给出 x=0 和 x=15 时的两种情况。
本例至少需要 5 组测试数据。
16
借助引例提出要解决的问题,并简要分
析,提供思路,可与练习 2-9 整数四则运
算进行比较,指出输入数据、运算结果的
异同。
可以通过运行例 3-5 程序,让学生感受场
景。
本节介绍为解决这个问题所编写的程序
和涉及到的语言知识。
3-1else-if
if (yournumber == mynumber)
printf ("Ok! you are right!\n”);
else if (yournumber > mynumber )
printf ("Sorry! your number is bigger than my number!\n");
else
printf ("Sorry! your number is smaller than my number!\n");
if (yournumber == mynumber){
printf ("Ok! you are right!\n");}
else{
if (yournumber > mynumber ){
printf ("Sorry! your number is bigger than my number!\n");}
else{
printf ("Sorry! your number is smaller than my number!\n");}
}
2-4
3-42-4
y
!
!
"
!
!
#
$
>−
≤≤
<
==
1551052
150
3
4
00
,x.x.
x,
x
,x
f(x)y
-
# include <stdio.h>
int main (void)
{
double x, y;
printf ("Enter x:");
scanf ("%lf", &x);
if (x < 0){
y = 0;
}
else if (x <= 15){
y = 4 * x / 3;
}
else{
y = 2.5 * x - 10.5;
}
printf ("f(%.2f) = %.2f\n", x, y);
return 0;
}
Enter x: -0.5
f(-0.50) = 0.00
Enter x: 9.5
f(9.50) = 12.67
Enter x: 21.3
f(21.30) = 42.75
00
4
( ) 0 15
3
2.5 10.5 15
x
x
yfx x
xx
<
!
"
"
== ≤≤
$
"
− >
"
&
Enter x: ?
Enter x: ?
3.2
3.2.1
3.2.2
3.2.3
3.2.4
剩余26页未读,继续阅读
love彤彤
- 粉丝: 33
- 资源: 311
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0