Δευτέρα 12 Απριλίου 2010

Απλό πρόγραμμα μετατροπής

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

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

ΠΡΟΓΡΑΜΜΑ μετατροπή
!Μετατρέπει δεδομένο πλήθος Α δευτερολέπτων ...
! ...σε ημέρες, ώρες, λεπτά, δευτερόλεπτα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α, ημε, ωρε, λεπ, δευ, ημε1, ωρε1, λεπ1
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε πλήθος δευτερολέπτων ='
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Α
ΜΕΧΡΙΣ_ΟΤΟΥ Α > 0
!
!Μέθοδος πρώτη (το Α μένει αναλλοίωτο)
!Το Α γίνεται λεπτά και βρίσκουμε πόσα δευτερόλεπτα απομένουν
λεπ1 <- Α DIV 60
δευ <- Α - λεπ1*60
!Το λεπ1 γίνεται ώρες και βρίσκουμε πόσα λεπτά απομένουν
ωρε1 <- λεπ1 DIV 60
λεπ <- λεπ1 - ωρε1*60
!Το ωρε1 γίνεται ημέρες και βρίσκουμε πόσες ώρες απομένουν
ημε1 <- ωρε1 DIV 24
ωρε <- ωρε1 - ημε1*24
!Αν θέλουμε, συνεχίζουμε παρόμοια σε μήνες, χρόνια κλπ
ημε <- ημε1
ΓΡΑΨΕ ημε, ' ημέρες ', ωρε, ' ώρες ', λεπ, ' λεπτά ', δευ, ' δευτερόλεπτα'
!
!Μέθοδος δεύτερη (το Α μεταβάλλεται)
!24 * 60 * 60 = 86400 δευτερόλεπτα στην ημέρα
ημε <- Α DIV 86400
Α <- Α - ημε*86400
!60 * 60 = 3600 δευτερόλεπτα στην ώρα
ωρε <- Α DIV 3600
Α <- Α - ωρε*3600
!60 δευτερόλεπτα στο λεπτό
λεπ <- Α DIV 60
Α <- Α - λεπ*60
!και απομένουν...
δευ <- Α
ΓΡΑΨΕ ημε, ' ημέρες ', ωρε, ' ώρες ', λεπ, ' λεπτά ', δευ, ' δευτερόλεπτα'

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