关于硬件伪代码的问题

关于硬件伪代码的问题

问题描述:

我有以下问题,而我最困惑的是如何确定检查是否延迟一个月的逻辑。关于硬件伪代码的问题

问题是:

“写伪代码计算的服务费客户的欠写空头支票的程序。程序接受客户的姓名,检查的撰写日期(年,月,日期),当前日期(年,月,日)和支票金额(以美元和美分为单位),程序一直持续到遇到一个eof值,服务费为20美元加上支票金额的2%加上支票写入后每月支付5美元,一个月后开始支票支票延迟一个月 - 因此,9月30日写入的支票是10月1日逾期的一个月。“

到目前为止,我有什么写信是:

Start 
    string Name 
    num AmountOwed 
    num DateCheckWritten 
    num CurrentDate 
    num CheckAmount 
    get Name, DateCheckWritten, CurrentDate, CheckAmount 
    while eof 
+0

家庭作业,也许? – Mac 2010-06-23 22:22:41

+0

这看起来非常严格的语法真的是伪代码。伪代码的目的是让你可以对你写的内容有一些自由,这样你就不必在隐含的东西上浪费时间。诚然,没有任何说你不能用它作为伪代码,我只是说你可能会付出更多的努力使它成为“代码”,而不是你真正需要的。 :) – Amber 2010-06-23 22:22:58

+0

是的家庭作业,我刚刚使用硬件的应用大声笑 – eqiz 2010-06-23 22:25:18

既然你没有对付天,算法非常简单:用剩下的问题

MonthsLate = (CurrentDate.Year - DateCheckWritten.Year) * 12 
        + (CurrentDate.Month - DateCheckWritten.Month) 

好运!

+0

我只是想在适当的地方使用它。感谢大家帮助我解决这个问题,我会知道从这里开始做什么。我知道VB.NET/C等,但我仍然有时会因为他们没有使用.Events或引用的例子而期望我解释伪代码而迷失方向。 – eqiz 2010-06-23 22:47:29

我不知道您的问题所在,但我认为你有两个问题需要解决:

  1. 什么后期的定义?
  2. 这张支票迟了多少个月?

所以在我的伪代码中,我会有一个决定支票多晚的步骤,然后再计算费用。在第一步中,您可以减去日子并划分。但是,一旦新的一个月出现,方向就会说,这是一个月的时间。所以你真正要做的就是减去几个月。

不知道你在问什么,但看起来你是在寻求指导,而不是代码。希望这可以帮助。

我打算假设这是家庭作业,因此我会尽力指出你朝着正确的方向。

如果您为每个月份指定数字(Jan = 1,Feb = 2等),那么两个日期之间的月数很容易确定 - 在9月(= 9)和5月(= 5)?

另一件需要考虑的事是年 - 每年支票迟到,您还必须再增加12个月。这与几个月的工作方式相同。

需要任何额外的细节,随时让我知道。

+0

Mac-我们在如何从这个意义上逻辑确定它在同一页上,但我很困惑如何说伪代码。 我知道日期输出为8位数字长以下(年,月,日) XXXXXXXX“的例子是SETP 30日2010年将是:20100930 会在psedocode做正确的事情是将单独进入自己的独立值?所以使用以下命令: NUM CurrentDateMonth NUM CurrentDateDay NUM CurrentDateYear NUM CheckDateMonth NUM CheckDateDay NUM CheckDateYear 那么就psedocode减去掉个月,看看有多少等? – eqiz 2010-06-23 22:39:06

简化,打出要点,然后把它分解得越来越多,写下你如何告诉你的奶奶它的工作。

你可能在开始时像

Start 
While there are more bad checks 
    get the service charge 
    add the service charge to the account 
record the updates 

get the service charge 
    charge starts at $20 
    add to the charge $5 multiplied by number of months