Я совершенно сбит с толку, это онлайн-класс. Я понятия не имею, как сделать это домашнее задание. - PullRequest
0 голосов
/ 28 июня 2010

Вопрос:

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

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

Плата за обслуживание составляет 20 долларов плюс 2 процента от суммы чека, плюс 5 долларов за каждый месяц, прошедший с момента его написания.Чек опаздывает на месяц, как только начинается новый месяц, поэтому плохой чек, написанный 30 сентября, на 1 октября просрочен на один месяц.

Ответы [ 4 ]

3 голосов
/ 28 июня 2010

Программа, как правило, представляет собой последовательность шагов. Можете ли вы разбить проблему на ряд шагов, необходимых для расчета вашего ответа?

2 голосов
/ 28 июня 2010

Советы:

  • Каждый раз, когда меняется месяц, вы должны еще 5 долларов. Таким образом, «день» не имеет значения.
  • В следующем году в том же месяце прошло 12 месяцев. В предыдущем месяце количество прошедших месяцев составило 12 - 1.
  • «2% больше чем» эквивалентно * 1.02
  • «Продолжается до достижения EOF» звучит как петля.

Попробуйте отредактировать свой вопрос и сделайте честную попытку - никто не решит вашу домашнюю работу за вас, но мы поможем помочь вам решить ее.

1 голос
/ 28 июня 2010

По моему скромному опыту, такая путаница вызвана попыткой решить проблему и написать код одновременно.

Попробуйте сначала решить проблему.

Получить листбумаги и нарисуйте блок-схему, которая показывает шаги и решения.

например, последнее поле может быть:

EOF: Y = Стоп, N = вернуться к «Читать следующую строку»

Выберите 3 примера испытаний, например

  • В текущем месяце
  • В прошлом году
  • Больше года

Проработайте эти примеры на вашей блок-схеме и убедитесь, что результат правильный.Если нет, измените блок-схему и переделайте тестовые примеры.

Когда вы будете счастливы, «переведите» блок-схему на английский язык, и у вас будет рабочий псевдокод.

0 голосов
/ 28 июня 2010
  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. Прочитать имя клиента и показать пользователю что-то вроде:

"Имя клиента" Сервисный сбор: "$" Сервисный сбор

Дни в этом случае не имеют значения, поскольку плата увеличивается каждый раз, когда меняется месяц, поэтому в случае, когда мы находимся в октябре и чекбыло сделано в сентябре (10-9 = 1), мы должны заплатить на 5 долларов больше, но, возможно, мы могли бы быть в разные годы, например, 2010 и 2009, это означает, что между октябрем и сентябрем сейчас (1 + 12 = 13)месяцев, так что теперь вы должны заплатить 65 долларов.Я ожидаю, что это поможет вам понять шаг 5.

...