Αποστολέας Θέμα: Μετατροπή ποσού, σε κέρματα/χαρτονομίσματα  (Αναγνώστηκε 4033 φορές)

iordanissav

  • Οπαδός
  • **
  • Μηνύματα: 16
    • Προσωπικός ιστότοπος
Παραθέτω μια άσκηση, η οποία κάνει τη μετατροπή ενός χρηματικού ποσού, στα λιγότερα δυνατά νομίσματα (κέρματα/χαρτονομίσματα)
Η άσκηση έχει λυθεί ξανά από συναδέλφους (ίσως κάπως διαφορετικά), μόνο που νομίζω αφορούσε ακέραια ποσά. Εδώ μπορείτε να τη δοκιμάσετε και με δεκαδικά.

ΠΡΟΓΡΑΜΜΑ νομίσματα
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: ποσό, νόμισμα[15]
  ΑΚΕΡΑΙΕΣ: ι, χ, πλήθος
ΑΡΧΗ
  ! γέμισμα βοηθητικού πίνακα νομισμάτων (κέρματα/χαρτονομίσματα)
  νόμισμα[1] <- 0.01
  νόμισμα[2] <- 0.02
  νόμισμα[3] <- 0.05
  νόμισμα[4] <- 0.10
  νόμισμα[5] <- 0.20
  νόμισμα[6] <- 0.50
  νόμισμα[7] <- 1
  νόμισμα[8] <- 2
  νόμισμα[9] <- 5
  νόμισμα[10] <- 10
  νόμισμα[11] <- 20
  νόμισμα[12] <- 50
  νόμισμα[13] <- 100
  νόμισμα[14] <- 200
  νόμισμα[15] <- 500

  ! πόσα νομίσματα θα χρειαστούμε
  πλήθος <- 0
 
 ! Υπολογισμοί. Το ποσό μπορεί να δοθεί και με δεκαδικά
  ΔΙΑΒΑΣΕ ποσό

 ! μετατρέπουμε το ποσό σε λεπτά του ευρώ (ακέραιος αριθμός) γιατί οι DIV/MOD χρειάζονται ακέραια ορίσματα
 ! οπότε και χρησιμοποιούμε την Α_Μ(), δηλ. αν δοθεί 4526.28 τότε το πολλαπλάσσιάζουμε
 ! με 100 (452628.00) και συνεπώς Α_Μ(452628.00)=452628 (ως ακέραιος)
  ποσό <- ποσό*100

  ! ξεκινάμε από το μεγαλύτερο νόμισμα (500€) προς τα πίσω
  ΓΙΑ ι ΑΠΟ 15 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -1

    ! κάνουμε τη διαίρεση με τα αντίστοιχα λεπτά του νομίσματος (x100)
    χ <- Α_Μ(ποσό) DIV Α_Μ(νόμισμα[ι] *100)
   
    ! αν χωρά το αντίστοιχο νόμισμα, εμφάνισε πόσες φορές
    ΑΝ χ > 0 ΤΟΤΕ
       ΓΡΑΨΕ χ, ' x ', νόμισμα[ι], ' €'

       ! αύξησε το πλήθος των νομισμάτων που χρειάζονται
       πλήθος <- πλήθος + χ
     
       ! δουλεύουμε τώρα με το υπόλοιπο ποσό ως αρχή, κοκ.
       ποσό <- Α_Μ(ποσό) MOD Α_Μ(νόμισμα[ι] *100)
    ΤΕΛΟΣ_ΑΝ

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
  ΓΡΑΨΕ 'Χρειάστηκαν ', πλήθος, ' κέρματα ή χαρτονομίσματα'

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Θα μπορούσαμε, αντί να εμφανίζουμε κάθε φορά το πλήθος του αντίστοιχου νομίσματος, να το αποθηκεύουμε σε έναν άλλο πίνακα για χρήση. Εδώ, δεν το θεώρησα και τόσο απαραίτητο και εστίασα στο διαδικαστικό μέρος. Ελπίζω να το βρείτε ενδιαφέρον.

ΙΟΡΔΑΝΗΣ ΣΑΒΒΟΥΛΙΔΗΣ
http://users.sch.gr/iordanissav

Λάμπρος Μπουκουβάλας

  • Η παιδεία είναι: στους φτωχούς, ΠΛΟΥΤΟΣ. Στους πλούσιους, ΣΤΟΛΙΔΙ. Στους νέους, ΚΑΙ ΤΑ ΔΥΟ (Διογένης) !
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 1242
    • Το μπλογκάκι μου
Απ: Μετατροπή ποσού, σε κέρματα/χαρτονομίσματα
« Απάντηση #1 στις: 04 Φεβ 2011, 06:29:14 μμ »
μπράβο Ιορδάνη, ευχαριστούμε πολύ!!
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

Ο Θουκυδίδης  (που τον διαβάζουν οι ξένοι, αλλά όχι εμείς)  έγραφε: «Αταλαίπωρος τοις πολλοίς η ζήτησις της αληθείας, και επί τα ετοίμα μάλλον τρέπονται» (Ι, 20, 3). Οι περισσότεροι δηλαδή αναζητούν αβασάνιστα την αλήθεια και στρέφονται σε ό,τι βρίσκουν έτοιμο. Δεν προβληματίζονται…