0

次の質問がありますが、私が最も混乱しているのは、チェックが1か月遅れているかどうかを判断するためのロジックを実行する方法です。

質問は:

「不良小切手を書いた顧客のサービス料を計算するプログラムの擬似コードを書く。プログラムは、顧客の名前、小切手が書かれた日付(年、月、日)、現在の日付(年、月、日)、およびドルとセントでの小切手の金額。プログラムは、eof値が検出されるまで続行されます。サービス料は、$ 20 +小切手の金額の2%に加えて、小切手から経過した毎月の$5です。小切手は新しい月が始まるとすぐに1か月遅れます。したがって、9月30日に書かれた不良小切手は10月1日に1か月遅れます。」

これまでのところ、私が今書いているのは次のとおりです。

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

4 に答える 4

1

日数を処理する必要がないため、アルゴリズムは非常に単純です。

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

問題の残りの部分で頑張ってください!

于 2010-06-23T22:39:11.583 に答える
0

あなたの問題がどこにあるのかわかりませんが、対処すべき2つの問題があると思います。

  1. 最近の定義は何ですか?
  2. このチェックは何ヶ月遅れていますか?

したがって、私の擬似コードでは、チェックの遅延を決定するステップと、料金を計算する別のステップがあります。最初のステップでは、日数を引いて割り算するだけです。しかし、指示によれば、新しい月が来るとすぐに、それは1か月遅れます。だからあなたが本当にしなければならないのは月を引くことだけです。

他に何を求めているのかわかりませんが、コードではなくガイダンスを求めているようです。お役に立てれば。

于 2010-06-23T22:31:02.433 に答える
0

これは宿題だと思いますので、正しい方向に向けてみます。

毎月(1月= 1、2月= 2など)に番号を割り当てると、2つの日付の間の月数を簡単に判別できます。9月(= 9)から5月(= 5)までの月はいくつですか。

考慮すべきもう1つのことは、年です。毎年、チェックが遅れるので、さらに12か月を追加する必要があります。これは、数か月間と同じように機能します。

詳細が必要な場合は、お気軽にお知らせください。

于 2010-06-23T22:33:13.467 に答える
0

単純化して、要点を打ち、それからそれをどんどん分解して、おばあちゃんにそれがうまくいったことをどのように伝えるかを書いてください。

あなたは次のようなものから始めるかもしれません

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
于 2010-06-23T22:35:48.000 に答える