跟踪、诊断与修复算法
此页面需较新浏览器(支持 SharedArrayBuffer)。请升级 Chrome、Edge、Firefox 或 Safari 至最新版本。
按执行顺序跟踪
记录题目指定语句或循环后的值,不变值沿用。跟踪表展示执行过程,不能只填最终答案。
用反例定位错误
最大值初值零在正数中似乎正确,单个负数就是最小反例。答案应来自数据,因此用首项初始化,再比较余项。
DECLARE Best, Value : INTEGER
Best ← -8
Value ← -2
IF Value > Best THEN
Best ← Value
ENDIF
OUTPUT Best
区分错误类型
语法错误破坏语言结构;运行时错误发生在执行中,如下标越界;逻辑错误是能运行但结果错误。修复后测试反例与正常用例,解释原因而非只指出改动行。
Best 初值 8。依次处理 5、7、2,仅当值更小时替换 Best。给出每次处理后的 Best。
初始代码求 N 个值最大值,但全负数时错误输出零。修复它。N 为 1 至 5。
点击“运行”查看此处输出。
程序不崩溃,但循环至 N - 1 导致漏掉末项。这是 syntax、runtime 还是 logic 错误?输入一词。
解释数据结构与循环选择,指出一个边界用例并预测结果。对子程序,解释返回值或调用方变化。
本次答案保存在本浏览器。请自行或与老师复核;文字解释不自动评分。
按要点复核解释
- 类型与数据结构符合数据及要求。
- 已解释循环选择并检查首末次。
- 初值与被拒操作保持正确状态。
- 测试包含输入、用途与预期结果。
- 区分了返回、输出与改变调用方状态。