调整课次结构:前9节重新排序,新建第06课一维数组,后3节不变

This commit is contained in:
chengzi
2026-07-03 15:27:11 +08:00
parent 30f803784a
commit b973fb7825
29 changed files with 1301 additions and 13 deletions

View 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`,打印 `1n` 的下三角乘法表。第 `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`
---
## 课后作业
> 请完成本课对应的课后作业,见编程题文件。