Πίνακες

Άσκηση 1
Ένα ηλεκτρονικό σύστημα καταγράφει τους πελάτες που επισκέπτονται ένα κατάστήματα μιας τράπεζας ανά ώρα. Καταχωρεί λοιπόν, στον πίνακα ΕΠΙΣΚΕΨΕΙΣ[6] τις επισκέψεις των πελατών για κάθε ένα από τα διαστήματα ωρών 8:00-9:00, 9:00-10:00, 10:00-11:00, 11:00-12:00, 12:00-13:00, 13:00-14:00.
Να γίνει αλγόριθμος που με δεδομένο των παραπάνω πίνακα θα εντοπίζει:
1) το διάστημα με την μεγαλύτερη επισκεψιμότητα,
2) το διάστημα με την μικρότερη επισκεψιμότητα,
3) την ποσοστιαία διαφορά (%) μεταξύ της μεγαλύτερης και της μικρότερης επισκεψιμότητας.

Άσκηση 2
Ένα περιοδικό αυτοκινήτου θέλει να κατασκευάσει μια εφαρμογή για τους αναγνώστες του, η οποία θα τους προτείνει το αυτοκίνητο που τους ταιριάζει, ανάλογα με τις ανάγκες τους. Έτσι σε έναν πίνακα ΑΥΤΟ[200] βρίσκονται καταχωρημένα το ονόματα (μάρκα και μοντέλο) 200 αυτοκινήτων. Επίσης σε έναν πίνακα ΑΞΙΟΛΟΓΗΣΗ[7, 200] καταχωρούνται οι βαθμολογίες των αυτοκινήτων αυτών ως προς επτά βασικούς τομείς (Οδική Συμπεριφορά, Άνεση, Εξοπλισμός, Ασφάλεια, Επιδόσεις, Κατανάλωση καυσίμου, Χώροι αποσκευών). Κάθε βαθμολόγηση είναι ένας αριθμός από 0 έως 100 (με το 0 να συμβολίζει την κακή επιλογή και το 100 την άριστη επιλογή).
Να γίνει αλγόριθμος που με δεδομένους τους παραπάνω πίνακες, θα διαβάζει τρεις αριθμούς από το 1 έως το 7. Κάθε ένας αριθμός αντιστοιχεί σε έναν από τους τομείς που ενδιαφέρουν τον αναγνώστη ως προς τα χαρακτηριστικά του αυτοκινήτου. Στη συνέχεια θα εμφανίζει τις 5 καλύτερες επιλογές. (Καλύτερες είναι οι επιλογές που ο μέσος όρος των βαθμολογιών στις επιλεγμένες κατηγορίες είναι ο μεγαλύτερος)

Άσκηση 3
Στον τελικό των 2000 μέτρων του στίβου συμμετέχουν 8 αθλητές. Κάθε αθλητής, προκειμένου να τερματίσει πραγματοποιεί 5 γύρους των 400 μέτρων. Να γίνει αλγόριθμος
1) που θα διαβάζει τα ονόματα των αθλητών και τους χρόνους που χρειάστηκε ο καθένας, σε κάθε γύρo και θα τα καταχωρεί στους πίνακες ΟΝ[8] και ΧΡ[8, 5] (ο χρόνος θα καταχωρείται σε δευτερόλεπτα).
2) θα εντοπίζει και εμφανίζει το όνομα του νικητή.
3) θα εντοπίζει και εμφανίζει το όνομα του τελευταίου.
Υποθέστε πως δεν υπάρχουν αθλητές με ίδιο συνολικό χρόνο.

Άσκηση 4
Ένα ταξιδιωτικό πρακτορείο, καταγράφει σε έναν πίνακα 10×10 τις 10 πόλεις στις οποίες η συνεργαζόμενη αεροπορική εταιρεία διαθέτει πτήσεις. Κάθε γραμμή αναπαριστά την πόλη άφιξης και κάθε στήλη αναπαριστά την πόλη προορισμού. Να γίνει πρόγραμμα που:
1) θα καταχωρεί σε έναν πίνακα ΟΝ[10] τα ονόματα των 10 πόλεων, και σε έναν πίνακα ΔΡΟΜΟΛΟΓΙΑ[10,10] το κόστος μετάβασης από την πόλη της γραμμής i στην πόλη της στήλης j. Το κόστος μετάβασης μεταξύ ίδιων πόλεων ή μεταξύ πόλεων στις οποίες δεν ορίζεται δρομολόγιο είναι 0.
2) Θα διαβάζει την πόλη άφιξης, και την πόλη προορισμού. Σε περίπτωση που μία από τις δύο πόλεις δεν υπάρχει θα εμφανίζεται κατάλληλο μήνυμα.
3) Θα εμφανίζει το κόστος για την απευθείας μετάβαση και αν αυτό δεν υπάρχει τότε θα ψάχνει για να βρει το φθηνότερο δρομολόγιο μέσω τρίτου προορισμού, όπου και θα το εμφανίζει.

Άσκη­ση 5
Σε μια πόλη υπάρχουνε συνολικά 15 χώροι στάθμευσης (πάρκινγκ). Να κάνετε πρόγραμμα που θα διαβάζει την απόσταση του κάθε πάρκιγνκ από το κέντρο και την τιμή που χρεώνει ανά ώρα. Στη συνέχεια να βρίσκετε το πάρκινγκ εκείνο που απέχει από το κέντρο από 600 μέτρα έως 1400 μέτρα. Αν υπάρχουνε περισσότερα από ένα να εμφανίζεται το πιο φθηνό.

Άσκηση 6
Μια ποδοσφαιρική ομάδα διαθέτει 22 ποδοσφαιριστές για κάθε έναν από τους οποίους αποθηκεύουμε το ονοματεπώνυμό τους, τα λεπτά συμμετοχής τους και τη θέση στην οποία παίζουν (‘Ε’ για επίθεση, ‘Α’ για άμυνα, ‘Κ’ για κέντρο και ‘Τ’ όταν ο παίκτης είναι τερματοφύλακας). Να γίνει αλγόριθμος που θα διαβάζει τα παραπάνω δεδομένα και θα εντοπίζει τους παίκτες που έχουν τα περισσότερα λεπτά συμμετοχής για κάθε θέση.

Άσκηση 7
Ένας κωδικός χρήστη αποτελείται το πολύ από 10 χαρακτήρας και το ελάχιστο από 6. Ο κωδικός αυτός μπορεί να περιέχει οποιοδήποτε χαρακτήρα αλλά τουλάχιστον ένα σύμβολο (‘$’, ‘#’, ‘@’, ‘!’, ‘%’, ‘*’) και δύο αριθμούς (0-9). Επιπλέον απαγορεύεται η εισαγωγή του κενού. Να γίνει αλγόριθμος που θα ελέγχει την εγκυρότητα ενός κωδικού.

Άσκηση 8
Στις βουλευτικές εκλογές μιας χώρας συμμετέχουν 10 κόμματα από 47 εκλογικά διαμερίσματα. Να γίνει πρόγραμμα που:
1) Θα διαβάζει και καταχωρεί τα ονόματα των υποψηφίων που συμμετέχουν στις εκλογές σε πίνακα ΟΝ[10]
2) Θα διαβάζει και καταχωρεί τις ψήφους όλων των υποψηφίων από όλα τα εκλογικά τμήματα σε πίνακα Ψ[10, 47]
3) Θα εμφανίζει το όνομα του νικητή των εκλογών (τον υποψήφιο δηλαδή που συγκέντρωσε τις περισσότερες ψήφους)
4) Θα εμφανίζει τα ονόματα εκείνων που συγκέντρωσαν περισσότερο από το 3% του συνόλου των ψήφων
5) Θα εμφανίζει το όνομα του νικητή κάθε εκλογικού τμήματος

Άσκηση 9
Ένα μεσιτικό γραφείο διατηρεί τα ακόλουθα δεδομένα για κάθε διαμέρισμα που διαθέτει προς πώληση:

  • Όροφος (1, 2, 3, …)
  • Εμβαδό σε τετραγωνικά μέτρα (τ.μ)
  • Αριθμός υπνοδωματίων (1, 2, 3, …)
  • Πυλωτή (ναι/όχι)

Να γίνει πρόγραμμα που:
1) Θα ζητάει τα παραπάνω δεδομένα για την εισαγωγή 1000 διαμερισμάτων.
2) Θα ζητάει από έναν υπόψήφιο αγοραστή τις προτιμήσεις του: Πόσα τ.μ., πόσα υπνοδωμάτια και σε ποιο όροφο επιθυμεί να βρίσκεται το διαμέρισμά του. Ο υπολογιστής θα πρέπει να αναζητεί όλα τα διαμερίσματα που έχει καταχωρημένα και να επιστρέφει ακόμα και εκείνα που έχουν μια μικρή απόκλιση ως προς τα κριτήρια (+/- 30 τ.μ για το εμβαδό, +/- 1 όροφο και +/- 1 υπνοδωμάτιο)
3) Τα αποτελέσματα θα πρέπει να επιστρέφονται ταξινομημένα ως προς την ακρίβεια. Δηλαδή ένα διαμέρισμα το οποίο ικανοποιεί πλήρως τα κριτήρια του χρήστη, προηγείται έναντι εκείνου που το εμβαδό του θα αποκλίνει μερικά τ.μ. από το επιθυμητό. Επιπρόσθετα το δεύτερο αυτό διαμέρισμα προηγείται ενός του οποίου γίνεται αναπροσαρμογή και στο εμβαδό και στον όροφο κ.ο.κ

Άσκηση 10
Να γίνει αλγόριθμος που με δεδομένο έναν πίνακα ακεραίων θα εντοπίζει
1) Το πλήθος των άρτιων αριθμών του πίνακα και το άθροισμα αυτών
2) Το πλήθος των περιττών αριθμών του πίνακα και το άθροισμα αυτών