Ανάπτυξη Εφαρμογών σε Προγραμματιστικό...

68
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ’ Λυκείου 2013-2014 Άνδρας Π. Χρήστος Το παρών σετ ασκήσεων αποτελεί συλλογή επεξεργασμένων ασκήσεων από διάφορες πηγές (βιβλία, internet) και αρκετών ασκήσεων διαμορφωμένων από τον συντάκτη. Επιπλέον, εμπεριέχονται ασκήσεις (αυτούσιες ή τροποποιημένες) των παρακάτω συναδέλφων: Καραμαούνας Πολύκαρπος, Τσιωτάκης Παναγιώτης, Γεωργόπουλος Άκης, Βερνάρδος Α., Νικολακάκης Γιώργος

Transcript of Ανάπτυξη Εφαρμογών σε Προγραμματιστικό...

Ανάπτυξη Εφαρμογών σε

Προγραμματιστικό Περιβάλλον

Γ’ Λυκείου

2013-2014

Άνδρας Π. Χρήστος

Το παρών σετ ασκήσεων αποτελεί συλλογή επεξεργασμένων ασκήσεων από διάφορες πηγές (βιβλία, internet) και

αρκετών ασκήσεων διαμορφωμένων από τον συντάκτη. Επιπλέον, εμπεριέχονται ασκήσεις (αυτούσιες ή τροποποιημένες)

των παρακάτω συναδέλφων: Καραμαούνας Πολύκαρπος, Τσιωτάκης Παναγιώτης, Γεωργόπουλος Άκης, Βερνάρδος Α.,

Νικολακάκης Γιώργος

Ανάπτυξη Εφαρμογών Σελίδα - 2 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

1. Να διαβαστούν δύο αριθμοί, να υπολογιστεί και να εκτυπωθεί το άθροισμά τους

2. Αν ο τύπος μετατροπής των βαθμών Celsious ( C ) σε βαθμούς Fahrenheit ( F ) είναι

C/5=(f-32)/9, να γραφεί πρόγραμμα, όπου θα διαβάζει τη θερμοκρασία σε βαθμούς Celsious

και θα υπολογίζει και εκτυπώνει σε βαθμούς Fahrenheit.

3. Ένας έμπορος πούλησε εμπορεύματα αξίας Κ€. με ποσοστό κέρδους Χ%. Να γραφεί

πρόγραμμα, που θα υπολογίζει και εμφανίζει στην οθόνη

• το ποσό που κέρδισε

• το ποσό που εισέπραξε σε €.

4. Να γραφεί πρόγραμμα, που θα διαβάζει τον αριθμό των επιστολών που στέλνει μια

επιχείρηση σε πελάτες εσωτερικού και εξωτερικού που έχει και στη συνέχεια υπολογίζει και

εμφανίζει στην οθόνη το συνολικό κόστος αποστολής. Τα ταχυδρομικά τέλη κάθε επιστολής

για το εσωτερικό και το εξωτερικό είναι αντίστοιχα 0,3 και 0,5 €.

5. Ένα εμπορικό κατάστημα πουλά τα εμπορεύματα του με έκπτωση Ε %. Να γραφεί

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

πελάτης του, αν αγοράσει εμπορεύματα αξίας Κ€ και την έκπτωση που θα έχει.

6. Να γράψετε πρόγραμμα που να διαβάζει το μήκος της ακτίνας ενός κύκλου και να τυπώνει

τη διάμετρο, την περίμετρο και το εμβαδόν αυτού του κύκλου (2R , 2ΠR, ΠR2).

7. Να γραφεί πρόγραμμα το οποίο να διαβάζει από την οθόνη δύο πραγματικούς αριθμούς

Χ,Υ και να υπολογίζει την παράσταση:

8. Να γραφεί πρόγραμμα το οποίο να διαβάζει το μέτρο μιας γωνίας σε μοίρες και να το

υπολογίζει σε ακτίνια.

Ο τύπος μετατροπής είναι:

όπου π=3.14.

2)(5

)(34

YXYXYXZ ++++−=

πν ι αα κ τ ί

180ρ ε ςµ ο ί=

Ανάπτυξη Εφαρμογών Σελίδα - 3 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

1. Να διαβαστεί ένας αριθμός και να εκτυπωθεί η απόλυτη τιμή του

2. Να διαβαστεί ένας αριθμός και να εκτυπωθεί η ρίζα του

3. Να γραφεί πρόγραμμα που θα διαβάζει από το πληκτρολόγιο 3 ακεραίους θετικούς αριθμούς και στη

συνέχεια υπολογίζει και εμφανίζει στην οθόνη το μικρότερο από αυτούς.

4. Να γραφεί πρόγραμμα που υπολογίζει και εμφανίζει στην οθόνη την τιμή της παρακάτω συνάρτησης

πολλαπλού τύπου για κάποιο Χ που ανήκει στο σύνολο των πραγματικών αριθμών.

X – 1 για X < 0F(x)= X2 – 3X για 0 <= X <= 1

X + 1 για X > 1

5. Να γραφεί πρόγραμμα, όπου θα διαβάζονται βαθμοί 3 μαθημάτων και οι απουσίες ενός μαθητή. Θα

τυπώνεται ο μέσος όρος βαθμολογίας, όπως επίσης αν πέρασε ο μαθητής (περνά με βαθμό >=9,5 και

λιγότερες από 64 απουσίες )

6. Να γραφεί πρόγραμμα, όπου θα δίνονται το βάρος και το ύψος ενός ανθρώπου και θα τυπώνεται αν είναι

ψηλός, κοντός, βαρύς, ελαφρύς με όρια 1,70m ύψος και 75 Κιλά βάρος.

7. Να γραφεί πρόγραμμα, όπου θα δίνεται αριθμός από το 0 ως το 9 και θα τυπώνεται αν είναι ζυγός, μονός ή

0.

8. Η χρέωση στους λογαριασμούς του ΟΤΕ υπολογίζεται από τον παρακάτω πίνακα:

Πάγιο 30€Αστικές Μονάδες 0.05€ /μονάδαΥπεραστικές Μονάδες

(κλιμακωτή χρέωση)

0 – 200 0.06€ /μονάδα201 – 400 0.05€ /μονάδα401 – 0.04€ /μονάδα

ΦΠΑ (επί του συνόλου) : 19%

Να γίνει αλγόριθμος που θα διαβάζει τις αστικές και τις υπεραστικές μονάδες και θα εμφανίζει τη χρέωση του

συνδρομητή.

9. Να γραφεί πρόγραμμα που θα υπολογίζει και εμφανίζει στην οθόνη το ποσό που πρέπει να πληρωθεί στο

Ο.Τ.Ε. σαν αντίτιμο Ν τηλεφωνικών μονάδων, όταν γνωρίζουμε ότι το κόστος των μονάδων έχει κλιμακωτά ως

εξής:

Μονάδες € (η μονάδα)0 – 100 0,25101 - 200 0,20201-300 0,15301 - 0,10

10. Να γραφεί πρόγραμμα, όπου θα δίνεται η επιλογή στον χρήστη για την εκτέλεση των τεσσάρων πράξεων

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

τέλος προγράμματος. Το μενού του προγράμματος που αρχικά πρέπει να εμφανίζεται θα είναι όπως παρακάτω:

1. Πρόσθεση

Ανάπτυξη Εφαρμογών Σελίδα - 4 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

2. Αφαίρεση

3. Πολλαπλασιασμό

4. Διαίρεση

5. Έξοδος

Δώσε επιλογή : _

11. Να γίνει αλγόριθμος που να δέχεται σαν είσοδο δύο φυσικούς αριθμούς. Αν είναι και οι δύο άρτιοι ή περιττοί,

τότε να εμφανίζει το μέσο όρο τους. Αλλιώς να εμφανίζει τη διαφορά τους.

12. Να γραφεί πρόγραμμα, όπου θα δίνει την δυνατότητα να γίνεται η παραγγελία υπολογιστών. Ισχύουν οι

παρακάτω τιμές υπολογιστών.

ΠΟΣΟΤΗΤΑ ΤΙΜΗ

ΜΟΝΑΔΟΣ

1-50 800€51-100 750€101-200 700€Πάνω από 200 650€

13. Να γραφεί πρόγραμμα, όπου θα τυπώνει τον χαρακτηρισμό της φοίτησης ενός μαθητή σύμφωνα με τον

παρακάτω πίνακα.

ΒΑΘΜΟΣ ΧΑΡΑΚΤΗΡΙΣΜΟΣ17,5 - 20

Άριστα

15,5 – 17,4 Πολύ καλά13,5 – 15,4 Καλά9,5 – 13,4 Μέτρια0 – 9,4 Απορρίπτεται

Το πρόγραμμα να γραφεί με τους παρακάτω τρόπους :

a) Με εντολές Αν …. Τότε

b) Με εμφωλευμένα ΑΝ

c) Με εντολές Αν … Τότε … Αλλιώς_ΑΝ

d) Με την εντολή ΕΠΙΛΕΞΕ

14. Να γραφεί πρόγραμμα, όπου θα υπολογίζει τις ρίζες της δευτεροβάθμιας εξίσωσης αx2 + βx + γ = 0. Αν δεν

υπάρχουν πραγματικές ρίζες, να εκτυπώνει αντίστοιχο μήνυμα.

15. Να γραφεί πρόγραμμα (συνάρτηση) που να αποφαίνεται αν ένα δοσμένο έτος είναι δίσεκτο (μπορεί να

χρησιμοποιηθεί λογική μεταβλητή Disecto). Διευκρίνιση-Λύση: Τα έτη που είναι πολλαπλάσια του 4 είναι δίσεκτα, εκτός αν είναι

πολλαπλάσια του 100 και όχι του 400. Έτσι, το έτος 2000 θα είναι δίσεκτο, ενώ τα έτη 1700 και 1800 δεν ήταν.

Λύση

Disecto ← ((etos mod 4 =0) and ( etos mod 100 <>0)) or (etos mod 400 = 0)

16. Να γραφεί πρόγραμμα υπολογισμού του φόρου εισοδήματος με βάση την κλίμακα φορολογίας εισοδήματος

η οποία για το οικονομικό έτος 2002 παρουσιάζεται στον παρακάτω πίνακα:

Κλιμάκιο

εισοδήματος

Φορολογικός

συντελεστής

Φόρος

κλιμακίου

Σύνολο

εισοδήματος

Σύνολο

φόρου3000€ 0% 0 3000€ 0

Ανάπτυξη Εφαρμογών Σελίδα - 5 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

3500€ 5% 175€ 6500€ 175€3500€ 15% 525€ 10000€ 700€8000€ 30% 2400€ 18000€ 3100€

20000€ 40% 8000€ 38000€ 11100€Υπερβάλλον 45%

Το πρόγραμμα να διαβάζει το φορολογητέο ποσό από την οθόνη, να καλεί μία συνάρτηση ή μια διαδικασία για

τον υπολογισμό του φόρου και να εμφανίζει το αποτέλεσμα στην οθόνη.

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.

Σωστό Λάθος

Γιατί το δεύτερο λάθος ;

2.

ΨευδήςΑληθής

ΑΡΧΗ

Α ← 0

Διάβασε Χ

Α ← Α + Χ

Χ<100

Β ← Χ - 100 Εμφάνισε Χ

Α←0Αρχή_Επανάληψης Διάβασε Χ Α←Α+ΧΜέχρις_ότου Χ>=100Β←Χ-100Γράψε Β

Α←0Όσο Χ<100 Επανάλαβε Διάβασε Χ Α←Α+ΧΤέλος_επανάληψηςΒ←Χ-100Γράψε Β

ΑΡΧΗ

Πλήθος ← 0

ΨευδήςΠλήθος<10 Εμφάνισε Μικρ

Πλήθος ← Πλήθος +1

Διάβασε Χ

Αληθής

Πλήθος = 1

Μικρ ← Χ

Αληθής

Χ < Μικρ Μικρ ← Χ

Πλήθος ← 0Όσο Πλήθος < 10 Επανάλαβε Διάβασε Χ Πλήθος ← Πλήθος + 1 Αν Πλήθος = 1 Τότε Μικρ ← Χ Αλλιώς Αν Χ < Μικρ τότε Μικρ ← Χ Τέλος_αν Τέλος_ανΤέλος_επανάληψηςΓράψε Μικρ

Ανάπτυξη Εφαρμογών Σελίδα - 12 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

3.

4.

5. Να μετατρέψετε το παρακάτω διάγραμμα ροής σε πρόγραμμα (Επαναληπτικές εσπερινού λυκείου 2004)

Να γράψετε τον πίνακα τιμών των μεταβλητών Α, Β, S, αν ως αρχικές τιμές δοθούν Α=15 και Β=20

Αληθής

ΑΡΧΗ

A ← 1

B ← 0

ΨευδήςA < 8 Εμφάνισε A,B

B mod 2=0

Β ← Β + 1

Β ← Β + 3

Α ← Α + Β

Α ← 1Β ← 0Όσο Α < 8 Επανάλαβε Αν Β mod 2 = 0 Τότε Β ← Β + 1 Αλλιώς Β ← Β + 3 Τέλος_αν Α ← Α + ΒΤέλος_επανάληψηςΓράψε Α, Β

ΑΡΧΗ

Aθρ ← 1

Ι = 1, ως 100, βήμα 2

Aθρ ← Αθρ + Ι

Εμφάνισε Αθρ

Αθρ ← 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Τέλος_επανάληψης

γ. x7όσο (x<5) επανέλαβε xx+1 Γράψε xΤέλος_επανάληψης

δ. x3Αρχή_επανάληψης xx+1 Γράψε xΜέχρις_ότου x>=5

ε. x:=5Αρχή_επανάληψης x:=x+1 Γράψε xΜέχρις_ότου x>=5

στ. x:=7Αρχή_επανάληψης x:=x+1 Γράψε xΜέχρις_ότου x>=5

ζ. y:=0για x από 1 μέχρι 5 y:=y+1 Γράψε x,yτέλος_επανάληψηςΓράψε x,y

6. Τι θα εμφανίσει καθένα από τα ακόλουθα τμήματα αλγορίθμων:

Α. Β. Γ.Χ3Όσο Χ < 5 επανέλαβε

Γράψε Χ ΧΧ+1Τέλος_επανάληψης

Χ3Όσο Χ <= 5 επανέλαβε Γράψε Χ

ΧΧ+1Τέλος_επανάληψης

Χ7Όσο Χ < 5 επανέλαβε ΧΧ+1 Γράψε ΧΤέλος_επανάληψης

Δ. Ε. Ζ.Χ3Αρχή_Επανάληψης

ΧΧ+1 Γράψε ΧΜέχρις_ότου Χ>=5

Για Χ από 1 μέχρι 5 Για Υ από 2 μέχρι 3 Γράψε Χ, ‘ ‘ ,Υ Τέλος_ΕπανάληψηςΤέλος_Επανάληψης

Για Χ από 1 μέχρι 5 Για Υ από Χ μέχρι 5 Γράψε Χ, ‘ ‘ ,Υ Τέλος_ΕπανάληψηςΤέλος_Επανάληψης

Η. Θ. Ι.Χ1Κ0Αρχή_Επανάληψης

ΧΧ+1 Για Υ από Χ μέχρι 5 ΚΚ+(Υ-Χ) Τέλος_Επανάληψης Γράψε Χ, ‘ ‘ , ΚΜέχρις_ότου Χ>=5

Χ2Κ3Αρχή_Επανάληψης

ΧΧ+1 Για Υ από Χ μέχρι 4 ΚΚ+(Υ-Χ) Τέλος_Επανάληψης Γράψε Χ, ‘ ‘ , ΚΜέχρις_ότου Χ>=5

Χ3Y8Όσο Χ <= 5 ή Υ>=5 επανέλαβε Γράψε Χ

ΧΧ+1 Αν (Y-X) mod 2=1 Τότε Γράψε Υ-Χ Τέλος_αν Υ Υ - 1Τέλος_επανάληψης

7. Δίνεται ο παρακάτω αλγόριθμος:Αλγόριθμος Θέμα2

Χ ← 3Για i από 5 μέχρι 0 με_βήμα –2

Χ ← Χ + 1Αν Χ > 4 τότε

Ανάπτυξη Εφαρμογών Σελίδα - 15 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Υ ← Χαλλιώς

Υ ← –ΧΤέλος_αν

Ζ ← Χ*ΥΤέλος_επανάληψηςΤέλος Θέμα2

Να βρείτε τις τιμές των μεταβλητών i, X, Y και Ζ σε όλες τις επαναλήψεις.

8. Να γράψετε τον πίνακα τιμών και τι θα εμφανίσουν οι παρακάτω αλγόριθμοι

1. w 0y 15Διάβασε xόσο x < 0 επανάλαβε διάβασε x w w + 1 αν x = 4 τότε w w + 2 τέλοςανΤέλος_Επανάληψηςεμφάνισε y, w

2. διάβασε xy 0Αρχή_Επανάληψης x x + 2 y y +1Μέχρις_ότου χ>10x x – 8αν x < 2 τότε Αρχή_Επανάληψης x x –2 y y + 1 εμφάνισε y Μέχρις_ότου x < -5τέλοςαν

3. διάβασε xw 5 – xΓια y από 1 μέχρι 10 μεταβολή 0.5 w w + 1 αν x + w < 4 τότε w w + 2 τέλοςανΤέλος_Επανάληψηςεμφάνισε y, w

9. Να υπολογίσετε τον παρακάτω αλγόριθμο για εισόδους ,α) 2 και 4 β) -5 και 20

Διάβασε X WX*X+2 Z(W-5)*(X-2)-4αν (X>Z) τότε YX-Wαλλιώς YX+Wτέλος_αν YY*2-Z Εμφάνισε Υ,Χ,WΤέλος άσκηση 5_5

10. Να συμπληρώσετε τα κενά στον παρακάτω αλγόριθμο ώστε να εμφανίζει τους εξής αριθμούς: 2, 5, 8, 11, 14, 4, 7, 10, 13, 6, 9, 12, 15, 8, 11, 14.

Αλγόριθμος ΕμφάνισηΓια … από … μέχρι … με_βήμα …

Για … από … μέχρι … με_βήμα …Γράψε …

Τέλος_ΕπανάληψηςΤέλος_ΕπανάληψηςΤέλος Εμφάνιση

Ανάπτυξη Εφαρμογών Σελίδα - 16 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

1. Ένα κατάστημα εκδίδει κάρτες για τους μόνιμους πελάτες στις οποίες αναγράφεται το ποσό που ψώνισε

κάθε φορά. Όταν ο πελάτης συμπληρώσει 3 αγορές αν το συνολικό ποσό υπερβαίνει τα 50 € του δίνεται

δώρο αξίας 5 €. και αν υπερβαίνει τα 100€ του δίνεται δώρο 7€. Να κατασκευάσετε αλγόριθμο ο οποίος :

a) Να διαβάζει το πλήθος των πελατών που συμπλήρωσαν 3 αγορές.

b) Να διαβάζει τα 3 ποσά που πλήρωσε και να υπολογίζει το συνολικό ποσό για τον κάθε πελάτη.

c) Να εκτυπώνει «Δικαιούται δώρο 5€» ή «Δικαιούται δώρο 7€» ή «Δεν δικαιούται δώρο» ανάλογα

με το σύνολο αγορών του πελάτη.

2. Μια εταιρεία αμείβει του πωλητές τις με μισθό 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%}

Να κατασκευάσετε πρόγραμμα που:

a) Να διαβάζει τον κωδικό και τις πωλήσεις του πωλητή.

b) Να υπολογίζει και να εκτυπώνει το συνολικό ποσό που δικαιούται για πριμ και το σύνολο της

αμοιβής του.

c) Η διαδικασία να επαναλαμβάνεται για άγνωστο αριθμό πωλητών μέχρι να εισαχθεί για κωδικός το

0.

d) Να υπολογίζει το συνολικό ποσό που θα πληρώσει η εταιρεία για αμοιβές.

e) Το μέσο όρο των πριμ.

3. Όταν ένας οδηγός κάνει παράβαση η Τροχαία επιβάλλει και έναν βαθμό ποινής, από 5 μέχρι 40 μονάδες. Ας

υποθέσουμε ότι όταν ο οδηγός συγκεντρώσει 4 παραβάσεις οι βαθμοί ποινής του αθροίζονται και αν το

άθροισμα υπερβαίνει τις 40 μονάδες αφαιρείται το δίπλωμα για ένα τρίμηνο, ενώ αν υπερβαίνει τις 60 μονάδες

αφαιρείται για ένα έτος.

Να κατασκευάσετε αλγόριθμο ο οποίος:

a) Να διαβάζει το πλήθος των οδηγών που συμπλήρωσαν 4 παραβάσεις

b) Να διαβάζει τους 4 βαθμούς ποινής για τον καθένα από αυτούς κάνοντας έλεγχο αν βρίσκονται

στο διάστημα [5,40]

c) Να βρίσκει το άθροισμά τους για κάθε οδηγό και αν αυτό υπερβαίνει το 40 να εκτυπώνει

«ΑΦΑΙΡΕΣΗ ΔΙΠΛΩΜΑΤΟΣ 3 ΜΗΝΕΣ», ενώ αν υπερβαίνει το 60 να εκτυπώνει «ΑΦΑΙΡΕΣΗ

ΔΙΠΛΩΜΑΤΟΣ ΕΝΑ ΕΤΟΣ» .

Ανάπτυξη Εφαρμογών Σελίδα - 17 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

4. Ας υποθέσουμε ότι ο υπολογισμός του φόρου φυσικών προσώπων γίνεται με βάση την παρακάτω κλίμακα

(τα ποσά σε EURO):

ΕΙΣΟΔΗΜΑ ΣΥΝΤΕΛΕΣΤΗΣ

ΦΟΡΟΥ

Μέχρι και 5.000 € 0%Από 5.001 μέχρι 8.000 € 10%Από 8.001 μέχρι 12.000 € 15%Άνω των 12.001 € 20%

{δηλαδή αν κάποιος έχει εισόδημα 10.000 EURO για τις πρώτες 5.000 δεν πληρώνει τίποτα, για το τμήμα από

5.000 μέχρι 8.000 θα πληρώσει 10% και για τις υπόλοιπες 2.000 15%}.

Επίσης αν ο φορολογούμενος έχει παιδιά αφαιρούνται από το φόρο του 60 € για κάθε παιδί μέχρι και το 3 ο , και

200 € συνολικά αν έχει πάνω από 3 (για όλα μαζί).

Να κατασκευάσετε αλγόριθμο που να διαβάζει το ΑΦΜ και το εισόδημα και τον αριθμό παιδιών ενός

φορολογουμένου και να υπολογίζει και να εμφανίζει το εισόδημά του, των αριθμό των παιδιών του και το φόρο

που θα πληρώσει (προσέξτε ότι ο φόρος δεν μπορεί να είναι αρνητικός). Η διαδικασία να επαναλαμβάνεται για

άγνωστο πλήθος φορολογουμένων και να σταματά αν δοθεί ΑΦΜ το 0.

5. Να φτιάξετε αλγόριθμο που να ελέγχει όλους τους τριψήφιους αριθμούς και να εκτυπώνει όσους είναι

πολλαπλάσια του 9.

6. Μια εταιρία πληρώνει τους υπαλλήλους της με μισθούς που είναι πολλαπλάσια των 100 €. Να φτιάξετε

αλγόριθμο που:

a) Να διαβάζει το πλήθος των υπαλλήλων.

b) Να διαβάζει το μισθό κάθε υπαλλήλου και να υπολογίζει και να εκτυπώνει πόσα

χαρτονομίσματα 500 €, 200 € και 100 € χρειάζονται για την πληρωμή του υπαλλήλου.

c) Να υπολογίζει και να εμφανίζει το συνολικό ποσό που χρειάζεται για τη μισθοδοσία.

d) Να υπολογίζει και να εμφανίζει το σύνολο των χαρτονομισμάτων που χρειάζονται από

κάθε είδος.

7. 3 αθλητές του ύψους συμμετέχουν στους ολυμπιακούς αγώνες. Να γραφεί πρόγραμμα, όπου θα δίνονται η

επίδοση και το όνομα του κάθε αθλητή και ακολούθως το πρόγραμμα θα εμφανίζει στην οθόνη :

a) το όνομα και την επίδοση του καλύτερου αθλητή

b) τη διαφορά της επίδοσης του καλύτερου απ’ τον χειρότερο αθλητή

8. 3 αθλητές του ύψους συμμετέχουν στους ολυμπιακούς αγώνες. Καθένας πραγματοποιεί 3 προσπάθειες. Να

γραφεί πρόγραμμα, όπου θα δίνονται οι επιδόσεις και το όνομα του κάθε αθλητή και ακολούθως το πρόγραμμα

θα εμφανίζει στην οθόνη :

a) το όνομα και την επίδοση του καλύτερου αθλητή

b) τη διαφορά της επίδοσης του καλύτερου απ’ τον χειρότερο αθλητή

c) τη μέση επίδοση του κάθε αθλητή

d) το όνομα και την επίδοση του αθλητή με την καλύτερη μέση επίδοση

Ανάπτυξη Εφαρμογών Σελίδα - 18 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

9. Να γραφεί πρόγραμμα, όπου θα εμφανίζει στην οθόνη μια ακολουθία αριθμών, ξεκινώντας από το 1 και

φθάνοντας στο 1000, αυξάνοντας κατά 2, 4, 6 , 8 το βήμα προόδου. Δηλαδή οι αριθμοί που πρέπει να

εμφανιστούν είναι : 1, 3, 7, 13, 21, 31, 43, 57 , 73, 91.

Για τους παραπάνω αριθμούς :

α. Να βρεθεί το πλήθος τους

β. Πόσοι είναι πολλαπλάσια του 3 και του 7

γ. Ο μέσος όρος της διαφοράς του επόμενου αριθμού από τον προηγούμενό του.

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 μαθητών. Να υπολογισθούν τα ποσοστά των

κατηγοριών: “κακά” [0,9], “μέτρια” [10,12], “καλά” [13,15], “πολύ καλά” [16,18], “άριστα” [18,20].

Ανάπτυξη Εφαρμογών Σελίδα - 25 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

35. Δίνεται πίνακας ακεραίων Α[100]. Να εμφανισθούν οι διαδοχικές 3άδες αριθμών στις οποίες ο μεσαίος αριθμός

ισούται με το άθροισμα των άλλων δύο.

36. Δίνεται πίνακας χαρακτήρων Α[100] γεμάτος με τις σωστές απαντήσεις ενός test σωστού/λάθους (Σ/Λ). Δίνεται

επιπλέον, πίνακας χαρακτήρων Μ[100] γεμάτος με τις απαντήσεις ενός διαγωνιζόμενου. Να δοθεί στο διαγωνιζόμενο ένας

από τους χαραλτηρισμούς: “άριστος” με σωστές απαντήσεις: [90,100], “πολύ καλός” : [70,89], “καλός” : [60,69],

“μέτριος” : [50,59], “κακός” : [0,49].

37. Να γεμίσετε ένα δισδιάστατο πίνακα ακεραίων Α[5, 5] με τους αριθμούς 1,2,3,…25 ως εξής:

1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 2021 22 23 24 25

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 € χρειάζονται για την πληρωμή του υπαλλήλου.

γ. Να υπολογίζει και να εμφανίζει το συνολικό ποσό που χρειάζεται για τη μισθοδοσία.

δ. Να υπολογίζει και να εμφανίζει το σύνολο των χαρτονομισμάτων που χρειάζονται από κάθε είδος.

ΠΡΟΓΡΑΜΜΑ 1Ο

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : Μισθός, πλ500, πλ200, πλ100, Σύνολομισθών, Πλήθος, Αρ500, Αρ200, Αρ100

ΑΚΕΡΑΙΕΣ : I

ΑΡΧΗ

Γράψε “Δώσε το πλήθος των Υπαλλήλων :”

Διάβασε Πλήθος

Σύνολομισθών ← 0 : Πλ500 ← 0: Πλ200 ← 0: Πλ100 ← 0 ! Μηδενίζω τις μεταβλητές αθροίσματα

Για I από 1 μέχρι Πλήθος

Γράψε “Δώσε το μισθό του”, Ι , “ ου Υπαλλήλου :”

Διάβασε Μισθός

Σύνολομισθών ← Σύνολομισθών + Μισθός

Αρ500 = Μισθός div 500

Αρ200 = (Μισθός Mod 500) div 200

Αρ100 = ((Μισθός Μod 500) mod 200) div 100

Γράψε “Ο “, Ι , “ ος Υπάλληλος πρέπει να παραλάβει “, Αρ500, “ Πεντακοσάρικα “, Αρ200, “ διακοσάρικα και

“, Αρ100, “ κατοστάρικα “

Πλ500 ← Πλ500 + Αρ500 ! Ενημερώνω τις μεταβλητές για τα σύνολα των χαρτονομισμάτων που

Πλ200 ← Πλ200 + Αρ200 ! θα χρειαστεί η εταιρεία για όλους του υπάλλήλους

Πλ100 ← Πλ100 + Αρ100

Τέλος_Για

Γράψε “Η εταιρία θα χρειαστεί “, Πλ500, “ Πεντακοσάρικα “, Πλ200, “ Διακοσάρικα “, Πλ100, “ Κατοστάρικα

για να πληρώσει συνολικά “, Σύνολομισθών , “ για “ , Πλήθος , “ Υπαλλήλους “

Τέλος_Προγράμματος 1ο

2. Να γραφεί πρόγραμμα, όπου θα εμφανίζονται όλοι οι τριψήφιοι οι οποίοι :

α. Περιέχουν ως ψηφίο τους το 9 ή το 1 (Δηλ. 1, 9, 10 ,11 …, 19 …)

Επίσης οι τριψήφιοι αριθμοί των οποίων :

β. Το άθροισμα των ψηφίων τους είναι μεγαλύτερο από 10

δ. Το άθροισμα των μονών - περιττών ψηφίων τους είναι μεγαλύτερο από 10

Ανάπτυξη Εφαρμογών Σελίδα - 28 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ε. Το άθροισμα των ζυγών - άρτιων ψηφίων τους είναι μεγαλύτερο από 10

ΠΡΟΓΡΑΜΜΑ 2Ο

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : ΠΡΩΤΟ, ΔΕΥΤΕΡΟ, ΤΡΙΤΟ, Χ, Sum

ΑΚΕΡΑΙΕΣ : I

ΑΡΧΗ

Sum ← 0

ΓΙΑ Χ ΑΠΟ 100 ΜΕΧΡΙ 999 ! Δημιουργώ όλους τους τριψήφιου αριθμούς

ΠΡΩΤΟ ← Χ DIV 100 ! Παίρνω το πρώτο ψηφίο, τις εκατοντάδες

ΔΕΥΤΕΡΟ ← ( Χ MOD 100 ) DIV 10 ! Παίρνω το δεύτερο ψηφίο, τις δεκάδες

ΤΡΙΤΟ ← ( Χ MOD 100 ) MOD 10 ! Παίρνω το τρίτο ψηφίο, τις μονάδες

ΑΝ ΠΡΩΤΟ=9 Ή ΔΕΥΤΕΡΟ = 9 Ή ΤΡΙΤΟ =9 Ή ΠΡΩΤΟ=1 Ή ΔΕΥΤΕΡΟ = 1 Ή ΤΡΙΤΟ =1 ΤΟΤΕ

α ΓΡΑΨΕ “Βρέθηκε αριθμός και είναι ο : “, X

ΤΕΛΟΣ_ΑΝ

β Sum ← ΠΡΩΤΟ + ΔΕΥΤΕΡΟ + ΤΡΙΤΟ

Αν sum > 10 TOTE ΓΡΑΨΕ “Βρέθηκε με άθροισμα >10, ο αριθμός :”, X

γ Sum ← 0

Αν ΠΡΩΤΟ mod 2=1 ΤΟΤΕ Sum ← Sum + ΠΡΩΤΟ

Αν ΔΕΥΤΕΡΟ mod 2=1 ΤΟΤΕ Sum ← Sum + ΔΕΥΤΕΡΟ

Αν ΤΡΙΤΟ mod 2=1 ΤΟΤΕ Sum ← Sum + ΤΡΙΤΟ

Αν sum > 10 TOTE ΓΡΑΨΕ “Βρέθηκε με άθροισμα μονών-περιττών ψηφίων >10, ο αριθμός :”, X

δ Sum ← 0

Αν ΠΡΩΤΟ mod 2=0 ΤΟΤΕ Sum ← Sum + ΠΡΩΤΟ

Αν ΔΕΥΤΕΡΟ mod 2=0 ΤΟΤΕ Sum ← Sum + ΔΕΥΤΕΡΟ

Αν ΤΡΙΤΟ mod 2=0 ΤΟΤΕ Sum ← Sum + ΤΡΙΤΟ

Αν sum > 10 TOTE ΓΡΑΨΕ “Βρέθηκε με άθροισμα Ζυγών - Άρτιων ψηφίων >10, ο αριθμός :”, X

ΤΕΛΟΣ_ΓΙΑ

Τέλος_προγράμματος 2ο

3. Ξεκινώντας από τους αριθμούς 1, 4, 9 να συνεχιστεί και να δημιουργηθεί ακολουθία αριθμών με

βάση τον κανόνα ότι ο επόμενος αριθμός της ακολουθίας είναι 2 φορές η διαφορά προηγουμένου

από τον προπροηγούμενο + το γινόμενο του Προπροηγούμενου με το Προ-Προ-Προηγούμενο. Στο

Παράδειγμά μας. 2 * (9-4) + 4 * 1 = 14

ακολούθως 2 * (14-9) + 4 * 9 = 46

ακολούθως 2 * (46-14) + 14 * 9 = 190

Η ακολουθία θα περιλαμβάνει μόνο έναν αριθμό μεγαλύτερο από το 100000.

ΠΡΟΓΡΑΜΜΑ 3Ο

Ανάπτυξη Εφαρμογών Σελίδα - 29 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : Χ1, Χ2, Χ3, ΑΡ

ΑΡΧΗ

Χ1 ← 1: Χ2 ← 4 : Χ3 ←9 ! Αρχικές τιμές των 3 αριθμών - μεταβλητών

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

ΑΡ ← 2 * ( Χ3 - Χ2 ) + Χ2 * Χ1 ! Δημιουργώ τον επόμενο αριθμό της ακολουθίας στην μεταβλητή Αρ

Χ1 ← Χ2 ! Ο δεύτερος γίνεται πρώτος

Χ2 ← Χ3 ! Ο τρίτος γίνεται δεύτερος

Χ3 ← ΑΡ ! Ο καινούργιος γίνεται τρίτος

ΓΡΑΨΕ Χ3 ! Εμφανίζω το καινούργιο αριθμό της ακολουθίας που έφτιαξα

ΜΕΧΡΙΣ_ΟΤΟΥ Χ3 >100000 ! Μέχρι να φτιαχτεί ο πρώτος μεγαλύτερος του 100000

Τέλος_προγράμματος 3ο

4. Να γραφεί πρόγραμμα, όπου θα διαβάζει έναν αριθμό Ν και θα υπολογίζει το άθροισμα

S = ½ + ¼ + 1/6 + … + 1/N αν είναι άρτιος

S = 1 + 1/3 + 1/5 +1/7 + … + 1/N αν είναι περιττός

ΠΡΟΓΡΑΜΜΑ 4Ο

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : Ν, Sum, I

ΑΡΧΗ

ΔΙΑΒΑΣΕ Ν

SUM ← 0

ΑΝ Ν MOD 2 = 0 ΤΟΤΕ ! Είναι ζυγός

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν ΜΕ_ΒΗΜΑ 2

SUM ← SUM + 1 / I

ΤΕΛΟΣ_ΓΙΑ

ΑΛΛΙΩΣ ! Είναι μονός

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ΜΕ_ΒΗΜΑ 2

SUM ← SUM + 1 / I

ΤΕΛΟΣ_ΓΙΑ

ΤΕΛΟΣ_ΑΝ

ΓΡΑΨΕ “Το άθροισμα της σειρά είναι :” , SUM

Τέλος_προγράμματος 4ο

5. Να γραφεί πρόγραμμα, όπου θα υπολογίζει όλες τις ακέραιες λύσεις της εξίσωσης αΧ 3+βΧ2+γΧ+δ στο

διάστημα [-100, 100]. Το πρόγραμμα θα πρέπει να συμπεριφέρεται «έξυπνα» σταματώντας να ψάχνει στην

περίπτωση που βρει και τις 3 πιθανές λύσεις.

ΠΡΟΓΡΑΜΜΑ 5Ο

Ανάπτυξη Εφαρμογών Σελίδα - 30 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : ΛΥΣΕΙΣ, Χ, Α, Β, Γ, Δ, Υ

ΑΡΧΗ

ΛΥΣΕΙΣ ← 0

Χ ← -100 ! Η μεταβλητή Χ θα ξεκινήσει από –100 και θα την αυξάνω κατά 1 μέσα στην επανάληψη

ΓΡΑΨΕ “ΔΩΣΕ ΤΟΥΣ ΣΥΝΤΕΛΕΣΤΕΣ Α,Β,Γ,Δ ΤΗΣ ΕΞΙΣΩΣΗΣ : “

ΔΙΑΒΑΣΕ Α,Β,Γ,Δ ! διαβάζω τους συντελεστές (όλους μαζί), που είναι δεδομένοι από δω και πέρα (αλλάζει μόνο το Χ)

ΟΣΟ (ΛΥΣΕΙΣ < 3) ΚΑΙ (Χ<=100) ΕΠΑΝΕΛΑΒΕ ! για να συνεχίζεται το ψάξιμο έχουμε 2 συνθήκες

Υ← Α * Χ ^ 3 + Β * Χ ^ 2 +Γ * Χ +Δ !Υπολογίζω την τιμή της συνάρτησης ( Υ ) για την τιμή Χ που έχω δημιουργήσει

ΑΝ Υ=0 ΤΟΤΕ

ΓΡΑΨΕ “ΛΥΣΗ ΤΗΣ ΕΞΙΣΩΣΗΣ:”, X ! Εμφανίζω φυσικά τη λύση που έχει βρεθεί

ΛΥΣΕΙΣ ← ΛΥΣΕΙΣ+1 ! μετρώ τις λύσεις, ώστε να σταματήσει η επανάληψη μόλις γίνουν 3

ΤΕΛΟΣ_ΑΝ

Χ ← Χ + 1 ! δημιουργώ την επόμενη τιμή Χ

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

ΓΡΑΨΕ “ ΠΛΗΘΟΣ ΛΥΣΕΩΝ ΕΞΙΣΩΣΗΣ : “, ΛΥΣΕΙΣ

Τέλος_προγράμματος 5ο

6. Να γραφεί πρόγραμμα που θα εμφανίζει όλους τους τέλειους τριψήφιους αριθμούς. Ένας αριθμός είναι

τέλειος, όταν το άθροισμα των διαιρετών του είναι ίσο με το διπλάσιο του αριθμού. Για παράδειγμα ο αριθμός 6

είναι τέλειος αριθμός γιατί οι διαιρέτες του 1,2,3,6 έχουν άθροισμα 1+2+3+6 =12= 2 Χ 6

ΠΡΟΓΡΑΜΜΑ 6Ο

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : Χ, Sum, I

ΑΡΧΗ

ΓΙΑ Χ ΑΠΟ 100 ΜΕΧΡΙ 999 ! Δημιουργώ όλους τους τριψήφιου αριθμούς στην μεταβλητή Χ

SUM ← 0 ! μηδενίζω το άθροισμα των διαιρετών του Χ για το οποίο ακολούθως θα ελέγξω

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Χ ! φτιάχνω όλους τους αριθμούς από το 1 μέχρι το Χ. Όλοι αυτοί μπορεί να είναι πιθανοί διαιρέτες

ΑΝ Χ MOD I = 0 TOTE ! Αν Ο Χ διαιρούμενος με τον Ι φέρνει υπόλοιπο 0, είναι διαιρέτης του

SUM ← SUM + I ! Τον αθροίζω στην Sum

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ ΑΝ SUM = 2 * X ΤΟΤΕ ΓΡΑΨΕ Χ !αν ότι έχει μαζευτεί στην sum είναι 2 φορές ο Χ, γράφω τον X σαν τέλειο

ΤΕΛΟΣ_ ΕΠΑΝΑΛΗΨΗΣΤέλος_προγράμματος 6ο

7. Να γραφεί πρόγραμμα που θα εμφανίζει όλους τους τριψήφιους αριθμούς οι οποίοι είναι ίσοι με το άθροισμα

των κύβων των ψηφίων τους.

ΠΡΟΓΡΑΜΜΑ 7Ο

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : Χ, Χ1,Χ2, Χ3

ΑΡΧΗ

ΓΙΑ Χ ΑΠΟ 100 ΜΕΧΡΙ 999 ! δημιουργώ του τριψήφιου αριθμούς στην μεταβλητή Χ

Ανάπτυξη Εφαρμογών Σελίδα - 31 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Χ1← Χ DIV 100 ! παίρνω το πρώτο ψηφίο (το πηλίκο της διαίρεσης του Χ με το 100) π.χ 385 div 100 θα δώσει 3

X2 ← (X MOD 100) DIV 10 ! παίρνω το δεύτερο ψηφίο. Ότι περισσεύει από τη διαίρεση με το 100. 85 div 10 δίνει 8

X3 ← (X MOD 100) MOD 10 ! και το τρίτο. 85 mod 10 δίνει 5

ΑΝ ( Χ1^3+Χ2^3+Χ3^3 = Χ ) ΤΟΤΕ ΓΡΑΨΕ Χ

ΤΕΛΟΣ_ΓΙΑ

Τέλος_προγράμματος 7ο

Ανάπτυξη Εφαρμογών Σελίδα - 32 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Σε ένα πίνακα Table 100 θέσεων (πραγματικοί αριθμοί) ψάχνουμε να βρούμε το στοιχείο Key.

(Εδώ σταματάμε να ψάχνουμε μόλις βρούμε το πρώτο στοιχείο)

ΑΛΓΟΡΙΘΜΟΣ Σειριακή_αναζήτηση1

ΜΕΤΑΒΛΗΤΕΣ

ΛΟΓΙΚΕΣ: BOOL

ΠΡΑΓΜΑΤΙΚΕΣ: Key, Table[100]

ΑΚΕΡΑΙΕΣ: POSITION, I

ΑΡΧΗ

Position 0

BOΟL Ψευδής

Ι 1

ΓΡΑΨΕ "Δώσε τον αριθμό που ψάχνεις:"

Διάβασε Key

Όσο (BOOL = ΨΕΥΔΗΣ ) ΚΑΙ (Ι<=100) επανέλαβε

Αν Table[ I ] = key τότε

BOOL Αληθής

Position I

Αλλιώς

I I + 1

Τέλος_αν

Τέλος_επανάληψης

ΑΝ BOOL = Αληθής ΤΟΤΕ

Γράψε "Ο αριθμός ", Key, "βρέθηκε στην ", Position, " Θέση"

Αλλιώς

Γράψε "Ο αριθμός ", Key, " δεν υπάρχει στον πίνακα"

Τέλος_αν

ΤΕΛΟΣ Σειριακή_αναζήτηση1

Αν θέλουμε να βρούμε, τυπώσουμε τις θέσεις απ' όλα τα στοιχεία του πίνακα και όχι μόνο το πρώτο

που τυγχάνει να είναι ίσο με αυτό που ψάχνουμε έχουμε:

ΑΛΓΟΡΙΘΜΟΣ Σειριακή_αναζήτηση2

ΜΕΤΑΒΛΗΤΕΣ

ΛΟΓΙΚΕΣ: BOOL

ΠΡΑΓΜΑΤΙΚΕΣ: Key ,Table[100]

ΑΚΕΡΑΙΕΣ: I, Count

ΑΡΧΗ

Count 0 ' για να μετρήσουμε το πλήθος των αριθμών που θα βρεθούν

BOΟL Ψευδής

Ανάπτυξη Εφαρμογών Σελίδα - 33 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Ι 1

ΓΡΑΨΕ "Δώσε τον αριθμό που ψάχνεις:"

Διάβασε Key

Όσο (Ι<=100) επανέλαβε

Αν Table[ I ] = key τότε

BOOL Αληθής

Γράψε "Ο αριθμός ", Key, "βρέθηκε στην ", I , " Θέση"

Count Count + 1

Τέλος_αν

I I + 1

Τέλος_επανάληψης

ΑΝ BOOL = Ψευδής ΤΟΤΕ

Γράψε "Ο αριθμός ", Key, " δεν υπάρχει στον πίνακα"

Αλλιώς

Γράψε "Ο αριθμός ", Key, " βρέθηκε ", count, " φορές"

Τέλος_αν

ΤΕΛΟΣ Σειριακή_αναζήτηση2

1. Δίνεται ένας πίνακας Α που περιέχει Ν τυχαίους αριθμούς. Να γραφεί πρόγραμμα που να διαβάζει ένα αριθμό και να

ελέγχει αν ο αριθμός υπάρχει στον πίνακα. Για την αναζήτηση να χρησιμοποιηθεί ο αλγόριθμος της σειριακής αναζήτησης.

2. Δίνεται ένας πίνακας Α που περιέχει Ν τυχαίους αριθμούς. Να γραφεί πρόγραμμα που να διαβάζει ένα αριθμό και να

τυπώνει πόσες φορές υπάρχει ο αριθμός και σε ποιες θέσεις του πίνακα. Για την αναζήτηση να χρησιμοποιηθεί ο

αλγόριθμος της σειριακής αναζήτησης

3. Να γραφεί πρόγραμμα το οποίο γεμίζει ένα πίνακα 40 θέσεων με τυχαίους θετικούς ακεραίους αριθμούς και στη

συνέχεια βρίσκει και εμφανίζει στην οθόνη το μεγαλύτερο από αυτούς και τη θέση που έχει μέσα στον πίνακα.

4. Δίνεται μονοδιάστατος πίνακας χαρακτήρων με 20 στοιχεία. Αν κάθε στοιχείο του είναι ένας μόνο από τους χαρακτήρες

Α και Β, να γραφεί πρόγραμμα το οποίο μετρά και εμφανίζει στη οθόνη πόσες φορές υπάρχουν αντίστοιχα οι χαρακτήρες

Α και Β σαν στοιχεία του πίνακα.

5. Δίνεται μονοδιάστατος πίνακας αλφαριθμητικών, μεγίστου μήκους 20 χαρακτήρων, με 15 στοιχεία. Να γραφεί

πρόγραμμα το οποίο μετρά και εμφανίζει στην οθόνη τα αλφαριθμητικά που έχουν αντίστοιχα από 0 ως 10, από 11 έως 15

και από 16 έως 20 χαρακτήρες.

Δυαδική αναζήτηση

Για να εφαρμόσουμε τον αλγόριθμο της δυαδικής αναζήτησης απαιτείται να είναι ταξινομημένα τα στοιχεία, όπου

ψάχνουμε.

Σε ένα πίνακα Table 100 θέσεων (πραγματικοί αριθμοί) ψάχνουμε να βρούμε το στοιχείο Key.

ΑΛΓΟΡΙΘΜΟΣ Δυαδική_αναζήτηση

ΜΕΤΑΒΛΗΤΕΣ

ΛΟΓΙΚΕΣ: BOOL

ΠΡΑΓΜΑΤΙΚΕΣ: Key, table[100]

ΑΚΕΡΑΙΕΣ: min, max, thesh

ΑΡΧΗ

ΓΡΑΨΕ "Δώσε τον αριθμό που ψάχνεις:"

Εκτός ύλης, αλλά καλή άσκηση!!!

Ανάπτυξη Εφαρμογών Σελίδα - 34 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Διάβασε Key

BOΟL Ψευδής

Min 1 'αρχική θέση

Max 100 'τελική θέση

Όσο ( Min <= Max) ΚΑΙ BOOL = Ψευδής επανέλαβε

thesh ( min + max ) div 2

Αν Table[ thesh ] = key τότε

BOOL Αληθής

Αλλιώς_αν Table[ thesh ] < key τότε

Min thesh + 1

Αλλιώς

Max thesh - 1

Τέλος_αν

Τέλος_επανάληψης

ΑΝ BOOL = Ψευδής ΤΟΤΕ

Γράψε "Ο αριθμός ", Key, " δεν υπάρχει στον πίνακα"

Αλλιώς

Γράψε "Ο αριθμός ", Key, " βρέθηκε στην ", thesh, " θέση"

Τέλος_αν

ΤΕΛΟΣ Δυαδική_αναζήτηση

ΤΑΞΙΝΟΜΗΣΗ

• Να γραφεί πρόγραμμα όπου θα ταξινομεί με τον αλγόριθμο της φυσαλίδας έναν δοσμένο πίνακα A με 40

πραγματικούς αριθμούς.

ΠΡΟΓΡΑΜΜΑ Φυσσαλίδα

ΜΕΤΑΒΛΗΤΕΣ

ΛΟΓΙΚΕΣ: BOOL

ΠΡΑΓΜΑΤΙΚΕΣ: help, A[40]

ΑΚΕΡΑΙΕΣ: min, max, thesh

ΑΡΧΗ

Min 1

Max 40

ΓΙΑ Ι ΑΠΌ 2 ΜΕΧΡΙ MAX επανέλαβε

ΓΙΑ J ΑΠΟ ΜΑΧ ΜΕΧΡΙ Ι ΒΗΜΑ -1 επανέλαβε

ΑΝ A[ J ] < A [ J-1] ΤΟΤΕ 'κάνουμε τη εναλλαγή μεταβλητών - θέσεων μέσω της Help.

Help A[ j ]

A[ j ] A[ j -1]

A[ j -1] Help

ΤΕΛΟΣ_ΑΝ

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

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

ΤΕΛΟΣ Φυσσαλίδα

Ανάπτυξη Εφαρμογών Σελίδα - 35 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

8. Δίνονται πίνακες Α, Β ακεραίων αριθμών ταξινομημένοι κατά φθίνουσα διάταξη. Δεν μπορούν να περιέχουν

πάνω από 100 αριθμούς. Να δημιουργηθεί πρόγραμμα όπου θα διαβάζονται και θα τοποθετούνται N αριθμοί

στον πίνακα Α και M αριθμοί στον πίνακα Β. Ακολούθως να δημιουργηθεί πίνακας Γ όπου θα αποτελεί

συγχώνευση των Α και Β και θα είναι επίσης ταξινομημένος κατά φθίνουσα διάταξη.

ΠΡΟΓΡΑΜΜΑ Συγχώνευση

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : A [100], B [100], Γ [200], I, J, K, N, M, Λ, HELP

ΑΡΧΗ

ΓΡΑΨΕ “Δώσε το πλήθος των στοιχείων του πίνακα Α (<=100) : “

ΔΙΑΒΑΣΕ Ν

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ! διαβάζω τα Ν στοιχεία και τα τοποθετώ στον πίνακα Α

ΔΙΑΒΑΣΕ Α [ Ι ]

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

ΓΡΑΨΕ “ Δώσε το πλήθος των στοιχείων του πίνακα Β(<=100) “

ΔΙΑΒΑΣΕ Μ

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Μ ! διαβάζω τα Μ στοιχεία και τα τοποθετώ στον πίνακα Β

ΔΙΑΒΑΣΕ Β [ Ι ]

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

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν

ΓΙΑ J ΑΠΟ N ΜΕΧΡΙ Ι Με_βήμα –1

Αν Α[J-1]> A [ J ] ΤΟΤΕ ! αντικατάσταση

Help ← Α[ J-1 ]

Α[ J-1 ] ← Α[ J ]

Α[ J ] ← Help

ΤΕΛΟΣ_ΑΝ

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

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

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Μ

ΓΙΑ J ΑΠΟ Μ ΜΕΧΡΙ Ι Με_βήμα –1

Αν Β[J-1]> Β [ J ] ΤΟΤΕ ! αντικατάσταση

Help ← Β[ J-1 ]

Β[ J-1 ] ← Β[ J ]

Β[ J ] ← Help

ΤΕΛΟΣ_ΑΝ

Στάδιο 1ο

Διαβάζουμε γεμίζοντας με αριθμούς τους 2 πίνακες. Ν στοιχεία για τον Α πίνακα, Μ για τον Β (<=100)

Ταξινομούμε με το αλγόριθμο της φυσσαλίδας τον πίνακα Α

Ταξινομούμε με το αλγόριθμο της φυσσαλίδας τον πίνακα Β

Στάδιο 2Ο

Ταξινόμηση των 2 πινάκων

Ανάπτυξη Εφαρμογών Σελίδα - 36 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

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

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

!Θα μπορούσε, κάλλιστα, να σας ζητηθεί ο αλγόριθμος της συγχώνευσης, που ακολουθεί παρακάτω θεωρώντας ως !

δεδομένο ότι υπάρχουν στους πίνακες Α και Β, Ν και Μ στοιχεία αντίστοιχα, ταξινομημένα ήδη.

! Ι είναι ο δείκτης για τον πίνακα Α

! J είναι ο δείκτης για τον πίνακα Β

! Κ είναι ο δείκτης για τον πίνακα Γ

Ι ←1 : J ← 1 : K ← 1 ! όλοι οι δείκτες ξεκινούν από την 1η θέση

ΌΣΟ Ι < = Ν ΚΑΙ J < = Μ ΕΠΑΝΕΛΑΒΕ ! Όσο και οι 2 πίνακες έχουν στοιχεία προς μεταφορά στον Γ

ΑΝ Α[ Ι ] < Β [ J ] ΤΟΤΕ ! μεταφέρω από τον πίνακα Α στον Γ

Γ [ Κ ] ← Α [ Ι ]

Κ ← Κ + 1 ! αυξάνω τον δείκτη του Γ γιατί μπήκε στοιχείο

Ι ← Ι + 1 ! αυξάνω τον δείκτη του Α γιατί βγήκε στοιχείο

ΑΛΛΙΩΣ ! μεταφέρω από τον πίνακα Β στον Γ

Γ [ Κ ] ← Β [ J ]

Κ ← Κ + 1 ! αυξάνω τον δείκτη του Γ γιατί μπήκε στοιχείο

J ← J + 1 ! αυξάνω τον δείκτη του Β γιατί βγήκε στοιχείο

ΤΕΛΟΣ_ΑΝ

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

! Μεταφορά των υπόλοιπων στοιχείων του Α ή του Β

ΑΝ Ι > Ν ΤΟΤΕ ! τελείωσαν του Α πίνακα

ΓΙΑ Λ ΑΠΟ J ΜΕΧΡΙ M ! μεταφέρω τον πίνακα Β (έχει ακόμα στοιχεία από την j που έχει μείνει ο δείκτης μέχρι την Μ)

Γ [Ν + Λ ] ← Β [ Λ ] ! έχουν μπει ήδη Ν στοιχεία του πίνακα Α στον Γ, + το Λ, η θέση που βρίσκεται ο δείκτης στον Β

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

ΑΛΛΙΩΣ ! τελείωσαν του Β πίνακα

ΓΙΑ Λ ΑΠΟ Ι ΜΕΧΡΙ Ν ! μεταφέρω τον πίνακα Α (έχει ακόμα στοιχεία από την Ι που έχει μείνει ο δείκτης μέχρι την Ν)

Γ [Μ + Λ ] ← Α [ Λ ] ! έχουν μπει ήδη Μ στοιχεία του πίνακα Β στον Γ, + το Λ, η θέση που βρίσκεται ο δείκτης στον Α

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

ΤΕΛΟΣ_ΑΝ

ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ Ν+Μ ! εμφάνιση των στοιχείων του συγχωνευμένου και ταξινομημένου πίνακα Γ

ΓΡΑΨΕ Γ [ Λ ]

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

Τέλος_προγράμματος Συγχώνευση

9. Να γραφεί πρόγραμμα, όπου θα προσομοιάζει το γνωστό παιχνίδι «Ναρκαλιευτής». Συγκεκριμένα για έναν

πίνακα Ν 8 Χ 8 θα ζητείται από τον χρήστη πόσες νάρκες πρέπει να τοποθετηθούν [5 ως 55]. Το πρόγραμμα

πρέπει

• να τοποθετεί τυχαία τις νάρκες στον πίνακα Ν και

• να τοποθετεί τον ανάλογο αριθμό (που δηλώνει πόσες νάρκες υπάρχουν στις γειτονικές θέσεις) για τις

υπόλοιπες θέσεις του πίνακα.

Στάδιο 3Ο

Συγώνευση των 2 πινάκων στον Πίνακα Γ έτσι, ώστε να διατηρηθεί η ταξινόμηση των στοιχείων.

1ο στάδιο συγχώνευσης. Μέχρι να μεταφερθεί ένας από τους 2 πίνακες ολόκληρος, να τελειώσουν τα στοιχεία του

2ο στάδιο συγχώνευσης. Μεταφορά των στοιχείων του πίνακα που δεν έχουν τελειώσει τα στοιχεία του

Άσκηση για πολύ δυνατούς λύτες

Ανάπτυξη Εφαρμογών Σελίδα - 37 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Στο τέλος θα εμφανίζει τον πίνακα στην τελική του μορφή, με τις νάρκες (για νάρκη χρησιμοποιείστε τον

χαρακτήρα *). Σκεφτείτε πως θα αντιμετωπίσετε το γεγονός ότι το * είναι χαρακτήρας και όχι αριθμός.

Για παράδειγμα η τελική εμφάνιση του πίνακα με 10 τυχαία τοποθετημένες νάρκες θα πρέπει να είναι η παρακάτω

ΠΡΟΓΡΑΜΜΑ ΝΑΡΚΑΛΙΕΥΤΗΣ

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : N [ 8, 8 ], I, J, T, M

ΑΡΧΗ

ΓΡΑΨΕ “ Πόσες νάρκες θέλεις να τοποθετηθούν : “

ΔΙΑΒΑΣΕ Τ

ΌΣΟ Τ< 5 Ή Τ >55 ΕΠΑΝΕΛΑΒΕ ! Εξασφαλίζουμε ότι θα δοθούν 5 ως 55 νάρκες.

ΓΡΑΨΕ “ Μήνυμα λάθους…, πρέπει να δώσετε τιμή στο διάστημα [5-55] “

ΓΡΑΨΕ “ Πόσες νάρκες θέλεις να τοποθετηθούν : “

ΔΙΑΒΑΣΕ Τ

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

!Μηδενίζω τον πίνακα και θα χρησιμοποιήσω το –1 για σύμβολο της νάρκης

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

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

N [I , J ] ←0

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

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

!έστω συνάρτηση RND που επιστρέφει τυχαίους αριθμούς στο διάστημα των παραμέτρων της

Μ ← 0 ! πόσες νάρκες έχω τοποθετήσει μέχρι τώρα

ΌΣΟ Μ < Ν ΕΠΑΝΕΛΑΒΕ

I ← RND ( 1, 8) ! επιστρέφει έναν τυχαίο αριθμό ανάμεσα στο 1 και στο 8, για να προσδιορίσω τη γραμμή που θα τοποθετηθεί η νάρκη

J ← RND (1, 8) ! ! επιστρέφει έναν τυχαίο αριθμό ανάμεσα στο 1 και στο 8, για να προσδιορίσω τη στήλη που θα τοποθετηθεί η νάρκη

ΑΝ Ν [ Ι , J ] <>-1 TOTE ! έλεγχος για να μη βάλω νάρκη σε κελί που έχει τοποθετηθεί ήδη

N [ I , J ] ← -1 ! για σύμβολο της νάρκης στον πίνακα χρησιμοποιώ τον αριθμό –1, επειδή δεν μπορώ να τοποθετήσω χαρακτήρες

M ← M +1 ! Τοποθέτησα μια ακόμη μέχρι να φθάσω στο Ν

1 2 * 1 1 0 0 02 * 3 2 * 2 1 11 2 * 1 1 2 * 20 1 1 1 0 2 * 21 1 1 1 1 1 1 11 * 1 2 * 1 0 01 1 2 * 3 1 0 00 0 2 * 2 0 0 0

Ανάπτυξη Εφαρμογών Σελίδα - 38 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ΤΕΛΟΣ_ΑΝ

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

! Σαρώνω τον πίνακα (8Χ8)και όπου βρω νάρκη θα αυξήσω τα γειτονικά κελιά κατά 1 (τώρα είναι 0). Πρέπει

! όμως να γίνουν έλεγχοι

! Πρώτα να μη ξεφύγω απ’ τα σύνορα του πίνακα για κάθε 1 από τα 8 δυνητικά γειτονικά του τρέχοντος.

! Δεύτερον να μην ενημερώσω γειτονικό αν έχει νάρκη (-1)

! Παρακάτω είναι η σειρά των γειτονικών κελιών, όπου κάνω έλεγχο αν υπάρχουν, ώστε να τα αυξήσω κατά ένα

5ο 1ο 6ο

3ο Χ 4ο

7ο 2ο 8ο

ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 8 ! Περνώ από όλα τα κελιά του πίνακα

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

ΑΝ Ν [ Ι ,J ] = -1 TOTE ! μόνο αν είναι νάρκη ενημερώνω τα γειτονικά μετά τους δυο ελέγχους

Αν I >1 KAI N[ I -1, J ] <>-1 TOTE N[ I-1, J ] ← N[ I-1, J ] + 1 ! 1Ο Κελί

Αν I < 8 KAI N[ I +1, J ] <>-1 TOTE N[ I +1, J ] ← N[ I+1, J ] + 1 ! 2Ο Κελί

Αν J >1 KAI N[ I, J-1 ] <>-1 TOTE N[ I, J -1 ] ← N[ I, J -1 ] + 1 ! 3Ο Κελί

Αν J < 8 KAI N[ I, J +1 ] <>-1 TOTE N[ I, J +1 ] ← N[ I, J +1 ] + 1 ! 4Ο Κελί

Αν I >1 KAI J > 1 KAI N[ I -1, J -1 ] <>-1 TOTE N[ I-1, J -1 ] ← N[ I-1, J -1 ] + 1 ! 5Ο Κελί

Αν I >1 KAI J < 8 N[ I-1, J + 1 ] <>-1 TOTE N[ I -1, J +1 ] ← N[ I-1, J +1 ] + 1 ! 6Ο Κελί

Αν I < 8 KAI J > 1 N[ I +1, J -1 ] <>-1 TOTE N[ I +1, J -1 ] ← N[ I+1, J -1 ] + 1 ! 7Ο Κελί

Αν I < 8 KAI J < 8 N[ I +1, J +1] <>-1 TOTE N[ I +11, J +1] ← N[ I+1, J +1 ] + 1 ! 8Ο Κελί

ΤΕΛΟΣ_ΑΝ

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

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

! Εμφάνιση του πίνακα

ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 8

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

ΑΝ Ν [ Ι ,J ] = -1 TOTE ! Είναι νάρκη

ΓΡΑΨΕ “ * “

ΑΛΛΙΩΣ

ΓΡΑΨΕ Ν [ Ι , J ]

ΤΕΛΟΣ_ΑΝ

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

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

Τέλος_προγράμματος 9ο

10. Δίνονται δύο πίνακες Α και Β 5Χ5.

Α Β

α11 α12 α13 α14 α15 β11 β12 β13 β14 β15

α21 α22 α23 α24 α25 β21 β22 β23 β24 β25

α31 α32 α33 α34 α35 β31 β32 β33 β34 β35

α41 α42 α43 α44 α45 β41 β42 β43 β44 β45

α51 α52 α53 α54 α55 β51 β52 β53 β54 β55

Ανάπτυξη Εφαρμογών Σελίδα - 39 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Να γραφεί πρόγραμμα, όπου :

α. Να συγχωνεύει τους δύο σε έναν τρίτο πίνακα Γ 5Χ10

Γ

α11 α12 α13 α14 α15 β11 β12 β13 β14 β15

α21 α22 α23 α24 α25 β21 β22 β23 β24 β25

α31 α32 α33 α34 α35 β31 β32 β33 β34 β35

α41 α42 α43 α44 α45 β41 β42 β43 β44 β45

α51 α52 α53 α54 α55 β51 β52 β53 β54 β55

β. Να συγχωνεύει τους δύο σε έναν τρίτο πίνακα Γ2 10Χ5

γ. Να δημιουργηθεί πίνακας Π (5Χ5), όπου θα αποτελεί συγχώνευση των Α, Β.

Σε κάθε στήλη θα γίνονται οι ακόλουθες διαφορετικές πράξεις :

ΣΤΗΛΗ ΠΡΑΞΗ

1η Πρόσθεση

2η Αφαίρεση

3η Πολλαπλασιασμός

4η Διαίρεση

5η Επιλογή του μεγαλυτέρου των δύο

ΠΡΟΓΡΑΜΜΑ 10Ο

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : Α [5, 5], Β [5, 5] , Γ[5,10], Γ2[10, 5] , I, J

ΑΡΧΗ

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

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

Γ [ I, J ] ← Α[ I, J ] (α)

Γ [ I, J+5 ] ← Β[ I, J ]

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

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

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

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

Γ [ I, J ] ← Α[ I, J ] (β)

Γ [ I+5, J ] ← Β[ I, J ]

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

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

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

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

ΑΝ J=1 ΤΟΤΕ ! αν βρισκόμαστε στην 1η στήλη

Π [ I, J ] ← Α[ I, J ] + Β[ I, J ]

ΑΛΛΙΩΣ_ΑΝ J=2 ΤΟΤΕ ! στην 2η στήλη

Π [ I, J ] ← Α[ I, J ] - Β[ I, J ]

(γ) ΑΛΛΙΩΣ_ΑΝ J=3 ΤΟΤΕ ! στην 3η στήλη

Ανάπτυξη Εφαρμογών Σελίδα - 40 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Π [ I, J ] ← Α[ I, J ] * Β[ I, J ]

ΑΛΛΙΩΣ_ΑΝ J=4 ΤΟΤΕ ! στην 4η στήλη

Π [ I, J ] ← Α[ I, J ] / Β[ I, J ]

ΑΛΛΙΩΣ_ΑΝ J=5 ΤΟΤΕ ! στην 5η στήλη

ΑΝ Α[ I, J ] > Β[ I, J ] ΤΟΤΕ Π [ I, J ] ← Α[ I, J ] ΑΛΛΙΩΣ Π [ I, J ] ← Β[ I, J ]

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

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

11. Έστω Α μονοδιάστατος πίνακας διαστάσεως Ν ακεραίων.

α. Να γραφεί αλγόριθμος που θα κατασκευάζει έναν δεύτερο πίνακα Β που θα περιλαμβάνει με την ίδια σειρά

τα στοιχεία του Α αλλά με τα μηδενικά μαζεμένα στο τέλος του π.χ Αν ο Α είναι της μορφής

Α 5 0 2 4 6 0 3 0 0 1Τότε ο Β πρέπει να γίνει έτσι :

Β 5 2 4 6 3 1 0 0 0 0

β. Να γραφεί αλγόριθμος, που θα αντικαθιστά στον πίνακα το 0 με το άθροισμα του προηγούμενου και

επόμενου στοιχείου απ’ την θέση που βρέθηκε το 0.

γ. Να γραφεί αλγόριθμος που θα δημιουργεί έναν πίνακα Γ ίδιας διάστασης με τον Α που θα περιέχει

χαρακτήρες. Περιεχόμενα του Γ πρέπει να είναι σε κάθε θέση του τόσα αστεράκια (*), όσα δηλώνει το

αντίστοιχο περιεχόμενο της θέσης του πίνακα Α. Να γίνεται έλεγχος ώστε τα αστεράκια να ανήκουν στο

διάστημα [0,10]. Δηλαδή αν ο πίνακας Α είναι της μορφής που δόθηκε παραπάνω ο Γ πρέπει να είναι

Γ ***** ** **** ****** *** *

δ. Να γραφεί αλγόριθμος που θα αντιστρέφει τον πίνακα Α. Δηλαδή το 1ο στοιχείο θα γίνεται 10, το 2ο 9ο …

ΑΛΓΟΡΙΘΜΟΣ 11Α

J ← 1

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ! Περνάμε από όλο τον πίνακα Α

ΑΝ Α[ Ι ]<> 0 ΤΟΤΕ ! αν το στοιχείο δεν είναι 0

Β [ J ] ← A[ I ] ! το μεταφέρουμε στον πίνακα Β στη θέση j

(α) J ← J + 1 ! αυξάνουμε τον δείκτη j, ώστε το επόμενο να μεταφερθεί στην επόμενη θέση

ΤΕΛΟΣ_ΑΝ

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

ΓΙΑ Ι ΑΠΟ J ΜΕΧΡΙ Ν ! Τα υπόλοιπα στοιχεία, όπου έχει φθάσει ο δείκτης j μέχρι και το Ν

Β [ Ι ] ← 0 ! τοποθετούμε 0

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

ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΥ 11Α

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν-1 !δεν ελέγχουμε το πρώτο και το τελευταίο, για να έχουμε σίγουρα επόμενο και προηγούμενο

ΑΝ Α[ Ι ] = 0 ΤΟΤΕ ! αν το στοιχείο είναι 0

Ανάπτυξη Εφαρμογών Σελίδα - 41 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Α [ Ι ] ← A[ I-1 ] + Α [ Ι + 1] ! προσθέτουμε το προηγούμενο και το επόμενο

(β) ΤΕΛΟΣ_ΑΝ

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

ΑΝ Α[1]=0 ΤΟΤΕ Α[1] ← Α[2] ! το πρώτο στοιχείο δεν έχει προηγούμενο, για να προσθέσουμε

ΑΝ Α[Ν]=0 ΤΟΤΕ Α[Ν] ← Α[Ν-1] ! το τελευταίο στοιχείο δεν έχει επόμενο

ΠΡΟΓΡΑΜΜΑ 11Γ

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : Α [10] , Ι

ΧΑΡΑΚΤΗΡΕΣ : Γ [10]

ΑΡΧΗ

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

ΑΝ Α[ Ι ] > 0 ΤΟΤΕ

(γ) ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ Α[ Ι ] ! προσθέτω τόσα αστεράκια στη θέση Γ [Ι] όσο το Α[Ι]

Γ [ Ι ] ←Γ [ Ι ] + “*“

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

ΑΛΛΙΩΣ Γ [ Ι ] ←““ ! μηδενισμός μεταβλητής χαρακτήρα (τίποτα)

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

ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ 11Γ

ΑΛΓΟΡΙΘΜΟΣ 11δ

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

Β [ Ι ] ← A[ Ν – Ι +1 ] !μεταφέρουμε σε άλλο πίνακα Β π.χ αν Ν=10 τότε την πρώτη φορά έχουμε Β[1]←Α[10], Β[2]←Α[9]...

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

ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΥ 11Α

12. Δίνεται ένας αριθμός – μισθός ενός εργαζομένου F. Να

αναπτυχθεί αλγόριθμος που θα υπολογίζει το πλήθος από κάθε χαρτονόμισμα και κέρμα, ώστε να

πληρώνεται ο υπάλληλος με το ελάχιστο δυνατό πλήθος χαρτονομισμάτων και κερμάτων.

ΛΥΣΗ

Π.χ έστω μισθός 1236 €. Απαιτεί 2 χαρτονομίσματα των 500€, 1 των 200, 1 των 100, 1 των 20, 1 των 10, 1 των 5, 1 του

1€. Αυτή είναι η βέλτιστη λύση, με κριτήριο το μικρότερο δυνατό πλήθος των νομισμάτων, που πρέπει να δοθούν ως

Ανάπτυξη Εφαρμογών Σελίδα - 42 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

μισθός στον εργαζόμενο. Πως, λοιπόν, σκεφτήκαμε; Στον παρακάτω πίνακα κάθε γραμμή αναπαριστά ένα διαδοχικό βήμα

της νοητικής επεξεργασίας, που κάναμε.

Ποσό Νόμισμα (€) Ακέραιο μέρος

διαίρεσης

Υπόλοιπο

1236 500 2 236

236 200 1 136

136 100 1 36

36 50 0 36

36 20 1 16

16 10 1 6

6 5 1 1

1 2 0 1

1 1 1 0

0 0.50 0 0

0 0.20 0 0

0 0.10 0 0

0 0.05 0 0

0 0.02 0 0

0 0.01 0 0

Άρα, ξεκινάμε με τον μισθό (F) και το μεγαλύτερο σε αξία νόμισμα (500 €) και κάνουμε την διαίρεση για να δούμε

πόσα νομίσματα πρέπει να δώσουμε (ακέραιο μέρος της διαίρεσης) και ποιο ποσό μας "περισσεύει" (υπόλοιπο της

διαίρεσης) για να συνεχίσουμε, ώστε να βρούμε ποια χαρτονομίσματα το αποτελούν. Η διαδικασία συνεχίζεται μέχρι

το υπόλοιπο κάποιας διαίρεσης να γίνει 0.

Χρησιμοποιούμε ένα διδιάστατο πίνακα P 15 γραμμών και 2 στηλών. Στην πρώτη στήλη φυλάμε την αξία των

δεκαπέντε νομισμάτων και στην δεύτερη το πιθανό πλήθος (αποτέλεσμα της διαίρεσης, που θα κάνουμε κατά την

επεξεργασία του αλγόριθμου) καθενός νομίσματος, ώστε να συμπληρωθεί ο μισθός.. Παρακάτω βλέπουμε την διάταξη

του πίνακα με τις αρχικές τιμές του.

Χρησιμοποιούμε μεταβλητή I σαν μετρητή για τα δεκαπέντε νομίσματα που υπάρχουν.

Χρησιμοποιούμε μεταβλητή Υ για να "φυλάμε" το εκάστοτε υπόλοιπο της διαίρεσης που κάνουμε.

Θεωρούμε ότι η συνάρτηση ΙΝΤ επιστρέφει το ακέραιο μέρος ενός αριθμού.

Στήλη 1 Στήλη 2

Γραμμή Νόμισμα Πλήθος

1 500 02 200 0

3 100 0

4 50 0

5 20 0

6 10 0

7 5 0

8 2 0

9 1 0

10 0.50 0

11 0.20 0

Δισδιάστατος Πίνακας P (15 γραμμών, 2 στηλών)

Ανάπτυξη Εφαρμογών Σελίδα - 43 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

12 0.10 0

13 0.05 0

14 0.02 0

15 0.01 0

ΠΡΟΓΡΑΜΜΑ 12Ο

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : Ι

ΠΡΑΓΜΑΤΙΚΕΣ : Ρ[15,2], F , Y

ΑΡΧΗ

P[1,1] ← 500, P[2,1] ←200, P[3,1] ←100 … P[15,1] ←0.01

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

Ρ [ I, 2 ] ← 0

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

ΓΡΑΨΕ ‘Δώσε τον μισθό του εργαζομένου:’

ΔΙΑΒΑΣΕ F

Ι ← 0: Y ← F

Όσο Ι < 15 και Υ > 0 Επανέλαβε

I ← I + 1

P [ I, 2 ] ← Α_Μ(Y / P [I ,1] )

Υ ← Υ - P [ I, 2 ]

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

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

ΓΡΑΨΕ ‘Χρειάζονται ‘, Ρ[Ι,2],’ των ‘, Ρ[Ι,1]

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

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ανάπτυξη Εφαρμογών Σελίδα - 44 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

1. Μια εταιρία πληρώνει τους υπαλλήλους της με μισθούς που είναι πολλαπλάσια των 100 €. Να

φτιάξετε πρόγραμμα που:

α. Να διαβάζει το πλήθος των υπαλλήλων.

β. Να διαβάζει το μισθό κάθε υπαλλήλου και να υπολογίζει (με τη χρήση υποπρογράμματος-

διαδικασίας) και να εκτυπώνει πόσα χαρτονομίσματα 500 €, 200 € και 100 € χρειάζονται για

την πληρωμή του υπαλλήλου.

γ. Να υπολογίζει και να εμφανίζει το συνολικό ποσό που χρειάζεται για τη μισθοδοσία.

δ. Να υπολογίζει και να εμφανίζει το σύνολο των χαρτονομισμάτων που χρειάζονται από κάθε

είδος.

ΠΡΟΓΡΑΜΜΑ 1Ο

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : Μισθός, πλ500, πλ200, πλ100, Σύνολομισθών, Πλήθος

ΑΚΕΡΑΙΕΣ : I, Αρ500, Αρ200, Αρ100

ΑΡΧΗ

Γράψε ‘Δώσε το πλήθος των Υπαλλήλων :’

Διάβασε Πλήθος

Σύνολομισθών ← 0 : Πλ500 ← 0: Πλ200 ← 0: Πλ100 ← 0 ! Μηδενίζω τις μεταβλητές αθροίσματα

Για I από 1 μέχρι Πλήθος

Γράψε ‘Δώσε το μισθό του’, Ι , ‘ ου Υπαλλήλου :’

Διάβασε Μισθός

Σύνολομισθών ← Σύνολομισθών + Μισθός

ΚΑΛΕΣΕ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 , Ι )

Πλ500 ← Πλ500 + Αρ500 ! Ενημερώνω τις μεταβλητές για τα σύνολα των χαρτονομισμάτων που

Πλ200 ← Πλ200 + Αρ200 ! θα χρειαστεί η εταιρεία για όλους του υπάλλήλους

Πλ100 ← Πλ100 + Αρ100

Τέλος_Επανάληψης

Γράψε ‘Η εταιρία θα χρειαστεί ’ , Πλ500, ‘ Πεντακοσάρικα ’, Πλ200, ‘ Διακοσάρικα ‘, Πλ100, ‘ Κατοστάρικα για να

πληρώσει συνολικά ‘, Σύνολομισθών , ‘ για ‘ , Πλήθος , ‘ Υπαλλήλους ‘

Τέλος_Προγράμματος 1ο

ΔΙΑΔΙΚΑΣΙΑ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 ,Ι )

ΜΕΤΑΒΛΗΤΕΣ

Ανάπτυξη Εφαρμογών Σελίδα - 45 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ΠΡΑΓΜΑΤΙΚΕΣ: ΜισθόςΑΚΕΡΑΙΕΣ : Ι, Αρ500, Αρ200, Αρ100

ΑΡΧΗ

Αρ500 ← Μισθός div 500

Αρ200 ← (Μισθός Mod 500) div 200

Αρ100 ← ((Μισθός Μod 500) Μod 200) div 100

Γράψε ‘Ο ‘, Ι , ‘ ος Υπάλληλος πρέπει να παραλάβει ‘, Αρ500, ‘ Πεντακοσάρικα ‘, Αρ200, ‘ διακοσάρικα και ‘,

Αρ100, ‘ κατοστάρικα ‘

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Οι μεταβλητές (Μισθός, Αρ500, Αρ200, Αρ100 ,Ι ) που δηλώνονται στη διαδικασία μπορεί να

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

εμβέλεια μόνο, όταν εκτελείται η διαδικασία.

Ας δούμε, μία προς μία, γιατί περνάμε σαν παραμέτρους κάθε μεταβλητή στη δήλωση.

ΔΙΑΔΙΚΑΣΙΑ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 ,Ι )

Μισθός : Γιατί πρέπει, να ξέρουμε το ποσό – μισθός, όταν μέσα στη διαδικασία θα ασχοληθούμε, για να βρούμε πόσα 500ρικα, 200ρικα, 100ρικα.

Αρ500, Αρ200, Αρ100 : Τις 3 μεταβλητές που αφορούν τον υπολογισμό των αντίστοιχων χαρτονομισμάτων δεν θα τις δηλώναμε σαν παραμέτρους. Δηλαδή θα είχαμε αυτό το πρόγραμμα :

ΚΑΛΕΣΕ Υπάλληλος ( Μισθός, Ι )

ΔΙΑΔΙΚΑΣΙΑ Υπάλληλος ( Μισθός, Ι )

ΜΕΤΑΒΛΗΤΕΣΠΡΑΓΜΑΤΙΚΕΣ: ΜισθόςΑΚΕΡΑΙΕΣ : Ι, Αρ500, Αρ200, Αρ100

ΑΡΧΗ

Αρ500 ← Μισθός div 500

Αρ200 ← (Μισθός Mod 500) div 200

Αρ100 ← ((Μισθός Μod 500) mod 200) div 100

Γράψε ‘Ο ‘, Ι , ‘ ος Υπάλληλος πρέπει να παραλάβει ‘, Αρ500, ‘ Πεντακοσάρικα ‘, Αρ200, ‘ διακοσάρικα και ‘,

Αρ100, ‘ κατοστάρικα ‘

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

αν απλά θέλαμε μόνο να εμφανίσουμε τα αποτελέσματα και τέλος!

Επειδή, όμως αυτά τα 3 νούμερα-μεταβλητές χρειάζονται στη συνέχεια του κυρίου προγράμματος για τον

υπολογισμό των αντίστοιχων συνολικών χαρτονομισμάτων,

Πλ500 ← Πλ500 + Αρ500

Πλ200 ← Πλ200 + Αρ200

Ανάπτυξη Εφαρμογών Σελίδα - 46 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Πλ100 ← Πλ100 + Αρ100

πρέπει οι τιμές που θα υπολογιστούν μέσα στη διαδικασία να μη χαθούν, αλλά να επιστραφούν στο

κυρίως πρόγραμμα γιατί χρειάζονται. Γι’ αυτό δηλώνουμε σαν παραμέτρους τις Αρ500, Αρ200,

Αρ100 (προσοχή του κυρίως προγράμματος-είναι διαφορετικές μεταβλητές, άσχετα αν έχουν το ίδιο

όνομα), ώστε να πραγματοποιηθεί (μέσω της αντιστοίχισης των μεταβλητών της διαδικασίας) η

επιστροφή των τιμών των μεταβλητών Αρ500, Αρ200, Αρ100 της διαδικασίας.

Ι : Χρειάζεται ο αύξων αριθμός του υπαλλήλου να περαστεί στη διαδικασία, ώστε να

χρησιμοποιηθεί στο μήνυμα της εμφάνισης.

Γράψε ‘Ο ‘, Ι , ‘ ος Υπάλληλος πρέπει να παραλάβει ‘, Αρ500, ‘ Πεντακοσάρικα ‘, Αρ200, ‘ διακοσάρικα και ‘, Αρ100, ‘ κατοστάρικα ‘

o Παρατηρούμε, λοιπόν, ότι όποια μεταβλητή είναι δηλωμένη σαν παράμετρος και αλλάζει η

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

αντίστοιχης –ΔΙΑΦΟΡΕΤΙΚΗΣ- μεταβλητής του κυρίου προγράμματος (επηρεασμό της). Στο

παράδειγμά μας αλλάζουν τιμές στις παρακάτω εντολές

Αρ500 ← Μισθός div 500

Αρ200 ← (Μισθός Mod 500) div 200

Αρ100 ← ((Μισθός Μod 500) mod 200) div 100

o Επίσης παρατηρούμε ότι υπάρχουν και μεταβλητές που δεν αλλάζουν τιμή κατά την εκτέλεση

της διαδικασίας ( Μισθός, Ι ). Χρειάζονται απλά για να «γνωρίζει» η διαδικασία κάποιες

απαραίτητες, για την δουλειά που πρέπει να κάνει, τιμές μεταβλητών από το κυρίως

πρόγραμμα.

o Επίσης μπορούμε να έχουμε μέσα σε μια διαδικασία και κάποιες μεταβλητές, που δηλώνονται

τοπικά (διαδικασία) στο τμήμα μεταβλητών, χρειάζονται μόνο για τοπική χρήση και δεν έχουν

καμία σχέση με το κυρίως πρόγραμμα.

Έστω, λοιπόν, ότι κατά την εκτέλεση του παραπάνω προγράμματος έχουμε και ενώ βρισκόμαστε στον πρώτο υπάλληλο τα παρακάτω στάδια :

Μισθός 2300 Μισθός 2300 2300 ΜισθόςΙ 1 Ι 1 1 Ι

Αρ500 Αρ500 Αρ500Αρ200 Αρ200 Αρ200Αρ100 Αρ100 Αρ100

Ανάπτυξη Εφαρμογών Σελίδα - 47 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Κυρίως Πρόγραμμα

Κυρίως Πρόγραμμα

Διαδικασία

(Α) (Β)Α. Κατάσταση πριν από την κλήση Β. Αντιστοίχιση και μεταβίβαση τιμών των μεταβλητών με την κλήση

Μισθός 2300 Μισθός 2300 2300 ΜισθόςΙ 1 Ι 1 1 Ι

Αρ500 4 Αρ500 4 4 Αρ500Αρ200 1 Αρ200 1 1 Αρ200Αρ100 1 Αρ100 1 1 Αρ100

Διαδικασία Κυρίως Πρόγραμμα

Διαδικασία

(Γ) (Δ)Γ. Εκχωρούνται οι τιμές στις 3 μεταβλητές που επηρεάζονται. Δ. Επιστρέφονται οι τιμές με το τέλος της διαδικασίας

Σημεία προσοχής:

1. Ο αριθμός των παραμέτρων κατά την κλήση και τη δήλωση της διαδικασίας πρέπει να είναι ίδιος.

ΚΑΛΕΣΕ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 , Ι )

ΔΙΑΔΙΚΑΣΙΑ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 ,Ι )

2. Οι μεταβλητές αντιστοιχούνται μία προς μία.

ΚΑΛΕΣΕ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 , Ι )

ΔΙΑΔΙΚΑΣΙΑ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 ,Ι )

3. Άρα, για να μπορεί να γίνει η αντιστοίχηση, πρέπει οι μεταβλητές – παράμετροι να είναι του

ιδίου τύπου δεδομένων (Χαρακτήρες, Ακέραιες, Πραγματικές, Λογικές)

Ανάπτυξη Εφαρμογών Σελίδα - 48 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Δεν έχει καμία σχέση, ότι για τις διαφορετικές μεταβλητές (σαν περιεχόμενο) χρησιμοποιήσαμε

το ίδιο όνομα. Το πρόγραμμα θα μπορούσε να είχε (χρησιμοποιώντας διαφορετικά ονόματα

μεταβλητών στο κυρίως πρόγραμμα και στην διαδικασία) ως εξής:

ΠΡΟΓΡΑΜΜΑ 1Ο

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : Μισθός, πλ500, πλ200, πλ100, Σύνολομισθών, Πλήθος

ΑΚΕΡΑΙΕΣ : I, Αρ500, Αρ200, Αρ100

ΑΡΧΗ

Γράψε ‘Δώσε το πλήθος των Υπαλλήλων :’

Διάβασε Πλήθος

Σύνολομισθών ← 0 : Πλ500 ← 0: Πλ200 ← 0: Πλ100 ← 0 ! Μηδενίζω τις μεταβλητές αθροίσματα

Για I από 1 μέχρι Πλήθος

Γράψε ‘Δώσε το μισθό του’, Ι , ‘ ου Υπαλλήλου :’

Διάβασε Μισθός

Σύνολομισθών ← Σύνολομισθών + Μισθός

ΚΑΛΕΣΕ Υπάλληλος ( Μισθός, Αρ500, Αρ200, Αρ100 , Ι )

Πλ500 ← Πλ500 + Αρ500 ! Ενημερώνω τις μεταβλητές για τα σύνολα των χαρτονομισμάτων που

Πλ200 ← Πλ200 + Αρ200 ! θα χρειαστεί η εταιρεία για όλους του υπάλλήλους

Πλ100 ← Πλ100 + Αρ100

Τέλος_Επανάληψης

Γράψε ‘Η εταιρία θα χρειαστεί ‘, Πλ500, ‘ Πεντακοσάρικα ‘, Πλ200, ‘ Διακοσάρικα ‘, Πλ100, ‘ Κατοστάρικα για να

πληρώσει συνολικά ‘, Σύνολομισθών , ‘ για ‘ , Πλήθος , ‘ Υπαλλήλους ‘

Τέλος_Προγράμματος 1ο

ΔΙΑΔΙΚΑΣΙΑ Υπάλληλος ( ΜισθόςΔ, Αρ500Δ, Αρ200Δ, Αρ100Δ ,Ι )

ΜΕΤΑΒΛΗΤΕΣΠΡΑΓΜΑΤΙΚΕΣ: ΜισθόςΔΑΚΕΡΑΙΕΣ : Ι, Αρ500Δ, Αρ200Δ, Αρ100Δ

ΑΡΧΗ

Αρ500Δ ← ΜισθόςΔ div 500

Αρ200Δ ← (ΜισθόςΔ Mod 500) div 200

Αρ100Δ ← ((ΜισθόςΔ Μod 500) mod 200) div 100

Γράψε ‘Ο ‘, Ι , ‘ ος Υπάλληλος πρέπει να παραλάβει ‘, Αρ500Δ, ‘ Πεντακοσάρικα ‘, Αρ200Δ, ‘ διακοσάρικα

και ‘, Αρ100Δ, ‘ κατοστάρικα ‘

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Ανάπτυξη Εφαρμογών Σελίδα - 49 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

2. Να γραφεί πρόγραμμα που να υπολογίζει το παρακάτω άθροισμα :

!...

!4!3!2!11

4321

n

xxxxxs

n

++++++=

Υπόδειξη : n! = 1 * 2 * 3 * … (n-1) * n.

ΠΡΟΓΡΑΜΜΑ 2Ο

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : S, X , N , Κλάσμα , Ι

ΑΡΧΗ

Γράψε ‘Δώσε το Χ:’

Διάβασε Χ

Γράψε ‘Δώσε το Ν:’

Διάβασε Ν

S←1 ! Το άθροισμα ξεκινά με 1

Για I από 1 μέχρι Ν

Κλάσμα ← Χ^I / Παραγοντικό(I) ! Υπολογίσουμε τον νέο όρο-κλάσμα της σειράς

S← S + Κλάσμα ! Προσθέτουμε το νέο όρο στο άθροισμα

Τέλος_Επανάληψης

Γράψε ‘Το άθροισμα για Χ=’, Χ,’ και Ν=’, Ν,’ είναι :’, S

Τέλος_Προγράμματος 2ο

ΣΥΝΑΡΤΗΣΗ Παραγοντικό ( Ν ) : ΑΚΕΡΑΙΗ

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : Ι, Γινόμενο, Ν

ΑΡΧΗ

Γινόμενο ← 1

Για Ι από 2 μέχρι Ν

Γινόμενο ← Γινόμενο * Ι

Τέλος_Επανάληψης

Παραγοντικό ← Γινόμενο

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

Η συνάρτηση είναι και αυτή ένα υποπρόγραμμα αλλά επιστρέφει μία τιμή, όταν την καλούμε απλά με

το όνομά της.

Έχει και αυτή τις παραμέτρους της (στο παράδειγμά μας Ν, ποιανού αριθμού το παραγοντικό να βρει).

Ανάπτυξη Εφαρμογών Σελίδα - 50 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Πρέπει όμως υποχρεωτικά να δηλώσουμε μετά τις παραμέτρους της τον τύπο δεδομένων της τιμής

που θα επιστρέψει. Άνω και κάτω τελεία, λοιπόν, και έναν από τους 4 γνωστούς τύπους δεδομένων.

ΣΥΝΑΡΤΗΣΗ Παραγοντικό ( Ν ) : ΑΚΕΡΑΙΗ

Αφού γράψουμε τις εντολές που υλοποιούν την εργασία που θέλουμε να πραγματοποιήσουμε σ’ αυτό

το υποπρόγραμμα-συνάρτηση ακολουθούμε τους ίδιους κανόνες με τις διαδικασίες.

Πρέπει υποχρεωτικά, όμως τελειώνοντας να εξασφαλίσουμε ότι τελειώνοντας (σε οποιαδήποτε

εξέλιξη από τις πολλές πιθανές του αλγόριθμου ) θα δώσουμε μία τιμή στην συνάρτηση. Το όνομά της

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

στο όνομα της.

Παραγοντικό ← Γινόμενο

Η κλήση μια συνάρτησης δεν γίνεται, όπως με μια διαδικασία με την εντολή ΚΑΛΕΣΕ.

Είναι λάθος να γράψουμε σαν εντολή απλά

Παραγοντικό (Ν)

Αυτό ( Παραγοντικό ( Ν ) ή π.χ. Παραγοντικό (4) ) είναι μία τιμή, ένα νούμερο, χαρακτήρες πιθανά

που μπορούμε να το χρησιμοποιήσουμε ως εξής :

Να το εκτυπώσουμε αμέσως

Γράψε ‘Το παραγοντικό του 4 είναι:’, Παραγοντικό (4)

Να το εκχωρήσουμε σε μία μεταβλητή (εννοείται του ιδίου πάντα τύπου) μόνο του

Α ← Παραγοντικό (4)

Ή σαν τμήμα μιας έκφρασης

Α ← Α^2 + Παραγοντικό (4)

Να ρωτήσουμε αμέσως γι’ αυτό

Αν Παραγοντικό (4)=13 Τότε <εντολές>

ή Για Ι από 1 μέχρι Παραγοντικό (4)

Γράψε Ι

Τέλος_Επανάληψης

Αυτή η «στρατηγική», μεθοδολογία δημιουργία προγραμμάτων έχει πολλά πλεονεκτήματα.

Μας επιτρέπει να αντιμετωπίζουμε ανεξάρτητα κάθε κομμάτι ενός προβλήματος και όχι όλα μαζί,

οπότε μειώνονται οι πιθανότητες λαθών λόγω της μείωσης της πολυπλοκότητας και της

αλληλοδιαπλοκής μεταβλητών και κομματιών ενός τεράστιου προγράμματος που μοιράζεται κοινούς

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

Ανάπτυξη Εφαρμογών Σελίδα - 51 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Επίσης κάποιες δουλειές (διαδικασίες, συναρτήσεις) που γίνονται συχνά και τις χρησιμοποιούμε

σχεδόν σε κάθε πρόγραμμα δεν χρειάζεται να τις ξαναγράφουμε. Άρα, οικονομία χώρου-μνήμης στο

πρόγραμμά μας.

Αντιμετωπίζουμε το πρόβλημα μία φορά κάνοντας μία συνάρτηση ή διαδικασία και τις

συλλέγουμε σε βιβλιοθήκες όπως της λέμε μεταφορικά. Έτσι όταν γράφετε σε κάποιον αλγόριθμό σας

Α ← Τ_Ρ(7) καλείται την συνάρτηση Τ_Ρ (που θα μας επιστρέψει την τετραγωνική ρίζα της

μοναδικής παραμέτρου της με τιμή 7). Κάποιος προγραμματιστής έχει ετοιμάσει αυτό το

υποπρόγραμμα-συνάρτηση, για να μη «παιδεύεται» ξανά και ξανά αυτός και εμείς και εμείς το

χρησιμοποιούμε τόσο απλά, έχοντας τη σιγουριά ότι το αποτέλεσμα θα είναι σωστό οπότε κρατάμε

την «φαιά ουσία» μας για άλλα άλυτα θέματα που έχουμε να αντιμετωπίσουμε για πρώτη φορά!

ΑΣΚΗΣΕΙΣ

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

Α.Α ← 5Β ← 10ΚΑΛΕΣΕ ΔΙΑΔ1 (Α,Β)ΓΡΑΨΕ Α,Β…..ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ1 (Β,Α)..…ΑΡΧΗ Α ← Α+Β Β ← Β-ΑΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Β.Β ← 10ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 5 Α ← Ι ΚΑΛΕΣΕ ΔΙΑΔ1 (Α,Β) ΓΡΑΨΕ Α,Β, Ι

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

…..ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ1 (Β,Α)..…ΑΡΧΗ Α ← Α^2 Β ← Β+ΑΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Γ.Β ← 20ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 9 ΜΕ_ΒΗΜΑ 3 Α ← Ι Β ← B - Ι ΚΑΛΕΣΕ ΔΙΑΔ1 (Α,Β) ΓΡΑΨΕ Α,Β, Ι^2

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

…..ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ1 (Β,Α)..…ΑΡΧΗ Αν Α Mod 2=1 ΤΟΤΕ Α ← A mod B Αλλιώς Β ← A div B Τέλος_ανΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

2. Να σχηματίσετε τον πίνακα τιμών του παρακάτω αλγορίθμου. Τι θα εκτυπωθεί;

ΠΡΟΓΡΑΜΜΑ Πίνακας_Τιμών1

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: Α, Β

ΑΡΧΗ

Α <– 23

Ανάπτυξη Εφαρμογών Σελίδα - 52 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Β <– 2

ΚΑΛΕΣΕ Επεξεργασία_Τιμών1 (Α, Β)

ΓΡΑΨΕ Α, Β

ΚΑΛΕΣΕ Επεξεργασία_Τιμών1 (Β, Α)

ΓΡΑΨΕ Α, Β

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

! =========================================

ΔΙΑΔΙΚΑΣΙΑ Επεξεργασία_Τιμών1 (αριθμός1, αριθμός2)

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: αριθμός1, αριθμός2

ΑΡΧΗ

ΟΣΟ (αριθμός1 > αριθμός2) ΕΠΑΝΑΛΑΒΕ

αριθμός1 <– αριθμός1 DIV 2

αριθμός2 <– 2 * αριθμός2

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

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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 παρουσιάζεται στον παρακάτω πίνακα:

Κλιμάκιο

εισοδήματος

Φορολογικός

συντελεστής

Φόρος

κλιμακίου

Σύνολο

εισοδήματος

Σύνολο

φόρου3000€ 0% 0 3000€ 03500€ 5% 175€ 6500€ 175€3500€ 15% 525€ 10000€ 700€8000€ 30% 2400€ 18000€ 3100€

20000€ 40% 8000€ 38000€ 11100€Υπερβάλλον 45%

Το πρόγραμμα να διαβάζει το φορολογητέο ποσό από την οθόνη, να καλεί μία συνάρτηση ή μια διαδικασία για

τον υπολογισμό του φόρου και να εμφανίζει το αποτέλεσμα στην οθόνη.

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 ΤΟΤΕ ! την μεταβλητή Επιλογή. Ανάλογα καλούμε και την διαδικασία που έχουμε φτιάξει για κάθε δουλειά.

ΚΑΛΕΣΕ ΔιάβασμαΣτοιχείων (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ)

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 2 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή2 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ, ΜΟ, ΟΚ_ΜΟ)

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 3 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή3 (ΒΑΘΜΟΙ, ΜΑΘΗΜΑ, ΜΟΤ, ΟΚ_ΜΟΤ)

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 4 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή4 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ, ΜΟΤ, ΟΚ_ΜΟΤ)

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 5 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή5 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ)

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 6 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή6

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 7 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή7

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 8 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή8 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΟ, ΟΚ_ΜΟ)

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 9 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή9 (ΟΝΟΜΑ, ΒΑΘΜΟΙ )

ΑΛΛΙΩΣ_ΑΝ Επιλογή = 10 ΤΟΤΕ

ΚΑΛΕΣΕ Επιλογή10

ΤΕΛΟΣ_ΑΝ

ΜΕΧΡΙΣ_ΟΤΟΥ Επιλογή=10

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ανάπτυξη Εφαρμογών Σελίδα - 60 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ΔΙΑΔΙΚΑΣΙΑ ΜενούΕπιλογών (Επιλογή)

ΜΕΤΑΒΛΗΤΕΣ

Ακέραιες : Επιλογή

ΑΡΧΗ

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

ΓΡΑΨΕ ‘1. Διάβασμα-Εισαγωγή στοιχείων’

ΓΡΑΨΕ ‘2. Τα ονόματα των μαθητών και το τελικό βαθμό τους - μέσο όρο, κατά φθίνουσα σειρά, με κριτήριο το

μέσο όρο τους’

ΓΡΑΨΕ ‘3. Το μέσο όρο των βαθμών της τάξης σε κάθε μάθημα’

ΓΡΑΨΕ ‘4. Τα ονόματα των μαθητών και μόνο τους βαθμούς τους σε όλα τα μαθήματα που είναι πάνω από το

μέσο όρο της τάξης σε κάθε μάθημα.’

ΓΡΑΨΕ ‘5. Τον μαθητή, μαθητές με το μεγαλύτερο βαθμό σε δοσμένο μάθημα’

ΓΡΑΨΕ ‘6. Τον μαθητή, μαθητές με το μικρότερο βαθμό σε δοσμένο μάθημα’

ΓΡΑΨΕ ‘7. Ταξινομημένους σε φθίνουσα διάταξη, τους μαθητές με κριτήριο τον βαθμός τους σε δοσμένο

μάθημα’

ΓΡΑΨΕ ‘8. Τους μαθητές που προάγονται (μέσος όρος > 9,5 και απουσίες <64 ) και αυτούς που απορρίπτονται.’

ΓΡΑΨΕ ‘9. Τον μαθητή με τις λιγότερες και περισσότερες απουσίες.’

ΓΡΑΨΕ ’10. ΤΕΡΜΑΤΙΣΜΟΣ’

ΓΡΑΨΕ ‘------------------------------------------------------------------------------------------------------‘

ΓΡΑΨΕ ‘ΔΏΣΕ ΤΗΝ ΕΠΙΛΟΓΗ ΣΟΥ (1-10):’

ΔΙΑΒΑΣΕ Επιλογή

ΜΕΧΡΙΣ_ΟΤΟΥ (Επιλογή >=1) ΚΑΙ (ΕΠΙΛΟΓΗ <=10)

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΔιάβασμαΣτοιχείων (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ)

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές: ΒΑΘΜΟΙ(15,5)

Ακέραιες: I, J

Χαρακτήρες: ΟΝΟΜΑ(15), ΜΑΘΗΜΑ(4)

ΑΡΧΗ

ΓΙΑ Ι ΑΠΟ Ι ΜΕΧΡΙ 15

ΓΡΑΨΕ ‘Δώσε το όνομα του μαθητή:’

ΔΙΑΒΑΣΕ ΟΝΟΜΑ( Ι )

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

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

ΓΡΑΨΕ ‘Δώσε τον βαθμό του μαθητή (1-20) στο μάθημα ’, ΜΑΘΗΜΑ(J),’ :’

ΔΙΑΒΑΣΕ ΒΑΘΜΟΙ( Ι, J )

ΜΕΧΡΙΣ_ΟΤΟΥ (ΒΑΘΜΟΙ ( Ι, J) >=1) ΚΑΙ (ΒΑΘΜΟΙ( I , J ) <=20)

ΤΕΛΟΣ_ΓΙΑ

ΓΡΑΨΕ ‘Δώσε τις απουσίες του μαθητή ’,ΟΝΟΜΑ(Ι),’ :’

ΔΙΑΒΑΣΕ ΒΑΘΜΟΙ(Ι,5)

ΤΕΛΟΣ_ΓΙΑ

Ανάπτυξη Εφαρμογών Σελίδα - 61 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΜΟ_ΜΑΘΗΤΩΝ (ΒΑΘΜΟΙ, ΜΟ, ΟΚ_ΜΟ)

! Υπολογίζει τους μέσους όρους των μαθητών στον πίνακα ΜΟ(15)

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΟ(15)

Ακέραιες : I, J

Λογικές : ΟΚ_ΜΟ

ΑΡΧΗ

ΑΝ ΟΚ_ΜΟ = ΨΕΥΔΗΣ ΤΟΤΕ ! Μόνο αν δεν έχει περάσει ξανά από δω να υπολογίσει τους μέσους όρους

ΓΙΑ Ι ΑΠΟ Ι ΜΕΧΡΙ 15

ΜΟ(Ι) ← 0

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

ΜΟ(Ι) ←ΜΟ(Ι) + ΒΑΘΜΟΙ(Ι,J)

ΤΕΛΟΣ ΓΙΑ

ΜΟ(Ι) ←ΜΟ(Ι) / 4

ΤΕΛΟΣ_ΓΙΑ

ΟΚ_ΜΟ ← Αληθές ! Ενημερώνω την μεταβλητή ένδειξη, για να μην κληθεί ξανά άσκοπα η παρούσα διαδικασία υπολογισμού του

μέσου όρου μαθητών. Μία φορά μόνο χρειάζεται.

ΤΕΛΟΣ_ΑΝ ! ΟΚ_ΜΟ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή2 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ, ΜΟ, ΟΚ_ΜΟ)

! Τα ονόματα των μαθητών και το τελικό βαθμό τους - μέσο όρο, κατά φθίνουσα σειρά, με κριτήριο το μέσο όρο τους

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΟ(15), ΜΟ2(15), Help

Ακέραιες : I, J

Χαρακτήρες : ΟΝΟΜΑ(15), ΜΑΘΗΜΑ(4), ΟΝΟΜΑ2(15), HelpΧ

ΑΡΧΗ

!Χρειάζομαι να εξασφαλίσω ότι έχουν υπολογιστεί οι μέσοι όροι των μαθητών. Γι’ αυτό καλώ τη σχετική διαδικασία. Αν έχουν πιθανά

υπολογιστεί οι μέσοι όροι επειδή έχουν κληθεί από την 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 ΜΟ21 Κώστας 13,12 Γιάννης 15,2 j-2=23 Χρήστος 14,3 J=3 4 Πέτρος 17,3

!Χρησιμοποιώντας την βοηθητική μεταβλητή Help κάνουμε την ανταλλαγή των δύο αριθμών .

Help ← ΜΟ2(J-1)

j-1=2 15,2 HelpJ=3 14,3

ΜΟ2(J-1) ← MO2(J)

j-1=2 15,2 HelpJ=3 14,3 15,2

ΜΟ2(J) ← Help

j-1=2 14,3 HelpJ=3 14,3 15,2

Οπότε πραγματοποιήθηκε η ανταλλαγή

!(προσέξτε τη σειρά των εντολών, αλλιώς μπορεί να χαθεί οριστικά κάποιος αριθμός.)

j-1=2 14,3 HelpJ=3 15,2 15,2

!Όμως τώρα τα στοιχεία δεν ανταποκρίνονται στην πραγματικότητα γιατί το 14,3 είναι του Χρήστου και όχι του Γιάννη μιας και υπάρχει

λογική αντιστοιχία των γραμμών στους διαφορετικούς (λόγους τύπου δεδομένων) πίνακες.

ΟΝΟΜΑ2 ΜΟ21 Κώστας 13,12 Γιάννης 14,33 Χρήστος 15,4 4 Πέτρος 17,3

!Γι’ αυτό, όταν κάνουμε ανταλλαγή των βαθμών πρέπει ταυτόχρονα να ανταλλάξουμε και τα ονόματα, ώστε να υπάρχει αντιστοιχία

μεταξύ τους στους τελικούς ταξινομημένους με κριτήριο τον βαθμό μέσου όρου (πίνακα ΜΟ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

ΓΡΑΨΕ ‘ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΜΑΘΗΤΗ, ΒΑΘΜΟΣ’

ΓΡΑΨΕ ‘-----------------------------------------------------------------‘

ΓΙΑ Ι ΑΠΟ 15 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ –1

ΓΡΑΨΕ ΟΝΟΜΑ2 (Ι),’ ’, ΜΟ2(Ι)

ΤΕΛΟΣ_ΓΙΑ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΜΟ_ΤΑΞΗΣ (ΒΑΘΜΟΙ, ΜΟΤ, ΟΚ_ΜΟΤ)

! Υπολογίζει τους μέσους όρους τάξης σε κάθε μάθημα στον πίνακα ΜΟ(4)

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΟΤ(4)

Ακέραιες : I, J

Λογικές : ΟΚ_ΜΟΤ

ΑΡΧΗ

ΑΝ ΟΚ_ΜΟΤ = ΨΕΥΔΗΣ ΤΟΤΕ ! Μόνο αν δεν έχει περάσει ξανά από δω να υπολογίσει τους μέσους όρους

ΓΙΑ J ΑΠΟ Ι ΜΕΧΡΙ 4

ΜΟT(J) ← 0

ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 15

ΜΟT(J) ← ΜΟT(J) + ΒΑΘΜΟΙ(Ι,J)

ΤΕΛΟΣ_ΓΙΑ

ΜΟΤ(J) ←ΜΟΤ(J) / 15

ΤΕΛΟΣ_ΓΙΑ

ΟΚ_ΜΟΤ ← Αληθές ! Ενημερώνω την μεταβλητή ένδειξη, για να μην κληθεί ξανά άσκοπα η παρούσα διαδικασία !

υπολογισμού του μέσου όρου τάξης σε κάθε μάθημα. Μία φορά μόνο χρειάζεται.

ΤΕΛΟΣ_ΑΝ ! ΟΚ_ΜΟΤ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή3 (ΒΑΘΜΟΙ, ΜΑΘΗΜΑ, ΜΟΤ, ΟΚ_ΜΟΤ)

! Το μέσο όρο των βαθμών της τάξης σε κάθε μάθημα

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΟΤ(4)

Ακέραιες : I, J

Χαρακτήρες : ΜΑΘΗΜΑ(4)

ΑΡΧΗ

Ανάπτυξη Εφαρμογών Σελίδα - 64 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

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

οι μέσοι όροι επειδή έχουν κληθεί από την 4η διαδικασία-επιλογή (επειδή και αυτή την χρειάζεται) η μεταβλητή ΟΚ_ΜΟΤ θα είναι αληθής

και η διαδικασία ΜΟ_ΜΟ_ΤΑΞΗΣ δεν θα εκτελέσει άσκοπες εντολές.

ΚΑΛΕΣΕ ΜΟ_ΤΑΞΗΣ (ΒΑΘΜΟΙ, ΜΟΤ, ΟΚ_ΜΟΤ)

!Εμφάνιση των μέσων όρων τάξης

ΓΙΑ J ΑΠΟ Ι ΜΕΧΡΙ 4

Γράψε ‘Στο μάθημα ’, ΜΑΘΗΜΑ(J),’ ο μέσος όρος της τάξης είναι:’ , ΜΟΤ(J)

ΤΕΛΟΣ_ΓΙΑ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή4 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ, ΜΟΤ, ΟΚ_ΜΟΤ)

! Τα ονόματα των μαθητών και μόνο τους βαθμούς τους σε όλα τα μαθήματα που είναι πάνω από το μέσο όρο της τάξης σε κάθε μάθημα

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΟΤ(4)

Ακέραιες : I, J

Χαρακτήρες : ΟΝΟΜΑ(15), ΜΑΘΗΜΑ(4)

ΑΡΧΗ

!Χρειάζομαι να εξασφαλίσω ότι έχουν υπολογιστεί οι μέσοι όροι τάξης. Γι’ αυτό καλώ τη σχετική διαδικασία.

ΚΑΛΕΣΕ ΜΟ_ΤΑΞΗΣ (ΒΑΘΜΟΙ, ΜΟΤ, ΟΚ_ΜΟΤ)

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 15 !Σαρώνω τις γραμμές

ΓΡΑΨΕ ΟΝΟΜΑ(Ι) ! Γράφω το όνομα μαθητή

ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 4 !Σαρώνω τις στήλες

ΑΝ ΒΑΘΜΟΙ(Ι,J) > MOT(J) TOTE !Τυπώνω τον βαθμό μόνο αν είναι μεγαλύτερος του ΜΟΤ

ΓΡΑΨΕ ‘Στο Μάθημα:’,ΜΑΘΗΜΑ(J),’ έχει βαθμό:’, ΒΑΘΜΟΙ(Ι,J)

ΤΕΛΟΣ_ΑΝ

TΕΛΟΣ_ΓΙΑ

TΕΛΟΣ_ΓΙΑ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή5 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΑΘΗΜΑ)

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

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΑΧ, ΒΑΘ(15), Help

Ακέραιες : I, J, Στήλη, Θέση

Χαρακτήρες : ΟΝΟΜΑ(15), ΜΑΘΗΜΑ(4), ΟΝΟΜΑ2(15), HelpX

ΑΡΧΗ

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

ΓΡΑΨΕ ‘1. φυσική 2. βιολογία 3. ιστορία 4.χημεία :’

ΓΡΑΨΕ ‘ Σε ποιο μάθημα θέλεις να δεις τον-τους καλύτερους μαθητές ;

Ανάπτυξη Εφαρμογών Σελίδα - 65 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

ΔΙΑΒΑΣΕ Στήλη

ΜΕΧΡΙΣ_ΟΤΟΥ Στήλη >=1 ΚΑΙ Στήλη <=4

! 1 ος τρόπος

ΜΑΧ← ΒΑΘΜΟΙ(1, Στήλη) ! Ο πρώτος είναι ο μεγαλύτερος

Θέση←1 !Σημειώνω και την θέση του, γιατί χρειάζομαι το όνομά του αργότερα

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 15 !περνώ από την 2 μέχρι την τελευταία γραμμή

ΑΝ ΒΑΘΜΟΙ(Ι, Στήλη) > ΜΑΧ ΤΟΤΕ !Αν βρω καινούριο μεγαλύτερο

ΜΑΧ← ΒΑΘΜΟΙ(Ι, Στήλη) ! Τον φυλάω στην ΜΑΧ

Θέση←Ι ! Σημειώνω τη θέση του

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ

ΓΡΑΨΕ ‘Ο Μαθητής‘ , ΟΝΟΜΑ(Θέση), ‘ έχει τον καλύτερο βαθμό ’,ΜΑΧ,’ στο μάθημα ’, ΜΑΘΗΜΑ(Στήλη)

!Υπάρχει όμως περίπτωση να έχουν και άλλοι μαθητές τον ίδιο βαθμό, οπότε πρέπει να σαρώσουμε ξανά τον πίνακα για την ανεύρεση

τυχόν τέτοιων, με ακριβώς ίδιο βαθμό ΜΑΧ

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

ΑΝ Ι <> Θέση ΤΟΤΕ !Για να μην εμφανίσουμε ξανά τον πρώτο που βρήκαμε

ΑΝ ΒΑΘΜΟΙ(Ι,Στήλη)=ΜΑΧ ΤΟΤΕ

ΓΡΑΨΕ ‘Ο Μαθητής‘ , ΟΝΟΜΑ(Ι), ‘ έχει επίσης τον καλύτερο βαθμό’, ΒΑΘΜΟΙ(Ι,Στήλη),’ στο

μάθημα ’, ΜΑΘΗΜΑ(Στήλη)

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ

!2 ος τρόπος. Ταξινομούμε την στήλη των βαθμών του μαθήματος (συνοδευόμενη βέβαια από τα αντίστοιχα ονόματα. Οπότε κάτω θα

βρεθούν οι μεγαλύτεροι βαθμοί.

!Διαλέγετε όποιον τρόπο θέλετε (και φυσικά, αν χρειαστεί, γράφετε έναν μόνο!!!

!Πρώτα, μεταφορά των στοιχείων σε βοηθητικούς πίνακες, για να μην επηρεαστούν τα πρωτογενή στοιχεία.

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

ΟΝΟΜΑ2(Ι) ←ΟΝΟΜΑ(Ι)

ΒΑΘ(Ι) ←ΒΑΘΜΟΙ(Ι,Στήλη)

ΤΕΛΟΣ_ΓΙΑ

!ταξινόμηση του πίνακα ΒΑΘ με ταυτόχρονη ενημέρωση του ΟΝΟΜΑ2

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 15

ΓΙΑ J ΑΠΟ 15 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ –1

ΑΝ ΒΑΘ (J-1) < ΒΑΘ (J) ΤΟΤΕ

Help ← ΒΑΘ (J-1)

ΒΑΘ (J-1) ← ΒΑΘ (J)

ΒΑΘ (J) ← Help

Ανάπτυξη Εφαρμογών Σελίδα - 66 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

HelpΧ ← ΟΝΟΜΑ2 (J-1)

ΟΝΟΜΑ2 (J-1) ← ΟΝΟΜΑ2 (J)

ΟΝΟΜΑ2 (J) ← HelpΧ

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ

ΤΕΛΟΣ_ΓΙΑ

!O 15ος (κάτω) είναι ο καλύτερος, γιατί τα μεγαλύτερα πηγαίνουν δεξιά-κάτω (ανάλογα πως το φαντάζεστε στο μυαλό σας οριζόντια ή

κάθετα

ΓΡΑΨΕ ‘Ο Μαθητής‘ , ΟΝΟΜΑ2(15), ‘ έχει τον καλύτερο βαθμό’, ΒΑΘ(15),’ στο μάθημα ’, ΜΑΘΗΜΑ(Στήλη)

!Αν υπάρχουν ισόβαθμοι θα βρίσκονται πάνω του (14η 13η θέση) σε κάποιο σημείο θα διαφοροποιείται ο βαθμός. Εμείς πρέπει να

ξεκινήσουμε από την 14 θέση και όσο δεν είναι διαφορετικός με τον καλύτερο 15ο να τυπώνουμε τα ονόματα και τους βαθμούς τους.

I←14 ! δείκτης θέσης που βρίσκομαι. Ξεκινώ από την 14η. Μπορεί με την πρώτη σύγκριση στο όσο να μην βρω ισόβαθμο, !οπότε

τελείωσε.

ΌΣΟ ΒΑΘ(15)=ΒΑΘ(Ι) ΕΠΑΝΕΛΑΒΕ

ΓΡΑΨΕ ‘Ο Μαθητής‘ , ΟΝΟΜΑ2(Ι), ‘ έχει επίσης τον καλύτερο βαθμό’, ΒΑΘ(Ι),’ στο μάθημα ’,

ΜΑΘΗΜΑ(Στήλη)

Ι ← Ι-1 !πηγαίνουμε μία θέση πάνω

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

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή6 ()

! Τον μαθητή, μαθητές με το μικρότερο βαθμό σε δοσμένο μάθημα

ΑΡΧΗ

ΓΡΑΨΕ ‘Αφήνεται για εξάσκηση στον μαθητή…’

ΓΡΑΨΕ ‘Αν πραγματικά κατανόησε (με βάση την ΔΙΑΔΙΚΑΣΙΑ Επιλογή5) πρέπει να μπορεί μόνος του να

γράψει αυτή την διαδικασία με έναν από τους 2 τρόπους που παρουσιάστηκαν!’

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή7 ()

! Ταξινομημένους σε φθίνουσα διάταξη, τους μαθητές με κριτήριο τον βαθμός τους σε δοσμένο μάθημα

ΑΡΧΗ

ΓΡΑΨΕ ‘Αφήνεται για εξάσκηση στον μαθητή…’

ΓΡΑΨΕ ‘Αν πραγματικά κατανόησε (με βάση την ΔΙΑΔΙΚΑΣΙΑ Επιλογή2) πρέπει να μπορεί μόνος του να

γράψει αυτή την διαδικασία!’

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή8 (ΟΝΟΜΑ, ΒΑΘΜΟΙ, ΜΟ, ΟΚ_ΜΟ)

! Τους μαθητές που προάγονται (μέσος όρος > 9,5 και απουσίες <64 ) και αυτούς που απορρίπτονται.

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), ΜΟ(15)

Άσκηση για τον μαθητή

Άσκηση για τον μαθητή

Ανάπτυξη Εφαρμογών Σελίδα - 67 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Ακέραιες : I, J

Χαρακτήρες : ΟΝΟΜΑ(15)

Λογικές : ΟΚ_ΜΟ

ΑΡΧΗ

!Χρειάζομαι να εξασφαλίσω ότι έχουν υπολογιστεί οι μέσοι όροι των μαθητών. Γι’ αυτό καλώ τη σχετική διαδικασία. Αν έχουν πιθανά

υπολογιστεί οι μέσοι όροι επειδή έχουν κληθεί από την 2η διαδικασία-επιλογή (επειδή και αυτή την χρειάζεται) η μεταβλητή ΟΚ_ΜΟ θα

είναι αληθής και η διαδικασία ΜΟ_ΜΑΘΗΤΩΝ δεν θα εκτελέσει άσκοπες εντολές.

ΚΑΛΕΣΕ ΜΟ_ΜΑΘΗΤΩΝ (ΒΑΘΜΟΙ, ΜΟ, ΟΚ_ΜΟ)

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

ΑΝ ΜΟ(Ι)>9,5 ΚΑΙ ΒΑΘΜΟΙ(Ι,5)<=64 ΤΟΤΕ

ΓΡΑΨΕ ‘Ο μαθητής ’, ΟΝΟΜΑ(Ι),’ προάγεται με γενικό μέσο όρο:’, ΜΟ(Ι)

ΑΛΛΙΩΣ

ΑΝ ΒΑΘΜΟΙ(Ι,5)<=64 ΤΟΤΕ

ΓΡΑΨΕ ‘Ο μαθητής ’, ΟΝΟΜΑ(Ι),’ απορρίπτεται λόγω απουσιών:’, ΒΑΘΜΟΙ(Ι,5)

ΑΛΛΙΩΣ

ΓΡΑΨΕ ‘Ο μαθητής ’, ΟΝΟΜΑ(Ι),’ απορρίπτεται λόγω βαθμών:’, ΜΟ(Ι)

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή9 (ΟΝΟΜΑ, ΒΑΘΜΟΙ )

! Τον μαθητή με τις λιγότερες και περισσότερες απουσίες

ΜΕΤΑΒΛΗΤΕΣ

Πραγματικές : ΒΑΘΜΟΙ(15,5), Μax, Min

Ακέραιες : I, J, θέση

Χαρακτήρες : ΟΝΟΜΑ(15)

ΑΡΧΗ

Min← ΒΑΘΜΟΙ(1,5) !δουλεύω στην 5η στήλη που βρίσκονται οι απουσίες ψάχνοντας για το μικρότερο νούμερο

Θέση ← 1 ! και φυσικά χρειάζομαι και την θέση που θα το βρω

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 15

ΑΝ ΒΑΘΜΟΙ(Ι,5) < Min ΤΟΤΕ

Min← ΒΑΘΜΟΙ(Ι,5)

Θέση ← Ι

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ

ΓΡΑΨΕ ‘Ο μαθητής ’, ΟΝΟΜΑ(Θέση),’ έχει τις λιγότερες απουσίες ’, ΒΑΘΜΟΙ(Θέση,5)

!Εύρεση μαθητή με τις περισσότερες απουσίες

Max← ΒΑΘΜΟΙ(1,5) !Κατά τον ίδιο τρόπο ψάχνω και για τον μεγαλύτερο αριθμό απουσιών

Θέση ← 1

ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 15

ΑΝ ΒΑΘΜΟΙ(Ι,5) > Max ΤΟΤΕ

Max← ΒΑΘΜΟΙ(Ι,5)

Ανάπτυξη Εφαρμογών Σελίδα - 68 - Άλυτες, λυμένες ασκήσεις Άνδρας Π. Χρήστος

Θέση ← Ι

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΓΙΑ

ΓΡΑΨΕ ‘Ο μαθητής ’, ΟΝΟΜΑ(Θέση),’ έχει τις περισσότερες απουσίες ’, ΒΑΘΜΟΙ(Θέση,5)

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Επιλογή10 ()

! Τερματισμός

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: Ι, ΣΤΑΓΟΝΕΣ_ΙΔΡΩΤΑ

ΑΡΧΗ

ΓΡΑΨΕ ‘Το πρόγραμμα τερματίστηκε!’

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

8. Στην παραπάνω άσκηση

o θεωρείστε ότι έχουν διαβαστεί οι βαθμοί και επιπλέον έχουμε διαβάσει και τα εξής επιπλέον στοιχεία για κάθε

μαθητή από τους 15:

o Σε έναν πίνακα Φύλο(15) έχουμε καταχωρημένο το φύλο κάθε μαθητή (‘Κ’ για τα κορίτσια ή ‘Α’ για τα αγόρια.

o Σε έναν πίνακα ΗΛΙΚΙΑ(15,3) έχουμε την ημέρα, το μήνα και το έτος γέννησης κάθε μαθητή.

Να γράψετε τους απαραίτητους αλγορίθμους, υποπρογράμματα (ότι κρίνεται εσείς) ώστε:

1. Να εμφανίζεται το ποσοστό των κοριτσιών και των αγοριών του σχολείου.

2. Να εμφανίζεται αν έχουν καλύτερο γενικό μέσο όρο τα κορίτσια ή τα αγόρια.

3. Να εμφανίζονται τα ονόματα των μαθητών και η ημερομηνία γέννησής τους, ταξινομημένοι με φθίνουσα διάταξη

ως προς την ηλικία τους.

4. Να εμφανίζονται όλοι οι μήνες και πόσοι μαθητές έχουν γεννηθεί σε καθένα μήνα.

5. Για κάθε μάθημα ξεχωριστά να βρίσκεται αν είναι καλύτερα τα κορίτσια ή τα αγόρια με κριτήριο, βέβαια, τη

βαθμολογία.

6. Τα αγόρια ή τα κορίτσια κάνουν περισσότερες απουσίες.

7. Σε ποιο μάθημα έχουμε την μεγαλύτερη διαφορά επίδοσης μεταξύ αγοριών και κοριτσιών.

8. Να δίνεται μία ημερομηνία (σήμερα) και να εμφανίζει ποιοι μαθητές έχουν γενέθλια το επόμενο 10ήμερο από την

δοσμένη ημερομηνία, ώστε να τους σταλεί σχετική κάρτα!

Τέλος Λυμένης Άσκησης