Vraag over pseudocode voor HW

stemmen
0

Ik heb de volgende vraag, en wat ik het meest in de war on, is hoe de logica doen om te bepalen of een controle is een maand te laat of niet.

De vraag is:

Schrijf pseudocode voor een programma dat berekent de servicekosten van een klant verschuldigd is voor het schrijven van een ongedekte cheque. Het programma accepteert de naam van een klant, de datum waarop de cheque is geschreven (jaar, maand en dag), de huidige datum (jaar, maand en dag), en het bedrag van de cheque in dollars en centen. het programma gaat door totdat een EOF-waarde is aangetroffen. de servicekosten bedragen $ 20 plus 2 procent van het bedrag van de cheque, plus $ 5 voor elke maand dat sinds de cheque is verstreken is geschreven. een controle is een maand te laat zodra een nieuwe maand begint-so een ongedekte cheque geschreven op 30 september is een maand te laat op 1 oktober

Tot nu toe wat ik nu schrijven is:

Start
  string Name
  num AmountOwed
  num DateCheckWritten
  num CurrentDate
  num CheckAmount
  get Name, DateCheckWritten, CurrentDate, CheckAmount
  while eof
De vraag is gesteld op 23/06/2010 om 23:20
bron van user
In andere talen...                            


4 antwoorden

stemmen
0

Ik ben niet zeker waar uw probleem ligt, maar ik denk dat je twee problemen te maken met:

  1. Wat is de definitie van een te late?
  2. Hoeveel maanden te laat is deze controle?

Dus in mijn pseudo-code, zou ik een stap die bepaalt hoe laat een controle is, en dan nog een stap om de vergoeding te berekenen hebben. In de eerste stap, kan je gewoon aftrekken van de dagen en delen. Maar de aanwijzingen zeggen zodra er een nieuwe maand langs komt, is het een maand te laat. Dus alles wat je echt moet doen is aftrekken maanden.

Ik weet niet zeker wat u vraagt, maar het lijkt erop dat u vragen om begeleiding, geen code. Ik hoop dat dit helpt.

antwoordde op 23/06/2010 om 23:31
bron van user

stemmen
0

Ik ga ervan uit dat is huiswerk, en als zodanig ik zal proberen om gewoon te wijzen u in de juiste richting.

Als je nummers toe te wijzen aan elke maand (Jan = 1, februari = 2, etc) dan het aantal maanden tussen twee datums is eenvoudig vast te stellen - hoeveel maanden zijn er tussen september (= 9) en mei (= 5)?

Het andere ding om rekening te houden is het jaar - voor elk jaar de cheque te laat is, zul je ook moeten nog eens twaalf maanden toe te voegen. Dit werkt hetzelfde als voor maanden.

Behoefte aan een extra detail, voel je vrij om mij te laten weten.

antwoordde op 23/06/2010 om 23:33
bron van user

stemmen
0

Vereenvoudig, raakte de belangrijkste punten en breek dan het naar beneden meer en meer, schrijf het hoe u uw oma het werkte zou vertellen.

je zou beginnen met iets als

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
antwoordde op 23/06/2010 om 23:35
bron van user

stemmen
1

Omdat je niet te maken hebben met dagen, het algoritme is zeer eenvoudig:

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

Veel succes met de rest van het probleem!

antwoordde op 23/06/2010 om 23:39
bron van user

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