Вопрос о псевдокоде для HW

голоса
0

У меня следующий вопрос, и то, что я больше всего запутался, как сделать логику для определения, является ли проверка один месяц поздно или нет.

Вопрос:

«Написать псевдокод для программы, которая высчитывает плату за обслуживание клиента обязана для написания фальшивого чека. Программа принимает имя клиента, дату проверка была написана (год, месяц и день), текущая дата (год, месяц и день), а сумма чека в долларах и центах. программа продолжается до тех пор значение ВФ не встречается. плата за обслуживание составляет $ 20 плюс 2 процента от суммы чека, плюс $ 5 за каждый месяц, прошедший с момента проверки была написана. чек один месяц поздно, как только начинается, так что новый месяц плохой чек, написанный на 30 сентября составляет один месяц просрочены на 1 октября»

До сих пор, что я пишу сейчас:

Start
  string Name
  num AmountOwed
  num DateCheckWritten
  num CurrentDate
  num CheckAmount
  get Name, DateCheckWritten, CurrentDate, CheckAmount
  while eof
Задан 23/06/2010 в 23:20
источник пользователем
На других языках...                            


4 ответов

голоса
0

Я не уверен, где ваша проблема лежит, но я думаю, что у вас есть две проблемы, чтобы иметь дело с:

  1. Что такое определение в последнее время?
  2. Сколько месяцев поздно эта проверка?

Так что в моем псевдокоде, я бы шаг, который определяет, как опоздали чек, а затем еще один шаг для расчета платы. Внутри первого шага, вы можете просто вычесть дни и разрыва. Но направления говорят, как только новый месяц приходит, это один месяц поздно. Так что все, что вам действительно нужно сделать, это вычитать месяцев.

Не уверен, что еще вы просите, но это, кажется вы просите руководства, а не код. Надеюсь это поможет.

Ответил 23/06/2010 в 23:31
источник пользователем

голоса
0

Я буду считать, что это домашнее задание, и как таковой, я постараюсь просто направить вас в правильном направлении.

Если присвоить номера для каждого месяца (январь = 1, февраль = 2, и т.д.), то количество месяцев между двумя датами легко определить - сколько месяцев там с сентября (= 9) и мая (= 5)?

Другая вещь, чтобы принять во внимание, год - за каждый год проверка поздно, вам также придется добавить еще двенадцать месяцев. Это работает так же, как в течение нескольких месяцев.

Нужна дополнительная деталь, не стесняйтесь, дайте мне знать.

Ответил 23/06/2010 в 23:33
источник пользователем

голоса
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
Ответил 23/06/2010 в 23:35
источник пользователем

голоса
1

Поскольку вы не должны иметь дело с днями, алгоритм очень прост:

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

Успехов с остальной частью проблемы!

Ответил 23/06/2010 в 23:39
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more