调整课次结构:前9节重新排序,新建第06课一维数组,后3节不变
This commit is contained in:
151
第03课-嵌套循环与图形打印/教案-学生版.md
Normal file
151
第03课-嵌套循环与图形打印/教案-学生版.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# 第5课:嵌套循环与图形打印
|
||||
|
||||
## 教学目标
|
||||
- 理解嵌套循环的执行流程(外层管行、内层管列)
|
||||
- 能分析图形规律,写出对应的行列公式
|
||||
- 掌握矩形、直角三角形、等腰三角形、菱形的打印方法
|
||||
- 掌握多层循环以及分支与循环相互嵌套
|
||||
|
||||
## 核心考点:嵌套循环中的行列关系
|
||||
|
||||
### 考什么
|
||||
根据图形推导每一行的________数和________数,再使用嵌套循环输出。
|
||||
|
||||
### 必须理解
|
||||
________循环负责行数,________循环负责当前行中的字符数量。等腰三角形第 i 行有________个前导空格、________个星号。
|
||||
|
||||
### 核心写法
|
||||
```cpp
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int j = 1; j <= ________; j++) cout << ' ';
|
||||
for (int j = 1; j <= ________; j++) cout << '*';
|
||||
____________________;
|
||||
}
|
||||
```
|
||||
|
||||
### 常见错误
|
||||
- 换行应写在内层循环里面还是外面?________________
|
||||
- 为什么内层循环的次数常常与 i 有关?________________
|
||||
- 行号从0开始时,能否直接使用从1开始的公式?________
|
||||
|
||||
### 判断是否掌握
|
||||
- [ ] 我能列出每行空格数和符号数。
|
||||
- [ ] 我能由行号推导数量公式。
|
||||
- [ ] 我能正确安排内外层循环与换行。
|
||||
|
||||
---
|
||||
|
||||
## 课堂编程题
|
||||
|
||||
### 课堂1:实心与空心矩形【适中】
|
||||
|
||||
**题目描述:** 输入行数 `n`、列数 `m` 和模式 `type`。当 `type=1` 时打印实心矩形;当 `type=2` 时打印空心矩形。
|
||||
|
||||
**输入格式:** 依次输入行数、列数和图形模式。
|
||||
|
||||
**输出格式:** 用星号打印指定矩形。
|
||||
|
||||
**数据范围:** `1≤n,m≤30`,`type` 为 1 或 2。
|
||||
|
||||
**输入样例:**
|
||||
```text
|
||||
3 5 2
|
||||
```
|
||||
|
||||
**输出样例:**
|
||||
```text
|
||||
*****
|
||||
* *
|
||||
*****
|
||||
```
|
||||
|
||||
**解题思路:** 双层循环枚举行列。实心模式总输出星号;空心模式只在首尾行或首尾列输出星号。
|
||||
|
||||
**易错提醒:** 每打印完一行才换行;`n=1` 或 `m=1` 时所有位置都在边界上。
|
||||
|
||||
### 课堂2:四种直角三角形【适中】
|
||||
|
||||
**题目描述:** 输入 `n` 和类型 `type`,打印边长为 `n` 的直角三角形:1 左下、2 右下、3 左上、4 右上。
|
||||
|
||||
**输入格式:** 输入三角形边长和图形类型。
|
||||
|
||||
**输出格式:** 指定方向的星号三角形。
|
||||
|
||||
**数据范围:** `1≤n≤30`,`1≤type≤4`。
|
||||
|
||||
**输入样例:**
|
||||
```text
|
||||
4 2
|
||||
```
|
||||
|
||||
**输出样例:**
|
||||
```text
|
||||
*
|
||||
**
|
||||
***
|
||||
****
|
||||
```
|
||||
|
||||
**解题思路:** 第 `i` 行星号数量为 `i` 或 `n-i+1`;右对齐时先输出相应数量空格。
|
||||
|
||||
**易错提醒:** 右对齐不是改变星号数量,而是在星号前补空格。
|
||||
|
||||
### 课堂3:等腰三角形与菱形【适中】
|
||||
|
||||
**题目描述:** 输入 `n` 和模式 `type`。模式 1 打印高为 `n` 的实心等腰三角形;模式 2 打印上下高度均为 `n`、中间行不重复的菱形。
|
||||
|
||||
**输入格式:** 输入图形高度和图形模式。
|
||||
|
||||
**输出格式:** 指定图形。
|
||||
|
||||
**数据范围:** `1≤n≤20`。
|
||||
|
||||
**输入样例:**
|
||||
```text
|
||||
3 2
|
||||
```
|
||||
|
||||
**输出样例:**
|
||||
```text
|
||||
*
|
||||
***
|
||||
*****
|
||||
***
|
||||
*
|
||||
```
|
||||
|
||||
**解题思路:** 上半部分第 `i` 行有 `n-i` 个空格和 `2i-1` 个星号;菱形下半部分按相反规律输出。
|
||||
|
||||
**易错提醒:** 菱形下半部分从 `n-1` 开始,避免中间最长行重复。
|
||||
|
||||
### 课堂4:九九乘法表【适中】
|
||||
|
||||
**题目描述:** 输入 `n`,打印 `1~n` 的下三角乘法表。第 `i` 行输出 `1×i` 到 `i×i`。
|
||||
|
||||
**输入格式:** 输入乘法表的最大因数。
|
||||
|
||||
**输出格式:** 下三角乘法表,每项格式为 `j*i=积`,项之间一个空格。
|
||||
|
||||
**数据范围:** `1≤n≤9`。
|
||||
|
||||
**输入样例:**
|
||||
```text
|
||||
3
|
||||
```
|
||||
|
||||
**输出样例:**
|
||||
```text
|
||||
1*1=1
|
||||
1*2=2 2*2=4
|
||||
1*3=3 2*3=6 3*3=9
|
||||
```
|
||||
|
||||
**解题思路:** 外层 `i` 控制行和第二个因数,内层 `j` 从 1 走到 `i`。
|
||||
|
||||
**易错提醒:** 内层上界是当前行号 `i`,不是固定的 `n`。
|
||||
|
||||
---
|
||||
|
||||
## 课后作业
|
||||
|
||||
> 请完成本课对应的课后作业,见编程题文件。
|
||||
Reference in New Issue
Block a user