Întrebare despre pseudocod pentru HW

voturi
0

Am următoarea întrebare, și ceea ce eu sunt cel mai confuz cu privire, este modul de a face logica pentru a determina dacă un control este de o lună întârziere sau nu.

Întrebarea este:

„Scrie pseudocod pentru un program care calculează taxa de serviciu a unui client datorează pentru a scrie un cec rău. Programul acceptă numele unui client, data la care cecul a fost scrisă (anul, luna și ziua), data curentă (anul, luna și zi), iar suma cecului în dolari și cenți. programul continuă până când se întâlnește o valoare EOF. tariful de serviciu este de 20 $, plus 2 la suta din suma cecului, plus 5 $ pentru fiecare lună care a trecut de verificarea a fost scris. o verificare este de o lună întârziere, de îndată ce începe să-atât o nouă lună un cec prost scris la 30 septembrie este de o lună restante la data de 1 octombrie“

Până în prezent, ceea ce am scrie acum este:

Start
  string Name
  num AmountOwed
  num DateCheckWritten
  num CurrentDate
  num CheckAmount
  get Name, DateCheckWritten, CurrentDate, CheckAmount
  while eof
Întrebat 23/06/2010 la 23:20
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
0

Nu sunt sigur în cazul în care problema ta minte, dar cred că aveți două probleme pentru a face față:

  1. Care este definiția de târziu?
  2. Cât de multe luni de întârziere este acest control?

Deci, în pseudocod mea, mi-ar fi un pas care determină modul în care o întârziere de verificare este, și apoi un alt pas pentru a calcula taxa. In interiorul primul pas, ai putea scădea doar zilele și să se dividă. Dar direcțiile spun imediat ce o nouă lună vine de-a lungul, acesta este de o lună întârziere. Deci, tot ce trebuie să faceți este într-adevăr luni scade.

Nu sunt sigur ce altceva vi se cere, dar se pare că se cere îndrumare, nu cod. Sper că acest lucru vă ajută.

Publicat 23/06/2010 la 23:31
sursa de către utilizator

voturi
0

Am de gând să-și asume acest lucru este temele, și, ca atare, voi încerca să vă doar punctul în direcția cea bună.

Dacă alocați numere în fiecare lună (Ian = 1, februarie = 2, etc), atunci numărul de luni între două date este ușor de stabilit - cât de multe luni sunt acolo în perioada septembrie (= 9) și mai (= 5)?

Un alt lucru să ia în considerare este anul - pentru fiecare an cecul este târziu, va trebui, de asemenea, să adăugați încă douăsprezece luni. Aceasta funcționează la fel ca de luni de zile.

Aveți nevoie de nici un detaliu in plus, nu ezitați să mă lase să știu.

Publicat 23/06/2010 la 23:33
sursa de către utilizator

voturi
0

Simplificați, a lovit principalele puncte și apoi rupe-l în jos mai mult, scrie-l cum ar spune bunica ta a mers.

s-ar putea începe cu ceva de genul

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
Publicat 23/06/2010 la 23:35
sursa de către utilizator

voturi
1

Din moment ce nu trebuie să se ocupe de zile, algoritmul este foarte simplu:

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

Mult noroc cu restul problemei!

Publicat 23/06/2010 la 23:39
sursa de către utilizator

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