Files
project1/第06课-一维数组/教案-学生版.md

159 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第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 个数,使用冒泡排序从小到大排序后输出