Υποπρογράμματα

Άσκηση 1
Να φτιάξετε συνάρτηση με όνομα ΣΤΡΟΓΓΥΛΟΠΟΙΗΣΗ που θα δέχεται σαν παράμετρο έναν πραγματικό αριθμό και θα τον επιστρέφει στρογγυλοποιημένο ως προς τη μονάδα. Δηλαδή, όταν καλέσουμε την συνάρτηση ΣΤΡΟΓΓΥΛΟΠΟΙΗΣΗ(14,219) θα πρέπει να μας επιστρέφει 14 και όταν καλούμε ΣΤΡΟΓΓΥΛΟΠΟΙΗΣΗ(-9,679) θα επιστρέφει -10.

Άσκηση 2
Να κάνετε πρόγραμμα το οποίο αφού διαβάζει τα στοιχεία ενός πίνακα 10×10 ακεραίων αριθμών θα αναδιατάσσει τις σειρές του με αύξουσα σειρά ως προς το άθροισμα τους. Δηλαδή η σειρά με το μικρότερο άθροισμα να ανέβει πρώτη, μετά η δεύτερη κ.ο.κ

Άσκηση 3
Η βιβλιοθήκη του δήμου, θέλει να οργανώσει τα διαθέσιμα βιβλία της ηλεκτρονικά. Διαθέτει 3000 βιβλία τα οποία θα αποθηκεύσει στον πίνακα Β[3000]. Επιπρόσθετα, στον πίνακα Σ[3000] θα αποθηκεύσει το όνομα του Συγγραφέα. Η βιβλιοθήκη καταχωρεί σε έναν ακόμη πίνακα ΟΝ[1000] το ονοματεπώνυμο των δανειστών της. Ο δανεισμός των βιβλίων είναι μηνιαίος. Τέλος σε έναν πίνακα Δ[3000, 12] καταχωρούνται οι δανεισμοί κάθε ενός από τα 3000 βιβλία για τους 12 μήνες του χρόνου. Αν κάποιο βιβλίο έχει δανειστεί για κάποιο μήνα τότε στην αντίστοιχη θέση του πίνακα καταχωρείται ο αύξων αριθμός του δανειστή από τον πίνακα ΟΝ, αλλιώς, αν το βιβλίο δεν είναι δανεισμένο μπαίνει ο αριθμός 0.

Α. Να γίνει πρόγραμμα το οποίο:
1. Θα κάνει χρήση του υποπρογράμματος με όνομα ΕΙΣΟΔΟΣ το οποίο θα διαβάζει τους προαναφερθέντες πίνακες από το πληκτρολόγιο του χρήστη και θα τους επιστρέφει στο κύριο πρόγραμμα.
2. Θα βρίσκει, και θα εμφανίζει για ποιο βιβλίο (όνομα και συγγραφέας) έχουν γίνει οι περισσότεροι δανεισμοί. Αν είναι περισσότερα από έναν τότε να εμφανίζονται όλα.
3. Θα εντοπίζει και θα εμφανίζει για κάθε μήνα, τον δανειστή που δανείστηκε τα περισσότερα βιβλία. Υποθέστε ότι είναι μοναδικός.
4. Θα εντοπίζει και θα εμφανίζει τον πιο επιτυχημένο μήνα σε αριθμό δανεισμών. Υποθέστε ότι είναι μοναδικός.
5. *** Θα διαβάζει το όνομα ενός συνδρομητή και να εμφανίζει, ποιον συγγραφέα συνήθως προτιμά ο συγκεκριμένος δανειστής.

Β. Να υλοποιήσετε το υποπρόγραμμα ΕΙΣΟΔΟΣ

Άσκηση 4
Να γράψετε τη συνάρτηση ΝΙΟΣΤΟΣ_ΑΡΙΘΜΟΣ που παίρνει σαν παράμετρο δύο ακέραιους x και n και θα επιστρέψει το n-οστό ψηφίο του x από το τέλος. Για παράδειγμα η κλήση της συνάρτησης ΝΙΟΣΤΟΣ_ΑΡΙΘΜΟΣ(534345, 3) θα επιστρέφει 3.

Άσκηση 5
Μία εταιρία κινητής τηλεφωνίας, έχει 10.000 πελάτες. Για αυτούς έχει καταχωρημένα τα ονόματά τους σε έναν πίνακα ΠΕΛΑΤΗΣ[10000], τον χρόνο ομιλίας σε λεπτά για κάθε έναν, για τους 12 μήνες της χρονιάς που πέρασε στον πίνακα ΧΡΟΝΟΣ_ΟΜΙΛΙΑΣ[10000, 12], τα μηνύματα που έχουνε στείλει για κάθε μήνα σε έναν πίνακα ΜΗΝΥΜΑΤΑ[10000, 12] και σε έναν πίνακα ΤΡΟΠΟΣ_ΧΡΕΩΣΗΣ[10000] τον αριθμό 1 ή 2 ανάλογα με την τιμολογιακή πολιτική που επέλεξαν. Οι τιμολογιακές πολιτικές που υπάρχουν είναι:

Τιμολογιακή πολιτική 1 2
Πάγιο 10€ 15€
Δωρεάν Χρόνος Ομιλίας 60 λεπτά 100 λεπτά
Δωρεάν Μηνύματα 50 100
Χρέωση ανά λεπτό μετά τον δωρεάν χρόνο ομιλίας 0,15€ / λεπτό 0,13€ / λεπτό

1. Να γίνει διαδικασία με όνομα ΕΙΣΑΓΩΓΗ_ΔΕΔΟΜΕΝΩΝ η οποία θα γεμίζει τους προηγούμενους πίνακες και θα ελέγχει την σωστή εισαγωγή δεδομένων για τον πίνακα ΤΡΟΠΟΣ_ΧΡΕΩΣΗΣ (αποδεκτές τιμές μόνο οι 1 και 2).
2. Να γίνει η συνάρτηση ΥΠΟΛΟΓΙΣΜΟΣ_ΧΡΕΩΣΗΣ που θα υπολογίζει το ποσό που πρέπει να πληρώσει κάποιος βάσει του χρόνου ομιλίας του και του της τιμολογιακής πολιτικής που επέλεξε.
3. Να γίνει η διαδικασία ΕΜΦΑΝΙΣΗ_ΣΤΟΙΧΕΙΩΝ_ΠΑΝΩ_ΑΠΟ_ΟΡΙΟ που θα εμφανίζει τους πελάτες της εταιρίας των οποίων ο λογαριασμός τους (μηνιαίος ή ετήσιος) είναι πάνω από ένα δοθέν όριο καθώς και το ποσό που πρέπει να πληρώσουν.
4. Να γίνει το κυρίως πρόγραμμα το οποίο θα εντοπίζει τους πελάτες που έχουν μέσο μηνιαίο λογαριασμό πάνω από 150€ και στην συνέχεια τους πελάτες που έχουν ετήσιο λογαριασμό πάνω από 2000€.