更正第一题:添加物品须在运行时从控制台输入;iPad 不适用于第一题
- 重写“4. 从控制台添加物品与运行案例”,明确 readLine 输入及重复、空输入、清单外物品的处理 - 学习范围补充 while、readLine 与可选值的最基本处理;考察重点补充“输入与更新” - 环境指南:iPad 不能用于第一题,新增控制台输入验证与中文输入报错处理 - 首页加入更正提示
This commit is contained in:
@@ -3,13 +3,15 @@
|
|||||||
> **正式版**(2026-10-01 发布)
|
> **正式版**(2026-10-01 发布)
|
||||||
> 第一、二题通过邮件提交,发送时间 **10 月 3 日至 10 月 7 日 23:59**,此前不接收提交 · 有问题在招新 QQ 群联系干部
|
> 第一、二题通过邮件提交,发送时间 **10 月 3 日至 10 月 7 日 23:59**,此前不接收提交 · 有问题在招新 QQ 群联系干部
|
||||||
|
|
||||||
|
> **2026-10-02 更正**:[第一题](tasks/01-basics.md)明确要求在程序运行时**从控制台输入**要添加的物品,不能通过修改源码里的数组来完成;iPad 的 Swift Playground 无法控制台输入,不能用于第一题。详见题面。
|
||||||
|
|
||||||
欢迎来到 ITStudio iOS 部国庆考核。我们希望通过两道共同题和一道选做题,了解你怎样学习基础编程、思考一个应用的用途,以及将想法做成作品。
|
欢迎来到 ITStudio iOS 部国庆考核。我们希望通过两道共同题和一道选做题,了解你怎样学习基础编程、思考一个应用的用途,以及将想法做成作品。
|
||||||
|
|
||||||
## 三道题
|
## 三道题
|
||||||
|
|
||||||
| 题目 | 你要完成什么 | 提交材料 | AI 使用规则 |
|
| 题目 | 你要完成什么 | 提交材料 | AI 使用规则 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| [第一题:出门检查器](tasks/01-basics.md) · 必做 | 学习 Swift 基础,独立编写并运行一个清单检查程序 | `main.swift`、真实运行截图 | 仅可辅助学习和讲解基础知识;解题、编码与排错须独立完成 |
|
| [第一题:出门检查器](tasks/01-basics.md) · 必做 | 学习 Swift 基础,独立编写并运行一个清单检查程序,运行时从控制台输入添加物品 | `main.swift`、真实运行截图 | 仅可辅助学习和讲解基础知识;解题、编码与排错须独立完成 |
|
||||||
| [第二题:为一个小麻烦设计 App](tasks/02-design.md) · 必做 | 形成自己的方案,用草图和操作示例说明 | 一份 `design.pdf` | 仅可辅助润色、排版和制图等表达工作;构思与设计由本人完成 |
|
| [第二题:为一个小麻烦设计 App](tasks/02-design.md) · 必做 | 形成自己的方案,用草图和操作示例说明 | 一份 `design.pdf` | 仅可辅助润色、排版和制图等表达工作;构思与设计由本人完成 |
|
||||||
| [第三题:把想法做成 App](tasks/03-development.md) · 选做 | 开发第二题方案,或数独游戏 | 在自己的 Gitea 仓库开发;无需提交,当面展示与考察 | 允许使用 AI 辅助开发,须亲自检查和说明 |
|
| [第三题:把想法做成 App](tasks/03-development.md) · 选做 | 开发第二题方案,或数独游戏 | 在自己的 Gitea 仓库开发;无需提交,当面展示与考察 | 允许使用 AI 辅助开发,须亲自检查和说明 |
|
||||||
|
|
||||||
@@ -18,7 +20,7 @@
|
|||||||
## 从这里开始
|
## 从这里开始
|
||||||
|
|
||||||
1. 阅读对应题面,尤其是每题的完成要求、提交材料和 AI 规则。
|
1. 阅读对应题面,尤其是每题的完成要求、提交材料和 AI 规则。
|
||||||
2. 配置环境:第一题不需要 Mac,按[开发环境配置指南](guides/environment.md)选择自己的路线。第一题的学习资源见题面;第二题可以复制[App 设计说明书(简版模板)](templates/design-document.md),在熟悉的文档工具中完成并导出 PDF。
|
2. 配置环境:第一题需要一台电脑(Windows / Mac 均可,不需要 Mac),按[开发环境配置指南](guides/environment.md)选择自己的路线。第一题的学习资源见题面;第二题可以复制[App 设计说明书(简版模板)](templates/design-document.md),在熟悉的文档工具中完成并导出 PDF。
|
||||||
3. 第三题在 git.itouc.cn 上新建自己的仓库开发(10 月 6 日前私有,10 月 6 日至 8 日公开);[development/](development/README.md) 提供数独路线的详细需求和基础材料。
|
3. 第三题在 git.itouc.cn 上新建自己的仓库开发(10 月 6 日前私有,10 月 6 日至 8 日公开);[development/](development/README.md) 提供数独路线的详细需求和基础材料。
|
||||||
|
|
||||||
## 提交安排
|
## 提交安排
|
||||||
|
|||||||
+24
-9
@@ -1,20 +1,20 @@
|
|||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
|
|
||||||
> 适用于 2026 iOS 部国庆考核。最后核对:2026-10-01。软件版本更新很快,遇到与本文不一致的界面或报错,保留截图在 QQ 群求助。
|
> 适用于 2026 iOS 部国庆考核。最后核对:2026-10-02。软件版本更新很快,遇到与本文不一致的界面或报错,保留截图在 QQ 群求助。
|
||||||
|
|
||||||
## 先看结论:我需要装什么?
|
## 先看结论:我需要装什么?
|
||||||
|
|
||||||
第一题只需要能运行 **Swift 命令行程序**,不需要 Mac,也不需要 Xcode;第三题要做 iOS App,才需要 Xcode(Mac)或 Swift Playground(iPad)。
|
第一题需要能运行 **Swift 命令行程序**,并能**在终端里输入**:不需要 Mac,也不需要 Xcode,但需要一台电脑,iPad 不行。第三题要做 iOS App,才需要 Xcode(Mac)或 Swift Playground(iPad)。
|
||||||
|
|
||||||
| 我的设备 | 第一题(命令行 Swift) | 第三题(SwiftUI App,选做) |
|
| 我的设备 | 第一题(命令行 Swift) | 第三题(SwiftUI App,选做) |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| **Windows 电脑** | Swift 工具链 + VS Code(见下文 Windows 部分) | 无法开发 iOS App;可用 iPad 或借用 Mac |
|
| **Windows 电脑** | Swift 工具链 + VS Code(见下文 Windows 部分) | 无法开发 iOS App;可用 iPad 或借用 Mac |
|
||||||
| **Mac,Apple 芯片(M 系列),系统 macOS Tahoe 26.6 及以上** | Command Line Tools 或 Xcode 27 + VS Code / 终端 | Xcode 27 |
|
| **Mac,Apple 芯片(M 系列),系统 macOS Tahoe 26.6 及以上** | Command Line Tools 或 Xcode 27 + VS Code / 终端 | Xcode 27 |
|
||||||
| **Mac,Intel 芯片或系统较旧** | Command Line Tools(能装上即可) | 按下表选择与系统匹配的旧版 Xcode |
|
| **Mac,Intel 芯片或系统较旧** | Command Line Tools(能装上即可) | 按下表选择与系统匹配的旧版 Xcode |
|
||||||
| **iPad(iPadOS 18 及以上)** | Swift Playground,在控制台查看输出 | Swift Playground 可以写 SwiftUI App |
|
| **iPad(iPadOS 18 及以上)** | **不适用**:Swift Playground 无法在控制台输入 | Swift Playground 可以写 SwiftUI App |
|
||||||
| **Linux** | 官方 Swift 工具链(swiftly)+ VS Code | 无法开发 iOS App |
|
| **Linux** | 官方 Swift 工具链(swiftly)+ VS Code | 无法开发 iOS App |
|
||||||
|
|
||||||
第一题只用到数组、循环、判断、函数和 `print`,都属于 Swift 标准库,在 Windows、macOS、Linux 上结果一致。本文示例程序已在 Swift 6.4(Linux)实际运行通过。
|
第一题只用到数组、循环、判断、函数、`print` 和 `readLine()`,都属于 Swift 标准库,在 Windows、macOS、Linux 上结果一致。本文示例程序已在 Swift 6.4(Linux)实际运行通过。
|
||||||
|
|
||||||
## 通用:安装 VS Code 与 Swift 扩展
|
## 通用:安装 VS Code 与 Swift 扩展
|
||||||
|
|
||||||
@@ -96,12 +96,13 @@ swift main.swift
|
|||||||
|
|
||||||
## iPad:Swift Playground
|
## iPad:Swift Playground
|
||||||
|
|
||||||
1. 在 App Store 安装 **Swift Playground**(需要 iPadOS 18 及以上)。
|
**第一题不能用 iPad 完成**:第一题要求从控制台输入,而 Swift Playground 的控制台只能显示输出,不能输入。只有 iPad 的同学,请尽快在招新 QQ 群联系干部协调电脑。
|
||||||
2. 在欢迎页点 **“新建 Playground”**,选择 **Book(游乐场书)**,得到一个空白的“My Playground”。**第一题不要选 App**,App 模板需要 SwiftUI 结构,不能直接写顶层代码。
|
|
||||||
3. 把代码写进去,点击 **“运行我的代码”**(Run My Code)。
|
|
||||||
4. 点击 **控制台**按钮查看 `print` 的输出(按钮上的圆点表示有新输出);第一题截图需要清楚显示控制台里的运行结果。
|
|
||||||
|
|
||||||
做第三题时再选 **App** 模板,用 SwiftUI 开发。
|
Swift Playground 可以用来练习语法和做第三题:
|
||||||
|
|
||||||
|
1. 在 App Store 安装 **Swift Playground**(需要 iPadOS 18 及以上)。
|
||||||
|
2. 练习语法:在欢迎页点 **“新建 Playground”**,选择 **Book(游乐场书)**,写代码后点击 **“运行我的代码”**,在 **控制台**查看 `print` 的输出。
|
||||||
|
3. 做第三题:选择 **App** 模板,用 SwiftUI 开发。
|
||||||
|
|
||||||
## 在线运行器(仅作临时备用)
|
## 在线运行器(仅作临时备用)
|
||||||
|
|
||||||
@@ -137,6 +138,19 @@ for item in items {
|
|||||||
|
|
||||||
这段代码只用来验证环境,不是第一题的答案。
|
这段代码只用来验证环境,不是第一题的答案。
|
||||||
|
|
||||||
|
### 再验证一下控制台输入
|
||||||
|
|
||||||
|
第一题要从控制台输入中文,建议同时验证这一点。把 `main.swift` 换成下面的内容,运行后输入“水杯”并回车:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
print("请输入一个物品:", terminator: "")
|
||||||
|
if let text = readLine() {
|
||||||
|
print("你输入的是:\(text),共 \(text.count) 个字")
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
看到 `你输入的是:水杯,共 2 个字`,说明输入正常。如果显示乱码、问号或字数不对,见下方“常见报错”。
|
||||||
|
|
||||||
## 常见报错
|
## 常见报错
|
||||||
|
|
||||||
| 报错或现象 | 原因与处理 |
|
| 报错或现象 | 原因与处理 |
|
||||||
@@ -149,6 +163,7 @@ for item in items {
|
|||||||
| 提示需要同意 Xcode 许可 | 运行 `sudo xcodebuild -license`,按提示同意 |
|
| 提示需要同意 Xcode 许可 | 运行 `sudo xcodebuild -license`,按提示同意 |
|
||||||
| `expressions are not allowed at the top level` | 同时编译了多个 `.swift` 文件;文件夹里只保留 `main.swift`,编译时只写这一个文件名 |
|
| `expressions are not allowed at the top level` | 同时编译了多个 `.swift` 文件;文件夹里只保留 `main.swift`,编译时只写这一个文件名 |
|
||||||
| `no such module 'SwiftUI'` 或 `'UIKit'` | 第一题不需要这些框架;删掉 `import` 那一行 |
|
| `no such module 'SwiftUI'` 或 `'UIKit'` | 第一题不需要这些框架;删掉 `import` 那一行 |
|
||||||
|
| 输入中文后显示乱码、问号,或程序认不出输入的物品 | Windows 先运行 `chcp 65001` 再运行程序;建议使用 Windows 终端(Windows Terminal)或 VS Code 内置终端。仍不行时,按第一题题面的说明把物品名称换成英文或拼音 |
|
||||||
| 中文输出乱码 | 确认 `main.swift` 以 UTF-8 保存(VS Code 右下角显示 `UTF-8`);Windows 可先运行 `chcp 65001` 再运行程序 |
|
| 中文输出乱码 | 确认 `main.swift` 以 UTF-8 保存(VS Code 右下角显示 `UTF-8`);Windows 可先运行 `chcp 65001` 再运行程序 |
|
||||||
| 提示找不到 `winget` | 在 Microsoft Store 安装或更新“应用安装程序”(App Installer) |
|
| 提示找不到 `winget` | 在 Microsoft Store 安装或更新“应用安装程序”(App Installer) |
|
||||||
| 下载很慢或失败 | 换网络(如校园网)重试,尽早开始,不要拖到最后 |
|
| 下载很慢或失败 | 换网络(如校园网)重试,尽早开始,不要拖到最后 |
|
||||||
|
|||||||
+51
-13
@@ -1,7 +1,7 @@
|
|||||||
# 第一题 出门检查器
|
# 第一题 出门检查器
|
||||||
|
|
||||||
- **类型**:基础语法与代码题(必做)
|
- **类型**:基础语法与代码题(必做)
|
||||||
- **基础要求**:Swift 基础语法
|
- **基础要求**:Swift 基础语法,含控制台输入
|
||||||
- **提交材料**:源码和真实运行截图
|
- **提交材料**:源码和真实运行截图
|
||||||
- **AI 规则**:仅可辅助学习和讲解基础知识,解题、编码与排错须独立完成
|
- **AI 规则**:仅可辅助学习和讲解基础知识,解题、编码与排错须独立完成
|
||||||
|
|
||||||
@@ -9,7 +9,9 @@
|
|||||||
|
|
||||||
出门前,你有一份“需要带的物品”清单,也知道哪些物品已经放进包里。请写一个程序,对照两份清单,告诉你还缺什么。
|
出门前,你有一份“需要带的物品”清单,也知道哪些物品已经放进包里。请写一个程序,对照两份清单,告诉你还缺什么。
|
||||||
|
|
||||||
本题是一道 Swift 基础练习:定义数组,编写并调用函数,再根据结果输出信息。输入数据直接写在代码中,不需要实现键盘输入或图形界面。
|
本题是一道 Swift 基础练习:定义数组,编写并调用函数,从控制台读取输入来更新清单,再根据结果输出信息。初始数据写在代码中;**往包里添加物品,必须在程序运行时从控制台输入**,不能通过修改源码里的数组再重新运行来完成。不需要图形界面。
|
||||||
|
|
||||||
|
> **2026-10-02 更正**:原题面“输入数据直接写在代码中,不需要实现键盘输入”的表述有误,现已更正为上述要求,并重写了“4. 从控制台添加物品与运行案例”。已按旧题面完成的同学,请把 B、C 两个案例改为从控制台输入;函数接口、输出要求和 D–F 案例不变。
|
||||||
|
|
||||||
## 任务详细要求
|
## 任务详细要求
|
||||||
|
|
||||||
@@ -24,7 +26,7 @@ var packedItems = ["手机", "校园卡", "钥匙"]
|
|||||||
|
|
||||||
- `requiredItems` 是本次需要带的物品。
|
- `requiredItems` 是本次需要带的物品。
|
||||||
- `packedItems` 是已经放进包里的物品,可能包含本次清单之外的东西。
|
- `packedItems` 是已经放进包里的物品,可能包含本次清单之外的东西。
|
||||||
- 初始数组使用上述变量名。`packedItems` 后续需要修改,因此使用 `var`;其他自定义变量的名称清楚即可。
|
- 初始数组使用上述变量名。`packedItems` 会在运行时根据控制台输入添加物品,因此使用 `var`;其他自定义变量的名称清楚即可。
|
||||||
- 本题保证每个数组内部没有重复名称,也没有空名称。名称按字符串完全相同判断,无需处理错别字、空格清理或模糊匹配。
|
- 本题保证每个数组内部没有重复名称,也没有空名称。名称按字符串完全相同判断,无需处理错别字、空格清理或模糊匹配。
|
||||||
- 缺少的物品应按 `requiredItems` 中的先后顺序返回。
|
- 缺少的物品应按 `requiredItems` 中的先后顺序返回。
|
||||||
- 本题只判断物品是否存在,不处理数量。
|
- 本题只判断物品是否存在,不处理数量。
|
||||||
@@ -60,29 +62,63 @@ func findMissingItems(required: [String], packed: [String]) -> [String]
|
|||||||
|
|
||||||
输出排版可以自行安排,只要信息清楚。标点、空格和数组的显示样式不要求与示例逐字一致。手机不在需要清单里,不影响结果。
|
输出排版可以自行安排,只要信息清楚。标点、空格和数组的显示样式不要求与示例逐字一致。手机不在需要清单里,不影响结果。
|
||||||
|
|
||||||
### 4. 数据修改与运行案例
|
### 4. 从控制台添加物品与运行案例
|
||||||
|
|
||||||
在同一个程序中完成 A–F:先检查初始数据,再向 `packedItems` 依次添加“水杯”和“耳机”,每次添加后重新调用函数并输出结果,得到 A、B、C。然后使用 D、E、F 的数据继续调用函数并输出。
|
在同一个程序、同一次运行中完成 A–F。
|
||||||
|
|
||||||
|
**A–C:从控制台添加物品**
|
||||||
|
|
||||||
|
1. 先检查初始数据并输出,得到案例 A。
|
||||||
|
2. 只要还有缺少的物品,就给出提示,用 `readLine()` 从控制台读取一行,作为要放进包里的物品名称,添加到 `packedItems`,再重新调用函数并输出结果。
|
||||||
|
3. 重复第 2 步,直到没有缺少的物品,输出准备齐全的提示。
|
||||||
|
|
||||||
|
处理输入时遵守以下规则:
|
||||||
|
|
||||||
|
- 输入的名称已经在 `packedItems` 里:提示它已经在包里,不重复添加。
|
||||||
|
- 输入的物品不在需要清单里:照常添加(和初始数据里的手机一样),不影响结果。
|
||||||
|
- 直接回车(输入为空)或读不到输入:结束添加,继续执行后面的案例。
|
||||||
|
- 名称仍按字符串完全相同判断。
|
||||||
|
|
||||||
|
录制运行截图时,请依次输入“水杯”和“耳机”,得到案例 B、C。交互过程的一种形式如下:
|
||||||
|
|
||||||
|
```text
|
||||||
|
缺少的物品:水杯、耳机
|
||||||
|
缺少数量:2
|
||||||
|
请输入放进包里的物品(直接回车结束):水杯
|
||||||
|
添加“水杯”后
|
||||||
|
已装入的物品:手机、校园卡、钥匙、水杯
|
||||||
|
缺少的物品:耳机
|
||||||
|
缺少数量:1
|
||||||
|
请输入放进包里的物品(直接回车结束):耳机
|
||||||
|
```
|
||||||
|
|
||||||
|
提示文字和排版可以自行安排。
|
||||||
|
|
||||||
|
**D–F:固定数据**
|
||||||
|
|
||||||
|
添加环节结束后,使用 D、E、F 的数据(写在代码中)继续调用函数并输出。
|
||||||
|
|
||||||
| 案例 | 需要带的物品 | 已装入的物品 | 函数应返回 |
|
| 案例 | 需要带的物品 | 已装入的物品 | 函数应返回 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| A 初次检查 | 校园卡、钥匙、水杯、耳机 | 手机、校园卡、钥匙 | 水杯、耳机 |
|
| A 初次检查 | 校园卡、钥匙、水杯、耳机 | 手机、校园卡、钥匙 | 水杯、耳机 |
|
||||||
| B 添加水杯后 | 校园卡、钥匙、水杯、耳机 | 手机、校园卡、钥匙、水杯 | 耳机 |
|
| B 输入“水杯”后 | 校园卡、钥匙、水杯、耳机 | 手机、校园卡、钥匙、水杯 | 耳机 |
|
||||||
| C 再添加耳机后 | 校园卡、钥匙、水杯、耳机 | 手机、校园卡、钥匙、水杯、耳机 | 空数组 |
|
| C 再输入“耳机”后 | 校园卡、钥匙、水杯、耳机 | 手机、校园卡、钥匙、水杯、耳机 | 空数组 |
|
||||||
| D 包里什么都没有 | 钥匙、水杯 | 空数组 | 钥匙、水杯 |
|
| D 包里什么都没有 | 钥匙、水杯 | 空数组 | 钥匙、水杯 |
|
||||||
| E 本次没有必带物品 | 空数组 | 手机 | 空数组 |
|
| E 本次没有必带物品 | 空数组 | 手机 | 空数组 |
|
||||||
| F 两份清单都为空 | 空数组 | 空数组 | 空数组 |
|
| F 两份清单都为空 | 空数组 | 空数组 | 空数组 |
|
||||||
|
|
||||||
C 输出准备齐全的提示;E、F 输出无需检查的提示。
|
C 输出准备齐全的提示;E、F 输出无需检查的提示。
|
||||||
|
|
||||||
|
如果你的终端无法正确读入中文(输入“水杯”后程序认不出来),先按[开发环境配置指南](../guides/environment.md)的“常见报错”处理;仍无法解决时,可以把两份清单中的物品名称统一换成英文或拼音(例如 `cup`、`earphones`),并在邮件正文说明,这不影响评价。
|
||||||
|
|
||||||
## 提交材料、方式与格式规范
|
## 提交材料、方式与格式规范
|
||||||
|
|
||||||
### 提交材料与格式
|
### 提交材料与格式
|
||||||
|
|
||||||
| 材料 | 格式与要求 |
|
| 材料 | 格式与要求 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 源码 | 文件名为 `main.swift`,使用 UTF-8 编码,包含函数、调用和 A–F 案例;保持缩进和命名清楚,必要处添加注释 |
|
| 源码 | 文件名为 `main.swift`,使用 UTF-8 编码,包含函数、调用、控制台输入和 A–F 案例;保持缩进和命名清楚,必要处添加注释 |
|
||||||
| 运行截图 | 使用 PNG 或 JPG,文字清晰,能辨认案例名称与实际输出,覆盖 A–F;可分多张,按 `run-01.png`、`run-02.png` 等顺序命名,JPG 使用相应扩展名 |
|
| 运行截图 | 使用 PNG 或 JPG,文字清晰,能辨认案例名称、控制台输入的内容与实际输出,覆盖 A–F;可分多张,按 `run-01.png`、`run-02.png` 等顺序命名,JPG 使用相应扩展名 |
|
||||||
|
|
||||||
源码和截图应来自同一个最终版本。允许裁去无关窗口,不得修改运行结果文字、拼造结果或用 AI 生成截图。未全部完成时可提交当前源码与实际结果,标注未完成处。
|
源码和截图应来自同一个最终版本。允许裁去无关窗口,不得修改运行结果文字、拼造结果或用 AI 生成截图。未全部完成时可提交当前源码与实际结果,标注未完成处。
|
||||||
|
|
||||||
@@ -94,7 +130,7 @@ C 输出准备齐全的提示;E、F 输出无需检查的提示。
|
|||||||
|
|
||||||
## 运行环境
|
## 运行环境
|
||||||
|
|
||||||
本题只需要能编译运行 Swift 命令行程序,**不需要 Mac**:Windows 可用 VS Code + 官方 Swift 工具链,Mac 安装 Command Line Tools 即可,iPad 可用 Swift Playground(新建 Playground 时选 Book)。具体步骤与常见报错见[开发环境配置指南](../guides/environment.md)。
|
本题需要能编译运行 Swift 命令行程序,并能在终端里输入,**不需要 Mac**:Windows 可用 VS Code + 官方 Swift 工具链,Mac 安装 Command Line Tools 即可。**iPad 的 Swift Playground 无法在控制台输入,不能用于本题**;没有可用电脑的同学,请尽快在招新 QQ 群联系干部协调。具体步骤与常见报错见[开发环境配置指南](../guides/environment.md)。
|
||||||
|
|
||||||
## 学习范围与资源
|
## 学习范围与资源
|
||||||
|
|
||||||
@@ -102,11 +138,12 @@ C 输出准备齐全的提示;E、F 输出无需检查的提示。
|
|||||||
|
|
||||||
- `let`、`var`,字符串与布尔值;
|
- `let`、`var`,字符串与布尔值;
|
||||||
- 数组的创建、遍历、添加、数量和空数组;
|
- 数组的创建、遍历、添加、数量和空数组;
|
||||||
- `if/else`、`for-in`;
|
- `if/else`、`for-in`、`while`;
|
||||||
- 函数参数、返回值和调用;
|
- 函数参数、返回值和调用;
|
||||||
- `print` 输出及字符串插值。
|
- `print` 输出及字符串插值;
|
||||||
|
- `readLine()` 读取一行控制台输入,以及用 `if let` 或 `??` 处理“可能读不到内容”的情况。
|
||||||
|
|
||||||
可从[菜鸟教程 Swift 目录](https://www.runoob.com/swift/swift-tutorial.html)按以上主题阅读。无需通读可选类型、结构体、类、闭包、泛型或 SwiftUI。遇到教程样例与所用版本不一致,可参考下列 Swift 官方说明或询问授课干部。
|
可从[菜鸟教程 Swift 目录](https://www.runoob.com/swift/swift-tutorial.html)按以上主题阅读。除 `readLine()` 用到的最基本写法外,无需深入可选类型,也无需学习结构体、类、闭包、泛型或 SwiftUI。遇到教程样例与所用版本不一致,可参考下列 Swift 官方说明或询问授课干部。
|
||||||
|
|
||||||
- [基础语法](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics/)
|
- [基础语法](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics/)
|
||||||
- [数组与集合](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/collectiontypes/)
|
- [数组与集合](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/collectiontypes/)
|
||||||
@@ -132,6 +169,7 @@ C 输出准备齐全的提示;E、F 输出无需检查的提示。
|
|||||||
- **变量与数据**:哪些数据会改变?为什么需要区分 `let` 和 `var`?数组怎样表示一份清单?
|
- **变量与数据**:哪些数据会改变?为什么需要区分 `let` 和 `var`?数组怎样表示一份清单?
|
||||||
- **条件与循环**:自己用到的判断和遍历在做什么?为什么能找出缺少的物品,并保留原清单的顺序?若用了标准库方法,能否说明它的作用?
|
- **条件与循环**:自己用到的判断和遍历在做什么?为什么能找出缺少的物品,并保留原清单的顺序?若用了标准库方法,能否说明它的作用?
|
||||||
- **函数与调用**:参数和返回值分别是什么?返回结果与打印结果有什么区别?换一组输入,函数为什么还能工作?
|
- **函数与调用**:参数和返回值分别是什么?返回结果与打印结果有什么区别?换一组输入,函数为什么还能工作?
|
||||||
|
- **输入与更新**:`readLine()` 读到的内容怎样进入数组?它的返回值为什么需要先处理“可能没有内容”?输入为空、重复或不在清单里时,程序怎样处理?
|
||||||
- **边界情形**:包为空、需要清单为空、全部带齐时分别会发生什么?为什么“全部带齐”和“本次无需检查”要区分?
|
- **边界情形**:包为空、需要清单为空、全部带齐时分别会发生什么?为什么“全部带齐”和“本次无需检查”要区分?
|
||||||
- **运行与检查**:能否运行自己的源码、对照案例检查输出;修改数据后,能否先预测结果,再运行验证?发现不一致时,能否说明自己的检查过程?
|
- **运行与检查**:能否运行自己的源码、对照案例检查输出;修改数据后,能否先预测结果,再运行验证?发现不一致时,能否说明自己的检查过程?
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user