1. 项目背景与核心价值
《B4495 [GESP202603 一级] 交朋友》这个看似简单的编程题目,实际上蕴含着计算机科学中基础的逻辑训练和算法思维培养。作为GESP(青少年编程能力等级考试)一级的典型题型,它考察的是初学者对条件判断、输入输出处理等基础编程概念的掌握程度。
这类题目通常要求考生编写程序,根据输入的年龄差判断两个人是否能成为朋友。在实际教学中,我们发现这种生活场景化的题目特别适合编程入门者——它把抽象的编程概念转化为"交朋友"这个具体行为,让8-12岁的孩子能够直观理解程序逻辑与现实生活的对应关系。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 题目要求深度解析
2.1 典型题目示例
假设题目具体描述为:
"输入两个人的年龄a和b(0<a,b≤100),如果两人年龄差不超过5岁,输出'可以成为朋友',否则输出'暂时不能成为朋友'。"
2.2 核心考察点拆解
- 基础输入输出:如何接收用户输入并格式化输出结果
- 条件判断结构:if-else语句的正确使用
- 算术运算:计算绝对值的数学表达
- 边界情况处理:考虑极值情况下的程序健壮性
3. 完整实现方案
3.1 Python实现版本
python复制a = int(input("请输入第一个人的年龄:"))
b = int(input("请输入第二个人的年龄:"))
if abs(a - b) <= 5:
print("可以成为朋友")
else:
print("暂时不能成为朋友")
3.2 C++实现版本
cpp复制#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if (abs(a - b) <= 5) {
cout << "可以成为朋友" << endl;
} else {
cout << "暂时不能成为朋友" << endl;
}
return 0;
}
3.3 Scratch图形化实现
对于更低龄的初学者,可以用Scratch搭建:
- 创建两个变量"年龄1"和"年龄2"
- 使用"询问并等待"积木获取输入
- 用"如果...否则"积木配合"绝对值"运算进行判断
- 通过"说..."积木输出结果
4. 教学要点与常见误区
4.1 关键教学节点
-
绝对值概念:很多孩子会忽略差值为负的情况
- 错误写法:
if (a - b <= 5) - 正确写法:
if (abs(a - b) <= 5)
- 错误写法:
-
输入验证:实际开发中应增加对非法输入的检查
python复制try: a = int(input()) if not 0 < a <= 100: raise ValueError except: print("请输入1-100之间的整数") exit() -
多语言对比:通过不同语言实现同一逻辑,帮助理解编程共性
4.2 典型学生错误案例
- 混淆赋值(=)和相等(==)操作符
- 忘记类型转换(input()默认返回字符串)
- 条件表达式缺少绝对值处理
- 输出文字与题目要求不完全一致
5. 题目扩展与变种
5.1 进阶变种题目
-
多条件判断:
"如果年龄差≤3岁输出'好朋友',≤5岁输出'普通朋友',否则输出'暂时不能成为朋友'" -
三人交友判断:
输入三个人的年龄,判断是否存在两人能满足交友条件 -
动态阈值:
交友年龄差阈值也作为输入参数(如输入a,b和阈值n)
5.2 实际应用延伸
- 社交软件匹配算法的基础版
- 游戏NPC交互系统的简单实现
- 用户分组策略的雏形
6. 评测标准与得分要点
根据GESP一级评分标准,这类题目通常考察:
- 正确接收输入(20分)
- 准确计算年龄差(30分)
- 正确使用条件判断(30分)
- 规范输出结果(20分)
特别注意:
- 即使结果正确,若未使用绝对值计算会扣分
- 输出文字必须与题目要求完全一致
- 代码缩进不规范会适当扣分
7. 教学实践心得
在5年青少年编程教学中,我发现这个题目是检验学生是否真正理解条件判断的"试金石"。有几个特别值得分享的经验:
-
具象化演示法:用两个玩偶分别代表不同年龄,直观展示"年龄差"概念
-
错题收集:建立常见错误代码库,让学生自己找bug
-
生活化扩展:引导学生思考其他使用类似逻辑的场景(如体育分组、电影分级等)
-
调试技巧:教会学生使用print语句输出中间结果,例如:
python复制print("年龄差是:", abs(a-b)) # 调试语句
这个看似简单的题目,如果深入挖掘,可以带出编程思维的多个重要方面。我通常会让学生先用自己的语言描述判断过程,再转化为代码,这种"自然语言→伪代码→实际代码"的转化训练,对培养计算思维特别有效。
