Ώρα χωρίς «αν»

Πρόβλημα

Σ’ ένα σύνηθες ηλεκτρονικό ρολόι το πρώτο δευτερόλεπτο κάθε λεπτού είναι το 0 και το τελευταίο το 59 (60 δευτερόλεπτα συνολικά). Γράψτε μια συνάρτηση με μια ακέραια παράμετρο, η οποία εκφράζει το προηγούμενο δευτερόλεπτο, η οποία επιστρέφει το τρέχον δευτερόλεπτο, χωρίς να χρησιμοποιήσετε καμία δομή επιλογής (ΑΝ…ΤΟΤΕ ή ΕΠΙΛΕΞΕ…ΠΕΡΙΠΤΩΣΗ). Θεωρείστε ότι κατά την κλήση της συνάρτησης το όρισμα είναι πάντα μεγαλύτερο ή ίσο του 0 και μικρότερο ή ίσο του 59. Για παράδειγμα με όρισμα 58 η συνάρτηση πρέπει να επιστρέφει 59, ενώ με όρισμα 59 πρέπει να επιστρέφει 0.

Λύση

ΣΥΝΑΡΤΗΣΗ next_sec(n): ΑΚΕΡΑΙΑ

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: n

ΑΡΧΗ

next_sec <- (n + 1) MOD 60

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Απόδειξη ορθότητας

Εάν α < β, η ευκλείδεια διαίρεση του α με τον β δίνει υπόλοιπο ίσο με α, ενώ αν α = β δίνει 0.

Άσκηση για εμβάθυνση

Γράψτε μια διαδικασία με έξι ακέραιες παραμέτρους, από τις οποίες οι τρεις πρώτες εκφράζουν αντίστοιχα τις ώρες (0 ως 23), τα λεπτά (0 ως 59) και τα δευτερόλεπτα (0 ως 59). Η διαδικασία εκχωρεί στις τρεις τελευταίες παραμέτρους τις ώρες, τα λεπτά και τα δευτερόλεπτα μετά από ένα δευτερόλεπτο από την ώρα που υποδεικνύουν οι τρεις πρώτες παράμετροι. Για παράδειγμα, αν η ώρα που εκφράζουν οι τρεις πρώτες παράμετροι είναι 22:25:10, στις τρεις τελευταίες πρέπει να εκχωρηθούν κατάλληλες τιμές ώστε να εκφράζεται η ώρα 22:25:11, ενώ αν η αν η ώρα που εκφράζουν οι τρεις πρώτες παράμετροι είναι 22:59:59, στις τρεις τελευταίες πρέπει να εκχωρηθούν κατάλληλες τιμές ώστε να εκφράζεται η ώρα 23:00:00. Η διαδικασία δεν πρέπει να περιέχει καμία δομή επιλογής (ΑΝ…ΤΟΤΕ ή ΕΠΙΛΕΞΕ…ΠΕΡΙΠΤΩΣΗ). Θεωρείστε ότι τα πρώτα τρία ορίσματα κατά την κλήση της διαδικασίας είναι μέσα στα παραπάνω αναφερόμενα όρια.

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

Ο ιστότοπος χρησιμοποιεί το Akismet για την εξάλειψη των ανεπιθύμητων σχολίων. Μάθετε πως επεξεργάζονται τα δεδομένα των σχολίων σας.