Ερώτηση σχετικά με ψευδοκώδικα για 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