计算类工具的输入、处理与输出
工具型软件都由输入、处理、输出三部分构成。页面上看得见的是输入和输出,规则全在"处理"里。
接收输入,按规则处理,给出输出。工具型软件的基本结构。
"做个计算器,有三个输入框"
处理规则由 AI 自行决定
写明公式、取整、边界
每次生成的结果一致、可预期
输入框取得的值是字符串,必须先转成数值再计算。转换失败得到 NaN。
文本数据。输入框取得的值一律是字符串。
可以参与四则运算的数据。
Number("32") 得到 32;无法转换时得到 NaN(Not a Number)。
"8" + "8"
得到 "88"
Number("8") + Number("8")
得到 16
NaN 继续参与计算,不报错
页面显示"还剩 NaN 次"
是 NaN 就提示,不往下算
用户看到"请填数字"
电脑存小数有微小误差。显示给人看的数,必须取整或保留固定位数。
电脑用二进制存小数,多数十进制小数(如 0.1、6.4)无法精确表示,运算结果带有极小误差。
6.4 − 4
还剩 2.4000000000000004 次
取整,或保留 1 位小数
还剩 2 次
取整有向下、向上、四舍五入三种,结果可能相差 1。需求里必须指定一种,否则 AI 默认四舍五入。
舍去小数部分。6.8 → 6
有小数就进一。6.4 → 7
以 0.5 为界。6.4 → 6,6.8 → 7
AI 用四舍五入
6.8 次算成 7 次,多给一次
"可缺勤次数向下取整"
6.8 次按 6 次算
恰好等于临界值的情况要单独规定。剩余为 0 时应显示"已用满",不能显示"还剩 0 次"。
规则的临界点,如恰好用满、恰好达到上限。程序出错多集中在边界上。
大于等于 0、小于 0
剩 0 次显示"还剩 0 次",像是还能缺勤
大于 0、等于 0、小于 0
剩 0 次显示"已用满,再缺一次就超"
不合格的输入在计算之前拦下:给出提示,并且不进行计算。
计算前检查输入:是否填写、是否为数字、是否在合理范围内。
"填错时提示"
红字和错误结果同时出现
"填错时提示,并且不进行计算"
只有红字,结果区为空
程序不报错、页面正常,结果却是错的。这类错误没有任何信号,只能靠手算核对发现。
程序不报错、不中断,页面正常,但输出的结果是错的。
页面正常,就认为结果正确
错误结果被带进后续使用
用计算器算三组数据对照
错误在交付前被发现
计算类需求只写规定,不写形容词。规则卡的五行按颜色对应写进提示词。
| 提示词中的规定 | 缺少时的表现 | 代码中的对应 |
|---|---|---|
| 向下取整 | AI 用四舍五入,部分数值多给一次 | Math.floor() |
| 等于 0 时单独说明 | 显示"还剩 0 次" | left === 0 |
| 并且不进行计算 | 红字和错误结果同时出现 | return; |
| 结果一律显示整数 | 显示 2.4000000000000004 | 取整后再相减 |
先写规则卡,再用 AI 生成。生成后手算核对三组数据,再测五组边界。
先不用 AI,写出输入、公式、取整、边界、校验五行
产出:规则卡规则卡写成提示词,生成单个 .html 文件,双击能打开
产出:作品文件用计算器算三组数据,与程序结果逐个比对
产出:核对记录按下方测试表测五组数据,记录应得与实际结果
产出:边界测试表只改取整方式,重新生成,用同一组数据比较
产出:两张截图用对方的规则卡逐行检查对方的作品
产出:互测记录| 输入 | 应得结果 | 实际结果 |
|---|---|---|
| 已缺 5 | 还剩 1 次 | |
| 已缺 6 | 已用满,再缺一次就超 | |
| 已缺 7 | 已超出 1 次 | |
| 已缺 −1 | 红字提示,不出结果 | |
| 已缺「三」 | 红字提示,不出结果 |
以翘课计算器为例,换成自己题目的临界值。标黄的两行最容易不通过。
结果不对时,先按现象找到缺的那条规则,补进提示词后重新生成。
| 现象 | 原因 | 处理 |
|---|---|---|
| 结果是一长串小数 | 没有规定取整或保留位数 | 补"结果一律显示整数" |
| 结果显示 NaN | 输入非数字且没有校验 | 补"非数字时红字提示,并且不进行计算" |
| 两个数相加变成拼接 | 没有做类型转换 | 要求先把输入转成数值再计算 |
| 剩 0 次显示"还剩 0 次" | 等于 0 并入了大于 0 | 重发等于 0 的原句,要求三种情况分开写 |
| 红字和结果同时出现 | 校验只提示,没拦截 | 补"并且不进行计算,不显示任何结果" |
| 比手算多一次 | AI 用了四舍五入 | 写明"向下取整",重新生成 |
| 负数也能算出结果 | 没有检查范围 | 补"不能为负数,比例不超过 100" |
| 改了取整方式,结果没变 | 没有重新生成,或该句被长提示词淹没 | 整段重发,注明"其余不变,只改取整方式" |
| 取整方向定不下来 | 没想清楚工具给谁用 | 问:算多了谁承担后果,算少了谁承担后果 |
| 三组数自己也算不出 | 公式没有想通 | 先在纸上算通,再做工具 |
提交四项内容,按七条标准验收;选做一项。
按作业模板(Word)填写,开头注明所选题目,当堂提交。
零代码应用开发 · 第 6 章 让它会算