0

问题是:

为一个程序编写伪代码,该程序计算客户因写空头支票而应支付的服务费。

该程序接受客户的姓名、开出支票的日期(年、月和日)、当前日期(年、月和日)以及支票金额(以美元和美分表示)。程序继续执行,直到遇到 eof 值。

服务费为 20 美元加上支票金额的 2%,再加上自开出支票后的每月 5 美元。新的一个月一开始,一张支票就会迟到一个月——因此,9 月 30 日写的空头支票在 10 月 1 日已逾期一个月。

4

4 回答 4

3

一个程序通常是一系列步骤。您能否将问题分解为计算答案所需的一系列步骤?

于 2010-06-27T22:42:25.477 回答
2

提示:

  • 每当月份变化时,您又欠 5 美元。因此,“天”是无关紧要的。
  • 明年同月,12个月过去了。上个月,经过的月数为12 - 1
  • “超过 2%”相当于* 1.02
  • “继续直到达到 EOF”听起来像一个循环。

尝试编辑您的问题并进行诚实的尝试 - 没有人会为您解决您的作业,但我们帮助解决它。

于 2010-06-27T22:47:23.020 回答
1

以我的拙见,这种混乱是由于试图同时解决问题和编写代码造成的。

先尝试解决问题。

拿一张纸,画一张流程图,显示步骤和决定。

例如,最后一个框可能是:

EOF:Y = 停止,N = 返回“读取下一行”

选择 3 个测试示例,例如

  • 在当前月份
  • 在过去的一年
  • 超过一年

通过您的流程图处理这些示例并检查结果是否正确。如果不是,请修改流程图并重新编写测试示例。

当你高兴的时候,把流程图“翻译”成英文,你就会有工作的伪代码。

于 2010-06-28T00:46:08.667 回答
0
  1. 加载文件
  2. 读取 check_date_month 并将其存储在变量中
  3. 读取 current_date_month 并将其存储在变量中
  4. 读取 check_amount 并将其存储在变量中
  5. Service_charge = 20 + 0.02*(check_amount) + [(current_month - check_date_month) + current_date_year - check_date_year]*5
  6. 读取客户的姓名并向用户显示如下内容:

“客户名称”服务费:“$”Service_charge

这种情况下的日期不相关,因为每次更改月份时费用都会增加,因此,如果我们是在 10 月并且支票是在 9 月完成的(10-9 = 1),我们必须多支付 5 美元,但也许我们可能在不同的年份,例如 2010 年和 2009 年,这意味着在 10 月和 9 月之间现在有 (1 + 12 = 13) 个月,所以现在你必须支付 65 美元。我希望这将帮助您理解第 5 步。

于 2010-06-27T23:02:43.733 回答