26
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ 21

ΚΕΦΑΛΑΙΟ 7_8_9

Embed Size (px)

Citation preview

Page 1: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

21

Page 2: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

22

Page 3: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

23

Θέματα Θεωρίας

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

Η πρώτη εντολή είναι η εντολή ΠΡΟΓΡΑΜΜΑ ακολουθούμενη από το όνομα του προγράμματος.

Κατόπιν δηλώνονται οι σταθερές. Μετά τις σταθερές δηλώνονται οι μεταβλητές. Ακολουθεί η εντολή ΑΡΧΗ και στη συνέχεια το κύριο μέρος του προγράμματος. Το πρόγραμμα τερματίζει με την εντολή ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ. Τα σχόλια αρχίζουν με θαυμαστικό (!) και αν οι εντολές καταλαμβάνουν περισσότερες από

μια γραμμές, ο πρώτος χαρακτήρας κάθε νέας γραμμής είναι ο &. Έτσι έχουμε: ΠΡΟΓΡΑΜΜΑ Όνομα ΣΤΑΘΕΡΕΣ Ονομα1 = τιμη1 Ονομα2 = τιμη2 ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: λίστα μεταβλητών ΑΚΕΡΑΙΕΣ: λίστα μεταβλητών ΧΑΡΑΚΤΗΡΕΣ: λίστα μεταβλητών ΛΟΓΙΚΕΣ: λίστα μεταβλητών ΑΡΧΗ Εντολή……… Εντολή……… Εντολή……… …………… Εντολή……… Εντολή……… Εντολή……… ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Όνομα 4. Ποιες εντολές σε ένα πρόγραμμα αντικαθιστούν την εντολή: Αντιμετάθεσε α,β ; Η παρακάτω ακολουθία εντολών είναι ισοδύναμη με την Αντιμετάθεσε α,β:

temp α α β

β temp

Page 4: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

24

5. Ποιοι κανόνες ισχύουν στη χρήση των εμφωλευμένων βρόγχων κατά την διάρκεια των δομών επανάληψης ;

i. Ο εσωτερικός βρόγχος πρέπει να βρίσκεται ολόκληρος μέσα στον εξωτερικό. Ο βρόγχος που ξεκινάει τελευταίος πρέπει να ολοκληρώνεται πρώτος.

ii. Η είσοδος σε κάθε βρόγχο υποχρεωτικά γίνεται από την αρχή του. iii. Δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής δυο ή περισσοτέρων βρόγχων

που ο ένας βρίσκεται στο εσωτερικό του άλλου. 6. Πως γίνεται η δήλωση ενός πίνακα στο τμήμα δηλώσεων των μεταβλητών ενός προγράμματος ; Κάθε πίνακας πρέπει υποχρεωτικά να περιέχει δεδομένα του ιδίου τύπου, δηλαδή ακέραια, πραγματικά, λογικά ή αλφαριθμητικά. Ο τύπος του πίνακα δηλώνεται μαζί με τις άλλες μεταβλητές του προγράμματος στο τμήμα δηλώσεων μεταβλητών ως εξής: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Θ[30] Εκτός λοιπόν από τον τύπο του πίνακα πρέπει να δηλώνεται και ο αριθμός των στοιχειών που περιέχει ή καλύτερα ο μεγαλύτερος αριθμός στοιχειών που μπορεί να έχει ο συγκεκριμένος πίνακας και αυτό για να δεσμευτούν οι αντίστοιχες συνεχόμενες θέσεις μνήμης. 7. Τι ορίζουμε πίνακα ; Πίνακας είναι ένα σύνολο αντικειμένων ιδίου τύπου, τα οποία αναφέρονται με ένα κοινό όνομα. Κάθε ένα από τα αντικείμενα που απαρτίζουν τον πίνακα λέγεται στοιχείο του πίνακα. 8. Πότε πρέπει να χρησιμοποιούνται οι πίνακες και ποια μειονεκτήματα παρουσιάζουν; Η χρήση πινάκων είναι ένας βολικός τρόπος για την διαχείριση πολλών δεδομένων ιδίου τύπου. Με τη χρήση των πινάκων έχουμε οποιαδήποτε στιγμή πρόσβαση σε όλες τις τιμές που βρίσκονται αποθηκευμένες σε αυτόν και διατηρούνται στη μνήμη του υπολογιστή μέχρι το τέλος εκτέλεσης του προγράμματος. Υπάρχουν όμως και 2 μειονεκτήματα από τη χρήση πινάκων.

Οι πίνακες απαιτούν μνήμη. Κάθε πίνακας δεσμεύει από την αρχή του προγράμματος πολλές θέσεις μνήμης. Σε ένα μεγάλο και σύνθετο πρόγραμμα η άσκοπη χρήση μεγάλων πινάκων μπορεί να οδηγήσει ακόμη και σε αδυναμία εκτέλεσης του.

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

9. Ποιοι είναι οι πλέον διαδεδομένοι αλγόριθμοι αναζήτησης ενός στοιχείου σε ένα πίνακα και τι γνωρίζεται για αυτούς ; Δυο είναι οι πλέον διαδεδομένοι αλγόριθμοι αναζήτησης: Η σειριακή αναζήτηση και η δυαδική αναζήτηση. Η σειριακή μέθοδος αναζήτησης είναι η πιο απλή αλλά και η λιγότερη αποτελεσματική μέθοδος. Χρησιμοποιείται όμως υποχρεωτικά για πίνακες που δεν είναι ταξινομημένοι. Αντίθετα η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένους πίνακες και είναι σαφώς αποδοτικότερη από τη σειριακή μέθοδο.

Page 5: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

25

Ερωτήσεις Θεωρίας

Πολλαπλής Επιλογής – Αντιστοίχισης – Σωστό & Λάθος

1. Οι τύποι μεταβλητών που δέχεται η ΓΛΩΣΣΑ είναι μόνο ΠΡΑΓΜΑΤΙΚΕΣ και

ΑΚΕΡΑΙΕΣ.

Σ Λ

2. Οι δηλώσεις των σταθερών προηγούνται πάντοτε των δηλώσεων των

μεταβλητών

Σ Λ

3. Τα σχόλια τοποθετούνται πάντα στην αρχή του προγράμματος Σ Λ

4. Κάθε εντολή ΑΝ περιλαμβάνει υποχρεωτικά το τμήμα ΑΛΛΙΩΣ Σ Λ

5. Κάθε τμήμα προγράμματος που χρησιμοποιεί την εντολή ΕΠΙΛΕΞΕ μπορεί να

γραφεί και με εντολές ΑΝ

Σ Λ

6. Η χρήση εμφωλευμένων ΑΝ είναι καλή προγραμματιστική τακτική Σ Λ

7. Αν το Α έχει την τιμή 10 και το Β την τιμή 20 τότε η έκφραση (Α > 8 ΚΑΙ Β <

20) Ή (Α > 10 Ή Β = 10) είναι αληθής

Σ Λ

8. Οι εντολές που βρίσκονται σε μία επανάληψη ΓΙΑ εκτελούνται τουλάχιστο μία

φορά

Σ Λ

9. Κάθε επανάληψη μπορεί να γραφεί με την εντολή ΟΣΟ - ΕΠΑΝΑΛΑΒΕ Σ Λ

10. Σε περίπτωση εμφωλευμένων βρόχων, ο εσωτερικός πρέπει να περικλείεται

ολόκληρος στον εξωτερικό

Σ Λ

11. Η τιμή του βήματος αναφέρεται υποχρεωτικά σε κάθε εντολή ΓΙΑ Σ Λ

12. Τα ονόματα και το πλήθος των εισιτηρίων 10 θεάτρων μπορούν να

αποθηκευτούν σε ένα δισδιάστατο πίνακα

Σ Λ

13. Οι μεταβλητές που χρησιμοποιούνται σε ένα πρόγραμμα αντιστοιχούνται από

το μεταγλωττιστή σε συγκεκριμένες θέσεις μνήμης του Η/Υ

Σ Λ

14. Η ταξινόμηση των στοιχείων ενός πίνακα πρέπει να γίνεται πάντα πριν από

την αναζήτηση

Σ Λ

15. Δεσμευμένες λέξεις καλούνται οι λέξεις που έχουν δεσμεύσει για τα ονόματα

των μεταβλητών

Σ Λ

16. Όλοι οι πίνακες δηλώνονται στο τμήμα δήλωσης μεταβλητών του

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

Σ Λ

17. Τα στοιχεία ενός πίνακα πρέπει να είναι του ιδίου τύπου Σ Λ

18. Η χρήση πινάκων αυξάνει την απαιτούμενη μνήμη για την εκτέλεση του

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

Σ Λ

19. Ο δείκτης ενός μονοδιάστατου πίνακα πρέπει να είναι πάντα I Σ Λ

20. Το αλφάβητο της γλώσσας αποτελείται μόνο από γράμματα ελληνικά -

λατινικά και αριθμούς

Σ Λ

21. Σε μια εντολή εκχώρησης η μεταβλητή αριστερά και η έκφραση δεξιά του

βέλους πρέπει να είναι του ιδίου τύπου

Σ Λ

22. Η δομή ενός προγράμματος σε ΓΛΩΣΣΑ είναι αυστηρά καθορισμένη Σ Λ

Page 6: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

26

23. Το τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ πρέπει απαραιτήτως να

προηγείται του τμήματος εντολών

Σ Λ

24. Μια έκφραση μπορεί να περιέχει μεταβλητές, σταθερές, τελεστές και

παρενθέσεις

Σ Λ

25. Όταν μια δομή επανάληψης είναι εμφωλευμένη σε μια άλλη, τότε για κάθε

εξωτερικό βρόχο πρέπει να ολοκληρώνονται όλες οι επαναλήψεις του εσωτερικού

Σ Λ

26. Όταν μια δομή "Για" είναι εμφωλευμένη σε μια άλλη δομή "Για", τότε

μπορούμε αν το επιθυμούμε για ευκολία να χρησιμοποιήσουμε την ίδια

μεταβλητή για μετρητή

Σ Λ

27. Ένα πρόγραμμα σε ΓΛΩΣΣΑ δεσμεύει τόσες συνεχόμενες θέσεις μνήμης για

έναν πίνακα όσες και οι θέσεις που εμφανίζονται στο τμήμα δηλώσεων

Σ Λ

28. Σε οποιοδήποτε σημείο ενός προγράμματος σε ΓΛΩΣΣΑ μπορούν να

τοποθετηθούν σχόλια

Σ Λ

29. Μπορούμε να αρχικοποιούμε μεταβλητές στο τμήμα δηλώσεων ενός

προγράμματος σε ΓΛΩΣΣΑ

Σ Λ

30. Σε ένα πρόγραμμα σε ΓΛΩΣΣΑ δεν μπορούμε να χρησιμοποιήσουμε λογική

σταθερά

Σ Λ

31. Στο τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ δηλώνουμε τα

ονόματα των πινάκων αλλά όχι και το μέγεθός τους

Σ Λ

32. Ένα πρόγραμμα σε ΓΛΩΣΣΑ έχει τη δυνατότητα να τροποποιεί το μέγεθος

ενός πίνακα στο τμήμα εντολών

Σ Λ

33. Για την εκτύπωση όλων των περιοχομένων ενός πίνακα απαιτείται η χρήση

δομών επανάληψης

Σ Λ

34. Για την αναζήτηση σε ταξινομημένους πίνακες προτιμάται η δυαδική

αναζήτηση

Σ Λ

35. Η συγχώνευση δυο πινάκων έχει ως στόχο να συνενώσει δυο πίνακες Σ Λ

36. Να συμπληρωθούν τα κενά ώστε οι επόμενες εντολές να τυπώνουν το

άθροισμα των τετραγώνων των περιττών αριθμών που είναι μικρότεροι από 10.

Άθροισμα __________

ΓΙΑ ___ ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ ____

Άθροισμα ________ + Ι ^ 2

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ Άθροισμα

37. Πόσες φορές θα εκτελεστεί η εντολή ΓΡΑΨΕ Α

Α 10

ΟΣΟ Α <> 0 ΕΠΑΝΑΛΑΒΕ

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5

Α Α-1

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ Α

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Page 7: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

27

38. Τι θα εκτυπώσουν οι παρακάτω εντολές:

Α 0

Β 5

Γ 10

ΑΝ Α > 10 ΤΟΤΕ

ΑΝ Β > 20 ΤΟΤΕ

ΑΝ Γ > 10 ΤΟΤΕ

ΓΡΑΨΕ Γ

ΑΛΛΙΩΣ

ΓΡΑΨΕ 2 * Γ

ΤΕΛΟΣ_ΑΝ

ΑΛΛΙΩΣ

ΓΡΑΨΕ Β

ΤΕΛΟΣ_ΑΝ

ΑΛΛΙΩΣ

ΑΝ Β < 10 ΤΟΤΕ

ΓΡΑΨΕ Α

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΑΝ

39. Να συμπληρωθούν τα κενά ώστε οι επόμενες εντολές να τυπώνουν το άθροισμα των

αριθμών από 100 έως 200.

Κ _____

Σ _____

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

Σ Σ+Κ

Κ Κ+1

ΜΕΧΡΙΣ_ΟΤΟΥ __________

ΓΡΑΨΕ Σ

40. Υπολογισμός και εκτύπωση του αθροίσματος κάθε γραμμής ενός δισδιάστατου πίνακα 5Χ5

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5

Σ _______

ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ ____

Σ ______ + Α[_, _]

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ Σ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Page 8: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

28

Άλυτες Ασκήσεις

ΑΣΚΗΣΗ 1η Να μετατρέψετε σε κώδικα προγράμματος τις παρακάτω παραστάσεις :

2 mT

D

,

212

mv ,

2 42

2 21 2 1 2( ) ( )d x x y y

ΑΣΚΗΣΗ 2η Γράψτε το πρόγραμμα για το παρακάτω πρόβλημα και στη συνέχεια πραγματοποιήστε εικονική εκτέλεσή του έτσι ώστε να βεβαιωθείτε ότι λειτουργεί σωστά. Δίδονται οι πλευρές ενός τριγώνου

και υπολογίζεται το εμβαδόν του τριγώνου με τον τύπο του Ήρωνα ( )( )( )E

όπου τ είναι η ημιπερίμετρος του τριγώνου 2

.

Προβληματιστείτε πάνω στο ερώτημα : Μπορεί ο υπολογισμός αυτός να γίνεται για κάθε τριάδα αριθμών; Προσπαθήστε να δικαιολογήσετε τη απάντησή σας όσο καλύτερα μπορείτε. ΑΣΚΗΣΗ 3η

Η περίοδος ενός εκκρεμούς δίνεται από τον τύπο 2 LTg

όπου L το μήκος του εκκρεμούς και

g η επιτάχυνση της βαρύτητας. Γράψτε πρόγραμμα το οποίο να υπολογίζει την περίοδο του εκκρεμούς. Το μήκος του εκκρεμούς θα δίνεται από το χρήστη κατά την εκτέλεση του προγράμματος. ΑΣΚΗΣΗ 4η Έστω το παρακάτω τμήμα προγράμματος:

Κ <- 0 ΓΙΑ Ι ΑΠΟ 0 ΜΕΧΡΙ 100 ΜΕ_ΒΗΜΑ -5 Α <- Ι ^ 3 Κ <- Κ + Α ΓΡΑΨΕ Ι, Α ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ Κ

Πόσες φορές θα εκτελεστεί ο βρόχος; Ποια η λειτουργία των εντολών; Γράψτε τις παραπάνω εντολές χρησιμοποιώντας την εντολή επανάληψης «ΌΣΟ» και την εντολή επανάληψης «ΜΕΧΡΙΣ_ΟΤΟΥ». Ποιον από τους τρεις τρόπους προτιμάς και γιατί; ΑΣΚΗΣΗ 5η Να γραφτεί πρόγραμμα το οποίο να υπολογίζει τη συνολική χωρητικότητα πυκνωτών και τη συνολική αντίσταση αντιστάσεων. Η συνολική αντίσταση R και η συνολική χωρητικότητα C δίνεται από τους τύπους :

Σε σειρά:

Σε παραλληλία:

Tο πρόγραμμα θα ελέγχεται από μενού επιλογής και θα τερματίζεται όταν ο χρήστης επιλέξει έξοδο.

Page 9: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

29

ΑΣΚΗΣΗ 6η Να γραφτεί πρόγραμμα που να διαβάζει το βαθμό ενός μαθητή και να υπολογίζει την αντίστοιχη αξιολόγησή του με βάση το βαθμό του και σύμφωνα με τον παρακάτω πίνακα: 17, 5 - 20 Άριστα 15, 5 - 17, 4 Πολύ καλά 13, 5 - 15, 4 Καλά 9, 5 - 13, 4 Μέτρια 0 - 9, 4 Απορρίπτεται Το πρόγραμμα να γραφτεί με τους ακόλουθους τρόπους: με εντολές ΑΝ.. ΤΟΤΕ, με εντολές ΑΝ.. ΤΟΤΕ.. ΑΛΛΙΩΣ_ΑΝ, με εμφωλευμένα ΑΝ και με την εντολή ΕΠΙΛΕΞΕ. ΑΣΚΗΣΗ 7η Στο κεφάλαιο 2 του βιβλίου σου παρουσιάστηκε και συζητήθηκε αναλυτικά ο Πολλαπλασιασμός αλλά Ρωσικά. Να γράψεις πρόγραμμα που να τον υλοποιεί για διάφορα ζεύγη τιμών. ΑΣΚΗΣΗ 8η Να γραφτεί ένα πρόγραμμα το οποίο να δέχεται έναν ακέραιο αριθμό και να τον αναλύει σε γινόμενο πρώτων παραγόντων. ΑΣΚΗΣΗ 9η Να γράψετε πρόγραμμα το οποίο θα διαβάζει ακέραιους αριθμούς μέχρι να δοθεί αριθμός του οποίου το τετράγωνό του να είναι μεγαλύτερο από το 10000. Τότε, το πρόγραμμα χωρίς να συνυπολογίζει τον αριθμό ο οποίος είχε τετράγωνο μεγαλύτερο του 1000, θα εκτυπωθεί το πλήθος των αριθμών που δόθηκαν. ΑΣΚΗΣΗ 10η Να αναπτυχθεί πρόγραμμα που θα διαβάζει δυο ακέραιους αριθμούς και αν το τελευταίο τους ψηφίο είναι το ίδιο θα υπολογίζει το μέσο όρο των δυο αριθμών ενώ στην αντίθετη περίπτωση θα υπολογίζει την απόλυτη τιμή της διαφοράς τους ΑΣΚΗΣΗ 11η Να γράψετε πρόγραμμα το οποίο θα διαβάζει το πολύ είκοσι τιμές προϊόντων. Ωστόσο, αν διαβαστεί ως τιμή προϊόντος η τιμή 0, θα σταματάει η εκτέλεση του προγράμματος, και θα εκτυπώνει το πλήθος των προϊόντων που διαβάστηκαν και το μέσο όρο των τιμών τους. ΑΣΚΗΣΗ 12η Η CityTel Telephony χρεώνει κλιμακωτά τους πελάτες της για τις υπηρεσίες σταθερής τηλεφωνίας σύμφωνα με τον πίνακα:

Μονάδες Χρέωση (€ ανά μονάδα) 0 – 120 0.10

121 – 260 0.08 261 – 400 0.06

401 και άνω 0.03 Το πάγιο τέλος χρήσης των υπηρεσιών είναι 10€ μηνιαίως, ενώ το συνολικό ποσό υπόκειται σε φόρο 2% για τέλη τηλεπικοινωνιών και 19% ΦΠΑ. Να αναπτυχθεί πρόγραμμα που θα διαβάζει το όνομα ενός συνδρομητή, τις τηλεφωνικές μονάδες που κατανάλωσε και να εκτυπώνει το ποσό του λογαριασμού. ΑΣΚΗΣΗ 13η Σε ένα αγώνα ρίψης ακοντίου, διεξάγεται ο προκριματικός γύρος με τη συμμετοχή 14 αθλητών. Στην τελική φάση προκρίνονται όσοι αθλητές επιτύχουν επίδοση άνω των 80 μέτρων. Να γραφεί πρόγραμμα το οποίο : α. Να διαβάζει το όνομα και την επίδοση κάθε αθλητή, να υπολογίζει και να εμφανίζει τα ονόματα και το πλήθος των αθλητών που πέρασαν το όριο. β. Να εμφανίζει το όνομα του αθλητή που πλησίασε πιο κοντά από όλους τα 70 μέτρα.

Page 10: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

30

ΑΣΚΗΣΗ 14η Ένα τυπογραφείο έχει το εξής κοστολόγιο :

Είδος εκτύπωσης Επιφάνεια Κόστος μέχρι 250 τ. εκ. 0.35 € ανά τ. εκ.

Ασπρόμαυρη πάνω από 250 τ. εκ. 0.45 € ανά τ. εκ.

μέχρι 150 τ. εκ. 0.55 € ανά τ. εκ. από 150 τ. εκ. μέχρι 850 τ. εκ. 0.70 € ανά τ. εκ. Έγχρωμη

πάνω από 850 τ. εκ. 0.88 € ανά τ. εκ. Να αναπτύξετε πρόγραμμα που θα διαβάζει το είδος και την επιφάνεια της εκτύπωσης και θα εκτυπώνει το κόστος της αν υπάρχει και επιβάρυνση φόρου 4 %. ΑΣΚΗΣΗ 15η Μια δημόσια υπηρεσία διενεργεί διαγωνισμό πρόσληψης και θέλει να εξάγει στατιστικά στοιχεία. Να γραφεί αλγόριθμος ή πρόγραμμα σε Γλώσσα το οποίο : α. Να διαβάζει το ονοματεπώνυμο κάθε υποψηφίου και σταματά μόλις δοθεί ως ονοματεπώνυμο το κενό. β. Να διαβάζει την οικογενειακή κατάσταση κάθε υπαλλήλου ( ‘Ε’ = Έγγαμος, ‘Α’=Άγαμος) και να ελέγχει την ορθή εισαγωγή. γ. Να διαβάζει το επίπεδο εκπαίδευσης κάθε υπαλλήλου ( 1 = Υποχρεωτική Εκπαίδευση, 2=Δευτεροβάθμια Εκπαίδευση, 3 = Πανεπιστημιακή Εκπαίδευση) και να ελέγχει την ορθή εισαγωγή. δ. Να υπολογίζει και να εμφανίζει το πλήθος των υπαλλήλων που είναι έγγαμοι. ε. Στο πλήθος των εγγάμων υπαλλήλων να υπολογίζει και να εμφανίζει το ποσοστό των υπαλλήλων που έχουν υποχρεωτική και το ποσοστό των υπαλλήλων που έχουν πανεπιστημιακή εκπαίδευση. ΑΣΚΗΣΗ 16η Ο Γιωργάκης ζήτησε από τους γονείς του χρήματα για την αγορά μοτοποδηλάτου, το κόστος του οποίου είναι 1450 €. Οι γονείς του αντιπρότειναν να αποταμιεύει από το εβδομαδιαίο χαρτζιλίκι, το οποίο κάθε εβδομάδα θα αυξάνεται κατά 35%, ενώ την πρώτη βδομάδα του έδωσαν 5 €. Να αναπτύξετε πρόγραμμα που να υπολογίζει και να εμφανίζει σε πόσους μήνες θα μπορέσει να προβεί στην αγορά. ΑΣΚΗΣΗ 17η Οι μαθητές της Γ λυκείου αποφάσισαν να πραγματοποιήσουν λαχειοφόρο αγορά για τη συγκέντρωση χρημάτων για την εκδρομή τους καθώς τους λείπουν 800 €. Εκτύπωσαν δε, για το σκοπό αυτό 300 λαχνούς. Κάθε λαχνός στοιχίζει 5 €, ωστόσο αν αγοραστούν περισσότεροι από 4 λαχνοί χρεώνονται 4 € ο κάθε ένας. Το προεδρείο της τάξης θα προχωρήσει στην πώληση λαχνών μέχρι εξαντλήσεως των κουπονιών ή μέχρι να συγκεντρωθεί το απαιτούμενο ποσό. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει το όνομα κάθε αγοραστή λαχνών και το πλήθος των λαχνών που αγόρασε και θα εκτυπώνει τα χρήματα που διέθεσε. Προφανώς οι λαχνοί που αγόρασε πρέπει να είναι διαθέσιμοι. β. Θα εκτυπώνει το όνομα αυτού που αγόρασε τα περισσότερα κουπόνια. γ. Θα εκτυπώνει τα έσοδα και πόσα κουπόνια περίσσεψαν; δ. Τι ποσοστό των κουπονιών πουλήθηκαν σε μειωμένη τιμή; ΑΣΚΗΣΗ 18η Στα πλαίσια του μαθήματος Βοτανική του Γεωπονικού Πανεπιστημίου Αθηνών, ο διδάσκων καθηγητής εφαρμόζει τον παρακάτω τρόπο αξιολόγησης των φοιτητών. Προκειμένου να αξιολογηθούν ως επιτυχόντες οι φοιτητές θα πρέπει να εξεταστούν σε γραπτή δοκιμασία στην οποία να συγκεντρώσουν βαθμό μεγαλύτερο ή ίσο του πέντε (5) καθώς και να παραδώσουν δύο εργασίες ο μέσος όρος των οποίων να είναι και αυτός μεγαλύτερος ή ίσος του πέντε (5). Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ το οποίο: α. Να διαβάζει το όνομα και το επώνυμο του φοιτητή, το βαθμό της γραπτής εξέτασής του, τους βαθμούς των δύο εργασιών του καθώς και να υπολογίζει το μέσο όρο των εργασιών του. β. Να υπολογίζει το συνολικό βαθμό του φοιτητή στο μάθημα ως μέσο όρο του βαθμού της γραπτής εξέτασης και του μέσου όρου των εργασιών του. Αν ο φοιτητής ικανοποιεί τις δύο απαιτήσεις που έχει θέσει ο καθηγητής για να κριθεί ως επιτυχόντας στο μάθημα να τυπώνεται το εξής μήνυμα «Ο φοιτητής ολοκλήρωσε με επιτυχία τις υποχρεώσεις του στο μάθημα με συνολικό βαθμό 5.6». Αν ο φοιτητής έχει μέσο όρο στις εργασίες του μικρότερο από το πέντε

Page 11: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

31

(5) ενώ ο βαθμός στη γραπτή εξέταση είναι μεγαλύτερος ή ίσος του πέντε (5) να τυπώνεται το εξής μήνυμα «Πρέπει να επαναλάβετε τις εργασίες σας». Στην περίπτωση που ο φοιτητής δεν έχει βαθμό στη γραπτή εξέταση μεγαλύτερο ή ίσο του πέντε (5) ανεξάρτητα με το αν ο μέσος όρος του είναι ο προβλεπόμενος ή όχι για να επιτύχει στο μάθημα, τότε να τυπώνεται το μήνυμα «Δυστυχώς πρέπει να παρακολουθήσετε ξανά το μάθημα». Ασκήσεις στους Πίνακες (Μονοδιάστατοι) ΑΣΚΗΣΗ 1η Να γράψετε τις δηλώσεις των παρακάτω πινάκων, καθώς και τις εντολές με τις οποίες εκχωρούνται οι τιμές σε αυτά: α. Πίνακας 5 στοιχείων που κάθε στοιχείο έχει την τιμή του δείκτη του. β. Πίνακας που περιέχει τα ονόματα των συμμαθητών σου. γ. Πίνακας με 10 στοιχεία, πρώτο στοιχείο τον αριθμό 500 και κάθε επόμενο στοιχείο να είναι το μισό του προηγούμενου, δηλαδή το δεύτερο 250, το τρίτο 125 κ.ο.κ. ΑΣΚΗΣΗ 2η Δίνεται ένας μονοδιάστατος πίνακας ο οποίος περιέχει τις βαθμολογίες 50 μαθητών σε κάποιο μάθημα. Κάποιος μαθητής θεωρείται ότι απέτυχε στο συγκεκριμένο μάθημα αν ο βαθμός του είναι μικρότερος του 9,5, ενώ κάποιος μαθητής θεωρείται ότι αρίστευσε αν ο βαθμός του είναι μεγαλύτερος ή ίσος του 19. Να γραφεί πρόγραμμα το οποίο θα διαβάζει τα στοιχεία ενός τέτοιου πίνακα και θα υπολογίζει το πλήθος των μαθητών που απέτυχαν και το πλήθος των μαθητών που αρίστευσαν. ΑΣΚΗΣΗ 3η Δίνεται το παρακάτω πρόγραμμα, το οποίο περιέχει λάθη. Να επισημάνετε τον αριθμό της γραμμής ποιο είναι το λάθος, γιατί είναι λάθος και κάποια πρόταση για διόρθωσή του.

1. ΠΡΟΓΡΑΜΜΑ Βρες τα λάθη 2. ΣΤΑΘΕΡΑ 3. π <– 3.1415 4. ΜΕΤΑΒΛΗΤΕΣ 5. ΑΚΕΡΑΙΕΣ: α, β, ΠΙΝ, κ = 2 6. ΠΡΑΓΜΑΤΙΚΕΣ: i, γ, β, π 7. ΧΑΡΑΚΤΗΡΕΣ: ζ 8. ΑΡΧΗ 9. ΔΙΑΒΑΣΕ ζ, α 10. ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 11. ΔΙΑΒΑΣΕ ΠΙΝ[i] 12. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 13. β <- (5 * π * α) DIV 5 14. α <– α + γ 15. κ <– γ ^ 2 16. ΓΡΑΨΕ ζ, γ, δ 17. β <– Α_Μ (Α_Τ (γ) + α) 18. ΑΝ Α_Τ (β – α) > 3 ΤΟΤΕ 19. ΓΡΑΨΕ ζ, β, δ 20. ΑΛΛΙΩΣ 21. ΓΡΑΨΕ ζ, α, γ 22. ΤΕΛΟΣ_ΑΝ 23. ΑΠΟΤΕΛΕΣΜΑΤΑ // ΠΙΝ // 24. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Βρες τα λάθη

ΑΣΚΗΣΗ 4η Εργάζεστε σε μία εταιρεία η οποία εμπορεύεται ένα συγκεκριμένο τύπο αυτοκινήτων. Η εταιρεία διατηρεί αποθηκευτικούς χώρους σε 12 πόλεις της Ελλάδας. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει τον αριθμό των αυτοκινήτων που υπάρχει σε κάθε αποθήκη. β. Θα υπολογίζει τη συνολική αξία των αυτοκινήτων σε όλες τις αποθήκες, αν λάβετε υπόψη σας ότι κάθε αυτοκίνητο στοιχίζει 9000 Ευρώ. γ. Θα εμφανίζει το μήνυμα «ΣΥΝΟΛΙΚΗ ΑΞΙΑ» και στη συνέχεια τη συνολική αξία των αυτοκινήτων.

Page 12: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

32

ΑΣΚΗΣΗ 5η Η ΑΤΤΙΚΟ ΜΕΤΡΟ διατηρεί έναν πίνακα όπου αναγράφονται πόσα εισιτήρια πουλήθηκαν κάθε μέρα για μία εβδομάδα. Στο τέλος κάθε εβδομάδας, υπολογίζεται η συνολική αξία των εισιτηρίων που πουλήθηκαν. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει τον αριθμό των εισιτηρίων που πουλήθηκαν κάθε μέρα, ο οποίος πρέπει να ελέγχεται ώστε να είναι μη αρνητικός. β. Θα υπολογίζει τη συνολική αξία των εισιτηρίων για τις επτά (7) ημέρες της εβδομάδας με δεδομένο ότι η τιμή του κάθε εισιτηρίου είναι 0,7 Ευρώ. γ. Θα εμφανίζει το μήνυμα «ΣΥΝΟΛΙΚΑ ΕΣΟΔΑ» και στη συνέχεια τα συνολικά έσοδα της εταιρείας. ΑΣΚΗΣΗ 6η Ένας μαθητής έχει μία συλλογή από δίσκους cd και για κάθε δίσκο έχει καταγράψει στον υπολογιστή τον τίτλο και τη χρονιά έκδοσής του. Ο αλγόριθμος ταξινομεί τα cd με βάση τη χρονιά τους και υπολογίζει τον αριθμό των cd που έχουν χρονολογία έκδοσης μέχρι και το 1995, εκτυπώνοντας ταυτόχρονα και τους τίτλους τους. ΑΣΚΗΣΗ 7η Ένας πίνακας Α 100 θέσεων είναι γεμάτος με τις σωστές απαντήσεις σε ένα διαγώνισμα σωστού – λάθους. Δίνεται ο πίνακας Μ 100 θέσεων με τις απαντήσεις που έδωσε ένας μαθητής. Να αναπτύξετε πρόγραμμα το οποίο θα χαρακτηρίζει το μαθητή με βάση τις σωστές απαντήσεις του.

Από 90-100 σωστές απαντήσεις «Άριστος» Από 70-89 σωστές απαντήσεις «Πολύ Καλός» Από 60-69 σωστές απαντήσεις «Καλός» Από 50-59 σωστές απαντήσεις «Μέτριος» Από 0-49 σωστές απαντήσεις «Κακός»

ΑΣΚΗΣΗ 8η Να γραφεί πρόγραμμα το οποίο θα διαβάζει τον αριθμό των εισιτηρίων που έκοψαν 12 ταινίες καθώς και τον τίτλο κάθε ταινίας και θα βρίσκει και θα τυπώνει το μικρότερο αριθμό εισιτηρίων καθώς και τον τίτλο της ταινίας για την οποία αυτός πραγματοποιήθηκε, όπως επίσης και το μεγαλύτερο αριθμό εισιτηρίων, καθώς και τον τίτλο της ταινίας για την οποία αυτός πραγματοποιήθηκε. ΑΣΚΗΣΗ 9η Έχουμε δύο πίνακες, ο ένας με τα μοντέλα των υπολογιστών και ο δεύτερος με τις τιμές τους. Να γράψετε τις εντολές που βρίσκουν και τυπώνουν το φθηνότερο μοντέλο καθώς και το ακριβότερο. ΑΣΚΗΣΗ 10η Μια οικολογική οργάνωση διαθέτει στοιχεία για το ποσοστό δασών σε 50 διαφορετικές χώρες. Χρειάζεται να πάρει μια απόφαση για να διοργανώσει μια εκδήλωση διαμαρτυρίας για τις 10 χώρες που έχουν το χαμηλότερο ποσοστό δασών. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει σε δύο πίνακες τα ονόματα 50 χωρών και τα ποσοστά των δασών που έχει η κάθε μία. β. Θα ταξινομεί τα στοιχεία του πίνακα με τα ποσοστά με τη μέθοδο της φυσαλίδας. γ. Θα εμφανίζει τις 10 χώρες στις οποίες θα διοργανωθεί τελικά η εκδήλωση διαμαρτυρίας. ΑΣΚΗΣΗ 11η Για την ευκολότερη επιλογή προορισμών εκπαιδευτικών επισκέψεων, θέλετε να κατασκευάσετε έναν αλφαριθμητικό πίνακα ο οποίος θα περιέχει τα ονόματα των Ν μουσείων της Αθήνας. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει και θα εκχωρεί σε έναν πίνακα τα ονόματα των μουσείων. β. Θα αναζητά ένα μουσείο δίνοντας το όνομά του και θα εμφανίζει μήνυμα αν υπάρχει ή δεν υπάρχει. ΑΣΚΗΣΗ 12η Στη βιβλιοθήκη ενός σχολείου υπάρχουν πολλά βιβλία σχετικά με τη γεωγραφία και τα ταξίδια. Έστω ότι κάθε βιβλίο έχει ένα μοναδικό κωδικό και καταχωρείται σε ηλεκτρονικό υπολογιστή ο τίτλος και ο συγγραφέας κάθε βιβλίου. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα καταγράφει τα στοιχεία των 1000 βιβλίων στους πίνακες ΟΝΟΜΑ, ΤΙΤΛΟΣ, ΚΩΔΙΚΟΣ. β. Θα διαβάζει το όνομα ενός συγγραφέα και αν υπάρχει θα βρίσκει τον κωδικό ή τους κωδικούς και τον τίτλο ή τους τίτλους των βιβλίων του συγγραφέα αυτού που υπάρχουν στη βιβλιοθήκη. Στην περίπτωση που δεν υπάρχει ο συγγραφέας θα εκτυπώνει το μήνυμα: «Άγνωστος».

Page 13: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

33

ΑΣΚΗΣΗ 13η Ένας καθηγητής σας ζητάει να φτιάξετε πρόγραμμα το οποίο θα καταχωρεί τους βαθμούς των μαθητών του σε ηλεκτρονικό υπολογιστή. Να αναπτύξετε λοιπόν ένα πρόγραμμα το οποίο: α. Θα εισάγει τους βαθμούς των Ν μαθητών του σε ένα μονοδιάστατο πίνακα. Οι βαθμοί θα πρέπει να ελέγχονται ώστε να είναι μεταξύ των ορίων ένα (1) και είκοσι (20), για να μην δοθεί από λάθος βαθμός αρνητικός ή μεγαλύτερος του είκοσι (20). β. Θα εμφανίζει σε ποια θέση βρίσκεται και ποιος είναι ο μικρότερος βαθμός. γ. Θα υπολογίζει το μέσο όρο της βαθμολογίας των Ν μαθητών. Αν ο μέσος όρος είναι μικρότερος του 12, ο καθηγητής θα δίνει έναν βαθμό επιπλέον σε όλους τους μαθητές, εκτός από τους μαθητές που έχουν ήδη είκοσι (20). Στη συνέχεια θα εκτυπώνονται οι νέοι βαθμοί των Ν μαθητών. ΑΣΚΗΣΗ 14η Να αναπτύξετε πρόγραμμα το οποίο θα διαβάζει τα ονόματα 50 αεροπορικών εταιρειών και τις αντίστοιχες εισπράξεις τους και θα εμφανίζει: α. Τα ονόματα των εταιρειών που εισέπραξαν περισσότερο από το μέσο όρο. β. Τα ονόματα των εταιρειών με τις λιγότερες και τις περισσότερες εισπράξεις. γ. Ποιες άλλες εταιρείες έχουν εισπράξεις ίσες με τις λιγότερες και θα εκτυπώνει τα ονόματά τους. ΑΣΚΗΣΗ 15η Να αναπτύξετε πρόγραμμα το οποίο θα διαβάζει τον αριθμό των τερμάτων που σημειώθηκαν σε 18 αγώνες ποδοσφαίρου μιας αγωνιστικής Α κατηγορίας και θα υπολογίζει και θα εμφανίζει το μέσο αριθμό τερμάτων που σημειώθηκαν καθώς και το εύρος των τερμάτων. (Εύρος ονομάζεται η διαφορά της μεγαλύτερης από την μικρότερη τιμή). ΑΣΚΗΣΗ 16η Οι επτά (7) μέσες θερμοκρασίες της εβδομάδας καταγράφονται σε έναν πίνακα για ένα μετεωρολογικό σταθμό. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει σε έναν πίνακα τις θερμοκρασίες σε βαθμούς Κελσίου.

β. Θα μετατρέπει αυτές τις θερμοκρασίες σε βαθμούς Φαρεναίτ με βάση τον τύπο 32

9 5f c

και

θα τις αποθηκεύει σε ένα νέο πίνακα. γ. Θα βρίσκει τη μέση εβδομαδιαία θερμοκρασία σε Κελσίου. δ. Θα βρίσκει τη μέγιστη και ελάχιστη θερμοκρασία της εβδομάδας. ε. Στη συνέχεια θα εμφανίζει το μήνυμα «ΔΩΣΤΕ Κ ΓΙΑ ΝΑ ΕΚΤΥΠΩΘΟΥΝ ΟΙ ΘΕΡΜΟΚΡΑΣΙΕΣ ΤΗΣ ΕΒΔΟΜΑΔΑΣ ΣΕ ΚΕΛΣΙΟΥ Ή Φ ΓΙΑ ΝΑ ΕΚΤΥΠΩΘΟΥΝ ΟΙ ΘΕΡΜΟΚΡΑΣΙΕΣ ΤΗΣ ΕΒΔΟΜΑΔΑΣ ΣΕ ΦΑΡΕΝΑΙΤ». Ο χρήστης πρέπει να ελέγχεται ώστε να μην δώσει κάποια άλλη τιμή, εκτός από Κ ή Φ. Στη συνέχεια θα διαβάζει την απάντηση και θα εκτυπώνει τις θερμοκρασίες σε βαθμούς Κελσίου ή σε Φαρενάιτ, ανάλογα με την προτίμηση του χρήστη. ΑΣΚΗΣΗ 17η Τα τελευταία χρόνια συλλέγετε τηλεκάρτες. Αποφασίζετε να οργανώσετε τη συλλογή των Ν τηλεκαρτών σας κατασκευάζοντας ένα πρόγραμμα. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει τα στοιχεία του πίνακα ΤΙΤΛΟΣ με τον τίτλο της κάρτας, και του πίνακα ΕΤΟΣ_ΚΥΚΛ με το έτος κυκλοφορίας κάθε κάρτας. β. Θα υπολογίζει και θα εκτυπώνει πόσες κάρτες της συλλογής σας έχουν κυκλοφορήσει το 2000. γ. Θα εκτυπώνει τον τίτλο των καρτών της συλλογής σας που έχουν κυκλοφορήσει το 1995. δ. Θα αναζητάει αν έχετε την τηλεκάρτα με τον τίτλο «ΜΑΚΕΔΟΝΙΑ» και θα εκτυπώνει σχετικό μήνυμα αν υπάρχει ή δεν υπάρχει. ε. Θα εντοπίζει την τηλεκάρτα με τίτλο «ΟΛΥΜΠΙΑΔΑ» και αν υπάρχει θα εκτυπώνει πότε έχει εκδοθεί, αλλιώς το μήνυμα «ΔΕΝ ΥΠΑΡΧΕΙ». ΑΣΚΗΣΗ 18η Στη γραμματεία ενός σχολείου αποφασίζουν να ελέγχουν τις απουσίες των 1200 μαθητών με ένα πρόγραμμα. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει τα στοιχεία του πίνακα ΟΝΟΜΑ με το όνομα κάθε μαθητή, και του πίνακα ΑΠΟΥΣΙΕΣ με τον αριθμό των αδικαιολόγητων απουσιών του μαθητή. β. Θα αναζητάει και θα εκτυπώνει τις απουσίες που έχει κάνει ένας συγκεκριμένος μαθητής δίνοντας το όνομά του αν υπάρχει. Αν δεν υπάρχει θα εκτυπώνει το μήνυμα «Δεν υπάρχει ο μαθητής αυτός». γ. Θα εντοπίζει και θα εκτυπώνει τα ονόματα όλων των μαθητών που δεν έχουν κάνει καθόλου αδικαιολόγητες απουσίες.

Page 14: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

34

δ. Θα βρίσκει και θα εκτυπώνει τα ονόματα των μαθητών που έχουν κάνει περισσότερες από 45 αδικαιολόγητες απουσίες και θα αποθηκεύει τα ονόματά τους σε ένα νέο πίνακα. Θα εκτυπώνει το νέο πίνακα. ΑΣΚΗΣΗ 19η Διατηρείτε κατάστημα με μουσικά CD. Για την εξυπηρέτηση των πελατών σας θέλετε να κατασκευάσετε ένα πρόγραμμα για την καλύτερη οργάνωση των Ν CD που διαθέτετε. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει το πλήθος των CD που διαθέτετε και θα εισάγει όλους τους τίτλους που διαθέτετε στον πίνακα CD. β. Θα αναζητάει αν έχετε ένα συγκεκριμένο CD. Ανάλογα με το αποτέλεσμα της αναζήτησης, ο αλγόριθμος θα εμφανίζει σχετικό μήνυμα. ΑΣΚΗΣΗ 20η Για μισθολογικούς σκοπούς, η εταιρεία όπου εργάζεστε διατηρεί έναν πίνακα όπου καταχωρεί το έτος γέννησης των Ν εργαζομένων που απασχολεί. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα εισάγει το έτος γέννησης στον πίνακα ΕΤΟΣ_ΓΕΝ. β. Θα δημιουργεί ένα νέο πίνακα ΗΛΙΚΙΑ, όπου θα καταχωρεί την ηλικία των εργαζομένων. γ. Θα εκτυπώνει πόσοι εργαζόμενοι είναι μεγαλύτεροι από 65 ετών. δ. Θα αναζητάει αν υπάρχει εργαζόμενος 18 ετών και θα εκτυπώνει σχετικό μήνυμα για το αν υπάρχει ή όχι. ε. Θα ταξινομεί τον πίνακα ΗΛΙΚΙΑ με τη μέθοδο της φυσαλίδας και θα εκτυπώνει τη μέγιστη και την ελάχιστη ηλικία. ΑΣΚΗΣΗ 21η Αναλαμβάνετε να οργανώσετε το ΤΕΧΝΟΡΑΜΑ, ένα εβδομαδιαίο περιοδικό για το πρόγραμμα στις 150 κινηματογραφικές αίθουσες της Αθήνας. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει τα στοιχεία του πίνακα ΤΙΤΛΟΣ με τους τίτλους των ταινιών, και του πίνακα ΑΙΘΟΥΣΑ με τα ονόματα των κινηματογραφικών αιθουσών. β. Θα ταξινομεί τους πίνακες με βάση τον πίνακα των κινηματογραφικών αιθουσών. γ. Θα διαβάζει το όνομα μιας αίθουσας και θα αναζητάει αν υπάρχει η αίθουσα με αυτό το όνομα. Αν υπάρχει, θα εκτυπώνει τον τίτλο της ταινίας που προβάλει. Αν δεν υπάρχει θα εκτυπώνει το μήνυμα «Δεν υπάρχει». δ. Θα αναζητάει σε ποιες αίθουσες προβάλλεται η ταινία με τον τίτλο «CLERKS» και για όποια αίθουσα προβάλλεται θα εκτυπώνει το όνομα της αίθουσας. Αν η ταινία δεν προβάλλεται σε καμία αίθουσα θα εκτυπώνει το μήνυμα «ΔΕΝ ΠΡΟΒΑΛΛΕΤΑΙ». ε. Θα εκτυπώνει το μήνυμα: «Αίθουσα - Τίτλος Ταινίας» και στη συνέχεια θα εκτυπώνει τις αίθουσες και τους τίτλους των ταινιών που προβάλλουν. ΑΣΚΗΣΗ 22η (ΣΥΓΧΩΝΕΥΣΗ ΠΙΝΑΚΩΝ) Δύο μηνιαία περιοδικά, το «Τεχνολογικά Νέα» και «Πληροφορική» ενώνουν τις δυνάμεις τους για την έκδοση του νέου εβδομαδιαίου περιοδικού «Τεχνολογικά Επίκαιρα». Για την ενημέρωση των συνδρομητών τους, απαιτείται η συγχώνευση των πινάκων ΤΝ όπου είναι καταγραμμένοι οι συνδρομητές του περιοδικού «Τεχνολογικά Νέα» και ΠΛ όπου είναι καταγραμμένα τα ονόματα των συνδρομητών του περιοδικού «Πληροφορική». Και οι δύο πίνακες είναι ταξινομημένοι κατά αύξουσα αλφαβητική σειρά. Να αναπτύξετε πρόγραμμα το οποίο να συγχωνεύει τους δύο πίνακες. ΑΣΚΗΣΗ 23η (ΔΙΑΧΩΡΙΣΜΟΣ ΠΙΝΑΚΩΝ) Να αναπτύξετε πρόγραμμα το οποίο θα διαβάζει τα ονόματα 1200 μαθητών και τον αντίστοιχο μέσο όρο τους σε δύο πίνακες. Στη συνέχεια, θα διαχωρίζει τον πίνακα με τα ονόματα σε δύο πίνακες, όπου ο πρώτος θα περιέχει τα ονόματα των μαθητών με μέσο όρο κάτω από 9,5 και ο άλλος τα ονόματα των μαθητών με μέσο όρο από 9,5 και άνω. Τέλος, ο αλγόριθμος, θα εκτυπώνει τους δύο νέους πίνακες. ΑΣΚΗΣΗ 24η Σε ένα φιλανθρωπικό διαγωνισμό συμμετέχουν 100 μέλη ενός αθλητικού συλλόγου με έπαθλο ένα μετάλλιο του συλλόγου. Κάθε μέλος αγοράζει ένα λαχνό. Να γραφεί πρόγραμμα το οποίο: α. Να διαβάζει τα ονοματεπώνυμα των μελών και τον αριθμό του λαχνού που αγόρασαν. β. Να εμφανίζει στη συνέχεια το ονοματεπώνυμο του νικητή, αφού πληκτρολογήσουμε το αποτέλεσμα της κλήρωσης. Στην περίπτωση που ο λαχνός που κληρώθηκε δεν έχει αγοραστεί από κάποιο μέλος, το πρόγραμμα θα πρέπει να εμφανίζει κατάλληλο μήνυμα.

Page 15: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

35

ΑΣΚΗΣΗ 25η Να αναπτύξετε πρόγραμμα ή αλγόριθμο ο οποίος: α. Θα διαβάζει και θα εκχωρεί σε ένα μονοδιάστατο πίνακα 1000 θέσεων ακέραιους αριθμούς, β. Θα αντιγράφει τα μη θετικά στοιχεία του πίνακα σε ένα νέο πίνακα και γ. Θα εκτυπώνει το νέο πίνακα. ΑΣΚΗΣΗ 26η Μια μέρα στο υποκατάστημα μιας τράπεζας εμφανίζονται 300 πελάτες. Κάθε πελάτης στην αρχή της ημέρας έχει ένα υπόλοιπο καταθέσεων στο λογαριασμό του και μπορεί να επισκέπτεται το κατάστημα όσες φορές θέλει και να πραγματοποιεί αναλήψεις και καταθέσεις. Δεδομένου ότι σας δίδονται τρεις πίνακες ΑΛ[300], ΟΕ[300] και Κ[300], στους οποίους είναι αποθηκευμένοι οι αριθμοί λογαριασμού, τα ονοματεπώνυμα και τα ποσά των καταθέσεων στην αρχή της ημέρας, αντίστοιχα, να γραφεί πρόγραμμα το οποίο: α. Να διαβάζει τον αριθμό λογαριασμού ενός πελάτη. β. Να διαβάζει τα ποσά των αναλήψεων και καταθέσεων που έκανε (Για κάθε πελάτη η πράξη της ανάληψης παριστάνεται με ένα κωδικό πράξης που έχει τιμή 0, ενώ στην κατάθεση ο κωδικός πράξης έχει την τιμή 1. Η διαδικασία σταματά όταν δοθεί η τιμή 2 στον κωδικό πράξης). γ. Θα πρέπει να επαναλαμβάνει την παραπάνω διαδικασία μέχρι 300 φορές εκτός εάν δοθεί η τιμή μηδέν (0) στον αριθμό λογαριασμού. δ. Να εμφανίζει στο τέλος της ημέρας τα ονοματεπώνυμα όλων των πελατών, τον αριθμό λογαριασμού τους καθώς και το τελικό υπόλοιπο. Το πρόγραμμα θα πρέπει να ελέγχει την περίπτωση που ο πελάτης θέλει να κάνει ανάληψη, αλλά δεν υπάρχει το αντίστοιχο ποσό στο λογαριασμό του. Στην περίπτωση που ο αριθμός λογαριασμού που πληκτρολογήθηκε δεν υπάρχει στον αντίστοιχο πίνακα, το πρόγραμμα θα πρέπει να εμφανίζει κατάλληλο μήνυμα. Στην περίπτωση που ο κωδικός πράξης είναι λανθασμένος (δεν είναι ούτε 0, ούτε 1, ούτε 2) το πρόγραμμα θα πρέπει να εμφανίζει κατάλληλο μήνυμα. ΑΣΚΗΣΗ 27η Σε ένα παιχνίδι δύο γύρων συμμετέχουν 20 διαγωνιζόμενοι. Στον α’ γύρο οι διαγωνιζόμενοι απαντούν σε 10 ερωτήσεις. Για κάθε σωστή απάντηση λαμβάνουν 1 πόντο, ενώ αν απαντήσουν σε όλες (και στις δέκα) τότε διπλασιάζονται οι πόντοι τους. Κάθε πόντος αντιστοιχεί σε 50 ευρώ. Στο β’ γύρο προκρίνονται οι 10 πρώτοι. Να γραφεί πρόγραμμα το οποίο: α. Να διαβάζει τα ονοματεπώνυμα των διαγωνιζομένων και τις απαντήσεις τους (Σ για κάθε σωστή απάντηση, Λ για κάθε λανθασμένη). β. Να εμφανίζει το ποσό που θα πάρει ο καθένας από αυτούς που προκρίθηκαν στο β’ γύρο. Στην περίπτωση που στη μεταβλητή της απάντησης δεν δοθεί η τιμή Σ ή η τιμή Λ, το πρόγραμμα θα πρέπει να εμφανίζει κατάλληλο μήνυμα. ΑΣΚΗΣΗ 28η

Σε μια ασφαλιστική εταιρεία εργάζονται 500 πωλητές. Η εταιρεία αποφάσισε α. Nα δώσει πριμ στους πωλητές των οποίων οι πωλήσεις υπερβαίνουν το 60% του μέσου όρου των πωλήσεων και β. Να παραδώσει προαγωγή στον πωλητή με τις περισσότερες πωλήσεις. Να γραφεί πρόγραμμα το οποίο: α. Να διαβάζει τα ονοματεπώνυμά τους και τις πωλήσεις τους β. Να εμφανίζει τα ονοματεπώνυμα αυτών που θα πάρουν το πριμ γ. Να εμφανίζει το ονοματεπώνυμο του υπαλλήλου που θα πάρει την προαγωγή. Να μην ληφθεί υπόψη η περίπτωση της ισότητας. ΑΣΚΗΣΗ 29η Σε ένα πάρκινγκ 50 αυτοκινήτων ο παρκαδόρος έχει τοποθετήσει τα αυτοκίνητα σύμφωνα με τη σειρά άφιξης, σημειώνοντας τον αριθμό κυκλοφορίας κάθε αυτοκινήτου. Να γραφεί αλγόριθμος ή πρόγραμμα που: α. Να διαβάζει τους αριθμούς κυκλοφορίας των 50 αυτοκινήτων και τους τοποθετεί σε ένα πίνακα λεκτικών 50 θέσεων σύμφωνα με τη σειρά άφιξης. β. Να διαβάζει τον αριθμό κυκλοφοράς ενός αυτοκινήτου και να εμφανίζει τη θέση του στην ουρά των αυτοκινήτων, ή το μήνυμα «ΤΟ ΑΥΤΟΚΙΝΗΤΟ ΔΕΝ ΥΠΑΡΧΕΙ», αν το αυτοκίνητο δεν υπάρχει στην ουρά.

Page 16: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

36

ΑΣΚΗΣΗ 30η Σας έχει αναθέσει ο ΟΣΕ να κατασκευάσετε το νέο σύστημα κρατήσεων θέσεων στα τρένα Intercity, χωρητικότητας 150 θέσεων, που εκτελούν το δρομολόγιο Αθήνα – Θεσσαλονίκη. Να γράψετε πρόγραμμα το οποίο: α. Να διαβάζει το όνομα του ταξιδιώτη καθώς και το αν δικαιούται μειωμένο εισιτήριο. Η τιμή «Κ» δηλώνει κανονικό εισιτήριο, ενώ η τιμή «Μ» μειωμένο και την θέση που επιθυμεί. Να ελέγχει αν είναι διαθέσιμη η θέση αυτή, χρησιμοποιώντας έναν πίνακα με όνομα ΔΙΑΘΕΣΙΜΟΤΗΤΑ, που θα περιέχει λογικές τιμές (η τιμή ΑΛΗΘΗΣ δηλώνει ότι η θέση είναι διαθέσιμη). Εάν η ζητούμενη θέση είναι διαθέσιμη, να εμφανίζει το μήνυμα «ΕΠΙΤΥΧΗΣ ΚΡΑΤΗΣΗ» καθώς και τον αριθμό των διαθέσιμων θέσεων. Σε αντίθετη περίπτωση να εμφανίζει το μήνυμα «ΘΕΣΗ ΚΡΑΤΗΜΕΝΗ ΞΑΝΑ-ΠΡΟΣΠΑΘΗΣΕ» και να διαβάζει το νέο αριθμό θέσης, αφού έχει πληροφορηθεί ο ταξιδιώτης ποιες διαθέσιμες θέσεις υπάρχουν. β. Να εμφανίζει τα ονόματα των επιβατών που δικαιούνται μειωμένο εισιτήριο. Το πρόγραμμα θα τερματίζει όταν γεμίσει όλο το τρένο, εμφανίζοντας το μήνυμα «ΤΡΕΝΟ ΓΕΜΑΤΟ». (Υποθέστε ότι το πρόγραμμα δέχεται τιμές για τις θέσεις μεταξύ του 1 και του 150 και για την κατηγορία εισιτηρίου τις τιμές «Κ» και «Μ»). Ασκήσεις στους Πίνακες (Δισδιάστατοι) ΑΣΚΗΣΗ 1η Να αναπτύξετε πρόγραμμα το οποίο θα υπολογίζει και θα εμφανίζει το άθροισμα των στοιχείων δύο δισδιάστατων πινάκων Α[10, 8], Β[10, 8] σε ένα νέο πίνακα Γ. ΑΣΚΗΣΗ 2η Να γραφούν οι εντολές που ανταλλάσσουν τα στοιχεία της τρίτης και της έκτης στήλης σε έναν Πίνακα Ακεραίων 5x6. ΑΣΚΗΣΗ 3η Να αναπτύξετε πρόγραμμα το οποίο θα γεμίζει έναν πίνακα ακεραίων 100 x 100 με τη μονάδα (1) όταν το άθροισμα των δεικτών είναι άρτιο και με -1, όταν το άθροισμα των δεικτών είναι περιττό. ΑΣΚΗΣΗ 4η Να αναπτύξετε πρόγραμμα το οποίο θα υπολογίζει τον ανάστροφο ενός τετραγωνικού πίνακα Α[5, 5]. ΑΣΚΗΣΗ 5η Να γραφεί αλγόριθμος ή πρόγραμμα το οποίο να εξετάζει έναν δεδομένο πίνακα Α διαστάσεων Ν Μ και να βρίσκει αν είναι αραιός ή όχι, εμφανίζοντας σχετικό μήνυμα. Να θεωρήσετε ότι ένας πίνακας είναι αραιός αν περιέχει μηδενικά σε ποσοστό μεγαλύτερο από 80%. ΑΣΚΗΣΗ 6η Να γράψετε πρόγραμμα το οποίο για έναν δεδομένο πίνακα Α 56 υπολογίζει το άθροισμα των στοιχείων της 3ης γραμμής και το άθροισμα των στοιχείων της 4ης στήλης. ΑΣΚΗΣΗ 7η Να γραφεί πρόγραμμα το οποίο να διαβάζει αριθμούς από έναν πίνακα με πραγματικούς διαστάσεων ΝxΝ (ο Ν φυσικός μεγαλύτερος του 1) και να υπολογίζει το μέσο όρο των στοιχείων της διαγωνίου. ΑΣΚΗΣΗ 8η Να γραφεί πρόγραμμα το οποίο να διαβάζει αριθμούς από έναν πίνακα με πραγματικούς διαστάσεων ΜxΝ (οι Μ, Ν φυσικοί μεγαλύτεροι του 1) ο οποίος να υπολογίζει και να εμφανίζει τον μέγιστο των μονών στηλών και τον ελάχιστο των ζυγών στηλών. ΑΣΚΗΣΗ 9η Να γραφεί πρόγραμμα το οποίο: α. Να διαβάζει τα ονόματα και τις ετήσιες εισπράξεις 20 καταστημάτων. β. Να εμφανίζει το πλήθος και τα ονόματα των καταστημάτων που έχουν εισπράξεις μικρότερες των 30.000 ευρώ. γ. Να εμφανίζει το όνομα του καταστήματος με τις υψηλότερες εισπράξεις.

Page 17: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

37

ΑΣΚΗΣΗ 10η Σε ένα πρωτάθλημα ποδοσφαίρου συμμετέχουν Ν παίκτες, οι οποίοι αγωνίζονται σε Μ αγώνες. Να αναπτύξετε πρόγραμμα το οποίο θα διαβάζει πόσα τέρματα πέτυχε ο κάθε παίκτης σε κάθε αγώνα και θα υπολογίζει και θα εμφανίζει τον παίκτη που πέτυχε το μεγαλύτερο σύνολο τερμάτων σε όλα τα παιχνίδια. ΑΣΚΗΣΗ 11η Κατά τη διάρκεια πρωταθλήματος BASKET καταγράφονται οι πόντοι που έχουν πετύχει 5 παίκτες σε 8 παιχνίδια. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα καταγράφει σε ένα δισδιάστατο πίνακα αυτά τα στοιχεία. β. Θα υπολογίζει και θα εκτυπώνει το σύνολο των πόντων για κάθε παίκτη. γ. Θα υπολογίζει και θα εκτυπώνει το σύνολο των πόντων για κάθε παιχνίδι. δ. Θα υπολογίζει και θα εκτυπώνει το σύνολο των πόντων σε όλα τα παιχνίδια. ε. Θα εντοπίζει και θα εκτυπώνει τον παίκτη που έχει πετύχει το μεγαλύτερο σύνολο πόντων από όλα τα παιχνίδια. στ. Θα ταξινομεί κατά φθίνουσα σειρά τους πόντους που πέτυχε ο παίκτης με το μεγαλύτερο σύνολο πόντων σε όλους τους αγώνες !! ΑΣΚΗΣΗ 12η Έστω ότι δίνονται δύο δισδιάστατοι πίνακες Α και Β διαστάσεων 5x5 ο κάθε ένας. Να αναπτύξετε πρόγραμμα το οποίο: α. Θα διαβάζει τα στοιχεία των δύο πινάκων. β. Θα υπολογίζει το μέσο όρο για τα στοιχεία του Α και το μέσο όρο για τα στοιχεία του Β. γ. Στη συνέχεια θα συγκρίνει τους μέσους όρους και θα εκτυπώνει ανάλογο μήνυμα. Τέλος, θα υπολογίζει το άθροισμα των στοιχείων τους και θα το αποθηκεύει στον πίνακα Γ. ΑΣΚΗΣΗ 13η Στους Ολυμπιακούς αγώνες 10 αθλητές αγωνίζονται στο άλμα εις ύψος και κάνουν από 5 προσπάθειες. Να γραφεί ένα πρόγραμμα που: α. θα καταχωρεί τα ονόματα των αθλητών σε έναν πίνακα και τις επιδόσεις τους σε ένα δεύτερο β. θα εμφανίζει τα ονόματα και τις επιδόσεις των αθλητών με την καλύτερη και τη χειρότερη επίδοση γ. θα μετρά τις άκυρες προσπάθειες όλων των αθλητών (εκείνες για τις οποίες θα έχει καταχωρηθεί η τιμή 0 στον πίνακα) ΑΣΚΗΣΗ 14η Να αναπτύξετε πρόγραμμα το οποίο με δεδομένο έναν πίνακα Α 100x100 θα υπολογίζει και θα εκτυπώνει το άθροισμα των στοιχείων της περιφέρειας, δηλαδή της πρώτης και της τελευταίας γραμμής και της πρώτης και της τελευταίας στήλης. ΑΣΚΗΣΗ 15η Να κατασκευαστεί πρόγραμμα το οποίο: α. Να διαβάζει τις τιμές ενός πίνακα ακέραιων, διαστάσεων 15 Χ 15. β. Να αναστρέφει τα περιεχόμενα του πίνακα ως προς την κύρια διαγώνιό του (δηλ. το στοιχείο της θέσης (1,2) τοποθετείται στη θέση (2,1) το (1,3) στην (3,1) κ.ο.κ.) γ. Να αναστρέφει τον πίνακα ως προς τη δευτερεύουσα διαγώνιο (δηλ. το (1,1) στοιχείο τοποθετείται στη (15,15) θέση, το (1,2) στην (15,14) κ.ο.κ.) δ. Να εμφανίζει τα περιεχόμενα του νέου πίνακα. ΑΣΚΗΣΗ 16η Να αναπτύξετε πρόγραμμα το οποίο με δεδομένο έναν πίνακα Α 100 x 200 θα υπολογίζει και θα εκτυπώνει το πλήθος των θετικών, των αρνητικών και των μηδενικών στοιχείων του πίνακα. ΑΣΚΗΣΗ 17η Για στατιστικούς σκοπούς των εταιρειών διανομής κινηματογραφικών ταινιών καλείστε να αναπτύξετε πρόγραμμα το οποίο: α. Θα καταγράφει τα ονόματα 10 κινηματογραφικών αιθουσών και τις αντίστοιχες εισπράξεις τους για κάθε ημέρα της εβδομάδας. β. Θα υπολογίζει και θα εκτυπώνει το άθροισμα των εισπράξεων κάθε κινηματογράφου, καθώς και τον κινηματογράφο με τη μέγιστη συνολική είσπραξη. γ. Θα υπολογίζει και θα εκτυπώνει το άθροισμα των εισπράξεων κάθε ημέρας, καθώς και την ημέρα με τη μέγιστη συνολική είσπραξη.

Page 18: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

38

δ. Θα διαβάζει το όνομα μιας αίθουσας και θα αναζητάει αν υπάρχει η αίθουσα με αυτό το όνομα. Αν υπάρχει, θα εκτυπώνει τις εισπράξεις της για την εβδομάδα, ενώ αν δεν υπάρχει θα εκτυπώνει το μήνυμα: «Δεν υπάρχει». ε. Θα ταξινομεί κατά αύξουσα σειρά τις εισπράξεις της 3ης ημέρας όλων των κινηματογράφων. Σημείωση: Για την επίλυση του προβλήματος πρέπει να χρησιμοποιηθούν δύο πίνακες. Ο πρώτος θα είναι μονοδιάστατος πίνακας και θα περιέχει τα 10 ονόματα των αιθουσών, ο δεύτερος θα είναι δισδιάστατος πίνακας 10 γραμμών και επτά στηλών και θα περιέχει τις εισπράξεις. ΑΣΚΗΣΗ 18η Να αναπτύξετε πρόγραμμα το οποίο θα διαβάζει ένα μήνυμα που πληκτρολογεί ο χρήστης. Αν ο χρήστης πληκτρολογήσει τη φράση «Σουσάμι άνοιξε» τότε:

Ο χρήστης θα γεμίζει με χαρακτήρες έναν πίνακα με 4 γραμμές και 5 στήλες.

Θα εμφανίζει τον πίνακα αυτό στην οθόνη.

Θα γίνεται εναλλαγή των στοιχείων της πρώτης και της δεύτερης γραμμής με τα δεδομένα

της τέταρτης και της τρίτης γραμμής αντίστοιχα.

Θα εμφανίζεται το μήνυμα «Σουσάμι άλλαξε». Ο νέος – αλλαγμένος πίνακας θα εμφανίζεται στην οθόνη. Αν ο χρήστης δεν έχει πληκτρολογήσει τη φράση «Σουσάμι άνοιξε» να εμφανίζεται το μήνυμα «Το Σουσάμι κοιμάται».

Εφημερίδα Τα Νέα Τρίτη 20 Μαρτίου 2001 ΑΣΚΗΣΗ 19η Ένα κατάστημα έχει μοιράσει σε 3 αποθήκες τα 10 είδη που εμπορεύεται. Κάθε είδος έχει τη δική του τιμή πώλησης. Να γράψετε ένα πρόγραμμα το οποίο: α. Θα καταχωρεί σε έναν πίνακα δύο διαστάσεων τις ποσότητες που υπάρχουν σε κάθε αποθήκη, β. Θα καταχωρεί σε ένα πίνακα 10 θέσεων τις τιμές για το κάθε είδος. γ. Θα βρίσκει και να τυπώνει την αξία κάθε είδους και από τις 3 αποθήκες μαζί και δ. Θα βρίσκει και θα τυπώνει τη συνολική αξία όλων των ειδών και από τις 3 αποθήκες. ΑΣΚΗΣΗ 20η Μια αεροπορική εταιρεία συνεργάζεται με 3 ταξιδιωτικά γραφεία. Σε κάθε ταξιδιωτικό γραφείο υπάρχει ένας πίνακας με τα έσοδα από τα εισιτήρια που κόβονται για τις πτήσεις που γίνονται κάθε ημέρα για όλους τους μήνες ενός έτους. Θεωρήστε ότι οι γραμμές του πίνακα συμβολίζουν τις ημέρες του μήνα (30) ενώ οι στήλες τους μήνες (12). Να φτιαχτεί ένα πρόγραμμα το οποίο: α. Θα καταχωρεί σε κάθε κελί του πίνακα ένα ποσό είσπραξης για κάθε ημέρα και για κάθε ταξιδιωτικό γραφείο β. Θα υπολογίζει την είσπραξη που έγινε κάθε μήνα του έτους για κάθε ταξιδιωτικό γραφείο και θα τις καταχωρεί σε ένα πίνακα γ. Θα βρίσκει και θα τυπώνει το μήνα με τη μεγαλύτερη είσπραξη και το ταξιδιωτικό γραφεί στο οποίο έγινε η είσπραξη αυτή δ. Θα βρίσκει και θα τυπώνει το ταξιδιωτικό γραφείο με τη μεγαλύτερη είσπραξη του έτους. ΑΣΚΗΣΗ 21η Ένα κατάστημα ηλεκτρονικών υπολογιστών που εξειδικεύεται στις πωλήσεις σκληρών δίσκων θέλει να οργανώσει την αποθήκη του. Να γράψτε πρόγραμμα το οποίο: α. Να διαβάζει τις μάρκες 200 σκληρών δίσκων και να τις αποθηκεύει σε ένα μονοδιάστατο πίνακα. β. Για κάθε σκληρό δίσκο, να αποθηκεύει σε έναν δισδιάστατο πίνακα τη χωρητικότητα του σε GBytes και την τιμή του σε ευρώ. γ. Να ταξινομεί σε φθίνουσα σειρά τους σκληρούς δίσκους ως προς την χωρητικότητα τους. δ. Να διαβάζει τη μάρκα ενός σκληρού δίσκου και να εμφανίζει την χωρητικότητα και το κόστος του καθώς και τις μάρκες όλων των σκληρών δίσκων που έχουν την ίδια χωρητικότητα. (Υποθέστε πως το κόστος και οι χωρητικότητες των σκληρών δίσκων είναι θετικοί ακέραιοι αριθμοί) ΑΣΚΗΣΗ 22η (Δύσκολη) Στις εξετάσεις του ΑΣΕΠ για 120 θέσεις παίρνουν μέρος 800 υποψήφιοι οι οποίοι διαγωνίστηκαν σε 50 συνολικά ερωτήσεις τύπου «Σωστό-Λάθος». Για την απλοποίηση της διόρθωσης των γραπτών οι σωστές απαντήσεις με Σ ή Λ καταχωρούνται σε ένα πίνακα Α[50]. Να γραφεί πρόγραμμα, το οποίο:

Page 19: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

39

α. Θα καταχωρεί τα ονόματα των υποψηφίων σε έναν πίνακα Ο[800]. β. Θα καταχωρεί τις απαντήσεις των υποψηφίων σε ένα πίνακα Β[800.50] και τις σωστές απαντήσεις σε ένα πίνακα Α[50]. γ. Θα βρίσκει το πλήθος των σωστών απαντήσεων κάθε υποψηφίου συγκρίνοντας τα στοιχεία των δύο πινάκων και θα το αποθηκεύει σε έναν πίνακα Π[800]. δ. Θα ταξινομεί τον πίνακα Π[800] κατά φθίνουσα σειρά και θα εμφανίζει τα ονόματα των 120 επιτυχόντων. Σε περίπτωση ισοβαθμίας η σειρά των ονομάτων θα είναι αλφαβητική. Αν υπάρχουν επιλαχόντες θα εμφανίζεται το πλήθος τους και το ονοματεπώνυμο του καθενός. Συνδυαστικές ασκήσεις επανάληψης στους πίνακες ΑΣΚΗΣΗ 1η

Σε μια χώρα για την εισαγωγή των μαθητών στα ΑΕΙ και ΤΕΙ εξετάζονται σε 15 μαθήματα. Ένα σχολείο έχει 100 μαθητές που έδωσαν εξετάσεις και η βαθμολογία τους ανά μάθημα τοποθετείται σε ένα πίνακα Α100χ15. Τα ονόματα των μαθητών τοποθετούνται σε ένα πίνακα Β100 θέσεων μονοδιάστατων ενώ τα ονόματα των μαθημάτων τοποθετούνται σε ένα πίνακα Γ15 θέσεων επίσης μονοδιάστατο. Να γραφεί αλγόριθμος ο οποίος :

α. Διαβάζει από το πληκτρολόγιο τα στοιχεία και γεμίζει τους πίνακες Α, Β και Γ. Να σημειωθεί ότι κατά τη φάση της καταχώρησης των βαθμολογιών στον πίνακα Α δεν πρέπει να επιτρέπεται είσοδος τιμών μικρότερη από 1 και μεγαλύτερη από 20. β. Εμφανίζει στην οθόνη ποιος ή ποιοι μαθητές έβγαλαν το μεγαλύτερο μέσο όρο και πόσος ήταν αυτός και πόσοι μαθητές τον είχαν. γ. Υπολογίζει και εμφανίζει ποιος βαθμός παρουσιάστηκε τις περισσότερες φορές κατά τη βαθμολόγηση μαθητή ανά μάθημα ; δ. Θα εμφανίζει αν υπάρχουν μαθήματα στα οποία ο γενικός μέσος όρος των μαθητών (του συγκεκριμένου σχολείου) σε αυτά να είναι ίσος με τον βαθμό που υπολογίστηκε στο προηγούμενο ερώτημα πόσα και ποια είναι αυτά.

ΑΣΚΗΣΗ 2η

Η στρατολογική υπηρεσία ζήτησε από το δήμο Αργυρούπολης να του παραδώσει τα στοιχεία των αρρένων δημοτών με ηλικία μεγαλύτερη από 30 και μικρότερη από 50 έτη. Να αναπτύξετε πρόγραμμα που να διαβάζει για τους 15000 δημότες το όνομα, το έτος γέννησης και το φύλο του και να δημιουργεί πίνακες με τα ονόματα και τις ηλικίες των αρρένων που ικανοποιούν τις παραπάνω προϋποθέσεις και στη συνέχεια να εκτυπώνει τα στοιχεία τους. ΑΣΚΗΣΗ 3η

Μια εταιρεία διακινεί τα προϊόντα της σε 250 σημεία σε ολόκληρη την Ελλάδα. Να αναπτύξετε πρόγραμμα το οποίο: (α) Να διαβάζει τις επωνυμίες των 70 προϊόντων σε πίνακα Ε και τις τιμές τους σε πίνακα Τ, (β) Να διαβάζει σε πίνακα Π το πλήθος των προϊόντων που έχουν πουληθεί σε κάθε σημείο πώλησης, (γ) Να εκτυπώνει ποιο προϊόν είχε τις περισσότερες εισπράξεις καθώς και ποιο τις περισσότερες πωλήσεις σε πλήθος προϊόντων. (δ) Να εκτυπώνει τις εισπράξεις που απέφερε κάθε σημείο πώλησης στην εταιρεία. (ε) Στο σημείο πώλησης που πραγματοποιήθηκαν μεγαλύτερες εισπράξεις (να θεωρήσετε ότι είναι μόνο ένα) ποια προϊόντα είχαν τις περισσότερες πωλήσεις; (στ) Για τα 3 ακριβότερα προϊόντα (θεωρήστε ότι είναι μόνο 3), να εκτυπώνει την επωνυμία τους και τις εισπράξεις που απέφεραν στην εταιρεία. ΑΣΚΗΣΗ 4η

Να αναπτυχθεί πρόγραμμα που θα διαβάζει τους βαθμούς 120 μαθητών της Γ' τάξης στο μάθημα της Ιστορίας και θα εκτυπώνει το βαθμό που εμφανίστηκε τις περισσότερες φορές. ΑΣΚΗΣΗ 5η

Μια γνωστή αλυσίδα καταστημάτων που παρασκευάζει και πωλεί πίτσες στην Αθήνα, καταχωρεί τις πωλήσεις της για το μήνα Φεβρουάριο σε ένα πίνακα Π[4,7]. Οι συνήθεις πωλήσεις ημερησίως σε όλα τα καταστήματα κυμαίνονται από 10.000 έως 20.000 πίτσες. Να γραφεί πρόγραμμα το οποίο: α. Θα εμφανίζει την εβδομάδα (1-4) και την ημέρα της εβδομάδας (1-7) με τις λιγότερες πωλήσεις. β. Θα μετρά και θα καταγράφει τις ημέρες και εβδομάδες, αν υπάρχουν, που οι πωλήσεις ξεπέρασαν το όριο των 20.000. Διαφορετικά θα εμφανίζει το μήνυμα «Δεν υπάρχουν πωλήσεις πάνω από 20.000». γ. Θα εμφανίζει την ημερομηνία, αν υπάρχει, που οι πωλήσεις ξεπέρασαν το όριο και ήταν μέγιστες.

Page 20: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

40

δ. Θα βρίσκει το μέσο όρο πωλήσεων ανά ημέρα και στη συνέχεια θα εντοπίζει και θα εμφανίζει την ημέρα με τις λιγότερες κατά μέσο όρο πωλήσεις ώστε τον επόμενο μήνα να κάνει προσφορές την ημέρα αυτή. ΑΣΚΗΣΗ 6η

Στον κεντρικό υπολογιστή του τμήματος μηχανογράφησης ενός ασφαλιστικού ταμείου καταχωρούνται οι ασφαλισμένοι με όλα τα απαραίτητα στοιχεία τους. Για το σκοπό αυτό χρησιμοποιούνται διαφορετικοί πίνακες, μεταξύ των οποίων, ο πίνακας Όνομα και ο πίνακας Έτος, οι οποίοι περιέχουν για κάθε ασφαλισμένο το όνομα και το έτος γέννησής του, αντίστοιχα. Γνωρίζοντας ότι κάποιος ασφαλισμένος συνταξιοδοτείται μόλις συμπληρώσει το 65ο έτος της ηλικίας του, να γράψετε πρόγραμμα που: α. Θα διαβάζει το τρέχον έτος, β. Θα διαβάζει τα ονόματα και τις χρονολογίες γέννησης 100 ασφαλισμένων, και γ. Θα εμφανίζει τα ονόματα και το πλήθος εκείνων που θα συνταξιοδοτηθούν σε λιγότερο από 10 χρόνια. Οι ασφαλισμένοι που έχουν ήδη συνταξιοδοτηθεί να μην συμπεριληφθούν καθόλου. ΑΣΚΗΣΗ 7η

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

0 έως και 25 χρόνων: “ΝΕΟΙ” 25 έως και 50 χρόνων: “ΜΕΣΗΛΙΚΕΣ” άνω των 50 χρόνων: “ΓΕΡΟΝΤΕΣ”

γ. Θα εμφανίζονται οι ηλικίες των 4 μεγαλύτερων ατόμων. δ. Θα εμφανίζονται τα ονόματα των κατοίκων που έχουν τις 4 μεγαλύτερες ηλικίες.

ΑΣΚΗΣΗ 8η

Να γραφεί πρόγραμμα το οποίο: α. Θα διαβάζει τις εισπράξεις 50 νυχτερινών κέντρων για κάθε μια από τις 100 βραδιές που λειτούργησαν και τις αποθηκεύει σε κατάλληλο πίνακα, β. Θα διαβάζει το όνομα κάθε κέντρου και το αποθηκεύει σε κατάλληλο πίνακα γ. Θα βρίσκει και θα τυπώνει το όνομα του κέντρου με τις μεγαλύτερες εισπράξεις δ. Θα βρίσκει και θα τυπώνει το όνομα του κέντρου με τις μικρότερες εισπράξεις. ε. Θα ταξινομεί τις εισπράξεις όλων των κέντρων κατά φθίνουσα σειρά. ΑΣΚΗΣΗ 9η (S.O.S) Στο πρωτάθλημα μπάσκετ της Α1 κατηγορίας ανδρών μια ομάδα συμμετέχει με 20 παίκτες δίνοντας συνολικά 40 αγώνες. Να γραφεί πρόγραμμα ή αλγόριθμος ο οποίος : α. να καταχωρεί σ’ έναν πίνακα ακεραίων Π[20,40] τους πόντους που πέτυχε ο κάθε παίκτης σε κάθε αγώνα του πρωταθλήματος. Όταν ένας παίκτης δε συμμετέχει σ’ έναν αγώνα τότε καταχωρούμε την τιμή -1 στον πίνακα. Θεωρήστε ότι οι τιμές που εισάγονται στον πίνακα είναι μεγαλύτερες ή ίσες του -1 και μικρότερες ή ίσες του 25. Μην ασχολείστε με τον έλεγχο εγκυρότητας δεδομένων. β. να καταχωρεί σ’ έναν πίνακα Ο[20] τα ονόματα των παικτών της ομάδας. γ. να βρίσκει σε πόσους από τους 40 αγώνες, ένας μόνο παίκτης έφερε την καλύτερη επίδοση στον αγώνα. δ. να εμφανίζει τα ονόματα των παικτών που δεν έχασαν κανέναν αγώνα στο πρωτάθλημα. ε. να διαβάζει το όνομα ενός παίκτη και να εμφανίζει για το συγκεκριμένο παίκτη τους έξι αγώνες στους οποίους είχε τις καλύτερες επιδόσεις. Θεωρήστε ότι δεν υπάρχει περίπτωση ισοβαθμίας. Αν ο παίκτης αυτός έχει αγωνιστεί σε συνολικά λιγότερους από έξι αγώνες να εμφανίζεται κατάλληλα διαμορφωμένο μήνυμα. ΑΣΚΗΣΗ 10η Σε πίνακα Α[200] βρίσκονται 200 τυχαίοι ακέραιοι αριθμοί στο διάστημα [-999,999]. Να υπολογιστεί και να τυπωθεί το ποσοστό (%) των 1ψήφιων, 2ψήφιων και 3ψήφιων αριθμών.

Page 21: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

41

ΑΣΚΗΣΗ 11η Με τη χρήση μίας μόνο επαναληπτικής δομής, να γεμίσετε έναν πίνακα ακεραίων Π[100] με 0 τα ζυγά στοιχεία και με 1 τα μονά. ΑΣΚΗΣΗ 12η (S.O.S) Έχουμε καταχωρημένα σε μονοδιάστατο πίνακα ΟΝ τα ονόματα των 100 επιβατών που πρόκειται να ταξιδέψουν με την πτήση Α666 από Σαντορίνη για Αθήνα. Να γραφεί αλγόριθμος που θα διαβάζει επαναληπτικά το όνομα κάθε επιβάτη καθώς αυτός προσέρχεται στο check-in για επιβίβαση. Ο αλγόριθμος θα ελέγχει εάν πρόκειται για επιβάτη της πτήσης και θα τον ενημερώνει με αντίστοιχο μήνυμα αν δικαιούται να ταξιδέψει ή όχι. Η διαδικασία ολοκληρώνεται όταν διαβαστούν τα ονόματα και των 100 επιβατών της πτήσης ή όταν δοθεί ως όνομα η λέξη ‘Τέλος’. Στην περίπτωση που δεν προσήλθαν όλοι οι επιβάτες της πτήσης θα εμφανίζονται τα ονόματα τους αλλιώς θα εμφανίζεται το μήνυμα ‘Όλοι επιβιβάσθηκαν’. Σημείωση: Τα ονόματα των επιβατών είναι διαφορετικά μεταξύ τους. ΑΣΚΗΣΗ 13η Σε ένα μουσείο υπάρχουν 10 διαφορετικές αίθουσες που περιέχουν διάφορα έργα της ελληνιστικής περιόδου. Κάθε αίθουσα έχει το δικό της αριθμό ο οποίος ξεκινά από το 101 και τελειώνει στο 110. Να γραφεί πρόγραμμα το οποίο: α. να διαβάζει τον αριθμό των επισκεπτών κάθε αίθουσας για μια τυχαία ημέρα και να τον καταχωρεί σε ένα μονοδιάστατο πίνακα. β. να υπολογίζει και να τυπώνει το μέσο όρο των επισκεπτών από όλες τις αίθουσες. γ. να τυπώνει τους αριθμούς των αιθουσών που είχαν περισσότερους επισκέπτες από το μέσο όρο των επισκεπτών. ΑΣΚΗΣΗ 14η Δίνονται δύο πίνακες ακεραίων Α[100] και Β[100]. Να δοθεί αλγόριθμος που συγκρίνει τους δύο πίνακες. («Ίσοι» εάν έχουν τις ίδιες τιμές και τα 100 στοιχεία τους, διαφορετικά «Άνισοι»). ΑΣΚΗΣΗ 15η Να γεμίσετε ένα δισδιάστατο πίνακα ακεραίων Α[5, 5] με τους αριθμούς 1,2,3,…25 ως εξής:

ΑΣΚΗΣΗ 16η Να γραφεί πρόγραμμα το οποίο: α. να διαβάζει το επώνυμο 25 μαθητών μιας τάξης και να το καταχωρεί σε ένα μονοδιάστατο πίνακα. β. να διαβάζει τους βαθμούς που είχε κάθε μαθητής σε κάθε ένα από 9 μαθήματα και να τους καταχωρεί σε έναν πίνακα δύο διαστάσεων. γ. να υπολογίζει το μέσο όρο των βαθμών κάθε μαθητή και να τον καταχωρεί σε ένα μονοδιάστατο πίνακα. δ. να τυπώνει τα ονόματα των μαθητών και δίπλα τους το μέσο όρο των βαθμών τους ταξινομημένα με βάση το μέσο όρο κατά φθίνουσα σειρά. Σε περίπτωση ισοβαθμίας η σειρά ταξινόμησης των ονομάτων να είναι αλφαβητική. (S.O.S ερώτημα) ΑΣΚΗΣΗ 17η Να γραφεί πρόγραμμα το οποίο: α. να διαβάζει την επωνυμία 25 εστιατορίων και να την καταχωρεί σε ένα μονοδιάστατο πίνακα. β. να διαβάζει τις εισπράξεις σε ευρώ (ελάχιστη: 1.500 ευρώ, μέγιστη: 30.000 ευρώ) κάθε εστιατορίου για κάθε έναν από τους 8 πρώτους μήνες του έτους 2008 και να τις καταχωρεί σε έναν πίνακα δύο διαστάσεων. γ. να βρίσκει το εύρος εισπράξεων κάθε εστιατορίου και να το καταχωρεί σε ένα μονοδιάστατο πίνακα. δ. να ταξινομεί κατά φθίνουσα σειρά το εύρος εισπράξεων όλων των εστιατορίων. ε. να τυπώνει κατά φθίνουσα σειρά το εύρος εισπράξεων κάθε εστιατορίου καθώς και την επωνυμία αυτού. Παρατήρηση: Θεωρήστε ότι όλες οι εισπράξεις που δίνονται είναι διαφορετικές μεταξύ τους.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Page 22: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

42

ΑΣΚΗΣΗ 18η Η διοίκηση της εταιρείας «Γλυκόζη Α.Ε.» ζήτησε από το τμήμα μηχανογράφησης να πραγματοποιήσει μια έρευνα σχετική με το προσωπικό της. Για τις ανάγκες της έρευνας πρέπει να δημιουργηθούν 3 μονοδιάστατοι πίνακες (Φύλο, Μισθός και Ηλικία) οι οποίοι θα περιέχουν τα αντίστοιχα στοιχεία για τους 630 εργαζόμενους της εταιρίας. Να γραφεί πρόγραμμα το οποίο: α. Να διαβάζει τα στοιχεία για κάθε έναν από τους εργαζόμενους και να τα καταχωρεί στους κατάλληλους μονοδιάστατους πίνακες. β. Να βρίσκει και να τυπώνει το πλήθος υπαλλήλων με μισθό μεγαλύτερο από 1.300 ευρώ. γ. Να υπολογίζει και να τυπώνει το ποσοστό (%) των ανδρών με μισθό μεγαλύτερο του μέσου όρου όλων των μισθών. δ. Να τυπώνει τους μισθούς των 5 πιο καλοπληρωμένων γυναικών. Παρατηρήσεις:

Θεωρήστε ότι όλες οι τιμές που δίνονται είναι έγκυρες. Θεωρήστε ότι μεταξύ των 630 εργαζόμενων υπάρχουν τουλάχιστον δύο γυναίκες. Θεωρήστε ότι το φύλο κάθε εργαζόμενου καταχωρείται ως έγκυρη αλφαριθμητική τιμή και είναι Α για άνδρα ή Γ για γυναίκα.

ΑΣΚΗΣΗ 19η Στο μονοδιάστατο πίνακα ΟΝ καταγράφονται τα ονόματα 17 μαθημάτων στα οποία εξετάζεται ένας μαθητής Γυμνασίου. Επίσης, στον πίνακα δύο διαστάσεων Τ[17,3] καταγράφονται οι βαθμοί που έλαβε για κάθε ένα από τα μαθήματα σε κάθε ένα από τα 3 τρίμηνα. Να γραφεί πρόγραμμα το οποίο: α. Να διαβάζει τα στοιχεία των δύο πινάκων β. Να υπολογίζει και να τυπώνει το μέσο όρο βαθμολογίας του μαθητή για κάθε μάθημα γ. Να υπολογίζει και να τυπώνει το μέσο όρο βαθμολογίας του 2ου τριμήνου δ. Να υπολογίζει και να τυπώνει το γενικό μέσο όρο βαθμολογίας του μαθητή. ε. Να αναζητάει το μάθημα της ΑΛΓΕΒΡΑΣ και αν αυτό υπάρχει σε κάποια θέση του πίνακα ΟΝ να υπολογίζει σε ποιο από τα 3 τρίμηνα έλαβε το μεγαλύτερο βαθμό. στ. Να ταξινομεί τους βαθμούς που έλαβε σε κάθε μάθημα κατά αύξουσα σειρά. ΑΣΚΗΣΗ 20η Στον Πανελλήνιο Διαγωνισμό Πληροφορικής συμμετείχαν 200 υποψήφιοι. Να γραφεί αλγόριθμος ή πρόγραμμα που : α. Να αποθηκεύει τα αποτελέσματα σε έναν μονοδιάστατο πίνακα Β και τα ονόματα των υποψηφίων σε έναν δεύτερο μονοδιάστατο πίνακα Ο, κατ’ αντιστοιχία. β. Να ταξινομεί τους δύο πίνακες με βάση τη βαθμολογία κάθε διαγωνιζομένου. γ. Να εμφανίζει τα ονόματα των 8 υποψηφίων με την καλύτερη βαθμολογία που προκρίνονται στην Ολυμπιάδα Πληροφορικής. ΑΣΚΗΣΗ 21η Σε μια τάξη υπάρχουν 90 μαθητές που έχουν βαθμολογηθεί σε 14 μαθήματα. Να γραφεί πρόγραμμα ή αλγόριθμος που : α. Να αποθηκεύει τα ονόματα των μαθητών σε μονοδιάστατο πίνακα Ο. β. Να αποθηκεύει τις ονομασίες των 14 μαθημάτων σε μονοδιάστατο πίνακα Μ. γ. Να αποθηκεύει τις βαθμολογίες των μαθητών σε δισδιάστατο πίνακα Β. δ. Να υπολογίζει το μέσο όρο βαθμολογίας για κάθε μαθητή. ε. Να υπολογίζει το μέσο όρο της τάξης ανά μάθημα. στ. Να εμφανίζει το μαθητή με την καλύτερη βαθμολογία. ζ. Να εμφανίζει το μάθημα με τον καλύτερο μέσο όρο τάξης. η. Να ταξινομεί τα ονόματα των μαθητών κατά αύξουσα σειρά και αν τυχόν βρει ίδια ονόματα να κάνει την ταξινόμηση κατά φθίνουσα σειρά των βαθμών τους. ΑΣΚΗΣΗ 22η Σε έναν αγώνα φόρμουλα 1 μπορούν να λάβουν μέρος μόνο οι οδηγοί που στα δοκιμαστικά της προηγούμενης μέρας έκαναν χρόνους μικρότερους από το 10% του χρόνου που έκανε ο ταχύτερος οδηγός. Να γραφεί αλγόριθμος ο οποίος: α. Να διαβάζει για 22 οδηγούς που έλαβαν μέρος στα δοκιμαστικά κάποιου αγώνα, το όνομα καθενός και το χρόνο που έκανε (σε λεπτά και δευτερόλεπτα). β. Να εμφανίζει το χρόνο του ταχύτερου οδηγού. γ. Να εμφανίζει για κάθε οδηγό το όνομά του και τη διαφορά χρόνου του (σε δευτερόλεπτα) από τον ταχύτερο οδηγό. δ. Να εμφανίζει το πλήθος των οδηγών που μπορούν να συμμετάσχουν στον αγώνα.

Page 23: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

43

ΑΣΚΗΣΗ 23η Σε μια εκλογική αναμέτρηση για την ανάδειξη της νέας Δημοτικής αρχής σε έναν δήμο υπάρχουν 25 εκλογικά τμήματα και συνολικά 5000 εγγεγραμμένοι στους δημοτικούς καταλόγους και ψηφίζουν μεταξύ 5 υποψηφίων συνδυασμών. Μόλις τελειώσει η καταμέτρηση σε ένα εκλογικό τμήμα, αναφέρεται στη Νομαρχία το πλήθος των ψήφων που έλαβε κάθε συνδυασμός, καθώς και το πλήθος των λευκών / άκυρων. Να γραφεί αλγόριθμος ο οποίος: α. Να αποθηκεύει σε μονοδιάστατο πίνακα Ο[6] τα ονόματα των 5 συνδυασμών και στην έκτη θέση εκχωρεί την ονομασία Λευκά / Άκυρα. β. Να διαβάζει το πλήθος των ψήφων κάθε συνδυασμού σε κάθε εκλογικό τμήμα και να το αποθηκεύει σε δισδιάστατο πίνακα Ψ[25,6] , με την 1η στήλη να αντιστοιχεί στον συνδυασμό Α, τη δεύτερη στο Β κ.ο.κ. Η τελευταία στήλη αντιπροσωπεύει τα λευκά /άκυρα ψηφοδέλτια. γ. Να υπολογίζει και να αποθηκεύει σε μονοδιάστατο πίνακα το σύνολο των ψήφων που έλαβε κάθε συνδυασμός στο σύνολο των εκλογικών τμημάτων καθώς και το σύνολο των λευκών /άκυρων. δ. Να υπολογίζεται το πλήθος των δημοτών που προσήλθαν στις κάλπες και στη συνέχεια να εμφανίζεται το ποσοστό αποχής από τις εκλογές. ε. Να εμφανίζει τα αποτελέσματα των εκλογών με ποσοστιαίες αναλογίες ξεκινώντας από το συνδυασμό που πήρε το μεγαλύτερο ποσοστό. Το ποσοστό λευκών /άκυρων να εμφανίζεται στην τελευταία θέση μετά από όλους τους συνδυασμούς. Τα ποσοστά υπολογίζονται με βάση το σύνολο των ψηφισάντων. ΑΣΚΗΣΗ 24η Μια μπετονιέρα με χωρητικότητα 15 κυβικά μέτρα ρίχνει σκυρόδεμα σε καλούπια, των οποίων το μέγεθος διαφέρει (η ποσότητα που δέχεται κάθε καλούπι δεν είναι σταθερή). Να γραφεί αλγόριθμος ή πρόγραμμα που: α. Θα διαβάζει των αριθμό των καλουπιών στα οποία θα χυθεί σκυρόδεμα. Θα πρέπει ο αριθμός να είναι μεγαλύτερος του μηδενός. β. Θα διαβάζει τη χωρητικότητα σε κυβικά μέτρα κάθε καλουπιού που πρέπει να καλυφθεί. Η χωρητικότητα θα πρέπει να κυμαίνεται μεταξύ 0.25 και 1.75 κυβικά μέτρα. γ. Θα διαβάζει την ποσότητα σε κυβικά μέτρα του σκυροδέματος που ρίχτηκε σε κάθε καλούπι. Θα πρέπει η χωρητικότητα να είναι μεγαλύτερη από το μηδέν και μικρότερη ή ίση της χωρητικότητας του καλουπιού. Στην περίπτωση που δοθεί μεγαλύτερη ποσότητα να εμφανίζεται προειδοποιητικό μήνυμα. δ. Να υπολογιστεί πόσες φορές θα χρειαστεί να ξαναγεμίσει η μπετονιέρα με σκυρόδεμα προκειμένου να φτάσει το σκυρόδεμα για όλα τα καλούπια. ε. Να υπολογιστεί πόσα κυβικά μέτρα σκυροδέματος χρειαστήκανε συνολικά. ΑΣΚΗΣΗ 25η Να αναπτύξετε πρόγραμμα το οποίο: α. Να διαβάζει τις επωνυμίες, τα ετήσια έσοδα και τα ετήσια έξοδα 100 επιχειρήσεων και τα αποθηκεύει σε τρεις μονοδιάστατους πίνακες αντίστοιχα. β. Να ταξινομεί τις επιχειρήσεις ως προς τα κέρδη τους. γ. Να εμφανίζει τα ονόματα και τα έσοδα των δέκα επιχειρήσεων µε τα μεγαλύτερα έσοδα. δ. Να αναζητά και να εμφανίζει τα ονόματα και το πλήθος των επιχειρήσεων με ζημίες. ε. Τέλος, να εμφανίζει τα ονόματα και το πλήθος των επιχειρήσεων με κέρδη άνω των 1.000.000 € καθώς και το όνομα της επιχείρησης με τα μικρότερα κέρδη. ΑΣΚΗΣΗ 26η Σε ένα μεταπτυχιακό πρόγραμμα σπουδών μπορούν να γίνουν δεκτοί 50 φοιτητές, ως κριτήριο επιλογής για το πρόγραμμα έθεσαν βαθμό πτυχίου μεγαλύτερο από 7,5 και ο βαθμός σε ένα τεστ αξιολόγησης να είναι μεγαλύτερος από 8. Επειδή όμως συνολικά έγιναν 400 αιτήσεις αποφασίστηκε να τηρηθεί σειρά προτεραιότητας. Να δοθεί πρόγραμμα το οποίο να διαβάζει το όνομα, το επώνυμο και τους δύο βαθμούς για κάθε έναν από τους υποψήφιους και να εμφανίζει το όνομα και το επώνυμο και το μήνυμα “περνάει” αν ο υποψήφιος πληροί τους όρους και “απορρίπτεται” αν δεν πληροί τους όρους. Σε περίπτωση που από τους 400 υποψήφιους δεν προκύψουν οι πενήντα επιτυχόντες να εμφανίζεται ο αριθμός των κενών θέσεων που έμειναν, διαφορετικά να εμφανίζεται το μήνυμα “οι θέσεις είναι πλήρεις”. ΑΣΚΗΣΗ 27η Να γραφεί αλγόριθμος που θα διαβάζει τους βαθμούς απολυτηρίου για 200 μαθητές του Λυκείου. Όποιοι βαθμοί είναι μικρότεροι από 10 θα τους καταχωρεί στον πίνακα ΑΠΟΡΡΙΠΤΟΝΤΑΙ και όσοι είναι μεγαλύτεροι ή ίσοι του 10 στον πίνακα ΠΡΟΑΓΟΝΤΑΙ.

Page 24: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

44

ΑΣΚΗΣΗ 28η Τι κάνουν τα ακόλουθα αποσπάσματα προγραμμάτων:

α. ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 Max[i] Π[i ,1] ΓΙΑ j ΑΠΟ1 ΜΕΧΡΙ 3 ΑΝ Π[i, j]>Max[j] ΤΟΤΕ Max[j] Π[i , j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Min Max[1] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΑΝ Max[i] < Min ΤΟΤΕ Min Max[j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ Min

β. ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 3 Max[j] Π[1 , j] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΑΝ Π[i, j]>Max[j] ΤΟΤΕ Max[j] Π[i , j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Min Max[1] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3 ΑΝ Max[i] < Min ΤΟΤΕ Min Max[j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ Min

ΑΣΚΗΣΗ 29η Ένα αυτοκινητιστικό περιοδικό πραγματοποίησε μία έρευνα ανάμεσα σε 50 μοντέλα αυτοκινήτων ίδιας κατηγορίας. Ειδικότερα μέτρησε το χρόνο που χρειάστηκαν για να ολοκληρώσουν από ένα γύρο σε τρεις διαφορετικές πίστες. Γράψε πρόγραμμα το οποίο να τοποθετεί σε ένα δισδιάστατο πίνακα 50 Χ 3 τα αποτελέσματα των παραπάνω μετρήσεων και να εμφανίζει: α. Για κάθε ένα μοντέλο σε ποια πίστα έκανε τον μικρότερο χρόνο και ποιος ήταν αυτός. β. Για κάθε μία πίστα πιο μοντέλο έκανε τον μικρότερο χρόνο και ποιος ήταν αυτός. Όλοι οι χρόνοι είναι εκφρασμένοι σε δευτερόλεπτα. ΑΣΚΗΣΗ 30η Σε μία δημοσκόπηση που αφορούσε την εκδήλωση προτίμησης των πολιτών για να εγκρίνουν ή όχι τους χειρισμούς της κυβέρνησης σε κρίσιμα Εθνικά Θέματα, έγιναν δεκτές τρεις απαντήσεις «Ν» (ΝΑΙ), «Ο»(ΟΧΙ), «Δ» (ΔΕΝ ΑΠΑΝΤΩ). Η έρευνα έγινε σε δείγμα 1.500 πολιτών σε κάθε μια από τις 5 μεγαλύτερες πόλεις της Ελλάδας. Να γραφεί ένα πρόγραμμα που: α. Να καταχωρεί τις απαντήσεις σε ένα πίνακα 1500 Χ 5. β. Να μετρά το ΝΑΙ, ΟΧΙ και ΔΕΝ ΑΠΑΝΤΩ σε κάθε πόλη. γ. Στη συνέχεια να ταξινομεί και να τυπώνει τις πόλεις σε ένα νέο πίνακα ανάλογα με ποια πόλη έδωσε τα περισσότερα «Ν» (ΝΑΙ). ΑΣΚΗΣΗ 31η Στις δημοτικές εκλογές ενός νομού είναι εγγεγραμμένοι 15.000 ψηφοφόροι. Οι υποψήφιοι είναι 18 και εκλέγονται έξι (6). Κάθε ψηφοφόρος μπορεί να ψηφίσει το πολύ 3 υποψηφίους. Γράψτε ένα πρόγραμμα που κάνει τα παρακάτω: α. Καταχωρεί σ’ έναν πίνακα Ψ [15.000, 3] τις ψήφους με τον εξής τρόπο: θα βάζει έναν αριθμό από το 1 έως το 18 για ψήφο στον αντίστοιχο υποψήφιο και αν ψηφίσει μόνο έναν ή δύο υποψηφίους στις υπόλοιπες θέσεις της αντίστοιχης γραμμής να βάζει μηδενικά. Π.χ. η 5η γραμμή του πίνακα μπορεί να είναι 17, 5, 0 που σημαίνει ότι ψήφισε τον 17ο και τον 5ο υποψήφιο. Αν το ψηφοδέλτιο κάποιου ψηφοφόρου που καταχωρεί ο χρήστης είναι άκυρο τότε πρέπει να εισάγει μηδενικά στη γραμμή αυτή. Επίσης να γίνεται έλεγχος για την εισαγωγή των δεδομένων συμπεριλαμβανομένης και της περίπτωσης να μην μπαίνουν ψήφοι στον ίδιο υποψήφιο στην ίδια γραμμή. β. Να καταχωρεί τα ονόματα των υποψηφίων σε έναν πίνακα ΥΠ [18]. γ. Να υπολογίζει τις συνολικές ψήφους του κάθε υποψηφίου και το σύνολο των άκυρων ψηφοδελτίων. δ. Να εμφανίζει τα ονόματα των εκλεγμένων ακολουθούμενα από τις ψήφους τους και να ελέγχει αν έχουμε ίσους ψήφους στους τελευταίους οπότε σε αυτήν την περίπτωση να εμφανίζονται και οι επιλαχόντες στην παράταξη. ΑΣΚΗΣΗ 32η Οι στρατιώτες της προεδρικής φρουράς επιλέγονται με αυστηρά κριτήρια. Πρέπει να έχουν ύψος μεγαλύτερο από 1.90 και επίσης ρόλο παίζει το βάρος τους (προτιμώνται οι ελαφρύτεροι). Να αναπτυχθεί πρόγραμμα που θα διαβάζει για τους 1.200 στρατιώτες μιας μονάδας, το όνομα, το ύψος και το βάρος, τοποθετώντας τα σε αντίστοιχους πίνακες και στη συνέχεια θα εκτυπώνει τα

Page 25: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

45

ονόματα των υποψηφίων για την προεδρική φρουρά με φθίνουσα κατάταξη κατ’ ύψος. Για άτομα με το ίδιο ύψος, θα λαμβάνεται υπόψη το βάρος. ΑΣΚΗΣΗ 33η Ένας φανατικός συλλέκτης δίσκων βινυλίου αποφάσισε να αναπτύξει πρόγραμμα, ώστε να μπορεί να επεξεργαστεί στατιστικά τη συλλογή του. Διαθέτει 2.500 δίσκους και για καθέναν από αυτούς επιθυμεί να καταχωρεί τίτλο, καλλιτέχνη και έτος κυκλοφορίας. Να αναπτυχθεί πρόγραμμα που θα διαβάζει σε τρεις μονοδιάστατους πίνακες τα παραπάνω στοιχεία και στη συνέχεια: α. Θα διαβάζει έναν αριθμό που αντιστοιχεί σε έτος (με τιμή 1900-2007) και θα εκτυπώνει το πλήθος των δίσκων που κυκλοφόρησαν εκείνη την χρονιά. β. Θα εκτυπώνει το πλήθος και τα ονόματα των διαφορετικών καλλιτεχνών για τους οποίους υπάρχουν δίσκοι στη συλλογή. ΑΣΚΗΣΗ 34η Να αναπτυχθεί πρόγραμμα που θα διαχειρίζεται τις κρατήσεις σε έναν πολυκινηματογράφο. Στον πίνακα ΕΡΓΟ[15] υπάρχουν τα έργα που προβάλλονται σε κάθε μία από τις 15 αίθουσες. Στον μονοδιάστατο πίνακα ΧΩΡΗΤΙΚΟΤΗΤΑ[15] περιέχεται η χωρητικότητα της αντίστοιχης αίθουσας και στον πίνακα ΘΕΣΕΙΣ[15] περιέχονται οι μέχρι τώρα δεσμευτικές θέσεις σ’ αυτή. Να αναπτυχθεί πρόγραμμα που θα διαβάζει τους πίνακες ΕΡΓΟ, ΧΩΡΗΤΙΚΟΤΗΤΑ, θα διαβάζει το όνομα του έργου που επιθυμεί να παρακολουθήσει κάποιος θεατής και θα πραγματοποιεί την κράτηση στην πρώτη διαθέσιμη αίθουσα. Αν δεν υπάρχει διαθέσιμη αίθουσα, θα εκτυπώνει αντίστοιχο μήνυμα. Για την επανάληψη της διαδικασίας να ερωτάται ο χρήστης αν επιθυμεί να συνεχίσει με άλλη ταινία. ΑΣΚΗΣΗ 35η Ένας εκδοτικός οίκος εκδίδει 10 διαφορετικά βιβλία. Συγκεντρωτικά τα στοιχεία με τις πωλήσεις του έτους (12 μήνες) κάθε βιβλίου τοποθετούνται σε ένα πίνακα Α. Οι τίτλοι των βιβλίων τοποθετούνται σε ένα πίνακα Β. Ζητείται να γραφεί αλγόριθμος ο οποίος: α. Θα διαβάζει τα στοιχεία των πινάκων από το πληκτρολόγιο και θα «γεμίζει» τους πίνακες. β. Θα εμφανίζει ποιος τίτλος βιβλίου και ποιο μήνα σημείωσε τις μεγαλύτερες πωλήσεις. γ. Να διαβάζει τον τίτλο ενός βιβλίου και να εμφανίζει πόσες ήταν οι συνολικές πωλήσεις του. δ. Να εμφανίζει με φθίνουσα σειρά ποια ήταν τα τρία βιβλία με τις μεγαλύτερες πωλήσεις. ε. Πόσα και ποια βιβλία είχαν ετήσιες πωλήσεις μεγαλύτερες ή ίσες του μέσου όρου πώλησης του συγκεκριμένου οίκου; ΑΣΚΗΣΗ 36η Μια εταιρεία πώλησης μουσικών CD διαθέτει 10.000 τίτλους και έχει 10 υποκαταστήματα. Να γράψετε ένα πρόγραμμα το οποίο να κάνει τα παρακάτω: α. Να καταχωρεί τους 10.000 τίτλους σε ένα πίνακα Τ[10000]. β. Να καταχωρεί τα ονόματα των υποκαταστημάτων της εταιρείας σε ένα πίνακα Υ[10]. γ. Να καταχωρεί το πλήθος των αντιτύπων που έχει η εταιρεία από τον κάθε τίτλο σε κάθε υποκατάστημα στον πίνακα CD[10, 10000] ελέγχοντας την εγκυρότητα της καταχώρησης. δ. Να διαβάζει τον τίτλο ενός CD και αν υπάρχει στους διαθέσιμους τίτλους να εμφανίζει το σύνολο των αντιτύπων που διαθέτει από αυτό σε όλα τα υποκαταστήματα καθώς και τα ονόματα των υποκαταστημάτων όπου αυτό δεν είναι διαθέσιμο. ε. Να εμφανίζει το όνομα ή τα ονόματα του (ων) υποκαταστήματος (ων) που έχει ή έχουν το μεγαλύτερο πλήθος σε τίτλους CD, οι οποίοι δεν είναι διαθέσιμοι. (Για παράδειγμα το υποκατάστημα «ΠΛΑΤΕΙΑ ΕΛΕΥΘΕΡΙΑΣ» έχει 57 τίτλους CD οι οποίοι δεν είναι διαθέσιμοι) ΑΣΚΗΣΗ 37η Ένας πελάτης επισκέπτεται μια σελίδα Internet ηλεκτρονικού εμπορίου η οποία εμπορεύεται είδη ηλεκτρονικού υπολογιστή. Η σελίδα παρέχει σε κάθε επισκέπτη ένα «ηλεκτρονικό πορτοφόλι» το οποίο ενημερώνεται με το κόστος των προϊόντων τα οποία επιλέγει ο επισκέπτης. Κάθε πορτοφόλι διαθέτει πιστωτικό όριο το οποίο καθορίζεται από το πιστωτικό ίδρυμα με το οποίο συνεργάζεται η σελίδα. Να γραφεί πρόγραμμα το οποίο : α. Να διαβάζει το ποσό του πιστωτικού ορίου καθώς και την τιμή κάθε προϊόντος που βάζει στο ‘πορτοφόλι’ του ένας πελάτης. β. Να τυπώνει το πλήθος των προϊόντων που έχει στο καλάθι καθώς και το πιστωτικό του υπόλοιπο. Το πρόγραμμα πρέπει να τερματίζεται όταν ο πελάτης δεν μπορεί να αγοράσει άλλα προϊόντα. Σε περίπτωση που υπάρχουν χρήματα στο ‘πορτοφόλι’ του αλλά δεν επαρκούν για την αγορά ενός προϊόντος, ο πελάτης πρέπει να ειδοποιείται με σχετικό μήνυμα και να επιλέγει άλλο προϊόν μέχρις ότου εξαντληθεί πλήρως το πιστωτικό του απόθεμα.

Page 26: ΚΕΦΑΛΑΙΟ 7_8_9

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ www.emath.gr Κ. ΑΓΟΡΗΣ

46

Παρατήρηση: Θεωρείστε ότι το ποσό πιστωτικού ορίου καθώς και η τιμή κάθε προϊόντος είναι έγκυροι πραγματικοί αριθμοί. ΑΣΚΗΣΗ 38η Σε ένα σχολείο πραγματοποιήθηκε γραπτή εξέταση στο μάθημα «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον». Στην εξέταση συμμετείχαν 80 μαθητές και κάθε ένας από αυτούς βαθμολογήθηκε στην κλίμακα [0, 20]. Αν γνωρίζετε ότι μόνο 25 από τους 80 μαθητές έλαβαν βαθμό μεγαλύτερο του 18, να γράψετε αλγόριθμο ο οποίος : α. Να διαβάζει τα επώνυμα των μαθητών και να τα αποθηκεύει σε μονοδιάστατο πίνακα. β. Να διαβάζει τους βαθμούς των μαθητών και (αφού ελέγξει την ορθή καταχώρησή τους) να τα αποθηκεύει σε μονοδιάστατο πίνακα. γ. Να τυπώνει τα επώνυμα των μαθητών που έλαβαν βαθμό μεγαλύτερο του 18 και το βαθμό τους ταξινομημένα κατά αύξουσα σειρά. Ως βάση ταξινόμησης θεωρείται ο βαθμός τους. Σε περίπτωση ισοβαθμίας τα επώνυμα πρέπει να ταξινομούνται κατά αύξουσα σειρά. Παρατήρηση : Θεωρείστε ότι ο βαθμός κάθε μαθητή είναι πραγματικός αριθμός και ότι το επώνυμο κάθε μαθητή είναι γραμμένο με μικρά γράμματα.

Ταξινόμηση δισδιάστατου πίνακα με κριτήριο (κλειδί) ταξινόμησης κάποια από τις στήλες του ! Το επόμενο απόσπασμα χρησιμοποιεί τον αλγόριθμο ταξινόμησης ευθείας ανταλλαγής

(φυσαλίδας) για να ταξινομήσει σε αύξουσα σειρά τις γραμμές του πίνακα Π. Κριτήριο (κλειδί) ταξινόμησης είναι τα περιεχόμενα της πρώτης στήλης. Η διαδικασία είναι ίδια με την ταξινόμηση παράλληλων πινάκων όπου ένας από τους πίνακες αποτελεί το κλειδί της ταξινόμησης. Αυτό γίνεται εφικτό αν μεταχειριστούμε την κάθε στήλη του πίνακα Π σαν έναν ξεχωριστό μονοδιάστατο πίνακα.

ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 10 ΓΙΑ j ΑΠΟ 10 ΜΕΧΡΙ i ME ΒΗΜΑ -1 ΑΝ Επίδοση [j -1, 1] > Επίδοση [j, 1] TOTE ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 3 temp Επίδοση [j -1,κ] Επίδοση [j,-1, κ] Επίδοση [j, κ] Επίδοση [j, κ] temp ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Έστω ο πίνακας χαρακτήρων Μαθητές, διαστάσεων 10 Χ 4. Κάθε γραμμή αντιστοιχεί και σε

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