Spørsmål om pseudo for HW

stemmer
0

Jeg har følgende spørsmål, og hva jeg er mest forvirret om, er hvordan du gjør logikken for å avgjøre om en sjekk er en måned for sent eller ikke.

Spørsmålet er:

Skriv pseudokode for et program som beregner serviceavgift for en kunde skylder for å skrive en dårlig sjekk. Programmet godtar kundens navn, dato sjekken ble skrevet (år, måned og dag), dagens dato (år, måned og dag), og beløpet på sjekken i dollar og cent. programmet fortsetter inntil en eOF verdi er oppstått. Serviceavgiften er $ 20 pluss 2 prosent av beløpet på sjekken, pluss $ 5 for hver måned som har gått siden sjekken ble skrevet. en sjekk er en måned forsinket så snart en ny måned starter-så en dårlig sjekk skrevet den 30. september er en måned forsinket 1. oktober

Så langt det jeg har skrive nå er:

Start
  string Name
  num AmountOwed
  num DateCheckWritten
  num CurrentDate
  num CheckAmount
  get Name, DateCheckWritten, CurrentDate, CheckAmount
  while eof
Publisert på 23/06/2010 klokken 22:20
kilden bruker
På andre språk...                            


4 svar

stemmer
0

Jeg er ikke sikker på hvor problemet ligger, men jeg tror du har to problemer å håndtere:

  1. Hva er definisjonen på slutten?
  2. Hvor mange måneder for sent er denne kontrollen?

Så i min pseudokode, ville jeg ha et skritt som avgjør hvor sent en sjekk er, og deretter et nytt skritt for å beregne avgiften. Inne i første trinn, kan du bare trekke fra de dagene og dividere. Men instruksjonene si så snart en ny måned kommer sammen, er det en måned forsinket. Så alt du egentlig trenger å gjøre er å subtrahere måneder.

Ikke sikker på hva annet du spør, men det ser ut til at du ber om veiledning, ikke kode. Håper dette hjelper.

Svarte 23/06/2010 kl. 22:31
kilden bruker

stemmer
0

Jeg kommer til å anta at dette er lekser, og slik jeg skal prøve å bare peke deg i riktig retning.

Hvis du tilordner tall for hver måned (jan = 1, Feb = 2, osv) så antall måneder mellom to datoer er lett å finne ut - hvor mange måneder er det mellom September (= 9) og May (= 5)?

Den andre ting å ta hensyn til er året - for hvert år sjekken er sent, vil du også nødt til å legge ytterligere tolv måneder. Dette fungerer på samme måte som i månedsvis.

Trenger noen ekstra detaljer, gjerne gi meg beskjed.

Svarte 23/06/2010 kl. 22:33
kilden bruker

stemmer
0

Forenkle, traff de viktigste punktene og deretter bryte det ned mer og mer, skriv det hvordan du vil fortelle din bestemor det fungerte.

du kan begynne med noe sånt

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
Svarte 23/06/2010 kl. 22:35
kilden bruker

stemmer
1

Siden du ikke trenger å forholde seg til dager, er algoritmen veldig grei:

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

Lykke til med resten av problemet!

Svarte 23/06/2010 kl. 22:39
kilden bruker

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