调整课次结构:前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,158 @@
# 第6课一维数组
## 教学目标
- 掌握一维数组的定义、初始化和访问
- 能使用数组进行遍历、查找、统计等基本操作
- 理解数组逆序和冒泡排序的原理
## 核心考点:数组下标、遍历与越界
### 考什么
使用数组完成读入、统计、查找和排序并判断每个元素对应的________。
### 必须理解
长度为 n 的数组合法下标从________到________。`arr[i]` 表示第________个元素。访问 `arr[n]` 会发生________。
### 核心写法
```cpp
for (int i = ________; i < ________; i++) cin >> arr[i];
int maximum = ________;
for (int i = ________; i < n; i++) {
if (arr[i] > maximum) ____________________;
}
```
### 常见错误
- `i <= n` 为什么会越界________________
- 全是负数时最大值能否初始化为0________________
- "第5个元素"的下标是多少________
### 判断是否掌握
- [ ] 我能说出数组的首尾合法下标。
- [ ] 我能写出无越界的遍历循环。
- [ ] 我能用数组完成查找和打擂台。
---
## 题目一:数组入门 — 求最大值与平均值
### 核心代码(一句话)
> 数组遍历的核心:**`______`**,下标从 ______ 开始,到 ______ 结束;打擂台求最值,先请 ______ 当擂主。
### 自然语言思路
### 伪代码
```
1. 输入 n
2. 定义数组 ______
3. for i = 0 到 ______
4. 输入 ______ // 读入数组
5. maxVal = ______ // 擂主
6. sum = ______
7. for i = ______ 到 ______
8. if arr[i] ______ maxVal // 打擂
9. maxVal = ______
10. sum += ______ // 累加
11. avg = ________________ // 整数转浮点数
12. 输出 maxVal 和 avg
```
### 真实代码
```cpp
```
### 注意点
---
## 题目二:查找元素 — 找目标值
### 核心代码(一句话)
> 查找的核心:**遍历 + 比较 + ______**,找到了就记录位置并退出,用一个 ______ 表示"没找到"。
### 自然语言思路
### 伪代码
```
1. 输入 n, 数组 arr, target
2. index = ______ // 哨兵:默认没找到
3. for i = 0 到 ______
4. if arr[i] ______ target
5. index = ______
6. ______ // 找到就停
7. if index ______ -1
8. 输出 "找到,下标:" + index
9. else
10. 输出 "未找到"
```
### 真实代码
```cpp
```
### 注意点
---
## 题目三:数组逆序与冒泡排序
### 核心代码(一句话)
> 逆序的核心:**首尾交换,只换 ______**;冒泡排序的核心:**相邻两两比较______**,每轮确定一个最大值的位置。
### 自然语言思路
### 伪代码
**数组逆序**
```
1. for i = 0 到 ______
2. temp = ______
3. arr[i] = ______
4. arr[______] = temp
```
**冒泡排序**
```
1. for i = 0 到 ______ // 外层:第 i 轮
2. for j = 0 到 ______ // 内层:相邻比较
3. if arr[j] ______ arr[j+1]// 前面大就交换
4. temp = ______
5. arr[j] = ______
6. arr[j+1] = ______
```
### 真实代码
```cpp
```
### 注意点
---
## 本课打油诗
>
---
## 课后作业
1. 输入 n 个数,求第二大值(注意可能有重复最大值)
2. 输入 n 个数,将它们逆序存储后输出(不能用第二个数组)
3. 输入 n 个数,统计其中不同数字的个数
4. 输入 n 个数,使用冒泡排序从小到大排序后输出