Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ’ Λυκείου 2013-2014 Άνδρας Π. Χρήστος Το παρών σετ ασκήσεων αποτελεί συλλογή επεξεργασμένων ασκήσεων από διάφορες πηγές (βιβλία, internet) και αρκετών ασκήσεων διαμορφωμένων από τον συντάκτη. Επιπλέον, εμπεριέχονται ασκήσεις (αυτούσιες ή τροποποιημένες) των παρακάτω συναδέλφων: Καραμαούνας Πολύκαρπος, Τσιωτάκης Παναγιώτης, Γεωργόπουλος Άκης, Βερνάρδος Α., Νικολακάκης Γιώργος
68
Embed
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλονlyk-kymin.thess.sch.gr/autosch/joomla15/images/files/aepp/aepp_practice.pdf · Ανάπτυξη
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Ανάπτυξη Εφαρμογών σε
Προγραμματιστικό Περιβάλλον
Γ’ Λυκείου
2013-2014
Άνδρας Π. Χρήστος
Το παρών σετ ασκήσεων αποτελεί συλλογή επεξεργασμένων ασκήσεων από διάφορες πηγές (βιβλία, internet) και
αρκετών ασκήσεων διαμορφωμένων από τον συντάκτη. Επιπλέον, εμπεριέχονται ασκήσεις (αυτούσιες ή τροποποιημένες)
Το πρόγραμμα να διαβάζει το φορολογητέο ποσό από την οθόνη, να καλεί μία συνάρτηση ή μια διαδικασία για
τον υπολογισμό του φόρου και να εμφανίζει το αποτέλεσμα στην οθόνη.
17. Γράψτε ένα πρόγραμμα που να τυπώνει τον πίνακα αληθείας της παράστασης τύπου Boolean ( a and not B
).
18. Γράψτε ένα πρόγραμμα που να αποφαίνεται αν ο μήνας και η ημέρα που δίνονται από το πληκτρολόγιο
είναι η ημέρα των Χριστουγέννων.
19. Να υπολογισθούν οι εβδομαδιαίες αποδοχές ενός εργαζομένου με ωριαία αποζημίωση 6€ . Αν οι ώρες
εργασίας είναι περισσότερες από 40, για κάθε επιπλέον ώρα πληρώνεται με 9€ η οποία θεωρείται ως
υπερωρία.
20. Να γραφεί πρόγραμμα, όπου θα διαβάζει τους τελικούς προφορικούς βαθμούς (μέσους όρους των 2
τετραμήνων) ενός μαθητή της Γ’ Λυκείου σε 5 μαθήματα (συμπεριλαμβανομένου και του μαθήματος των Αρχ.
Οικ. Θεωρίας). Επίσης πρέπει να διαβάζει και τον αντίστοιχο γραπτό βαθμό του μαθητή. Το πρόγραμμα πρέπει
να υπολογίζει και να τυπώνει το γενικό βαθμό πρόσβασης του μαθητή. Ο γενικός βαθμός πρόσβασης
προκύπτει απ’ τον μέσο όρο όλων των τελικών βαθμών των μαθημάτων. Ο τελικός βαθμός ενός μαθήματος
είναι, μετά την πιθανή προσαρμογή του προφορικού βαθμού στις 2 μονάδες, το άθροισμα { 0,3 Χ Προφορικός +
0,7 Χ Γραπτός }.
21. Δίνεται ο παρακάτω αλγόριθμος:
Αλγόριθμος Πολλαπλή
Διάβασε α
Επίλεξε α
Περίπτωση < 0
εμφάνισε “Αρνητικό”
Περίπτωση < = 100
εμφάνισε “Μεταξύ 0 και 100”
Περίπτωση < = 200
εμφάνισε “Μεταξύ 100 και 200”
Περίπτωση αλλιώς
εμφάνισε “Μεγαλύτερο από 200”
Τέλος_επιλογών
Τέλος Πολλαπλή
Να αναπτύξετε αλγόριθμο ισοδύναμο με τον παραπάνω, χρησιμοποιώντας εμφωλευμένες επιλογές.
22. Να γίνει αλγόριθμος για τον υπολογισμό της παράστασης: 0,34
3,0,
1
1
2 <−++−≥++
−−= xx
x
xx
x
x
x
xY
Ανάπτυξη Εφαρμογών Σελίδα - 6 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
23. Να γίνει αλγόριθμος για τον υπολογισμό της παράστασης: g
gbaY
),,max(*32 += Παρατήρηση:
max(a,b,g) = μέγιστος των a,b και g.
24. Να γίνει αλγόριθμος που να δέχεται τρείς πραγματικούς αριθμούς και να εμφανίζει το μεσαίο από τους τρεις.
25. Σε μια αεροπορική εταιρία τα 22 kg αποσκευών είναι χωρίς χρέωση για την Α θέση . Κάθε kg πάνω από
το όριο των 22 kg χρεώνετε με 2% επί του κόμιστρου της πτήσης. Γράψτε αλγόριθμο ο οποίος να δέχεται σαν
είσοδο το κόμιστρο της πτήσης και το συνολικό βάρος των αποσκευών και θα υπολογίζει και θα τυπώνει την
χρέωση του υπέρβαρου των αποσκευών σε οποιαδήποτε άλλη περίπτωση θα εμφανίζει το μήνυμα
«χωρίς χρέωση»
Ανάπτυξη Εφαρμογών Σελίδα - 7 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
1. Να γραφεί πρόγραμμα, όπου θα εμφανίζει τους αριθμούς από το 1 ως το 100.
2. Να γραφεί πρόγραμμα, όπου θα εμφανίζει το άθροισμα
a) όλων b) ζυγών c) μονών
αριθμών από το 1 ως το 100. ( 3 τρόπους-επαναλήψεις )
3. Να γραφεί πρόγραμμα, όπου θα διαβάζονται αριθμοί από τον χρήστη μέχρι το άθροισμά τους να γίνει μεγαλύτερο από δοσμένο όριο.
4. Να γραφεί πρόγραμμα, όπου θα δίνονται αριθμοί από τον χρήστη (πληκτρολόγιο) και θα βρίσκει
a) το πλήθος
b) το άθροισμά
c) το γινόμενο
d) το μέσο όρο
e) το μεγαλύτερο
f) το μικρότερο
g) το πρώτο που εισήχθηκε
h) το τελευταίο που εισήχθηκε.
Η εισαγωγή των αριθμών θα τελειώνει με την πληκτρολόγηση του 0.
5. Να γραφεί πρόγραμμα, όπου θα δίνονται 10 αριθμοί από το πληκτρολόγιο και θα τυπώνεται ( στο τέλος ) πόσοι ήταν
αρνητικοί, θετικοί και 0
6. Να γραφεί πρόγραμμα, όπου θα δίνονται από το χρήστη οι μισθοί μιας εταιρίας και θα βρίσκει το άθροισμά τους, τον
μικρότερο και μεγαλύτερο μισθό. Η πληκτρολόγηση των αριθμών θα τελειώνει με το 0.
7. Να γραφεί πρόγραμμα, όπου θα τυπώνει στην οθόνη τη προπαίδεια από το 1 ως το 10.
8. Δίνεται η συνάρτηση y(x)=x2 – 3x + 2. Να γραφεί πρόγραμμα, όπου θα τυπώνει τις τιμές της συνάρτησης, όταν το Χ
παίρνει τιμές από –1 ως το 3 με βήμα 0,1.
9. Ο σημερινός πληθυσμός της Ελλάδος είναι 9.800.000 άτομα. Αν αυτός αυξάνεται κατά 3,5 % το χρόνο, να γραφεί
πρόγραμμα που να υπολογίζει και εμφανίζει στην οθόνη τον πληθυσμό της Ελλάδος μετά την πάροδο 8 ετών.
10. Δίνεται αρχικό κεφάλαιο κατάθεσης Κ που τοκίζεται για Ν χρόνια. Αν στο τέλος κάθε χρόνου το κεφάλαιο
ανατοκίζεται, να γραφεί πρόγραμμα το οποίο να υπολογίζει και εμφανίζει στην οθόνη το τελικό κεφάλαιο κατάθεσης μετά
την πάροδο Ν χρόνων. Το επιτόκιο είναι ανάλογο του κεφαλαίου ως εξής:
ΚΕΦΑΛΑΙΟ € ΕΠΙΤΟΚΙΟ
K < 5.000 2,5 % 5.000 <= K < 10.000 4,5 %10.000 <= K < 15.000 6,5 %15.000 <= K 8 %
11. Να γραφεί πρόγραμμα που θα υπολογίζει και εμφανίζει στην οθόνη σε ποιον όρο το άθροισμα
S = 1 + 2 +3 + 4+… +10 γίνεται μεγαλύτερο του
a) 12 ,
b) δοσμένου αριθμού-ορίου που θα δίνεται στην αρχή από τον χρήστη.
Ανάπτυξη Εφαρμογών Σελίδα - 8 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
12. Ο σημερινός αριθμός των αυτοκινήτων που κυκλοφορούν σε μια πόλη είναι ίσος με 60.000. Αν αυτός αυξάνεται κατά
5% το χρόνο, να γραφεί πρόγραμμα που θα υπολογίζει και εμφανίζει στη οθόνη σε πόσα χρόνια ο αριθμός αυτός θα έχει
ξεπεράσει τις 100.000. Πόσα θα είναι τότε τα αυτοκίνητα που θα κυκλοφορούν στην πόλη αυτή;
13. Από στοιχεία που συγκέντρωσε το τμήμα τουριστικού συναλλάγματος της τράπεζας της Ελλάδος, διαπιστώθηκε
ετήσια μείωση 2,5%. Αν το συνολικό ποσό τουριστικού συναλλάγματος που εισήλθε φέτος στη χώρα είναι της τάξεως των
13.500.000€. Να γραφεί πρόγραμμα το οποίο υπολογίζει και εμφανίζει στην οθόνη σε πόσα χρόνια το τουριστικό
συνάλλαγμα που εισάγεται στη χώρα θα είναι μικρότερο των 7.500.000€. Πόσο θα είναι τότε το ετήσιο τουριστικό
συνάλλαγμα.
14. Κάποιος καταθέτει σε τράπεζα κεφάλαιο 10.000 €. με σταθερό επιτόκιο 3,5 %. Αν στο τέλος κάθε χρόνου το κεφάλαιο
ανατοκίζεται να γραφεί πρόγραμμα το οποίο υπολογίζει και εμφανίζει στη οθόνη το συνολικό κεφάλαιο μετά την πάροδο
15 ετών.
15. Να γραφεί πρόγραμμα το οποίο υπολογίζει και εμφανίζει στη οθόνη το γινόμενο Ν!=1*2*3*…* Ν ( Ν δίνεται από τον
χρήστη ).
16. Να γραφεί πρόγραμμα που να διαβάζει τους βαθμούς τριμήνου ενός μαθητή και στη συνέχεια υπολογίζει και εμφανίζει
στην οθόνη σε πόσα μαθήματα έχει βαθμό μεγαλύτερο ή ίσο του 15, σε πόσα μικρότερο του 15 και μεγαλύτερο ή ίσο του
10 και σε πόσα έχει κάτω από τη βάση. Στη συνέχεια βρίσκει και εμφανίζει το μέσο όρο όλων των μαθημάτων του μαθητή.
Η πληκτρολόγηση – εισαγωγή των βαθμών θα τερματίζεται με το -1.
17. Να γραφεί πρόγραμμα υπολογισμού της δύναμης ενός αριθμού. Το πρόγραμμα θα διαβάζει από την οθόνη τη βάση (b)
και τον εκθέτη (e) (φυσικούς αριθμούς) και θα υπολογίζει και θα τυπώνει την αντίστοιχη δύναμη, χωρίς τη χρήση του
γνωστού τελεστή υπολογισμού δύναμης ( ^ ).
18. Τι θα εκτυπώσει το παρακάτω τμήμα προγράμματος:
Α 0
ΓΙΑ Ι ΑΠΟ 10 ΜΕΧΡΙ 20 ΜΕ_ΒΗΜΑ 10
Α Α + Ι ^ 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Α
19. Πόσες φορές θα εκτελεστεί η παρακάτω επανάληψη
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 2 ΜΕ_ΒΗΜΑ 3
ΓΡΑΨΕ ’’ΜΗΝΥΜΑ’’
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
20. Γράψτε ένα πρόγραμμα, που να διαβάζει μια ακολουθία ακεραίων, που τελειώνει με έναν αρνητικό ακέραιο. Το
πρόγραμμα σας πρέπει να τυπώνει:
• Την τιμή 0 κάθε φορά που διαβάζει το 0 και
• Τόσους αστερίσκους, όσους παριστάνει ο κάθε θετικός ακέραιος που διαβάζει
(τα δεδομένα τυπώνονται έτσι υπό μορφή ιστογράμματος)
21. Δίνονται μετρήσεις της ατμοσφαιρικής ρύπανσης της Αθήνας (ακέραιες τιμές στην περιοχή 0 ως 100) για διαδοχικές
μέρες. Οι μετρήσεις τελειώνουν με μια αρνητική τιμή.
Γράψτε πρόγραμμα που να διαβάζει τις μετρήσεις αυτές και να τυπώνει:
a) Τους αριθμούς των ημερών (αρχίζοντας από την 1η) στις οποίες
συνέβησαν "μέγιστα" (μετρήσεις μεγαλύτερες της προηγούμενης και
επόμενης μέρας) και τις μετρήσεις των ημερών αυτών.
δύσκολη
Ανάπτυξη Εφαρμογών Σελίδα - 9 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
b) Το συνολικό πλήθος των μετρήσεων και των "μεγίστων".
Σκεφτείτε πως θα μεταχειρισθείτε τις μετρήσεις της πρώτης κα της τελευταίας μέρας.
22. Γράψτε ένα πρόγραμμα, που να διαβάζει μια ακολουθία ακεραίων και να τυπώνει το μήκος της μεγαλύτερης σειράς
ακεραίων που έχουν το ίδιο πρόσημο. Η ακολουθία τελειώνει με την τιμή 0.
Αν, για παράδειγμα η ακολουθία είναι η:
108 311 -5 -3 -15 -8 125 35 -1 +1 328 666 7 0,
τότε το πρόγραμμα θα πρέπει να τυπώσει το μήνυμα: "το μήκος της μεγαλύτερης σειράς (αρνητικών) ακεραίων είναι ίσο
με 4 ".
23. Γράψτε ένα πρόγραμμα που θα βρίσκει το υπόλοιπο της διαίρεσης 2 αριθμών (a και b) που θα δίνονται από το
πληκτρολόγιο, χωρίς τη χρήση του τελεστή Mod.
24. Να γραφεί πρόγραμμα που να δέχεται τους βαθμούς ενός μαθητή και να υπολογίζει σε πόσα μαθήματα έχει πάρει 20. Το πρόγραμμα πρέπει να σταματά να δέχεται βαθμούς, όταν δοθεί ως είσοδος ένας αρνητικός αριθμός ή ένας αριθμός >
20.
26. Να γραφεί πρόγραμμα όπου θα διαβάζονται από το πληκτρολόγιο αριθμοί Α και Β, όπου Α < Β και έπειτα ένας
αριθμός Ν πρέπει να ζητείται από τον χρήστη. Να αναπτυχθεί αλγόριθμος, που θα διαβάζει τους Ν αριθμούς και θα
βρίσκει το πλήθος των αριθμών, που βρίσκονται στα 3 διαστήματα που δημιουργούν οι αριθμοί Α και Β.
-∞ Α Β +∞
27. Σ’έναν αγώνα μπάσκετ είχαν συμμετοχή Ν παίκτες μιας ομάδας. Να δοθεί αλγόριθμος που να ζητά τον αριθμό Ν (δεν
μπορεί να είναι μεγαλύτερος από 10) και στη συνέχεια για κάθε παίκτη να ζητά τα στοιχέια: 1. Πόντους που πέτυχε, 2.
Φάουλ που έκανε, 3. Τρίποντα εύστοχα και 4. Τρίποντα άστοχα. Στη συνέχεια ο αλγόριθμος θα πρέπει να εμφανίζει : 1.
Σύνολο πόντων της ομάδας, 2. Συνολικό αριθμό φάουλ, 3. Μέσο όρο πόντων ανά παίκτη και 4. Ποσοστό ευστοχίας στα
τρίποντα συνολικά για την ομάδα.
28. Ένα τραίνο επιταχύνεται από στάση με σταθερή επιτάχυνση γ = 4m/sec2. Να δοθεί αλγόριθμος που να εμφανίζει την
ταχύτητα που αποκτά το τραίνο καθώς και το διάστημα που διανύει στα πρώτα 20 sec, για κάθε sec κίνησης. (Υπόδειξη: υ
= γ * t και s = ½ * γ * t2).
29. Σε μία ασφαλιστική εταιρεία δουλεύουν Α ασφαλιστές που ο καθένας τους μπορεί να έχει 1 έως Ν πελάτες. Να δοθεί
αλγόριθμος που για κάθε ασφαλιστή να ζητά τον αριθμό των πελατών του και για κάθε πελάτη να ζητά το μέγεθος της
ασφάλειας που έχει κάνει. Στο τέλος ο αλγόριθμος να εμφανίζει τον αριθμό των ασφαλιστών, το συνολικό αριθμό των
πελατών και ένα μήνυμα για το ποιός πελάτης έχει κάνει τη μεγαλύτερη ασφάλιση, π.χ. ως εξής: “Ο 2ος πελάτης του 4ου
ασφαλιστή έχει κάνει τη μεγαλύτερη ασφάλεια ύψους 15.000€”.
1ο διάστημα 2ο διάστημα 3ο διάστημα
Ανάπτυξη Εφαρμογών Σελίδα - 10 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
30. Για την πρόσβαση στα αρχεία μιας τράπεζας ζητείται από το χρήστη να πληκτρολογήσει έναν κωδικό. Αν δοθεί ο
σωστός κωδικός μέσα σε δύο προσπάθειες επιτρέπεται η πρόσβαση και εμφανίζεται κάποιο σχετικό μήνυμα. Αν δοθεί και
τρίτη φορά λανθασμένος κωδικός, ο αλγόριθμος σταματά την εκτέλεση του, εμφανίζοντας σχετικό μήνυμα.
31. Να γίνει αλγόριθμος που να υπολογίζει (για n θετικό ακέραιο) την παράσταση: Σ = 1 – 2 + 3 – 4 + … + (2*n+1).
32. Να γίνει αλγόριθμος που να υπολογίζει (για n θετικό ακέραιο) την παράσταση: P = (1 n + 2n + … + nn) / (12 + 22 + …+
n2)
33. Mία μπάλα αφήνεται από ύψος 800 μέτρων. Σε κάθε χτύπο με το έδαφος, ανυψώνεται σε ύψος 20% μικρότερο από το
προηγούμενο ύψος της. Να γίνει αλγόριθμος που να υπολογίζει το ύψος μετά από 10 χτύπους της με το έδαφος.
34. Ένα στάδιο έχει 33 σειρές καθισμάτων. Στην κάτω-κάτω σειρά βρίσκονται 800 θέσεις και για κάθε σειρά πιο πάνω οι
θέσεις αυξάνονται κατά 100. Να γίνει αλγόριθμος που να υπολογίζει πόσες θέσεις έχει το στάδιο.
35. Ένας αγρότης, για να κάνει μία γεώτρηση στο κτήμα του, συμφώνησε τα εξής με τον ιδιοκτήτη του γεωτρύπανου. Το
1ο μέτρο θα κοστίσει 6€ και αυξανομένου του βάθους, θα αυξάνεται και η τιμή κάθε μέτρου κατά 2€. Ο αγρότης διαθέτει
150€. Να γίνει αλγόριθμος που να υπολογίζει το βάθος που μπορεί να πάει η γεώτρηση στο κτήμα.
36. Να διαβασθούν 100 ακέραιοι αριθμοί στο διάστημα 1 έως 500 και να εμφανισθεί ο μεγαλύτερος ζυγός και ο
μικρότερος περιττός.
37. Σε ένα στρατόπεδο κάποιος φαντάρος διαδίδει μία είδηση σε 3 άλλους. Αυτοί με τη σειρά τους μεταφέρουν το νέο
μετά από 10 λεπτά, σε άλλους 3 ο καθένας κ.ο.κ. Αν η μετάδοση της είδησης γίντεται ανά 10 λεπτά, πόσοι φαντάροι θα τη
γνωρίζουν μετά από μία ώρα;
38. Να υπολογισθεί το άθροισμα: ∑=
+++++=100
1
100432 100...4321i
ii
Ανάπτυξη Εφαρμογών Σελίδα - 11 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
Αθρ ← 1Για Ι από 1 μέχρι 100 Με_Βήμα 2 Αθρ ← Αθρ + ΙΤέλος_ΕπανάληψηςΓράψε Αθρ
Ανάπτυξη Εφαρμογών Σελίδα - 13 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
1. Δίνεται το παρακάτω τμήμα αλγορίθμουΔΙΑΒΑΣΕ ab ← 2 * a + 1c ← a + bΑΝ c > b ΤΟΤΕ
b ← cΑΛΛΙΩΣ
c ← bΤΕΛΟΣ ΑΝΕΜΦΑΝΙΣΕ a,b,c
Μετά την εκτέλεση του παραπάνω τμήματος αλγορίθμου, ποιες θα είναι οι τιμές των μεταβλητών a,b,c που θα εμφανισθούν, ότανi) a = 10 και ii) a = -10
2. Έστω τμήμα αλγορίθμου με μεταβλητές Χ, Μ, Ζ.Μ←0 Ζ←0;Για Χ από 0 μέχρι 10 με_βήμα 2
Αν Χ< 5 ΤότεΖ←Ζ+Χ
αλλιώςΜ←Μ+Χ-1
Τέλος_ανΤέλος_για
Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Χ, Μ, Ζ σε όλες τις επαναλήψεις.
3 . Να γράψετε στο τετράδιό σας τ ις τ ιμές των μεταβλητών Ν, Μ και Β, όπως αυτές τυπώνονται σε κάθε επανάληψη, και την τ ιμή της μεταβλητής Χ που τυπώνεται μετά το τέλος της επανάληψης, κατά την εκτέλεση του παρακάτω αλγόριθμου.
Αλγόριθμος Αριθμοί
Α ← 1
Β ← 1
Ν ← 0
Μ ← 2
Όσο Β < 6 επανάλαβε
Χ ← Α + Β
Αν Χ MOD 2 = 0 τότε
Ν ← Ν + 1
αλλιώς
Μ ← Μ + 1
Τέλος_αν
Α ← Β
Β ← Χ
Γράψε Ν, Μ, Β
Τέλος_επανάληψης
Γράψε Χ
Τέλος Αριθμοί
Ανάπτυξη Εφαρμογών Σελίδα - 14 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
4. Τί θα εμφανίσει καθένα από τα ακόλουθα τμήματα αλγορίθμων;
α. x5αν (x>5) τότε xx+4αλλιώς xx-4τέλος_ανΓράψε x
β. x7αν (x>5) τότε xx+4αλλιώς xx-4τέλος_ανΓράψε x
γ. x5αν (x>=5) τότε xx+4τέλος_αναν (x<5) τότε xx-4τέλος_ανΓράψε x
δ. x7αν (x>5) τότε xx-4τέλος_αναν (x<5) τότε xx+6τέλος_ανΓράψε x
5. Τί θα εμφανίσει καθένα από τα ακόλουθα τμήματα αλγορίθμων;α. x3όσο (x<5) επανέλαβε Γράψε x xx+1Τέλος_επανάληψης
β. x3όσο (x<=5) επανέλαβε Γράψε x xx+1Τέλος_επανάληψης
γ. Ο μέσος όρος της διαφοράς του επόμενου αριθμού από τον προηγούμενό του.
10. Να γραφεί πρόγραμμα που να εμφανίζει όλους τους αριθμούς από το 1 ως το 500, οι οποίοι είναι
πολλαπλάσια του 3 και το 7. Επίσης :
α. Το άθροισμα αυτών των αριθμών
β. Το πλήθος τους
γ. Τη μέση τιμή τους
11. Να γραφεί πρόγραμμα, όπου θα εμφανίζονται όλοι οι τριψήφιοι οι οποίοι :
α. Περιέχουν ως ψηφίο τους το 9 (Δηλ. 9, 19, 29 …99 , 109 …)
β. Περιέχουν ως ψηφίο τους το 9 ή το 1 (Δηλ. 1, 9, 10 ,11 …, 19 …)
Επίσης οι τριψήφιοι αριθμοί των οποίων :
γ. Το άθροισμα των ψηφίων τους είναι μεγαλύτερο από 10
δ. Το άθροισμα των μονών - περιττών ψηφίων τους είναι μεγαλύτερο από 10
ε. Το άθροισμα των ζυγών - άρτιων ψηφίων τους είναι μεγαλύτερο από 10
12. Ξεκινώντας από τους αριθμούς 1, 4, 9 να συνεχιστεί και να δημιουργηθεί ακολουθία αριθμών με βάση τον
κανόνα ότι ο επόμενος αριθμός της ακολουθίας είναι 2 φορές η διαφορά προηγουμένου από τον
προπροηγούμενο + το γινόμενο του Προπροηγούμενου με το Προ-Προ-Προηγούμενο. Στο Παράδειγμά μας.
2 * (9-4) + 4 * 1 = 14
ακολούθως 2 * (14-9) + 4 * 9 = 46
ακολούθως 2 * (46-14) + 14 * 9 = 190
Η ακολουθία θα περιλαμβάνει μόνο έναν αριθμό μεγαλύτερο από το 100000.
13. Να γραφεί πρόγραμμα, όπου θα υπολογίζει όλες τις ακέραιες λύσεις της εξίσωσης αΧ 3+βΧ2+γΧ+δ στο
διάστημα [-100, 100]. Το πρόγραμμα θα πρέπει να συμπεριφέρεται «έξυπνα» σταματώντας να ψάχνει στην
περίπτωση που βρει και τις 3 πιθανές λύσεις.
14. Σε ένα Βιντεοκλάμπ οι κασέτες χρεώνονται 2 € συν 0,75 € για κάθε μέρα καθυστέρησης και ξεκινώντας να
μετράμε μετά από μία μέρα ενοικίασης. Να γραφεί πρόγραμμα, όπου θα διαβάζει τις ημέρες ενοικίασης και θα
υπολογίζει την χρέωση.
15. Να γραφεί πρόγραμμα, όπου θα διαβάζει έναν αριθμό Ν και θα υπολογίζει το άθροισμα
S = ½ + ¼ + 1/6 + … + 1/N αν είναι άρτιος
S = 1 + 1/3 + 1/5 +1/7 + … + 1/N αν είναι περιττός
16. Να γραφεί αλγόριθμος που θα εμφανίζει όλους τους τριψήφιους αριθμούς οι οποίοι είναι ίσοι με το άθροισμα
των κύβων των ψηφίων τους.
Ανάπτυξη Εφαρμογών Σελίδα - 19 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
17. Να γραφεί πρόγραμμα που θα εμφανίζει όλους τους τέλειους τριψήφιους αριθμούς. Ένας αριθμός είναι
τέλειος, όταν το άθροισμα των διαιρετών του είναι ίσο με το διπλάσιο του αριθμού. Για παράδειγμα ο αριθμός 6
είναι τέλειος αριθμός γιατί οι διαιρέτες του 1,2,3,6 έχουν άθροισμα 1+2+3+6 =12= 2 Χ 6
18. Ένα πρόβατο κοστίζει μισή δραχμή. Ένα γουρούνι 3 δραχμές και μία αγελάδα 10. Έχετε στην διάθεσή σας
εκατό δραχμές. Πρέπει να αγοράσετε τουλάχιστον ένα ζώο από κάθε είδος. Επίσης πρέπει να ξοδέψετε και τις
εκατό δραχμές ακριβώς και το άθροισμα των ζώων που θα αγοράσετε να είναι και αυτό 100. Να γράψετε
πρόγραμμα, το οποίο θα βρίσκει την λύση στο παραπάνω πρόβλημα.
19. Να γραφεί πρόγραμμα που να υπολογίζει το παρακάτω άθροισμα :
!...
!4!3!2!11
4321
n
xxxxxs
n
++++++=
Υπόδειξη : n! = 1 * 2 * 3 * … (n-1) * n.
20. Να διαβαστούν 100 ακέραιοι αριθμοί στο διάστημα 1 έως 500 και να εμφανιστεί ο μεγαλύτερος ζυγός και ο
μικρότερος περιττός.
21. Δίνεται ακέραιος αριθμός Χ. Πόσα είναι τα ψηφία του ;
22. Να γραφεί πρόγραμμα που να διαβάζει 200 ακέραιους αριθμούς στο διάστημα [-999,999] και να υπολογίζει
το ποσοστό των 1ψήφιων, 2ψήφιων, 3ψήφιων αριθμών.
23. Να γραφεί πρόγραμμα, που θα δέχεται ως είσοδο έναν θετικό ακέραιο αριθμό και θα εμφανίζει ένα μήνυμα
που θα δηλώνει, αν αυτός ο αριθμός είναι πρώτος. Πρώτος είναι ο αριθμός του οποίου οι μοναδικοί διαιρέτες
είναι η μονάδα και ο εαυτός του (π.χ 7 , 13 ,19 ).
24. Πάρε έναν 4ψήφιο αριθμό. Πρόσθεσε τα 2 πρώτα ψηφία του με τα 2 τελευταία. Ύψωσε το αποτέλεσμα στο
τετράγωνο. Προκύπτει ο ίδιος αριθμός; Για τρεις αριθμούς ισχύει το παραπάνω. Ποιοί είναι αυτοί;
25. Να γραφεί αλγόριθμος που διαβάζει μια πρόταση μέχρι 100 χαρακτήρες και να μετρά και να εμφανίζει από
πόσες λέξεις αποτελείται η συγκεκριμένη πρόταση.
Ανάπτυξη Εφαρμογών Σελίδα - 20 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
1. Να γραφεί πρόγραμμα που θα διαβάζει τις θερμοκρασίες σε μια πόλη για ένα μήνα. Ακολούθως θα τυπώνει τη μέση
θερμοκρασία του μήνα και πόσες μέρες είχαν μικρότερη από τη μέση θερμοκρασία.
2. Να γραφεί πρόγραμμα που θα διαβάζει τα ονόματα 50 αεροπορικών εταιριών και τις αντίστοιχες εισπράξεις τους. Να
τυπώνει τα ονόματα των εταιριών που έχουν εισπράξεις περισσότερες από το μέσο όρο.
a) Επίσης αυτή με τις περισσότερες και με τι λιγότερες εισπράξεις. (και την
δεύτερη με τις μεγαλύτερες εισπράξεις)
b) Το άθροισμα των εισπράξεων
3. Να γραφεί πρόγραμμα όπου θα δημιουργηθεί πίνακας 5 θέσεων, με περιεχόμενα την τιμή του δείκτη του.
4. Να γραφεί πρόγραμμα όπου θα δημιουργηθεί πίνακας A με 10 στοιχεία, πρώτο στοιχείο τον αριθμό 500 και κάθε
επόμενο στοιχείο να είναι το μισό του προηγουμένου, το δεύτερο 250, το τρίτο 125 κοκ.
Ακολούθως τα περιεχόμενα του πίνακα Α να μεταφερθούν σε πίνακα Β ανάποδα (Το 10 στοιχείο στην 1
θέση, το 9 στην 2 θέση …).
5. Έχουμε 2 πίνακες 10 θέσεων, ο ένας με την περιγραφή των μοντέλων των υπολογιστών και ο δεύτερος με τις τιμές τους.
Να γραφεί πρόγραμμα που θα διαβάζει τα στοιχεία και ακολούθως θα βρίσκει τον φθηνότερο και τον ακριβότερο
υπολογιστή.
6. Να γραφεί πρόγραμμα όπου θα καταχωρούνται - διαβάζονται σε πίνακα 10 θέσεων οι κωδικοί (ακέραιοι αριθμοί)
εκτόξευσης 10 αντίστοιχων πυρηνικών πυραύλων μεγάλου βεληνεκούς. Ακολούθως πρέπει σε έναν άλλο πίνακα (ή στον
ίδιο με 2 στήλες) να κρυπτογραφούνται οι κωδικοί με βάση τον ακόλουθο τύπο συνάρτηση. Y(x)=3x+2
• Ένα πιο αποδοτικό σύστημα κρυπτογράφησης είναι η εξάρτηση των τιμών μεταξύ τους. Να γραφεί πρόγραμμα που θα
κρυπτογραφεί τους κωδικούς με βάση τον τύπο. Υ(Χ) : Χ + 2p + 1 (p: προηγούμενος όρος). Σ' αυτή την περίπτωση
είναι προφανές , για την αποκωδικοποίηση, ότι πρέπει να γνωρίζουμε εκτός φυσικά από τον τύπο-συνάρτηση
μετατροπής και τον πρώτο κωδικό, στοιχείο του πίνακα.
• Μ' αυτές τις σημειώσεις να γραφούν και τα αντίστοιχα προγράμματα αποκωδικοποίησης.
7. Να γραφεί πρόγραμμα που θα διαβάζει τις θερμοκρασίες σε μια πόλη για ένα χρόνο. Ακολούθως θα τυπώνει τη μέση
ετήσια θερμοκρασία και πόσες μέρες είχαν μικρότερη από τη μέση θερμοκρασία.
8. Να γράψετε τις εντολές που δίνουν τις ακόλουθες τιμές σε ένα πίνακα ακεραίων Α.
1 0 0 00 1 0 00 0 1 00 0 0 1
9. Να γραφούν οι εντολές που ανταλλάσσουν τα στοιχεία της τρίτης και της έκτης στήλης σε ένα πίνακα ακεραίων 5Χ6.
10. Να γραφεί πρόγραμμα το οποίο να διαβάζει τα περιεχόμενα δύο πινάκων Α και Β οι οποίοι έχουν 3 γραμμές και 4
στήλες να υπολογίζει το άθροισμα τους να το καταχωρεί σε ένα πίνακα C και να τυπώνει στην οθόνη το πίνακα C.
11. Να γραφεί πρόγραμμα το οποίο να διαβάζει κατά γραμμές τα στοιχεία ενός πίνακα δύο διαστάσεων (4 γραμμές, 3
στήλες), να τυπώνει τον πίνακα καθώς και τον ανάστροφό του (δηλαδή να τυπώνει τις γραμμές ως στήλες και τις
στήλες ως γραμμές).
12. Να γραφεί πρόγραμμα που θα διαβάζει τα ονόματα 10 κινηματογράφων καθώς και τις εβδομαδιαίες εισπράξεις
τους (7 μέρες). Ακολούθως θα υπολογίζει και θα εκτυπώνει:
a) Το σύνολο των εισπράξεων της εβδομάδας
b) Το σύνολο των εισπράξεων δοσμένου κινηματογράφου
c) Το σύνολο των εισπράξεων δοσμένης μέρας
Ανάπτυξη Εφαρμογών Σελίδα - 21 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
d) Την μέρα με τις μεγαλύτερες συνολικές εισπράξεις
e) Την μέρα με τις μικρότερες συνολικές εισπράξεις.
f) Τον κινηματογράφο με τις μεγαλύτερες συνολικές εισπράξεις
g) Τον κινηματογράφο με τις μικρότερες συνολικές εισπράξεις
h) Τον κινηματογράφο με τις μεγαλύτερες συνολικές εισπράξεις δοσμένης μέρας
i) Τον κινηματογράφο με τις μικρότερες συνολικές εισπράξεις δοσμένης μέρας
j) Τους κινηματογράφους που έχουν συνολικές εισπράξεις πάνω από το μέσο
όρο
k) Τους κινηματογράφους κατά αύξουσα, φθίνουσα σειρά συνολικών
εισπράξεων
l) Τους κινηματογράφους κατά αύξουσα, φθίνουσα σειρά εισπράξεων δοσμένης
μέρας
m) Τις ημέρες της εβδομάδας κατά αύξουσα, φθίνουσα σειρά συνολικών
εισπράξεων.
13. Να γραφεί πρόγραμμα που να διαβάζει τα ονόματα 15 μαθητών, καθώς και τους τελικούς βαθμούς τους σε 4
μαθήματα (φυσική, πληροφορική, ιστορία, χημεία). Επίσης τις αδικαιολόγητες απουσίες τους. Ακολούθως να
υπολογίζει και να εκτυπώνει:
a) Τα ονόματα των μαθητών και το τελικό βαθμό τους - μέσο όρο, κατά
φθίνουσα σειρά, με κριτήριο το μέσο όρο τους
b) Το μέσο όρο των βαθμών της τάξης σε κάθε μάθημα
c) Τα ονόματα των μαθητών και μόνο τους βαθμούς τους σε όλα τα μαθήματα
που είναι πάνω από το μέσο όρο της τάξης σε κάθε μάθημα.
d) Τον μαθητή, μαθητές με το μεγαλύτερο βαθμό σε δοσμένο μάθημα
e) Τον μαθητή, μαθητές με το μικρότερο βαθμό σε δοσμένο μάθημα
f) Ταξινομημένους σε φθίνουσα διάταξη, τους μαθητές με κριτήριο τον βαθμός
τους σε δοσμένο μάθημα
g) Τους μαθητές που προάγονται (μέσος όρος > 9,5 και απουσίες <64 ) και
αυτούς που απορρίπτονται.
h) Τον μαθητή με τις λιγότερες και περισσότερες απουσίες.
14. Να γραφεί πρόγραμμα που να διαβάζει τους τίτλους, ονόματα συγγραφέων, αριθμό σελίδων, τιμές, εκδοτικούς οίκους 100 βιβλίων. Ακολούθως να,
Ταξινομήσετε όλα τα παραπάνω στοιχεία με κριτήριο τον τίτλο του βιβλίου
Χρησιμοποιώντας τον αλγόριθμο της δυαδικής αναζήτησης να αποφαίνεστε για την ύπαρξη (προβολή όλων των
σχετικών στοιχείων) ή όχι κάποιου τίτλου βιβλίου.
Βρείτε το συνολικό κόστος των βιβλίων, την μέση τιμή, το πιο φθηνό και ακριβό βιβλίο.
Εκτυπώστε στην οθόνη όλα τα βιβλία ζητούμενου συγγραφέα.
Εκτυπώστε στην οθόνη όλα τα βιβλία ζητούμενου εκδοτικού οίκου.
Εκτυπώστε στην οθόνη όλα τα βιβλία που βρίσκονται μέσα σε διάστημα αποδεκτών τιμών (από a ως b).
Ανάπτυξη Εφαρμογών Σελίδα - 22 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
Εμφανίστε όλους τους συγγραφείς με τον αριθμό των βιβλίων που έχουν συγγράψει. (και ταξινομημένους με
φθίνουσα διάταξη ως προς τον αριθμό των βιβλίων τους.)
15. Να γράψετε πρόγραμμα, που να δέχεται ως είσοδο τις θερμοκρασίες δύο πόλεων Α και Β για το διάστημα 30 ημερών
και στη συνέχεια θα υπολογίζει :
Α. πόσες μέρες η θερμοκρασία της πόλης Α ήταν μεγαλύτερη από την αντίστοιχη θερμοκρασία της πόλης Β.
Β. Ποια ήταν η μέρα με την μεγαλύτερη διαφορά θερμοκρασίας μεταξύ των δύο πόλεων.
Γ. Ποια πόλη ήταν πιο ζεστή κατά μέσο όρο;
16. Σε έναν αγώνα formula1 συμμετείχαν 20 αυτοκίνητα και τερμάτισαν όλα, κάνοντας συνολικά 50 γύρους.
Α. Να διαβαστούν τα ονόματα και οι χρόνοι των 20 αυτοκινήτων για καθένα από τους 50 γύρους.
Β. Να εμφανιστεί πιο αυτοκίνητο είχε τον καλύτερο συνολικό χρόνο του αγώνα.
Γ. Ποιο αυτοκίνητο είχε τον ταχύτερο γύρο (χρόνος) και ποιος γύρος ήταν αυτός;
Δ. Να εμφανίσετε και για τα 20 αυτοκίνητα ποιος ήταν ο καλύτερός τους γύρος.
Ε. Ποιος ήταν ο γύρος στον οποίο έγιναν κατά μέσο όρο οι καλύτερες επιδόσεις;
17. Κατά τη διάρκεια Διεθνών Αγώνων Στίβου στον ακοντισμό έλαβαν μέρος δέκα (10) αθλητές. Κάθε αθλητής έκανε έξι
(6) έγκυρες ρίψεις που καταχωρούνται ως επιδόσεις σε μέτρα. Να αναπτύξετε αλγόριθμο, ο οποίος:
α. εισάγει σε πίνακα δύο διαστάσεων τις επιδόσεις όλων των αθλητών
β. υπολογίζει και καταχωρεί σε μονοδιάστατο πίνακα την καλύτερη από τις επιδόσεις κάθε αθλητή
γ. ταξινομεί τις καλύτερες επιδόσεις των αθλητών που καταχωρήθηκαν στο μονοδιάστατο πίνακα
δ. βρίσκει την καλύτερη επίδοση του αθλητή που πήρε το χάλκινο μετάλλιο (τρίτη θέση).
18. Δίνεται μονοδιάστατος πίνακας Α, 10 θέσεων, ο οποίος στις θέσεις 1 έως 10 περιέχει αντίστοιχα τους αριθμούς:
15, 3, 0, 5, 16, 2, 17, 8, 19, 1
και τμήμα αλγορίθμου:
Για i από 1 μέχρι 9 με_βήμα 2
k←((i+10) mod 10)+1
Α[i]←Α[k]
εκτύπωσε i, k, A[i], A[k]
Τέλος_επανάληψης
Ποιές τιμές τυπώνονται με την εντολή
εκτύπωσε i, k, A[i], A[k]
καθώς εκτελείται το παραπάνω τμήμα αλγορίθμου;
19. Σε ένα κέντρο νεοσύλλεκτων υπάρχει η πρόθεση να δημιουργηθούν δύο ειδικές διμοιρίες. Η διμοιρία Α θα αποτελείται
από νεοσύλλεκτους πτυχιούχους τριτοβάθμιας εκπαίδευσης, ηλικίας από 24 έως και 28 χρόνων. Η διμοιρία Β θα
αποτελείται από νεοσύλλεκτους απόφοιτους δευτεροβάθμιας εκπαίδευσης, ηλικίας από 18 έως και 24 χρόνων. Οι
υπόλοιποι νεοσύλλεκτοι δεν κατατάσσονται σε καμία από αυτές τις διμοιρίες. Να αναπτύξετε αλγόριθμο ο οποίος:
Ανάπτυξη Εφαρμογών Σελίδα - 23 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
α. διαβάζει το ονοματεπώνυμο, την ηλικία και έναν αριθμό που καθορίζει το επίπεδο σπουδών του
νεοσύλλεκτου και παίρνει τιμές από 1 έως 3 (1: τριτοβάθμια εκπαίδευση, 2: δευτεροβάθμια εκπαίδευση, 3:
κάθε άλλη περίπτωση)
β. εκτυπώνει:
i) το ονοματεπώνυμο του νεοσύλλεκτου
ii) το όνομα της διμοιρίας (Α ή Β), εφόσον ο νεοσύλλεκτος κατατάσσεται σε μία από αυτές.
20. Μια αλυσίδα ξενοδοχείων έχει 5 ξενοδοχεία. Σε ένα μονοδιάστατο πίνακα ΞΕΝΟΔΟΧΕΙΑ[5] καταχωρούνται τα
ονόματα των ξενοδοχείων. Σε ένα άλλο δισδιάστατο πίνακα ΕΙΣΠΡΑΞΕΙΣ[5,12] καταχωρούνται οι εισπράξεις κάθε
ξενοδοχείου για κάθε μήνα του έτους 2001, έτσι ώστε στην i γραμμή καταχωρούνται οι εισπράξεις του i ξενοδοχείου.
Να αναπτύξετε αλγόριθμο, ο οποίος:
α. διαβάζει τα στοιχεία των δύο πινάκων
β. εκτυπώνει το όνομα κάθε ξενοδοχείου και τις ετήσιες εισπράξεις του για το έτος 2001
γ. εκτυπώνει το όνομα του ξενοδοχείου με τις μεγαλύτερες εισπράξεις για το έτος 2001.
Δ. Ποια εποχή του χρόνου ( Άνοιξη [3ος-5ος Μήνας], Καλοκαίρι [6ος–8ος Μήνας],…) κάθε ξενοδοχείο είχε τις
μεγαλύτερες εισπράξεις ;
21. Δίνονται η έκταση, ο πληθυσμός και το όνομα καθεμιάς από τις 15 χώρες της Ευρωπαϊκής ΄Ενωσης. Να αναπτύξετε
αλγόριθμο που
α) θα διαβάζει τα παραπάνω δεδομένα,
β) θα εμφανίζει τη χώρα με τη μεγαλύτερη έκταση,
γ) θα εμφανίζει τη χώρα με το μικρότερο πληθυσμό και
δ) θα εμφανίζει το μέσο όρο του πληθυσμού των 15 χωρών της Ευρωπαϊκής ΄Ενωσης.
22. Στο πλαίσιο προγράμματος προληπτικής ιατρικής για την αντιμετώπιση του νεανικού διαβήτη έγιναν αιματολογικές
εξετάσεις στους 90 μαθητές (αγόρια και κορίτσια) ενός Γυμνασίου.
Για κάθε παιδί καταχωρίστηκαν τα ακόλουθα στοιχεία :
1. ονοματεπώνυμο μαθητή
2. κωδικός φύλου ("Α" για τα αγόρια και "Κ" για τα κορίτσια)
3. περιεκτικότητα σακχάρου στο αίμα.
Οι φυσιολογικές τιμές σακχάρου στο αίμα κυμαίνονται από 70 έως 110 mg/dl (συμπεριλαμβανομένων και των ακραίων
τιμών).
Nα αναπτύξετε αλγόριθμο που
α) θα διαβάζει τα παραπάνω στοιχεία (ονοματεπώνυμο, φύλο, περιεκτικότητα σακχάρου στο αίμα) και θα
ελέγχει την αξιόπιστη καταχώρισή τους (δηλαδή το φύλο να είναι μόνο "Α" ή "Κ" και η περιεκτικότητα σακχάρου
στο αίμα να είναι θετικός αριθμός),
β) θα εμφανίζει για κάθε παιδί του οποίου η περιεκτικότητα σακχάρου στο αίμα είναι εκτός των
φυσιολογικών τιμών, το ονοματεπώνυμο, το φύλο και την περιεκτικότητα του σακχάρου,
γ) θα εμφανίζει το συνολικό αριθμό των αγοριών των οποίων η περιεκτικότητα σακχάρου στο αίμα δεν
είναι φυσιολογική και
δ) θα εμφανίζει το συνολικό αριθμό των κοριτσιών των οποίων η περιεκτικότητα σακχάρου στο αίμα δεν
είναι φυσιολογική.
Ανάπτυξη Εφαρμογών Σελίδα - 24 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
ε) Ποιο είναι το ποσοστό των κοριτσιών (επί του συνόλου των κοριτσιών) και ποιο των αγοριών που δεν έχουν
φυσιολογικές τιμές;
23. Δίνεται ένας πίνακας ακεραίων Π[8,10] με περιεχόμενα αριθμούς από το 0 ως το 10. Να γράψετε έναν αλγόριθμο, όπου να αντικαθιστά το μηδέν σε όποιο κελί βρεθεί αυτό με το άθροισμα των κελιών που συνορεύουν με το μηδενικό κελί.
Σημείωση: προσέξτε (στα σύνορα του πίνακα) να μην «απευθυνθείτε» σε κελιά που δεν υφίστανται.
24. Να γραφεί πρόγραμμα, όπου θα διαβάζει τα ονόματα των μαθητών και τους τελικούς προφορικούς βαθμούς (μέσους
όρους των 2 τετραμήνων) ενός μαθητή της Γ’ Λυκείου σε 5 μαθήματα (συμπεριλαμβανομένου και του μαθήματος των Αρχ. Οικ. Θεωρίας). Επίσης πρέπει να διαβάζει και τον αντίστοιχο γραπτό βαθμό του μαθητή. Το πρόγραμμα πρέπει να
υπολογίζει και να τυπώνει το γενικό βαθμό πρόσβασης του μαθητή. Ο γενικός βαθμός πρόσβασης προκύπτει απ’ τον μέσο όρο όλων των τελικών βαθμών των μαθημάτων. Ο τελικός βαθμός ενός μαθήματος είναι, μετά την πιθανή προσαρμογή του
προφορικού βαθμού στις 2 μονάδες, το άθροισμα { 0,3 Χ Προφορικός + 0,7 Χ Γραπτός }.
25. Κατά την απογραφή του έτους 2001 σε ένα χωριό απογράφηκαν 1800 άτομα. Να γραφεί αλγόριθμος με τον οποίο:
(α) Θα αποθηκεύεται το έτος γέννησης όλων των ατόμων σε έναν μονοδιάστατο πίνακα και το ονοματεπώνυμο σε άλλον πίνακα με αντιστοιχία θέσεων.
(β) Θα υπολογίζεται και θα εμφανίζεται το πλήθος των ατόμων κατά ηλικία συνοδευόμενο από τη φράση:• 0 έως και 25 χρόνων: “ΝΕΟΙ”• 25 έως και 50 χρόνων: “ΜΕΣΗΛΙΚΕΣ”
• άνω των 50 χρόνων: “ΓΕΡΟΝΤΕΣ”
(γ) Θα εμφανίζονται οι ηλικίες των 4 μεγαλύτερων ατόμων.
(δ) Θα εμφανίζονται τα ονόματα των κατοίκων που έχουν τις 4 μεγαλύτερες ηλικίες.
Β ΟΜΑΔΑ
26. Δίνεται πίνακας ακεραίων Α[100, 200]. Ποιό είναι το % ποσοστό των θετικών και ποιό των αρνητικών; (Παρατήρηση:
τα μηδενικά στοιχεία να μη λαμβάνουν μέρος στον υπολογισμό των παραπάνω ποσοστών).
27. Να γεμίσετε κάθε στοιχείο ενός 3-διάστατου πίνακα ακεραίων Α[200, 100, 300] με το άθροισμα των συντεταγμένων
του. Π.χ. Α[1,2,5] := 8 ! 8=1+2+5.
28. Να υπολογισθεί και να εμφανισθεί το άθροισμα των στοιχείων της 1ης και της 2ης διαγωνίου ενός τετραγωνικού
πίνακα ακεραίων Α[100, 100]. (Παρατήρηση: τα στοιχεία της 1ης διαγωνίου είναι τα Α[1,1], Α[2,2], …, Α[100,100], ενώ
της 2ης, τα Α[1,100], Α[2,99], …, Α[100,1].
29. Να υπολογισθεί και να εμφανισθεί το άθροισμα των στοιχείων της “περιφέρειας” (επάνω, κάτω, δεξιά και αριστερή
πλευρά) ενός τετραγωνικού πίνακα ακεραίων Α[100, 100].
30. Δίνεται πίνακας πραγματικών Α[100] με τα ύψη 100 μαθητών. Πόσοι μαθητές έχουν ύψος μεγαλύτερο του μέσου
όρου;
31. Δίνεται πίνακας ακεραίων Α[100] γεμάτος με τις 100 ρίψεις ενός ζαριού. Να καταχωρηθεί η συχνότητα εμφάνισης της
κάθε τιμής (1-6) σε πίνακα ακεραίων Ζ[6] και να εμφανισθούν τα αποτελέσματα.
32. Σε μία παρτίδα τάβλι “έπεσαν” συνολικά 50 ζαριές. Να καταχωρηθούν οι ζαριές αυτές σε δισδιάστατο πίνακα
ακεραίων Ζ[50] και έπειτα υπολογισθεί και να εμφανισθεί το % ποσοστό εκείνων που ήταν διπλές (1-1 ή 2-2 ή … 6-6).
33. Δίνεται πίνακας ακεραίων Α[100] γεμάτος με τις 100 τελευταίες κληρώσεις του ΛΟΤΤΟ. Να υπολογισθεί και να
εμφανισθεί η συχνότητα του περισσότερο και του λιγότερο εμφανιζόμενου αριθμού. (κάθε αριθμός ΛΟΤΤΟ ν: 1 <= ν <=
49).
34. Δίνεται πίνακας ακεραίων Α[200] γεμάτος με τις επιδόσεις 200 μαθητών. Να υπολογισθούν τα ποσοστά των
38. Δίνονται δύο πίνακες ακεραίων Α[100] και Β[100]. Να δοθεί αλγόριθμος που συγκρίνει τους δύο πίνακες. («Ίσοι» εάν
έχουν τις ίδιες τιμές και τα 100 στοιχεία τους, διαφορετικά «Άνισοι»).
39. Να γεμίσετε έναν πίνακα ακεραίων Α[100,100] με 1 όπου το άθροισμα των συντεγμένων είναι άρτιο και με –1 όπου
είναι περιττό.
40. Να αντιγραφεί πίνακας ακεραίων Α[100] σε πίνακα ακεραίων Β[10, 10].
41 .Ένας 5ψήφιος κωδικός βρίσκεται σε πίνακα ακεραίων Α[5]. Να κρυπτογραφηθεί με τη μέθοδο της δεξιάς ολίσθησης
κατά δύο ψηφία. (02, 13, 24, 35, 46, 57, 68, 79, 80, 91).
42. Για τα 20 διαμερίσματα μιας πολυκατοικίας να καταχωρηθούν σε έναν πίνακα τα εξής στοιχεία: Αριθμός
διαμερίσματος και Τετραγωνικά μέτρα διαμερίσματος. Αν στο τέλος κάθε μήνα δίνονται τα συνολικά ποσά θέρμανσης και
των κοινόχρηστων της πολυκατοικίας να γραφεί αλγόριθμος ο οποίος υπολογίζει και εμφανίζει τη δαπάνη που αντιστοιχεί
σε κάθε διαμέρισμα για θέρμανση και κοινόχρηστα βάσει του αριθμού των τ.μ. που έχει.
43. Σε πίνακα χαρακτήρων Π[5] βρίσκονται τα γράμματα ‘Α’,’Β’,’Γ’,’Δ’ και ‘Ε’. Να δοθεί αλγόριθμος ο οποίος εμφανίζει
όλους τους διαφορετικούς συνδιασμούς 5δων που μπορούν να σχηματισθούν με αυτά τα γράμματα.
44. Σε πίνακα Α[100] βρίσκονται 100 ακέραιοι αριθμοί. Να γίνει αλγόριθμος που να επιστρέφει το πλήθος των
διαφορετικών αριθμών που εισήχθησαν καθώς και τους αριθμούς αυτούς. π.χ. για τους αριθμούς 2, 23, 1, 2, 2, 6, 34, 1, 23,
το πλήθος των διαφορετικών αριθμών είναι 5 και οι αριθμοί αυτοί είναι οι 2, 23, 1, 6, 34.
45. Σε πίνακα Α[21] βρίσκονται οι 21 βαθμοί των 21 μαθητών μιας τάξης, στο μάθημα της χημείας. Να γίνει αλγόριθμος
που να υπολογίζει το βαθμό που παρατηρήθηκε τις παρισσότερες φορές.
46. Τα ψηφία δύο 10ψήφιων αριθμών βρίσκονται σε δύο πίνακες ακεραίων Π1[1..10] και Π2[1..10]. Να συγκριθούν.
47. Στο παιχνίδι Darts τα επιτρεπτά σκορ με ένα βέλος είναι: 7, 15, 19, 23, 29 και 37. Στόχος του παιχνιδιού είναι να
συγκεντρωθούν 100 βαθμοί ακριβώς με 6 βολές. Ποιοί είναι οι δυνατοί συνδιασμοί για να επιτευχθεί αυτό; (Θεωρήστε ότι
τα 6 διαφορετικά επιτρεπτά σκορ βρίσκονται σε πίνακα ακεραίων Ρ[6]).
48. Τα ψηφία ενός 10ψήφιου αριθμού βρίσκονται σε πίνακα ακεραίων Α[10]. Ποιός είναι ο αιρθμός;
49. Δίνεται πίνακας ακεραίων Α[101, 101]. Να χωρισθεί συμμετρικά σε 4 τεταρτημόρια και να υπολογισθούν τα 4
επιμέρους αθροίσματα.
50. Σε πίνακα ακεραίων Α[100, 6] βρίσκονται 100 στήλες του ΛΟΤΤΟ. Στον πίνακα ακεραίων Λ[6] βρίσκεται η τελευταία
κλήρωση. Να γίνει η τελική διαλογή σε πίνακα ακεραίων Δ[6]. (Δηλ. Δ[6] = πλήθος εξαριών, Δ[5] = πλήθος πενταριών
κ.ο.κ.)
51. Σε ένα σχολείο υπάρχουν 2 τμήματα γενική παιδείας της Γ’ Λυκείου, το Γ1 με 20 μαθητές και Γ2 με 24.
Ανάπτυξη Εφαρμογών Σελίδα - 26 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
a) Να γράψετε ένα πρόγραμμα όπου σε αντίστοιχους πίνακες να διαβάζει τα ονοματεπώνυμα, τον τελικό
βαθμό απολυτηρίου και το φύλο. Να εξασφαλίζετε ότι ως φύλο θα εισάγονται μόνο οι τιμές ‘Κ’ – Κορίτσι,
‘Α’- Αγόρι και βαθμός απολυτηρίου από 1 έως 20.
b) Να ταξινομήσετε με κριτήριο τον βαθμό απολυτηρίου σε φθίνουσα διάταξη τα στοιχεία των μαθητών. Σε
περίπτωση ίδιου βαθμού απολυτηρίου, κριτήριο ταξινόμηση να θεωρήσετε το ονοματεπώνυμο
(αύξουσα διάταξη) και σε τελική ισοβαθμία το φύλο (προηγούνται τα κορίτσια).
c) Να συγχωνευτούν (διατηρώντας την φθίνουσα διάταξη των μαθητών) τα στοιχεία των 2 τμημάτων σε
αντίστοιχους πίνακες 44 θέσεων με κριτήριο τον βαθμό απολυτηρίου.
d) Να εμφανιστεί η τελική κατάσταση των μαθητών στην μορφή
e) Ονοματεπώνυμο Φύλο Βαθμός (φθίνουσα διάταξη)
f) Τι ποσοστό (επί του συνολικού αριθμού του αντίστοιχου φύλου) αγοριών και κοριτσιών αριστούχων
(18,1-20) υπάρχει στο σχολείο.
g) Να εμφανίσετε όλα τα στοιχεία των τεσσάρων κοριτσιών με την καλύτερη βαθμολογία και των
αντίστοιχων αγοριών.
h) Ποιο τμήμα είχε κατά μέσο όρο καλύτερες επιδόσεις το, το Γ1, το Γ2 ή ήταν ίσα σε επιδόσεις;
i) Σε καθένα από τα τμήματα τα αγόρια ή τα κορίτσια είχαν και συνολικά καλύτερες επιδόσεις κατά μέσο
όρο (να δώσετε 3 απαντήσεις στο Γ1, στο Γ2 και στο σύνολο).
52. Να γραφεί πρόγραμμα που να διαβάζει μια πρόταση μέχρι 30 χαρακτήρες και να εμφανίζει ένα μήνυμα που
να μας πληροφορεί αν η πρόταση είναι παλινδρομική.
(Παλινδρομική ονομάζεται μια πρόταση η οποία μπορεί να διαβάζεται και ανάποδα)
53. Το πρωτάθλημα ποδοσφαίρου περιλαμβάνει 16 ομάδες. Σε έναν δισδιάστατο πίνακα αποθηκεύονται οι νίκες
(‘Ν’), οι ισοπαλίες (‘Ι’) και οι ήττες(‘Η’) κάθε ομάδας. Να γραφεί αλγόριθμος ο οποίος :
α) αποθηκεύει σε μονοδιάστατο πίνακα τα ονόματα των ομάδων
β) αποθηκεύει σε δισδιάστατο πίνακα 16 Χ 16 τις νίκες, τις ισοπαλίες και τις ήττες
κάθε ομάδας τοποθετώντας το αντίστοιχο γράμμα
γ) υπολογίζει και να εμφανίζει το όνομα και τη βαθμολογία κάθε ομάδας
δ) διαβάζει το όνομα μιας ομάδας και να εμφανίζει τον αριθμό των νικών, ισοπαλιών
και ηττών που είχε κατά τη διάρκεια του πρωταθλήματος καθώς και τη συνολική
βαθμολογία της ομάδας
Σημείωση : Στην κύρια διαγώνιο του δισδιάστατου πίνακα δεν περιέχονται πληροφορίες καθώς καμιά ομάδα δεν αγωνίζεται με τον εαυτό της.
54. Στο νομό Κορινθίας διενεργείται δημοψήφισμα για ένα φλέγον ζήτημα που αριθμεί 5 απαντήσεις. Να
αναπτύξετε αλγόριθμο ο οποίος θα διαβάζει την θέση καθενός από τους 50.000 κατοίκους του Νομού και να
εκτυπώνει τα ποσοστά που έλαβαν κάθε μια από τις απαντήσεις με φθίνουσα διάταξη
Ανάπτυξη Εφαρμογών Σελίδα - 27 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
1. Μια εταιρία πληρώνει τους υπαλλήλους της με μισθούς που είναι πολλαπλάσια των 100 €. Να φτιάξετε
αλγόριθμο που:
α. Να διαβάζει το πλήθος των υπαλλήλων.
β. Να διαβάζει το μισθό κάθε υπαλλήλου και να υπολογίζει και να εκτυπώνει πόσα χαρτονομίσματα 500 €, 200 € και 100 € χρειάζονται για την πληρωμή του υπαλλήλου.
γ. Να υπολογίζει και να εμφανίζει το συνολικό ποσό που χρειάζεται για τη μισθοδοσία.
δ. Να υπολογίζει και να εμφανίζει το σύνολο των χαρτονομισμάτων που χρειάζονται από κάθε είδος.
Μισθός : Γιατί πρέπει, να ξέρουμε το ποσό – μισθός, όταν μέσα στη διαδικασία θα ασχοληθούμε, για να βρούμε πόσα 500ρικα, 200ρικα, 100ρικα.
Αρ500, Αρ200, Αρ100 : Τις 3 μεταβλητές που αφορούν τον υπολογισμό των αντίστοιχων χαρτονομισμάτων δεν θα τις δηλώναμε σαν παραμέτρους. Δηλαδή θα είχαμε αυτό το πρόγραμμα :
3. Μια εταιρεία αμείβει τους πωλητές της με μισθό 1.000 € και ποσοστά επί των πωλήσεων σύμφωνα με τον
παρακάτω πίνακα:
ΠΩΛΗΣΕΙΣ
ΠΟΣΟΣΤΜέχρι 3.000€ 5%
Από 3.001€ μέχρι 9.000€ 8%
Από 9.001€ μέχρι 16.000 10%
Άνω των 16.001€ 12%
{Αν ο πωλητής πουλήσει 9.100€ θα πάρει για τα 3.000€ 5%, για τα επόμενα 6.000€ ποσοστό 8% και
για τα 100€ 10%}
Να κατασκευάσετε πρόγραμμα που:
f) Να διαβάζει τον κωδικό και τις πωλήσεις του πωλητή.
g) Να υπολογίζει και να εκτυπώνει το συνολικό ποσό που δικαιούται για πριμ και το σύνολο της
αμοιβής του.
h) Η διαδικασία να επαναλαμβάνεται για άγνωστο αριθμό πωλητών μέχρι να εισαχθεί για κωδικός το
0.
i) Να υπολογίζει το συνολικό ποσό που θα πληρώσει η εταιρεία για αμοιβές.
Το μέσο όρο των πριμ.
4. Όταν ένας οδηγός κάνει παράβαση η Τροχαία επιβάλλει και έναν βαθμό ποινής, από 5 μέχρι 40
μονάδες. Ας υποθέσουμε ότι όταν ο οδηγός συγκεντρώσει 4 παραβάσεις οι βαθμοί ποινής του
αθροίζονται και αν το άθροισμα υπερβαίνει τις 40 μονάδες αφαιρείται το δίπλωμα για ένα τρίμηνο, ενώ
αν υπερβαίνει τις 60 μονάδες αφαιρείται για ένα έτος.
Να κατασκευάσετε αλγόριθμο ο οποίος:
Ανάπτυξη Εφαρμογών Σελίδα - 53 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
d) Να διαβάζει το πλήθος των οδηγών που συμπλήρωσαν 4 παραβάσεις
e) Να διαβάζει τους 4 βαθμούς ποινής για τον καθένα από αυτούς κάνοντας έλεγχο αν βρίσκονται
στο διάστημα [5,40]
Να βρίσκει το άθροισμά τους για κάθε οδηγό και αν αυτό υπερβαίνει το 40 να εκτυπώνει «ΑΦΑΙΡΕΣΗ
ΔΙΠΛΩΜΑΤΟΣ 3 ΜΗΝΕΣ», ενώ αν υπερβαίνει το 60 να εκτυπώνει «ΑΦΑΙΡΕΣΗ ΔΙΠΛΩΜΑΤΟΣ ΕΝΑ ΕΤΟΣ» .
5. Να γραφεί πρόγραμμα, όπου θα διαβάζει έναν αριθμό Ν και θα υπολογίζει το άθροισμα
S = ½ + ¼ + 1/6 + … + 1/N αν είναι άρτιος
S = 1 + 1/3 + 1/5 +1/7 + … + 1/N αν είναι περιττός
Να χρησιμοποιηθούν μία συνάρτηση (για το αν είναι άρτιος) και 2 διαδικασίες, μία για τον υπολογισμό κάθε
αθροίσματος.
6. Να γραφεί πρόγραμμα, που θα δέχεται ως είσοδο έναν θετικό ακέραιο αριθμό και θα εμφανίζει ένα μήνυμα που θα δηλώνει, αν αυτός ο αριθμός είναι πρώτος (με τη χρήση συνάρτησης). Πρώτος είναι ο αριθμός του οποίου οι μοναδικοί διαιρέτες είναι η μονάδα και ο εαυτός του (π.χ 7 , 13 ,19 ).
7. Να γραφεί πρόγραμμα υπολογισμού του φόρου εισοδήματος με βάση την κλίμακα φορολογίας εισοδήματος η
οποία για το οικονομικό έτος 2002 παρουσιάζεται στον παρακάτω πίνακα:
Το πρόγραμμα να διαβάζει το φορολογητέο ποσό από την οθόνη, να καλεί μία συνάρτηση ή μια διαδικασία για
τον υπολογισμό του φόρου και να εμφανίζει το αποτέλεσμα στην οθόνη.
8. Να γραφεί υποπρόγραμμα το οποίο δέχεται έναν πίνακα διάστασης Ν και επιστρέφει στο κυρίως πρόγραμμα
τον ίδιο πίνακα ταξινομημένο.
9. Δίνεται ένας πίνακας Α[8, 5] με ακεραίους αριθμούς. Να γράψετε πρόγραμμα όπου (με την χρήση
υποπρογράμματος) να ταξινομείται ο πίνακας ανά γραμμές.
10. Να γράψετε υποπρόγραμμα που να αναζητά δοθέν στοιχείο σε μονοδιάστατο πίνακα Ν (μέγιστο πλήθος
θέσεων 1000) θέσεων πραγματικών αριθμών και να επιστρέφει την πρώτη θέση στον πίνακα όπου αυτό
εντοπίζεται (ή 0 διαφορετικά)
11. Να γραφεί υποπρόγραμμα το οποίο δέχεται μια τιμή κλειδί , και έναν πίνακα διάστασης Ν , αναζητά την
ύπαρξη της τιμής κλειδί μέσα στον πίνακα και επιστρέφει το αποτέλεσμα στο κυρίως πρόγραμμα. Να θεωρήσετε
ότι τα στοιχεία που είναι αποθηκευμένα στον πίνακα είναι διαφορετικά μεταξύ τους.
12. Να γραφεί υποπρόγραμμα το οποίο δέχεται έναν πίνακα διάστασης Ν , διαβάζει μια τιμή κλειδί , και αναζητά
την ύπαρξη της τιμής κλειδί καθώς και τη συχνότητα εμφάνισης της μέσα στον πίνακα .Αν η τιμή υπάρχει, να
εκτυπώνεται κάθε θέση που βρέθηκε η τιμή κλειδί καθώς και η τη συχνότητα εμφάνισής της, διαφορετικά να
Ανάπτυξη Εφαρμογών Σελίδα - 54 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
εκτυπώνεται αντίστοιχο μήνυμα. Να θεωρήσετε ότι τα στοιχεία που είναι αποθηκευμένα στον πίνακα δεν είναι
κατ’ ανάγκη διαφορετικά μεταξύ τους .
13. Να γραφεί υποπρόγραμμα το οποίο δέχεται έναν πίνακα διάστασης Ν, υπολογίζει το μέγιστο και το ελάχιστο
στοιχείο του, και τα επιστρέφει στο κυρίως πρόγραμμα.
14. Σε δύο σχολεία που συστεγάζονται, με μαθητικό δυναμικό 100 και 150 μαθητές αντίστοιχα, πρόκειται να
δοθούν οι έλεγχοι επίδοσης. Η Γραμματεία είναι κοινή και χρειάζεται να γνωρίζει το πλήθος των μαθητών που
προάγονται και τον άριστο μαθητή του κάθε σχολείου.
Να γραφεί :
α) διαδικασία η οποία αποθηκεύει σε μονοδιάστατο πίνακα διάστασης Ν, τους μέσους όρους της
βαθμολογίας κάθε μαθητή
β) διαδικασία η οποία υπολογίζει το μέγιστο στοιχείο και το μέσο όρο των στοιχείων του πίνακα
γ) συνάρτηση η οποία υπολογίζει το πλήθος των στοιχείων του πίνακα με τιμή άνω του 9.5
Το κυρίως πρόγραμμα να καλεί τα αντίστοιχα υποπρογράμματα και να εμφανίζει τον άριστο μαθητή, το
πλήθος των μαθητών που προάγονται για κάθε ένα από τα δύο σχολεία καθώς και σε ποιο σχολείο σημειώθηκε
η καλύτερη επίδοση κατά μέσο όρο.
Ανάπτυξη Εφαρμογών Σελίδα - 55 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
11. ΣΥΝΑΡΤΗΣΕΙΣ με Χαρακτήρες
Θεωρώντας ότι μια μεταβλητή S χαρακτήρα μπορούμε να την χειριστούμε ως ένα μονοδιάστατο πίνακα με το ίδιο
όνομα, όπου σε κάθε θέση αντιστοιχεί και ένας χαρακτήρας.
1 2 3 4 5 6 7Π Α Τ Ε Ρ Α Σ
Στο παραπάνω παράδειγμα S[5] είναι ο χαρακτήρας ‘Ρ’ και φυσικά είναι λάθος να απευθυνθούμε σε θέση
μεγαλύτερη της 7ης όπου δεν υφίσταται άλλος χαρακτήρας (ο πίνακας S έχει 7 θέσεις και γενικά Μ χαρακτήρες = πλήθος
γραμμάτων) MHKOS(S)
Να γράψετε τις παρακάτω συναρτήσεις:
a) Να δέχεται μια μεταβλητή χαρακτήρα και να επιστρέφει τους Ν αριστερούς χαρακτήρες π.χ. LEFT(S,3) να
επιστρέφει ‘ΠΑΤ’.
b) Να δέχεται μια μεταβλητή χαρακτήρα και να επιστρέφει τους Ν δεξιούς χαρακτήρες (απ’ το τέλος) π.χ.
RIGHT(S,3) να επιστρέφει ‘ΡΑΣ’.
c) Να δέχεται μια μεταβλητή χαρακτήρα και να επιστρέφει τους από την Ι θέση Ν χαρακτήρες. π.χ.
MID(S,2,3) να επιστρέφει ‘ΑΤΕ’.
d) Να δέχεται μια μεταβλητή χαρακτήρα και να επιστρέφει την θέση όπου βρίσκεται μία άλλη μεταβλητή
χαρακτήρα Π.Χ. εφόσον Κ’ΤΕ’ INSTR ( S, Κ ) να επιστρέφει 3. Σε περίπτωση που δεν υπάρχει το
‘κείμενο’ Κ μέσα στο S να επιστρέφει 0
e) Η ίδια με την παραπάνω συνάρτηση να επιστρέφει πόσες φορές υπάρχει το Κ μέσα S. Π.Χ. εφόσον
Κ’Α’ COUNT_INSTR ( S, Κ ) να επιστρέφει 2.
f) Να δέχεται μια μεταβλητή χαρακτήρα και να αντιστρέφει το κείμενο Π.Χ. ΑΝΤΙΣΤΡΟΦΗ ( S ) να
επιστρέφει ‘ΣΑΡΕΤΑΠ’.
g) Να δέχεται μια μεταβλητή χαρακτήρα και να παρεμβάλει κενά αραιώνοντας το κείμενο, Π.Χ. ΑΡΑΙΑ ( S )
να επιστρέφει ‘Π Α Τ Ε Ρ Α Σ’
h) Να επιστρέφει Ν αριθμό κενών, Π.Χ. ΚΕΝΑ ( Ν ), για Ν=10 να επιστρέφει ‘ ’
i) Να δέχεται 2 μεταβλητές χαρακτήρα και να επιστρέφει ενωμένο κείμενο. Π.Χ. εφόσον S’ΑΡΧΗ’ Κ’
ΚΑΙ ΤΕΛΟΣ’, η ΕΝΩΣΗ ( S, Κ ) να επιστρέφει ‘ΑΡΧΗ ΚΑΙ ΤΕΛΟΣ’
j) Να δέχεται μια μεταβλητή χαρακτήρα και να ταξινομεί (αύξουσα) τους χαρακτήρες της. Π.Χ. εφόσον S
‘ΠΑΤΕΡΑΣ’, η Sort (S) να επιστρέφει την τιμή ‘ΑΑΕΠΡΣΤ’
k) Να δέχεται μια μεταβλητή χαρακτήρα και να αντικαθιστά όπου βρει το κείμενο K με το κείμενο ΑΝΤ.
Π.Χ. εφόσον S ‘ΠΑΤΕΡΑΣ’, Κ’Α’ και ΑΝΤ’Ο’, η ΑΝΤΙΚΑΤΑΣΤΑΣΗ (S,Κ,ΑΝΤ) να επιστρέφει
την τιμή ‘ΠΟΤΕΡΟΣ’
ΟΛΕΣ σχεδόν οι ασκήσεις του Κεφαλαίου 6 (Πίνακες) μπορούν να λυθούν με τη χρήση υποπρογραμμάτων. Αν έχετε
λύσει ήδη τις ασκήσεις πραγματοποιήστε τις απαραίτητες κινήσεις που κρίνεται, ώστε να λυθούν με τη χρήση
διαδικασιών, συναρτήσεων. Και πάντα, με κριτήριο, ότι αυτή η κίνηση μας αποφέρει κάποιο «κέρδος». Πιθανά:
1. Καλύτερη οργάνωση του προγράμματος (έχει νόημα σε «μεγάλα» προγράμματα)
Ανάπτυξη Εφαρμογών Σελίδα - 56 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
2. Οικονομία εντολών (κομμάτια προγραμμάτων που επαναλαμβάνονται, τα γράφουμε μία φορά μόνο και
τα καλούμε όποτε τα χρειαζόμαστε).
1. ΣΤΟΙΒΑ
Έστω ότι υλοποιούμε σε πίνακα Α[Ν] θέσεων την δομή δεδομένων της στοίβας
ΏθησηΑν Τοπ<Ν Τότε ‘υπερχείλιση Τοπ Τοπ +1 Α[Τοπ] ΣτοιχείοΤέλος_αν
ΑπώθησηΑν Τοπ>0 Τότε ‘υπάρχει στοιχείο για να απωθηθείΣτοιχείο Α[Τοπ]Τοπ Τοπ –1Τέλος_ΑΝ
2. ΟΥΡΑ
Πρέπει να ξεκινήσουν εφόσον θεωρούμε φορά εξυπηρέτησης Μπρος Πίσω
1 2 3 4 5 6 7 8 9
ΕισαγωγήΑν Πίσω<Ν τότε
Πίσω Πίσω +1Α[Πίσω] Στοιχείο
Τέλος_Αν
ΕξαγωγήΑν Μπρος<= Πίσω Τότε ‘υπάρχουν στοιχεία
Στοιχείο Α[Μπρος]Μπρος Μπρος +1
Τέλος_Αν
Επίσης, όταν φθάονυμε στο τέλος του πίνακα (δεξιά, Ν)Μετά από κάθε εισαγωγή πρέπει να γίνεται ο έλεγχος και η επανατοποθέτηση στην αρχή.Αν Πίσω=Ν τότε
J1Για I από Μπρος μέχρι Πίσω Α[J]A[I]
JJ +1Τέλος_ΕπΜπρος1ΠίσωJ
Τέλος_Αν
ΠίσωΜπρος
Ανάπτυξη Εφαρμογών Σελίδα - 57 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
7. Να γραφεί πρόγραμμα που να διαβάζει τα ονόματα 15 μαθητών, καθώς και τους τελικούς βαθμούς τους σε 4 μαθήματα (φυσική, βιολογία, ιστορία, χημεία). Επίσης τις αδικαιολόγητες απουσίες τους. Ακολούθως να υπολογίζει και να
εκτυπώνει:
i) Τα ονόματα των μαθητών και το τελικό βαθμό τους - μέσο όρο, κατά
φθίνουσα σειρά, με κριτήριο το μέσο όρο τους
j) Το μέσο όρο των βαθμών της τάξης σε κάθε μάθημα
k) Τα ονόματα των μαθητών και μόνο τους βαθμούς τους σε όλα τα μαθήματα
που είναι πάνω από το μέσο όρο της τάξης σε κάθε μάθημα.
l) Τον μαθητή, μαθητές με το μεγαλύτερο βαθμό σε δοσμένο μάθημα
m) Τον μαθητή, μαθητές με το μικρότερο βαθμό σε δοσμένο μάθημα
Ανάπτυξη Εφαρμογών Σελίδα - 58 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
n) Ταξινομημένους σε φθίνουσα διάταξη, τους μαθητές με κριτήριο τον βαθμός
τους σε δοσμένο μάθημα
o) Τους μαθητές που προάγονται (μέσος όρος > 9,5 και απουσίες <64 ) και
αυτούς που απορρίπτονται.
p) Τον μαθητή με τις λιγότερες και περισσότερες απουσίες.
ΛΥΣΗ
ΟΝΟΜΑ(15)Ονόματα Μαθητών
ΒΑΘΜΟΙ (15,5)Οι 4 βαθμοί του καθενός και οι απουσίες του
ΜΟ(15)Οι μέσοι όροι των μαθητών
123456789101112131415
ΜΟΤ(4)Οι μέσοι όροι τάξης σε κάθε μάθημα
ΜΑΘΗΜΑ(4) Φυσική Βιολογία Ιστορία Χημεία
Πίνακες που χρησιμοποιούνται
ΟΝΟΜΑ(15) :Πίνακας χαρακτήρων 15 θέσεων με τα ονόματα των μαθητών
ΒΑΘΜΟΙ (15,5) :Πίνακας 15 γραμμών και 5 στηλών. Οι 4 πρώτες στήλες θα περιέχουν τους βαθμούς των μαθητών στα
αντίστοιχα μαθήματα (όπως αναγράφονται στην εκφώνηση). Επειδή οι απουσίες είναι αριθμητικό δεδομένο αποφασίζουμε (μπορούσαμε, βέβαια και σε ξεχωριστό μονοδιάστατο πίνακα) να καταχωρούνται στον ίδιο πίνακα με τους βαθμούς σαν
5η στήλη.
ΜΑΘΗΜΑ(4): Πίνακας χαρακτήρων 4 θέσεων, για να έχουμε διαθέσιμους άμεσα τους τίτλους των μαθημάτων, κάτι που
μας βοηθά πολύ στην εκτύπωση σχετικών μηνυμάτων, όπως θα δείτε στην πράξη.
ΜΟ(15) : Πίνακας 15 θέσεων (πραγματικές), για να αποθηκεύσουμε τους μέσους όρους κάθε μαθητή-γραμμής.
ΜΟΤ(4): Πίνακας 4 θέσεων (πραγματικές), για να αποθηκεύσουμε τους μέσους όρους σε κάθε μάθημα όλης της τάξης.
ΠΡΟΓΡΑΜΜΑ 7ο
Ανάπτυξη Εφαρμογών Σελίδα - 59 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
ΜΕΤΑΒΛΗΤΕΣ
Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΟ(15), ΜΟΤ(4)
Ακέραιες : I, J, Επιλογή
Χαρακτήρες : ΟΝΟΜΑ(15), ΜΑΘΗΜΑ(4)
Λογικές : ΟΚ_ΜΟ, ΟΚ_ΜΟΤ
ΑΡΧΗΜΑΘΗΜΑ(1) ← ‘Φυσική’ !Εκχωρούμε τις αντίστοιχες περιγραφές των μαθημάτων στον πίνακα ΜΑΘΗΜΑ
ΜΑΘΗΜΑ(2) ← ‘Βιολογία’ ! για να είναι διαθέσιμες στη συνέχεια του προγράμματος.
ΜΑΘΗΜΑ(3) ← ‘Ιστορία’
ΜΑΘΗΜΑ(4) ← ‘Χημεία’
ΟΚ_ΜΟ←Ψευδής ! λογική μεταβλητή που αποτελεί ένδειξη (σημαία) αν έχουν υπολογιστεί οι μέσοι όροι των μαθητών. Αυτό γιατί δεν
μπορούμε να πάμε στις 2η και 8η διαδικασία αν δεν έχει εξασφαλιστεί ότι έχουν υπολογιστεί οι μέσοι όροι των μαθητών.
ΟΚ_ΜΟΤ←Ψευδής ! Τι ίδιο για την εξασφάλιση του υπολογισμού των μέσων όρων τάξης. Η προϋπόθεση ισχύει για την 3 & 4 η
διαδικασία.
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ !Το πρόγραμμα πρέπει να εκτελείται συνεχώς μέχρι να επιλεχθεί 10. ΤΕΡΜΑΤΙΣΜΟΣ
ΚΑΛΕΣΕ ΜενούΕπιλογών (Επιλογή) ! Καλούμε την διαδικασία που εμφανίζει το μενού επιλογών και επιστρέφει
ΑΝ Επιλογή = 1 ΤΟΤΕ ! την μεταβλητή Επιλογή. Ανάλογα καλούμε και την διαδικασία που έχουμε φτιάξει για κάθε δουλειά.
!Χρειάζομαι να εξασφαλίσω ότι έχουν υπολογιστεί οι μέσοι όροι των μαθητών. Γι’ αυτό καλώ τη σχετική διαδικασία. Αν έχουν πιθανά
υπολογιστεί οι μέσοι όροι επειδή έχουν κληθεί από την 8η διαδικασία-επιλογή (επειδή και αυτή την χρειάζεται) η μεταβλητή ΟΚ_ΜΟ θα
είναι αληθής και η διαδικασία ΜΟ_ΜΑΘΗΤΩΝ δεν θα εκτελέσει άσκοπες εντολές.
ΚΑΛΕΣΕ ΜΟ_ΜΑΘΗΤΩΝ (ΒΑΘΜΟΙ, ΜΟ, ΟΚ_ΜΟ)
!Για να μη πειράξω τα πρωτογενή στοιχεία, όπως αυτά βρίσκονται στους πίνακες ΟΝΟΜΑ και ΜΟ (χρειάζονται και από !άλλες
διαδικασίες) θα δουλέψω σε 2 διαφορετικούς αλλά όμοιους σε μέγεθος πίνακες ΟΝΟΜΑ2 και ΜΟ2. Για να το κάνω !αυτό πρέπει
φυσικά να μεταφέρω τα στοιχεία σ’ αυτούς.
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 15
ΟΝΟΜΑ2(Ι,J) ← ΟΝΟΜΑ (Ι,J)
ΜO2(Ι,J) ← MO (Ι,J)
ΤΕΛΟΣ_ΓΙΑ
Ανάπτυξη Εφαρμογών Σελίδα - 62 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
!Ταξινομώ τον πίνακα ΜΟ2. Με κάθε αλλαγή στοιχείων του πίνακα όμως (αντιμετάθεση) πρέπει να αλλάζω και τα αντίστοιχα στοιχεία-κελιά του πίνακα των ονομάτων, ώστε να υπάρχει αντιστοιχία στις γραμμές. Για παράδειγμα έστω ότι το!j=3. Άρα το 14,3 είναι μικρότερο από το (j-1=2) 15,2 και πρέπει να έρθει στη θέση του.
!Γι’ αυτό, όταν κάνουμε ανταλλαγή των βαθμών πρέπει ταυτόχρονα να ανταλλάξουμε και τα ονόματα, ώστε να υπάρχει αντιστοιχία
μεταξύ τους στους τελικούς ταξινομημένους με κριτήριο τον βαθμό μέσου όρου (πίνακα ΜΟ2). Και αυτό επειδή χρειαζόμαστε να
εμφανίσουμε και τα ονόματα των μαθητών εκτός του βαθμού τους. Αν δεν το θέλαμε δεν θα χρειαζόταν η ταυτόχρονη αντιμετάθεση -
ενημέρωση του πίνακα ΟΝΟΜΑ2. Όταν μετά από κάθε ταξινόμηση χρειαζόμαστε και άλλα !στοιχεία είτε βρίσκονται στον ίδιο πίνακα
(άλλες στήλες) με το στοιχείο-κριτήριό μας είτε σε άλλον πίνακα-ες, πρέπει μέσα στον αλγόριθμο ταξινόμησης-φυσαλίδας (στο σημείο
της αντιμετάθεσης των 2 στοιχείων να αντιμεταθέσουμε και όλα αυτά τα στοιχεία-κελιά πίνακα ή πινάκων που μας ενδιαφέρουν να
παραμείνουν ενημερωμένα
!Ταξινόμηση του πίνακα ΜΟ2 με τον αλγόριθμο της φυσαλίδας
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 15
ΓΙΑ J ΑΠΟ 15 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ –1
ΑΝ ΜΟ2(J-1) < MO2(J) ΤΟΤΕ
Help ← ΜΟ2(J-1) !Αντιμετάθεση των βαθμών
ΜΟ2(J-1) ← MO2(J)
ΜΟ2(J) ← Help
HelpΧ ← ΟΝΟΜΑ2 (J-1) ! Ταυτόχρονη αντιμετάθεση των ονομάτων
ΟΝΟΜΑ2 (J-1) ← ΟΝΟΜΑ2 (J)
Ανάπτυξη Εφαρμογών Σελίδα - 63 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος
ΟΝΟΜΑ2 (J) ← HelpΧ !μεταβλητή HelpX χαρακτήρας για να γίνει η αλλαγή
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΓΙΑ
ΤΕΛΟΣ_ΓΙΑ
!Εμφάνιση αποτελεσμάτων (Ο μεγαλύτερος βαθμός τώρα είναι στη θέση 15 κάτω γιατί τα μικρά κερδίζουν στη σύγκριση και πηγαίνουν στην μικρότερες-πάνω θέσεις του πίνακα ΜΟ2