Επικοινωνία:
spzygouris@gmail.com
Σπύρος Ζυγούρης
Καθηγητής Πληροφορικής
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Κεφάλαιο 10ο
Πως ορίζεται ο τμηματικός προγραμματισμός;
Πρόγραμμα
Εντολή 1
Εντολή 2
Εντολή 3
Εντολή 4
Εντολή 5
Εντολή 2
Εντολή 3
Εντολή 4
Εντολή 6
Εντολή 2
Εντολή 3
Εντολή 4
Εντολή 7
Τέλος
Modularization
Τμήμα A
Τέλος Τμήμα A
Τμηματικός Προγραμματισμός
Εντολή 2
Εντολή 3
Εντολή 4
Πρόγραμμα
Τέλος
Εντολή 1
κάλεσε ΤμήμαΤ μή μα a
Εντολή 5
κάλεσε Τμήμα a
Εντολή 6
κάλεσε Τμήμα a
Εντολή 7
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Κεφάλαιο 10ο
Πως ορίζεται ο τμηματικός προγραμματισμός;
Τμηματικός προγραμματισμός ονομάζεται
• η τεχνική σχεδίασης και
• ανάπτυξης
προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα κώδικα.
∆ηλαδή στο τμηματικό προγραμματισμό τα προγράμματα
αποτελούνται από ένα σύνολο τμημάτων
τα οποία επιλύουν τα επιμέρους υποπροβλήματα του αρχικού προβλήματος.
Πρόβλημα
Υποπρόβλημα
1
Υποπρόβλημα
2
Υποπρόβλημα
Ν
Τι είναι τα υποπρογράμματα; Να δοθεί σχετικό παράδειγμα.
Στον τμηματικό προγραμματισμό κάθε τμήμα που επιτελεί ένα αυτόνομο έργο
και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα ,
ονομάζεται υποπρόγραμμα.
Για παράδειγμα ας υποθέσουμε ότι θέλουμε να επιλύσουμε το ακόλουθο πρόβλημα :
Ένας καθηγητής επιθυμεί να φτιάξει πρόγραμμα το οποίο θα διαβάζει τους βαθμούς ενός μαθητή στα μαθήματα
κατεύθυνσης και θα υπολογίζει το μέσο όρο τους.
Το πρόβλημα μπορεί να αντιμετωπισθεί πιο εύκολα, αν αναλύσουμε στα εξής τμήματα:
Εισαγωγή βαθμών
Υπολογισμός μέσου όρου
Εμφάνιση αποτελέσματος
Καθένα από αυτά τα τμήματα μπορεί να
υλοποιηθεί ως ένα υποπρόγραμμα.
Υπάρχει συγκεκριμένη μεθοδολογία για το χωρισμό ενός προγράμματος σε
υποπρόγραμμα;
Ο χωρισμός ενός προγράμματος σε υποπρογράμματα ,
προϋποθέτει την ανάλυση του αρχικού προβλήματος σε υποπροβλήματα
τα οποία μπορούν να αντιμετωπισθούν
εύκολα και
ανεξάρτητα
το ένα από το άλλο.
Η ανάλυση αυτή δεν είναι πάντα εύκολη και δεν υπάρχουν καθορισμένα βήματα που
πρέπει να γίνουν.
Η δυσκολία αυξάνεται όσο πιο μεγάλο και πιο σύνθετο είναι το πρόβλημα.
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Ποιες ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα;
Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες:
1. Πρέπει να έχει μία είσοδο και μία έξοδο,
και να ενεργοποιείται με την είσοδο σε αυτό.
Κατόπιν εκτελεί ορισμένες ενέργειες
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
υποπρόγραμμα
είσοδο έξοδο
Ποιες ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα;
Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες:
1. Πρέπει να έχει μία είσοδο και μία έξοδο,
και να ενεργοποιείται με την είσοδο σε αυτό.
Κατόπιν εκτελεί ορισμένες ενέργειες
και απενεργοποιείται με την έξοδο από αυτό.
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
υποπρόγραμμα
είσοδο έξοδο
Ποιες ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα;
Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες:
1. Πρέπει να έχει μία είσοδο και μία έξοδο,
και να ενεργοποιείται με την είσοδο σε αυτό.
Κατόπιν εκτελεί ορισμένες ενέργειες
και απενεργοποιείται με την έξοδο από αυτό.
2. Πρέπει να είναι ανεξάρτητο από τα άλλα.
∆ηλ κάθε υποπρόγραμμα μπορεί
να σχεδιαστεί ,
να αναπτυχθεί και
να συντηρηθεί
αυτόνομα χωρίς να επηρεαστούν από άλλα υποπρογράμματα.
3. Πρέπει να μην είναι πολύ μεγάλο
ώστε να είναι εύκολα κατανοητό
και να μπορεί να ελέγχεται.
Γενικά κάθε υποπρόγραμμα πρέπει να εκτελεί μόνο μία λειτουργία .
Αν εκτελεί περισσότερες λειτουργίες ,
τότε συνήθως διασπάται σε μικρότερα υποπρογράμματα.
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
υποπρόγραμμα
είσοδο έξοδο
Ποια τα πλεονεκτήματα του τμηματικού προγραμματισμού;
Ο χωρισμός ενός σύνθετου προγράμματος σε υποπρογράμματα ,
έχει τα εξής πλεονεκτήματα:
1. ∆ιευκολύνει την ανάπτυξη
του αλγορίθμου και
του αντίστοιχου προγράμματος.
Η επίλυση προέρχεται από την επίλυση των απλών υποπροβλημάτων
και όχι απευθείας από την αντιμετώπιση του συνολικού προβλήματος.
2. ∆ιευκολύνει
την κατανόηση και
την διόρθωση του προγράμματος.
Ο χωρισμός ενός προγράμματος σε μικρότερα αυτοτελή τμήματα
επιτρέπει τη γρήγορη διόρθωση οποιουδήποτε τμήματος,
χωρίς οι αλλαγές αυτές να επηρεάσουν όλο το υπόλοιπο πρόγραμμα.
Επίσης διευκολύνει την ανάγνωση και κατανόηση του τρόπου που λειτουργεί το πρόγραμμα.
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Ποια τα πλεονεκτήματα του τμηματικού προγραμματισμού;
3. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος,
μειώνοντας συγχρόνως τα λάθη του.
Το ίδιο το υποπρόγραμμα μπορεί να χρησιμοποιείται σε πολλά σημεία ενός προγράμματος
όπου χρειάζεται.
Με αυτό τον τρόπο μειώνεται
το μέγεθος του προγράμματος ,
ο χρόνος που απαιτείται για τη συγγραφή του και
οι πιθανότητες λάθους ,
ενώ ταυτόχρονα γίνεται πιο κατανοητό.
4. Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού.
Ένα υποπρόγραμμα μπορεί να χρησιμοποιηθεί και σε άλλα προγράμματα.
Από τη στιγμή που έχει δημιουργηθεί ,
η χρήση του δε διαφέρει από τη χρήση των ενσωματωμένων συναρτήσεων
που παρέχει η γλώσσα προγραμματισμού.
Αν κάποια λειτουργία που δεν υποστηρίζεται απ’ ευθείας από τη γλώσσα
χρειάζεται συχνά,
πχ η εύρεση του μικρότερου δύο αριθμών ,
τότε μπορεί να γραφεί το αντίστοιχο υποπρόγραμμα και να χρησιμοποιείται όταν χρειάζεται.
Η συγγραφή πολλών υποπρογραμμάτων και η δημιουργία βιβλιοθηκών με αυτά
ουσιαστικά επεκτείνουν την ίδια τη γλώσσα προγραμματισμού.
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Πως ενεργοποιούνται τα υποπρογράμματα από κάποιο άλλο
πρόγραμμα;
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Τα υποπρογράμματα ενεργοποιούνται για να εκτελέσουν συγκεκριμένες λειτουργίες.
Κάθε υποπρόγραμμα για να ενεργοποιηθεί
καλείται , από το αρχικό (κύριο) πρόγραμμα ή κάποιο άλλο υποπρόγραμμα .
Συνήθως ένα υποπρόγραμμα δέχεται τιμές από το τμήμα προγράμματος που το καλεί
και μετά την εκτέλεση του, επιστρέφει στο πρόγραμμα νέες τιμές ως αποτελέσματα.
Οι τιμές αυτές καλούνται παράμετροι.
Οι παράμετροι είναι σαν τις κοινές μεταβλητές ενός προγράμματος ,
με τη διαφορά ότι χρησιμοποιούνται για να παίρνουν τιμές στα υποπρογράμματα
και να επιστρέφουν στο πρόγραμμα τα αποτελέσματα.
Ποιες κατηγορίες υποπρογραμμάτων υπάρχουν και ποιες οι διαφορές
τους;
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Το είδος κάθε υποπρογράμματος καθορίζεται από το είδος της λειτουργίας που επιτελεί.
Υπάρχουν δύο κατηγορίες υποπρογραμμάτων:
1. Οι διαδικασίες και
2. Οι συναρτήσεις.
Ποιες κατηγορίες υποπρογραμμάτων υπάρχουν και ποιες οι διαφορές
τους;
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Η συνάρτηση είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει
μόνο μία τιμή με το όνομα της (όπως οι μαθηματικές συναρτήσεις ).
Οι διαδικασίες είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες
όπως ένα πρόγραμμα.
∆ηλ να διαβάζει τιμές ,
να επιστρέφει πολλές τιμές ως αποτελέσματα και
να παράγει μηνύματα.
Τοποθετούνται μετά το τέλος του κυρίου προγράμματος
και καλούνται στα σημεία που χρειάζονται.
Ποιες κατηγορίες υποπρογραμμάτων υπάρχουν και ποιες οι διαφορές
τους;
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Χαρακτηριστικά ∆ιαδικασιώνΧαρακτηριστικά Συναρτήσεων
Για να ενεργοποιηθούν οι διαδικασίες
χρησιμοποιείται η ειδική εντολή ΚΑΛΕΣΕ και το
όνομα της διαδικασίας.
Εκτελούνται απλά με την εμφάνιση του ονόματος τους σε
οποιαδήποτε έκφραση.
Μεταφέρουν τα αποτελέσματα τους στα άλλα
υποπρογράμματα με τη χρήση παραμέτρων.
Μοιάζουν με τις συναρτήσεις των μαθηματικών και
μεταφέρουν το αποτέλεσμα τους στο πρόγραμμα που τις
κάλεσε με το όνομα τους.
Απλά δηλ με τη χρήση του ονόματος και όχι με παραμέτρους.
Εκτελούν οποιαδήποτε λειτουργία , πχ
–Εισάγουν δεδομένα
–Εκτελούν υπολογισμούς,
–Μεταβάλουν τις τιμές των μεταβλητών,
–Τυπώνουν τα αποτελέσματα κτλ
Υπολογίζουν μόνο μία τιμή,
–Αριθμητική
–Χαρακτήρα ,ή
–Λογική
Και μόνο αυτήν επιστρέφουν στο υποπρόγραμμα που την
κάλεσε.
Πως γίνεται ο ορισμός μιας συνάρτησης; Να δοθούν σχετικά
παραδείγματα. ΣΥΝΑΡΤΗΣΗ Όνομα ( ):
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Τμήμα δηλώσεων μεταβλητών συνάρτησης
…..
ΑΡΧΗ
Εντολές
Όνομα ← Έκφραση
λίστα παραμέτρων Τύπος συνάρτησης
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Οι συναρτήσεις ορίζονται στο τέλος του
προγράμματος.
Κάθε συνάρτηση έχει την ακόλουθη δομή:
Συμπεραίνουμε τα εξής:
1. Το όνομα της συνάρτησης μπορεί να οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ.
2. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών ,
των οποίων οι τιμές μεταβιβάζονται στη συνάρτηση ,
κατά τη κλήση της από το πρόγραμμα.
Ουσιαστικά πρόκειται για τα δεδομένα εισόδου της συνάρτησης.
3. Οι συναρτήσεις υπολογίζουν και επιστρέφουν μια τιμή και η οποία μπορεί να είναι
π.χ. ΠΡΑΓΜΑΤΙΚΗ,
ΑΚΕΡΑΙΑ,
ΧΑΡΑΚΤΗΡΑΣ,
ΛΟΓΙΚΗ.
Ο τύπος της τιμής που επιστρέφει η συνάρτηση , δηλώνεται μετά τη λίστα των παραμέτρων.
4. Πριν από τη λέξη ΑΡΧΗ
Που καθορίζει την αρχή της συνάρτησης , δηλώνονται οι τύποι των μεταβλητών εισόδου,
καθώς και οι τυχόν βοηθητικές μεταβλητές ή σταθερές που χρησιμοποιεί η συνάρτηση.
5. Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο
όνομα της συνάρτησης.
Αυτή η τιμή, είναι η επιστρεφόμενη τιμή.
Να γραφεί συνάρτηση, η οποία θα υπολογίζει και θα επιστρέφει το
άθροισμα δύο πραγματικών αριθμών.
παράδειγμα
ΣΥΝΑΡΤΗΣΗ Άθροισμα(α,β):ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ :α,β
ΑΡΧΗ
Άθροισμα ← α+β
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Όνομα συνάρτησης
Η συνάρτηση θα δέχεται ως είσοδο , με τη μορφή παραμέτρων,
δύο αριθμούς και θα επιστρέφει το άθροισμά τους.
Η τιμή που θα επιστρέφεται (δηλ ο τύπος της συνάρτησης ) θα είναι πραγματική.
Η συνάρτηση λοιπόν είναι :
Να γραφεί συνάρτηση, η οποία θα υπολογίζει και θα επιστρέφει το
εμβαδόν ενός κύκλου, το οποίο δίνεται από τον τύπο πR2.
ΣΥΝΑΡΤΗΣΗ Εμβαδόν(R):ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ :R
ΑΡΧΗ
Εμβαδόν ← π*R^2
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
R
ΣΤΑΘΕΡΕΣ
π=3.14
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
παράδειγμα
Όνομα συνάρτησης
Η συνάρτηση λοιπόν είναι :
Η συνάρτηση θα δέχεται ως είσοδο , την ακτίνα του κύκλου.
Η τιμή που θα επιστρέφεται θα είναι πραγματική.
Στη συνάρτηση μπορούμε να έχουμε ως σταθερά το π.
Πως γίνεται η κλήση (χρήση) μιας συνάρτησης από ένα πρόγραμμα;
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Κάθε συνάρτηση χρησιμοποιείται σε ένα πρόγραμμα,
όπως ακριβώς και οι ενσωματωμένες συναρτήσεις της γλώσσας.
Απλώς αναφέρεται το όνομα της σε μια έκφραση ή σε μια εντολή και επιστρέφεται η τιμή της.
Χ ← Άθροισμα (α,β)
Χ ← Έμβαδόν (R)
Άθροισμα ← α+β
Εμβαδόν ← π*R^2
Στα προηγούμενα παραδείγματα οι συναρτήσεις μπορούν να κληθούν ως εξής:
Στη μεταβλητή Χ, την πρώτη φορά , εκχωρείται η τιμή του αθροίσματος των μεταβλητών α και β.
Στη μεταβλητή Χ, την δεύτερη φορά , εκχωρείται το εμβαδόν του κύκλου με ακτίνα R .
Όταν γίνεται η κλήση των συναρτήσεων ,
γίνεται πρώτα η εκτέλεση του κώδικα της συνάρτησης
και κατόπιν
το αποτέλεσμα επιστρέφεται στο πρόγραμμα και εκχωρείται στη μεταβλητή Χ.
Να γραφεί συνάρτηση, η οποία θα υπολογίζει το μέγιστο τριών
πραγματικών αριθμών.
10.01 Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Η συνάρτηση θα δέχεται ως είσοδο , τρεις αριθμούς και υπολογίζει το μέγιστο.
Η συνάρτηση θα επιστρέφει μια πραγματική τιμή.
Θα χρησιμοποιήσουμε μια βοηθητική μεταβλητή max για τον υπολογισμό του μεγίστου.
Αυτή θα τη δηλώσουμε ως εσωτερική μεταβλητή στη συνάρτηση.
ΣΥΝΑΡΤΗΣΗ Μέγιστος(α,β,γ):ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ :α, β, γ, max
ΑΡΧΗ
max ← α
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΑΝ β > max TOTE
max ← β
ΤΕΛΟΣ_ΑΝ
ΑΝ γ > max TOTE
max ← γ
ΤΕΛΟΣ_ΑΝ
Μέγιστος ← max
1. Αναγνωρίζουμε τα δεδομένα εισόδου, τα οποία δέχεται η
συνάρτηση ως παραμέτρους
2. Αναγνωρίζουμε το ζητούμενο και τον τύπο του, ώστε να
δηλώσουμε τον τύπο της συνάρτησης.
3. Γράφουμε τον κώδικα της συνάρτησης
και δηλώνουμε , στο τμήμα δηλώσεων της συνάρτησης ,
τον τύπο των μεταβλητών εισόδου, καθώς και τις τυχόν
βοηθητικές μεταβλητές ή σταθερές της συνάρτησης.
κώδικας
Η συνάρτηση λοιπόν είναι :
Για να κατασκευάσουμε μια συνάρτηση
πρέπει να κάνουμε τα ακόλουθα βήματα:
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
10.02
Να γραφεί συνάρτηση, η οποία θα δέχεται ως είσοδο ένα ακέραιο
αριθμό και θα επιστρέφει στο πρόγραμμα την τιμή ΑΛΗΘΗΣ , αν ο
αριθμός είναι άρτιος ή ΨΕΥ∆ΗΣ αν είναι περιττός.
ΣΥΝΑΡΤΗΣΗ Άρτιος (x) : ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :x
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΑΝ x mod 2 = 0 TOTE
α ← ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
α ← ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
Άρτιος ← α
ΛΟΓΙΚΕΣ :α Βοηθητική μεταβλητή
Παρατήρηση:
Εκχωρήσαμε το αποτέλεσμα στη μεταβλητή α και κατόπιν το αποτέλεσμα α στο όνομα της συνάρτησης.
Έτσι εκχωρούμε το αποτέλεσμα σε κάποια μεταβλητή
και στο τέλος της συνάρτησης θα εκχωρούμε το αποτέλεσμα στο όνομα της συνάρτησης.
Έτσι αποφεύγουμε να χρησιμοποιήσουμε δύο φορές το όνομα της συνάρτησης (που μπορεί να οδηγήσει σε λάθος).
Όνομα συνάρτησης
Η συνάρτηση λοιπόν είναι :
Η συνάρτηση θα δέχεται ως είσοδο , ένα αριθμό και θα επιστρέφει μια λογική τιμή ως αποτέλεσμα.
Να γραφεί πρόγραμμα που θα διαβάζει τρεις αριθμούς και θα βρίσκει
και θα τυπώνει, με χρήση της συνάρτησης που υπολογίζει το μέγιστο
τριών αριθμών.
ΠΡΟΓΡΑΜΜΑ Έυρεση_Μεγίστου
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ :α,β,γ,μ
ΑΡΧΗ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΕΜΦΑΝΙΣΕ ‘Δώσε τρεις αριθμούς’
ΔΙΑΒΑΣΕ α,β,γ
μ ← Μέγιστος(α,β,γ)
ΕΜΦΑΝΙΣΕ ‘Ο μέγιστος είναι :’,μ
ΣΥΝΑΡΤΗΣΗ Μέγιστος (α,β,γ) :ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ :α,β,γ,max
ΑΡΧΗ
max ← α
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΑΝ β > max TOTE
max ← β
ΤΕΛΟΣ_ΑΝ
ΑΝ γ > max TOTE
max ← γ
ΤΕΛΟΣ_ΑΝ
Μέγιστος ← max
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
10.03
Το πρόγραμμα θα διαβάζει τους αριθμούς και θα τους περνά ως παραμέτρους στη συνάρτηση.
Κατόπιν θα γίνει κλήση της συνάρτησης
που βρίσκει το μέγιστο και
θα τυπώνεται το αποτέλεσμα
από το πρόγραμμα.
Θα πρέπει να γράφουμε τη συνάρτηση
μετά το τέλος του προγράμματος.
Το πρόγραμμα λοιπόν είναι :
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
10.04
Να γραφεί συνάρτηση που θα δέχεται ως παράμετρο τη θέση ενός αθλητή ,
ως ένα ακέραιο αριθμό.
Αν η θέση ισούται με 1 ή 2 ή 3, θα επιστρέφει την τιμή “Πρώτος”, “∆εύτερος”,
“Τρίτος”αντίστοιχα .
Σε οποιαδήποτε άλλη περίπτωση , θα επιστρέφεται η τιμή εκτός πρώτης τριάδας.
ΣΥΝΑΡΤΗΣΗ Θέση (x) :ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :x
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΑΝ x=1 TOTE
Θ ← ‘Πρώτος’
ΑΛΛΙΩΣ_ΑΝ x= 2 TOTE
Θ ← ‘Δεύτερος’
ΤΕΛΟΣ_ΑΝ
Θέση ← Θ
ΧΑΡΑΚΤΗΡΑΣ :Θ
ΑΛΛΙΩΣ_ΑΝ x= 3 TOTE
Θ ← ‘Τρίτος’
ΑΛΛΙΩΣ
Θ ← ‘Εκτός πρώτης τριάδας’
Η συνάρτηση θα δέχεται ως είσοδο έναν ακέραιο και θα επιστρέφει μια τιμή τύπου Χαρακτήρα.
Η μεταβλητή δεν έχει το ίδιο
όνομα με τη συνάρτηση
Η συνάρτηση λοιπόν είναι :
Όνομα συνάρτησης
x<1
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
10.05
Να γραφεί συνάρτηση που υπολογίζει και θα επιστρέφει την τιμή της μαθηματικής
συνάρτησης:
f(x)=
x-6 , x<0
2x+5 , 0≤x<1
2x , 1≤x
ΣΥΝΑΡΤΗΣΗ FX (x) : ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ :x,y
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΑΝ x<0 TOTE
y ← x-6
ΑΛΛΙΩΣ_ΑΝ x<1 TOTE
y ← 2*x+5
ΤΕΛΟΣ_ΑΝ
FX ← y
ΑΛΛΙΩΣ
y ← Ρίζα(2*x)
Η συνάρτηση θα δέχεται ως είσοδο πραγματική
τιμή χ και θα επιστρέφει , πραγματική τιμή.
Η συνάρτηση λοιπόν είναι :
Όνομα συνάρτησης
Η μεταβλητή δεν έχει
το ίδιο όνομα με τη
συνάρτηση.
- ∞ + ∞
x<0
0=<x<1
x=>1
x>=0 KAI x<1∆εν χρειάζεται
Να γραφεί συνάρτηση που θα δέχεται ένα πίνακα 100 ακεραίων και θα υπολογίζει το
ελάχιστο στοιχείο του.
ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :Π[100],i, min
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
min ← Π[1]
Η μεταβλητή δεν έχει το ίδιο
όνομα με τη συνάρτηση
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100
ΑΝ Π[i]< min TOTE
min ← Π[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Ελάχιστο ← min
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
10.06
Η συνάρτηση θα δέχεται ως είσοδο τον πίνακα και θα επιστρέφει μια τιμή τύπου ακεραίου.
Οι βοηθητικές μεταβλητές της συνάρτησης
θα είναι οι min και i.
Η συνάρτηση λοιπόν είναι :
Όνομα συνάρτησης
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Να γραφεί πρόγραμμα που θα διαβάζει δύο πίνακες 100 ακεραίων και θα βρίσκει και θα
τυπώνει το ελάχιστο στοιχείο τους, με χρήση συνάρτησης ( του θέματος 10.06 ).
10.07
Η συνάρτηση θα δέχεται
ως είσοδο
ένα πίνακα και θα επιστρέφει
μια τιμή τύπου ακεραίου.
Μόνο που θα το εφαρμόσουμε
δύο φορές, αφού έχουμε 2 πίνακες.
Οι βοηθητικές μεταβλητές της
συνάρτησης θα είναι οι min και i.
Το πρόγραμμα λοιπόν είναι :
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Κεφάλαιο 10ο
Να γραφεί πρόγραμμα που θα διαβάζει δύο πίνακες 100 ακεραίων και θα βρίσκει και θα
τυπώνει το ελάχιστο στοιχείο τους, με χρήση συνάρτησης ( του θέματος 10.06 ).
ΠΡΟΓΡΑΜΜΑ Ελάχιστο_Στοιχείο
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :Α[100],Β[100],i
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΡΑΨΕ ‘Για το πρώτο πίνακα, δώσε το στοιχείο’ ,i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Α[i]
ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του πρώτου πίνακα είναι’ ,Ελάχιστο(Α)
Κλήση συνάρτησης
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΡΑΨΕ ‘Για το δεύτερο πίνακα, δώσε το στοιχείο’ ,i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Β[i]
ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του δεύτερου πίνακα είναι’ ,Ελάχιστο(Β)
Κλήση συνάρτησης
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :Π[100],i, min
ΑΡΧΗ
min ← Π[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100
ΑΝ Π[i]< min TOTE
min ← Π[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Ελάχιστο ← min
10.07
Η συνάρτηση θα δέχεται
ως είσοδο
ένα πίνακα και θα επιστρέφει
μια τιμή τύπου ακεραίου.
Μόνο που θα το εφαρμόσουμε
δύο φορές, αφού έχουμε 2 πίνακες.
Οι βοηθητικές μεταβλητές της
συνάρτησης θα είναι οι min και i.
Το πρόγραμμα λοιπόν είναι :
Όνομα συνάρτησης
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Κεφάλαιο 10ο
ΠΡΟΓΡΑΜΜΑ Ελάχιστο_Στοιχείο
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :Α[100],Β[100],i
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΡΑΨΕ ‘Για το πρώτο πίνακα, δώσε το στοιχείο’ ,i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Α[i]
ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του πρώτου πίνακα είναι’ ,Ελάχιστο(Α)
Κλήση συνάρτησης
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΡΑΨΕ ‘Για το δεύτερο πίνακα, δώσε το στοιχείο’ ,i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Β[i]
ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του δεύτερου πίνακα είναι’ ,Ελάχιστο(Β)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :Π[100],i, min
ΑΡΧΗ
min ← Π[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100
ΑΝ Π[i]< min TOTE
min ← Π[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Ελάχιστο ← min
Ελάχιστο (Α) :ΑΚΕΡΑΙΑ
:Α[100],i, min
Α[i]< min
min ← Α[i]
min ← Α[1]
Κλήση συνάρτησης
Κάνω κλήση της Συνάρτησης
για τον πίνακα Α
Ακριβώς το ίδιο γίνεται και με
την κλήση της συνάρτησης
για τον πίνακα Β.
10.07
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Κεφάλαιο 10ο
ΠΡΟΓΡΑΜΜΑ Ελάχιστο_Στοιχείο
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :Α[100],Β[100],i
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΡΑΨΕ ‘Για το πρώτο πίνακα, δώσε το στοιχείο’ ,i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Α[i]
ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του πρώτου πίνακα είναι’ ,Ελάχιστο(Α)
Κλήση συνάρτησης
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΡΑΨΕ ‘Για το δεύτερο πίνακα, δώσε το στοιχείο’ ,i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Β[i]
ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του δεύτερου πίνακα είναι’ ,Ελάχιστο(Β)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :Π[100],i, min
ΑΡΧΗ
min ← Π[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100
ΑΝ Π[i]< min TOTE
min ← Π[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Ελάχιστο ← min
Ελάχιστο (Β) :ΑΚΕΡΑΙΑ
:Β[100],i, min
Β[i]< min
min ← Β[i]
min ← Β[1]
Κάνω κλήση της Συνάρτησης
για τον πίνακα Α
Ακριβώς το ίδιο γίνεται και με
την κλήση της συνάρτηση
για τον πίνακα Β.
10.07
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
10.08
Τι θα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 5,10 και 6 ;
ΠΡΟΓΡΑΜΜΑ Παραδειγμα_1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :α,β,γ,μ1,μ2
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΒΑΣΕ α,β,γ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :x,y
ΑΡΧΗ
μ1 ← Σ( )
AN x > y ΤΟΤΕ
Σ ← x
ΑΛΛΙΩΣ
ΤΕΛΟΣ_ΑΝ
Σ ← y
ΓΡΑΨΕ μ1
μ2 ← Σ(μ1,γ)
ΓΡΑΨΕ μ2
α,β
x,y
5 > 10
Σ ← 10
5,10 10
Αρχικά αποδίδει τις τιμές 5,10 και 6 στις μεταβλητές α,β,γ.
Κατόπιν η εντολή μ1 ← Σ(α,β) αποδίδει στη μεταβλητή μ1 ,
το αποτέλεσμα της συνάρτησης.
Η συνάρτηση δέχεται ως είσοδο τις τιμές των α,β.
∆ηλ 5,10. Άρα η x θα πάρει την τιμή της πρώτης παραμέτρου δηλ. 5
ενώ η y θα πάρει την τιμή 10.
Η συνάρτηση συγκρίνει τις τιμές των x,y .
και αποδίδει στο όνομα της Συνάρτησης Σ ,τη μεγαλύτερη τιμή 10
Άρα το μ1 θα πάρει την τιμή 10, η οποία και θα εμφανιστεί.
Τι θα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 5,10 και 6 ;
ΠΡΟΓΡΑΜΜΑ Παραδειγμα_1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :α,β,γ,μ1,μ2
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΒΑΣΕ α,β,γ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :x,y
ΑΡΧΗ
μ1 ← Σ( )
AN x > y ΤΟΤΕ
Σ ← x
ΑΛΛΙΩΣ
ΤΕΛΟΣ_ΑΝ
Σ ← y
ΓΡΑΨΕ μ1
μ2 ← Σ( )
ΓΡΑΨΕ μ2
α,β
x,y
10 > 6
Σ ← 10
10,6
10
μ1,γ
10
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Στη συνέχεια η εντολή μ2 ← Σ(μ1,γ)
∆έχεται ως είσοδο τις τιμές 10 και 6.
Η συνάρτηση Σ, επιστρέφει την μεγαλύτερη τιμή
Άρα η μ2 θα πάρει την τιμή 10, η οποία και θα εμφανιστεί.
Θα εμφανίζει λοιπόν ο αλγόριθμος δύο φορές την τιμή 10.
10.08
Τι θα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 10, και -20 ;
ΠΡΟΓΡΑΜΜΑ Παράδειγμα_2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : x,y,ω,t
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΒΑΣΕ x,y
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :x,y,κ,λ
ΑΡΧΗ
ω← Σ( )
AN x≠ y ΤΟΤΕ
κ ← x
ΑΛΛΙΩΣ
ΤΕΛΟΣ_ΑΝ
κ ← y div 2
ΓΡΑΨΕ ω
y ← 10
ΓΡΑΨΕ t*2
x,y
x,y
10 ≠ -20
Σ ← 0
10,-20
0
t← Σ ( )x,y
λ ← y
λ ← κ+λ
κ ← x mod 2
Σ ← κ + λ
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
10.09
Αρχικά αποδίδει τις τιμές 10 και -20 στις μεταβλητές χ,y.
Κατόπιν η εντολή ω ← Σ(x,y) αποδίδει στη μεταβλητή ω ,
το αποτέλεσμα της συνάρτησης.
Η συνάρτηση δέχεται ως είσοδο τις τιμές των x,y.
∆ηλ 10,-20.
Άρα η x θα πάρει την τιμή της πρώτης παραμέτρου δηλ. 10
ενώ η y θα πάρει την τιμή -20 .
Η συνάρτηση συγκρίνει τις τιμές των x,y και η σύγκριση είναι ΑΛΗΘΗΣ.
Και οι εντολές της επιλογής, θα αποδώσουν τη τιμή 10 στο κ
και -10 στο λ. Άρα το Σ γίνεται 0.
Συνεπώς στο κύριο πρόγραμμα, στη μεταβλητή ω ,
θα εκχωρηθεί η τιμή 0, και θα εμφανιστεί η τιμή 0.
Τι θα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 10, και -20 ;
10.09
ΠΡΟΓΡΑΜΜΑ Παράδειγμα_2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : x,y,ω,t
ΑΡΧΗ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΒΑΣΕ x,y
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ :x,y,κ,λ
ΑΡΧΗ
ω← Σ( )
AN x≠ y ΤΟΤΕ
κ ← x
ΑΛΛΙΩΣ
ΤΕΛΟΣ_ΑΝ
κ ← y div 2
ΓΡΑΨΕ ω
y ← 10
ΓΡΑΨΕ t*2
x,y
x,y
10 ≠ 10
Σ ← 5
10,10
0
t← Σ ( )x,y
λ ← y
λ ← κ+λ
κ ← x mod 2
Σ ← κ + λ
10
Κεφάλαιο 10ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
Στη συνέχεια η μεταβλητή y παίρνει την τιμή 10.
Καλείται ξανά η συνάρτηση t ← Σ(x,y) με παραμέτρους 10 και 10
Αφού το y έχει πάρει προηγουμένως τη τιμή 10.
Η συνάρτηση δέχεται ως είσοδο τις τιμές των x,y.
∆ηλ 10,10. Άρα η x θα πάρει την τιμή της πρώτης παραμέτρου δηλ. 10
ενώ η y θα πάρει την τιμή 10 .
Η συνάρτηση συγκρίνει τις τιμές των x,y και η σύγκριση είναι ΨΕΥ∆ΗΣ.
Θα εκτελεστούν οι εντολές στο ΑΛΛΙΩΣ,
και θα αποδώσουν τη τιμή 5 στο κ
και 0 στο λ. Άρα το Σ γίνεται 5.
Συνεπώς στο κύριο πρόγραμμα, στη μεταβλητή t ,
θα εκχωρηθεί η τιμή 5, και θα εμφανιστεί η τιμή 5*2=10.

Kef10 a synartiseis

  • 1.
  • 2.
    ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 10ο Πωςορίζεται ο τμηματικός προγραμματισμός; Πρόγραμμα Εντολή 1 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 5 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 6 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 7 Τέλος Modularization Τμήμα A Τέλος Τμήμα A Τμηματικός Προγραμματισμός Εντολή 2 Εντολή 3 Εντολή 4 Πρόγραμμα Τέλος Εντολή 1 κάλεσε ΤμήμαΤ μή μα a Εντολή 5 κάλεσε Τμήμα a Εντολή 6 κάλεσε Τμήμα a Εντολή 7
  • 3.
    ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 10ο Πωςορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός ονομάζεται • η τεχνική σχεδίασης και • ανάπτυξης προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα κώδικα. ∆ηλαδή στο τμηματικό προγραμματισμό τα προγράμματα αποτελούνται από ένα σύνολο τμημάτων τα οποία επιλύουν τα επιμέρους υποπροβλήματα του αρχικού προβλήματος. Πρόβλημα Υποπρόβλημα 1 Υποπρόβλημα 2 Υποπρόβλημα Ν Τι είναι τα υποπρογράμματα; Να δοθεί σχετικό παράδειγμα. Στον τμηματικό προγραμματισμό κάθε τμήμα που επιτελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα , ονομάζεται υποπρόγραμμα. Για παράδειγμα ας υποθέσουμε ότι θέλουμε να επιλύσουμε το ακόλουθο πρόβλημα : Ένας καθηγητής επιθυμεί να φτιάξει πρόγραμμα το οποίο θα διαβάζει τους βαθμούς ενός μαθητή στα μαθήματα κατεύθυνσης και θα υπολογίζει το μέσο όρο τους. Το πρόβλημα μπορεί να αντιμετωπισθεί πιο εύκολα, αν αναλύσουμε στα εξής τμήματα: Εισαγωγή βαθμών Υπολογισμός μέσου όρου Εμφάνιση αποτελέσματος Καθένα από αυτά τα τμήματα μπορεί να υλοποιηθεί ως ένα υποπρόγραμμα.
  • 4.
    Υπάρχει συγκεκριμένη μεθοδολογίαγια το χωρισμό ενός προγράμματος σε υποπρόγραμμα; Ο χωρισμός ενός προγράμματος σε υποπρογράμματα , προϋποθέτει την ανάλυση του αρχικού προβλήματος σε υποπροβλήματα τα οποία μπορούν να αντιμετωπισθούν εύκολα και ανεξάρτητα το ένα από το άλλο. Η ανάλυση αυτή δεν είναι πάντα εύκολη και δεν υπάρχουν καθορισμένα βήματα που πρέπει να γίνουν. Η δυσκολία αυξάνεται όσο πιο μεγάλο και πιο σύνθετο είναι το πρόβλημα. Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
  • 5.
    Ποιες ιδιότητες πρέπεινα διακρίνουν τα υποπρογράμματα; Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες: 1. Πρέπει να έχει μία είσοδο και μία έξοδο, και να ενεργοποιείται με την είσοδο σε αυτό. Κατόπιν εκτελεί ορισμένες ενέργειες Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ υποπρόγραμμα είσοδο έξοδο
  • 6.
    Ποιες ιδιότητες πρέπεινα διακρίνουν τα υποπρογράμματα; Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες: 1. Πρέπει να έχει μία είσοδο και μία έξοδο, και να ενεργοποιείται με την είσοδο σε αυτό. Κατόπιν εκτελεί ορισμένες ενέργειες και απενεργοποιείται με την έξοδο από αυτό. Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ υποπρόγραμμα είσοδο έξοδο
  • 7.
    Ποιες ιδιότητες πρέπεινα διακρίνουν τα υποπρογράμματα; Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες: 1. Πρέπει να έχει μία είσοδο και μία έξοδο, και να ενεργοποιείται με την είσοδο σε αυτό. Κατόπιν εκτελεί ορισμένες ενέργειες και απενεργοποιείται με την έξοδο από αυτό. 2. Πρέπει να είναι ανεξάρτητο από τα άλλα. ∆ηλ κάθε υποπρόγραμμα μπορεί να σχεδιαστεί , να αναπτυχθεί και να συντηρηθεί αυτόνομα χωρίς να επηρεαστούν από άλλα υποπρογράμματα. 3. Πρέπει να μην είναι πολύ μεγάλο ώστε να είναι εύκολα κατανοητό και να μπορεί να ελέγχεται. Γενικά κάθε υποπρόγραμμα πρέπει να εκτελεί μόνο μία λειτουργία . Αν εκτελεί περισσότερες λειτουργίες , τότε συνήθως διασπάται σε μικρότερα υποπρογράμματα. Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ υποπρόγραμμα είσοδο έξοδο
  • 8.
    Ποια τα πλεονεκτήματατου τμηματικού προγραμματισμού; Ο χωρισμός ενός σύνθετου προγράμματος σε υποπρογράμματα , έχει τα εξής πλεονεκτήματα: 1. ∆ιευκολύνει την ανάπτυξη του αλγορίθμου και του αντίστοιχου προγράμματος. Η επίλυση προέρχεται από την επίλυση των απλών υποπροβλημάτων και όχι απευθείας από την αντιμετώπιση του συνολικού προβλήματος. 2. ∆ιευκολύνει την κατανόηση και την διόρθωση του προγράμματος. Ο χωρισμός ενός προγράμματος σε μικρότερα αυτοτελή τμήματα επιτρέπει τη γρήγορη διόρθωση οποιουδήποτε τμήματος, χωρίς οι αλλαγές αυτές να επηρεάσουν όλο το υπόλοιπο πρόγραμμα. Επίσης διευκολύνει την ανάγνωση και κατανόηση του τρόπου που λειτουργεί το πρόγραμμα. Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
  • 9.
    Ποια τα πλεονεκτήματατου τμηματικού προγραμματισμού; 3. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος, μειώνοντας συγχρόνως τα λάθη του. Το ίδιο το υποπρόγραμμα μπορεί να χρησιμοποιείται σε πολλά σημεία ενός προγράμματος όπου χρειάζεται. Με αυτό τον τρόπο μειώνεται το μέγεθος του προγράμματος , ο χρόνος που απαιτείται για τη συγγραφή του και οι πιθανότητες λάθους , ενώ ταυτόχρονα γίνεται πιο κατανοητό. 4. Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού. Ένα υποπρόγραμμα μπορεί να χρησιμοποιηθεί και σε άλλα προγράμματα. Από τη στιγμή που έχει δημιουργηθεί , η χρήση του δε διαφέρει από τη χρήση των ενσωματωμένων συναρτήσεων που παρέχει η γλώσσα προγραμματισμού. Αν κάποια λειτουργία που δεν υποστηρίζεται απ’ ευθείας από τη γλώσσα χρειάζεται συχνά, πχ η εύρεση του μικρότερου δύο αριθμών , τότε μπορεί να γραφεί το αντίστοιχο υποπρόγραμμα και να χρησιμοποιείται όταν χρειάζεται. Η συγγραφή πολλών υποπρογραμμάτων και η δημιουργία βιβλιοθηκών με αυτά ουσιαστικά επεκτείνουν την ίδια τη γλώσσα προγραμματισμού. Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
  • 10.
    Πως ενεργοποιούνται ταυποπρογράμματα από κάποιο άλλο πρόγραμμα; Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Τα υποπρογράμματα ενεργοποιούνται για να εκτελέσουν συγκεκριμένες λειτουργίες. Κάθε υποπρόγραμμα για να ενεργοποιηθεί καλείται , από το αρχικό (κύριο) πρόγραμμα ή κάποιο άλλο υποπρόγραμμα . Συνήθως ένα υποπρόγραμμα δέχεται τιμές από το τμήμα προγράμματος που το καλεί και μετά την εκτέλεση του, επιστρέφει στο πρόγραμμα νέες τιμές ως αποτελέσματα. Οι τιμές αυτές καλούνται παράμετροι. Οι παράμετροι είναι σαν τις κοινές μεταβλητές ενός προγράμματος , με τη διαφορά ότι χρησιμοποιούνται για να παίρνουν τιμές στα υποπρογράμματα και να επιστρέφουν στο πρόγραμμα τα αποτελέσματα.
  • 11.
    Ποιες κατηγορίες υποπρογραμμάτωνυπάρχουν και ποιες οι διαφορές τους; Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Το είδος κάθε υποπρογράμματος καθορίζεται από το είδος της λειτουργίας που επιτελεί. Υπάρχουν δύο κατηγορίες υποπρογραμμάτων: 1. Οι διαδικασίες και 2. Οι συναρτήσεις.
  • 12.
    Ποιες κατηγορίες υποπρογραμμάτωνυπάρχουν και ποιες οι διαφορές τους; Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Η συνάρτηση είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μόνο μία τιμή με το όνομα της (όπως οι μαθηματικές συναρτήσεις ). Οι διαδικασίες είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες όπως ένα πρόγραμμα. ∆ηλ να διαβάζει τιμές , να επιστρέφει πολλές τιμές ως αποτελέσματα και να παράγει μηνύματα. Τοποθετούνται μετά το τέλος του κυρίου προγράμματος και καλούνται στα σημεία που χρειάζονται.
  • 13.
    Ποιες κατηγορίες υποπρογραμμάτωνυπάρχουν και ποιες οι διαφορές τους; Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Χαρακτηριστικά ∆ιαδικασιώνΧαρακτηριστικά Συναρτήσεων Για να ενεργοποιηθούν οι διαδικασίες χρησιμοποιείται η ειδική εντολή ΚΑΛΕΣΕ και το όνομα της διαδικασίας. Εκτελούνται απλά με την εμφάνιση του ονόματος τους σε οποιαδήποτε έκφραση. Μεταφέρουν τα αποτελέσματα τους στα άλλα υποπρογράμματα με τη χρήση παραμέτρων. Μοιάζουν με τις συναρτήσεις των μαθηματικών και μεταφέρουν το αποτέλεσμα τους στο πρόγραμμα που τις κάλεσε με το όνομα τους. Απλά δηλ με τη χρήση του ονόματος και όχι με παραμέτρους. Εκτελούν οποιαδήποτε λειτουργία , πχ –Εισάγουν δεδομένα –Εκτελούν υπολογισμούς, –Μεταβάλουν τις τιμές των μεταβλητών, –Τυπώνουν τα αποτελέσματα κτλ Υπολογίζουν μόνο μία τιμή, –Αριθμητική –Χαρακτήρα ,ή –Λογική Και μόνο αυτήν επιστρέφουν στο υποπρόγραμμα που την κάλεσε.
  • 14.
    Πως γίνεται οορισμός μιας συνάρτησης; Να δοθούν σχετικά παραδείγματα. ΣΥΝΑΡΤΗΣΗ Όνομα ( ): ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Τμήμα δηλώσεων μεταβλητών συνάρτησης ….. ΑΡΧΗ Εντολές Όνομα ← Έκφραση λίστα παραμέτρων Τύπος συνάρτησης Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Οι συναρτήσεις ορίζονται στο τέλος του προγράμματος. Κάθε συνάρτηση έχει την ακόλουθη δομή: Συμπεραίνουμε τα εξής: 1. Το όνομα της συνάρτησης μπορεί να οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ. 2. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών , των οποίων οι τιμές μεταβιβάζονται στη συνάρτηση , κατά τη κλήση της από το πρόγραμμα. Ουσιαστικά πρόκειται για τα δεδομένα εισόδου της συνάρτησης. 3. Οι συναρτήσεις υπολογίζουν και επιστρέφουν μια τιμή και η οποία μπορεί να είναι π.χ. ΠΡΑΓΜΑΤΙΚΗ, ΑΚΕΡΑΙΑ, ΧΑΡΑΚΤΗΡΑΣ, ΛΟΓΙΚΗ. Ο τύπος της τιμής που επιστρέφει η συνάρτηση , δηλώνεται μετά τη λίστα των παραμέτρων. 4. Πριν από τη λέξη ΑΡΧΗ Που καθορίζει την αρχή της συνάρτησης , δηλώνονται οι τύποι των μεταβλητών εισόδου, καθώς και οι τυχόν βοηθητικές μεταβλητές ή σταθερές που χρησιμοποιεί η συνάρτηση. 5. Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης. Αυτή η τιμή, είναι η επιστρεφόμενη τιμή.
  • 15.
    Να γραφεί συνάρτηση,η οποία θα υπολογίζει και θα επιστρέφει το άθροισμα δύο πραγματικών αριθμών. παράδειγμα ΣΥΝΑΡΤΗΣΗ Άθροισμα(α,β):ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ :α,β ΑΡΧΗ Άθροισμα ← α+β ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Όνομα συνάρτησης Η συνάρτηση θα δέχεται ως είσοδο , με τη μορφή παραμέτρων, δύο αριθμούς και θα επιστρέφει το άθροισμά τους. Η τιμή που θα επιστρέφεται (δηλ ο τύπος της συνάρτησης ) θα είναι πραγματική. Η συνάρτηση λοιπόν είναι :
  • 16.
    Να γραφεί συνάρτηση,η οποία θα υπολογίζει και θα επιστρέφει το εμβαδόν ενός κύκλου, το οποίο δίνεται από τον τύπο πR2. ΣΥΝΑΡΤΗΣΗ Εμβαδόν(R):ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ :R ΑΡΧΗ Εμβαδόν ← π*R^2 ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ R ΣΤΑΘΕΡΕΣ π=3.14 Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ παράδειγμα Όνομα συνάρτησης Η συνάρτηση λοιπόν είναι : Η συνάρτηση θα δέχεται ως είσοδο , την ακτίνα του κύκλου. Η τιμή που θα επιστρέφεται θα είναι πραγματική. Στη συνάρτηση μπορούμε να έχουμε ως σταθερά το π.
  • 17.
    Πως γίνεται ηκλήση (χρήση) μιας συνάρτησης από ένα πρόγραμμα; Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κάθε συνάρτηση χρησιμοποιείται σε ένα πρόγραμμα, όπως ακριβώς και οι ενσωματωμένες συναρτήσεις της γλώσσας. Απλώς αναφέρεται το όνομα της σε μια έκφραση ή σε μια εντολή και επιστρέφεται η τιμή της. Χ ← Άθροισμα (α,β) Χ ← Έμβαδόν (R) Άθροισμα ← α+β Εμβαδόν ← π*R^2 Στα προηγούμενα παραδείγματα οι συναρτήσεις μπορούν να κληθούν ως εξής: Στη μεταβλητή Χ, την πρώτη φορά , εκχωρείται η τιμή του αθροίσματος των μεταβλητών α και β. Στη μεταβλητή Χ, την δεύτερη φορά , εκχωρείται το εμβαδόν του κύκλου με ακτίνα R . Όταν γίνεται η κλήση των συναρτήσεων , γίνεται πρώτα η εκτέλεση του κώδικα της συνάρτησης και κατόπιν το αποτέλεσμα επιστρέφεται στο πρόγραμμα και εκχωρείται στη μεταβλητή Χ.
  • 18.
    Να γραφεί συνάρτηση,η οποία θα υπολογίζει το μέγιστο τριών πραγματικών αριθμών. 10.01 Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Η συνάρτηση θα δέχεται ως είσοδο , τρεις αριθμούς και υπολογίζει το μέγιστο. Η συνάρτηση θα επιστρέφει μια πραγματική τιμή. Θα χρησιμοποιήσουμε μια βοηθητική μεταβλητή max για τον υπολογισμό του μεγίστου. Αυτή θα τη δηλώσουμε ως εσωτερική μεταβλητή στη συνάρτηση. ΣΥΝΑΡΤΗΣΗ Μέγιστος(α,β,γ):ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ :α, β, γ, max ΑΡΧΗ max ← α ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΑΝ β > max TOTE max ← β ΤΕΛΟΣ_ΑΝ ΑΝ γ > max TOTE max ← γ ΤΕΛΟΣ_ΑΝ Μέγιστος ← max 1. Αναγνωρίζουμε τα δεδομένα εισόδου, τα οποία δέχεται η συνάρτηση ως παραμέτρους 2. Αναγνωρίζουμε το ζητούμενο και τον τύπο του, ώστε να δηλώσουμε τον τύπο της συνάρτησης. 3. Γράφουμε τον κώδικα της συνάρτησης και δηλώνουμε , στο τμήμα δηλώσεων της συνάρτησης , τον τύπο των μεταβλητών εισόδου, καθώς και τις τυχόν βοηθητικές μεταβλητές ή σταθερές της συνάρτησης. κώδικας Η συνάρτηση λοιπόν είναι : Για να κατασκευάσουμε μια συνάρτηση πρέπει να κάνουμε τα ακόλουθα βήματα:
  • 19.
    Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 10.02 Ναγραφεί συνάρτηση, η οποία θα δέχεται ως είσοδο ένα ακέραιο αριθμό και θα επιστρέφει στο πρόγραμμα την τιμή ΑΛΗΘΗΣ , αν ο αριθμός είναι άρτιος ή ΨΕΥ∆ΗΣ αν είναι περιττός. ΣΥΝΑΡΤΗΣΗ Άρτιος (x) : ΛΟΓΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :x ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΑΝ x mod 2 = 0 TOTE α ← ΑΛΗΘΗΣ ΑΛΛΙΩΣ α ← ΨΕΥΔΗΣ ΤΕΛΟΣ_ΑΝ Άρτιος ← α ΛΟΓΙΚΕΣ :α Βοηθητική μεταβλητή Παρατήρηση: Εκχωρήσαμε το αποτέλεσμα στη μεταβλητή α και κατόπιν το αποτέλεσμα α στο όνομα της συνάρτησης. Έτσι εκχωρούμε το αποτέλεσμα σε κάποια μεταβλητή και στο τέλος της συνάρτησης θα εκχωρούμε το αποτέλεσμα στο όνομα της συνάρτησης. Έτσι αποφεύγουμε να χρησιμοποιήσουμε δύο φορές το όνομα της συνάρτησης (που μπορεί να οδηγήσει σε λάθος). Όνομα συνάρτησης Η συνάρτηση λοιπόν είναι : Η συνάρτηση θα δέχεται ως είσοδο , ένα αριθμό και θα επιστρέφει μια λογική τιμή ως αποτέλεσμα.
  • 20.
    Να γραφεί πρόγραμμαπου θα διαβάζει τρεις αριθμούς και θα βρίσκει και θα τυπώνει, με χρήση της συνάρτησης που υπολογίζει το μέγιστο τριών αριθμών. ΠΡΟΓΡΑΜΜΑ Έυρεση_Μεγίστου ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ :α,β,γ,μ ΑΡΧΗ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΜΦΑΝΙΣΕ ‘Δώσε τρεις αριθμούς’ ΔΙΑΒΑΣΕ α,β,γ μ ← Μέγιστος(α,β,γ) ΕΜΦΑΝΙΣΕ ‘Ο μέγιστος είναι :’,μ ΣΥΝΑΡΤΗΣΗ Μέγιστος (α,β,γ) :ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ :α,β,γ,max ΑΡΧΗ max ← α ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΑΝ β > max TOTE max ← β ΤΕΛΟΣ_ΑΝ ΑΝ γ > max TOTE max ← γ ΤΕΛΟΣ_ΑΝ Μέγιστος ← max Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 10.03 Το πρόγραμμα θα διαβάζει τους αριθμούς και θα τους περνά ως παραμέτρους στη συνάρτηση. Κατόπιν θα γίνει κλήση της συνάρτησης που βρίσκει το μέγιστο και θα τυπώνεται το αποτέλεσμα από το πρόγραμμα. Θα πρέπει να γράφουμε τη συνάρτηση μετά το τέλος του προγράμματος. Το πρόγραμμα λοιπόν είναι :
  • 21.
    Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 10.04 Ναγραφεί συνάρτηση που θα δέχεται ως παράμετρο τη θέση ενός αθλητή , ως ένα ακέραιο αριθμό. Αν η θέση ισούται με 1 ή 2 ή 3, θα επιστρέφει την τιμή “Πρώτος”, “∆εύτερος”, “Τρίτος”αντίστοιχα . Σε οποιαδήποτε άλλη περίπτωση , θα επιστρέφεται η τιμή εκτός πρώτης τριάδας. ΣΥΝΑΡΤΗΣΗ Θέση (x) :ΧΑΡΑΚΤΗΡΑΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :x ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΑΝ x=1 TOTE Θ ← ‘Πρώτος’ ΑΛΛΙΩΣ_ΑΝ x= 2 TOTE Θ ← ‘Δεύτερος’ ΤΕΛΟΣ_ΑΝ Θέση ← Θ ΧΑΡΑΚΤΗΡΑΣ :Θ ΑΛΛΙΩΣ_ΑΝ x= 3 TOTE Θ ← ‘Τρίτος’ ΑΛΛΙΩΣ Θ ← ‘Εκτός πρώτης τριάδας’ Η συνάρτηση θα δέχεται ως είσοδο έναν ακέραιο και θα επιστρέφει μια τιμή τύπου Χαρακτήρα. Η μεταβλητή δεν έχει το ίδιο όνομα με τη συνάρτηση Η συνάρτηση λοιπόν είναι : Όνομα συνάρτησης
  • 22.
    x<1 Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 10.05 Ναγραφεί συνάρτηση που υπολογίζει και θα επιστρέφει την τιμή της μαθηματικής συνάρτησης: f(x)= x-6 , x<0 2x+5 , 0≤x<1 2x , 1≤x ΣΥΝΑΡΤΗΣΗ FX (x) : ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ :x,y ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΑΝ x<0 TOTE y ← x-6 ΑΛΛΙΩΣ_ΑΝ x<1 TOTE y ← 2*x+5 ΤΕΛΟΣ_ΑΝ FX ← y ΑΛΛΙΩΣ y ← Ρίζα(2*x) Η συνάρτηση θα δέχεται ως είσοδο πραγματική τιμή χ και θα επιστρέφει , πραγματική τιμή. Η συνάρτηση λοιπόν είναι : Όνομα συνάρτησης Η μεταβλητή δεν έχει το ίδιο όνομα με τη συνάρτηση. - ∞ + ∞ x<0 0=<x<1 x=>1 x>=0 KAI x<1∆εν χρειάζεται
  • 23.
    Να γραφεί συνάρτησηπου θα δέχεται ένα πίνακα 100 ακεραίων και θα υπολογίζει το ελάχιστο στοιχείο του. ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :Π[100],i, min ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ min ← Π[1] Η μεταβλητή δεν έχει το ίδιο όνομα με τη συνάρτηση ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100 ΑΝ Π[i]< min TOTE min ← Π[i] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Ελάχιστο ← min Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 10.06 Η συνάρτηση θα δέχεται ως είσοδο τον πίνακα και θα επιστρέφει μια τιμή τύπου ακεραίου. Οι βοηθητικές μεταβλητές της συνάρτησης θα είναι οι min και i. Η συνάρτηση λοιπόν είναι : Όνομα συνάρτησης
  • 24.
    ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Να γραφείπρόγραμμα που θα διαβάζει δύο πίνακες 100 ακεραίων και θα βρίσκει και θα τυπώνει το ελάχιστο στοιχείο τους, με χρήση συνάρτησης ( του θέματος 10.06 ). 10.07 Η συνάρτηση θα δέχεται ως είσοδο ένα πίνακα και θα επιστρέφει μια τιμή τύπου ακεραίου. Μόνο που θα το εφαρμόσουμε δύο φορές, αφού έχουμε 2 πίνακες. Οι βοηθητικές μεταβλητές της συνάρτησης θα είναι οι min και i. Το πρόγραμμα λοιπόν είναι :
  • 25.
    ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 10ο Ναγραφεί πρόγραμμα που θα διαβάζει δύο πίνακες 100 ακεραίων και θα βρίσκει και θα τυπώνει το ελάχιστο στοιχείο τους, με χρήση συνάρτησης ( του θέματος 10.06 ). ΠΡΟΓΡΑΜΜΑ Ελάχιστο_Στοιχείο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :Α[100],Β[100],i ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΓΡΑΨΕ ‘Για το πρώτο πίνακα, δώσε το στοιχείο’ ,i ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Α[i] ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του πρώτου πίνακα είναι’ ,Ελάχιστο(Α) Κλήση συνάρτησης ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΓΡΑΨΕ ‘Για το δεύτερο πίνακα, δώσε το στοιχείο’ ,i ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Β[i] ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του δεύτερου πίνακα είναι’ ,Ελάχιστο(Β) Κλήση συνάρτησης ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :Π[100],i, min ΑΡΧΗ min ← Π[1] ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100 ΑΝ Π[i]< min TOTE min ← Π[i] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Ελάχιστο ← min 10.07 Η συνάρτηση θα δέχεται ως είσοδο ένα πίνακα και θα επιστρέφει μια τιμή τύπου ακεραίου. Μόνο που θα το εφαρμόσουμε δύο φορές, αφού έχουμε 2 πίνακες. Οι βοηθητικές μεταβλητές της συνάρτησης θα είναι οι min και i. Το πρόγραμμα λοιπόν είναι : Όνομα συνάρτησης
  • 26.
    ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 10ο ΠΡΟΓΡΑΜΜΑΕλάχιστο_Στοιχείο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :Α[100],Β[100],i ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΓΡΑΨΕ ‘Για το πρώτο πίνακα, δώσε το στοιχείο’ ,i ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Α[i] ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του πρώτου πίνακα είναι’ ,Ελάχιστο(Α) Κλήση συνάρτησης ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΓΡΑΨΕ ‘Για το δεύτερο πίνακα, δώσε το στοιχείο’ ,i ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Β[i] ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του δεύτερου πίνακα είναι’ ,Ελάχιστο(Β) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :Π[100],i, min ΑΡΧΗ min ← Π[1] ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100 ΑΝ Π[i]< min TOTE min ← Π[i] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Ελάχιστο ← min Ελάχιστο (Α) :ΑΚΕΡΑΙΑ :Α[100],i, min Α[i]< min min ← Α[i] min ← Α[1] Κλήση συνάρτησης Κάνω κλήση της Συνάρτησης για τον πίνακα Α Ακριβώς το ίδιο γίνεται και με την κλήση της συνάρτησης για τον πίνακα Β. 10.07
  • 27.
    ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 10ο ΠΡΟΓΡΑΜΜΑΕλάχιστο_Στοιχείο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :Α[100],Β[100],i ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΓΡΑΨΕ ‘Για το πρώτο πίνακα, δώσε το στοιχείο’ ,i ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Α[i] ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του πρώτου πίνακα είναι’ ,Ελάχιστο(Α) Κλήση συνάρτησης ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΓΡΑΨΕ ‘Για το δεύτερο πίνακα, δώσε το στοιχείο’ ,i ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Β[i] ΓΡΑΨΕ ‘Το ελάχιστο στοιχείο του δεύτερου πίνακα είναι’ ,Ελάχιστο(Β) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :Π[100],i, min ΑΡΧΗ min ← Π[1] ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100 ΑΝ Π[i]< min TOTE min ← Π[i] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Ελάχιστο ← min Ελάχιστο (Β) :ΑΚΕΡΑΙΑ :Β[100],i, min Β[i]< min min ← Β[i] min ← Β[1] Κάνω κλήση της Συνάρτησης για τον πίνακα Α Ακριβώς το ίδιο γίνεται και με την κλήση της συνάρτηση για τον πίνακα Β. 10.07
  • 28.
    Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 10.08 Τιθα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 5,10 και 6 ; ΠΡΟΓΡΑΜΜΑ Παραδειγμα_1 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :α,β,γ,μ1,μ2 ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΒΑΣΕ α,β,γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :x,y ΑΡΧΗ μ1 ← Σ( ) AN x > y ΤΟΤΕ Σ ← x ΑΛΛΙΩΣ ΤΕΛΟΣ_ΑΝ Σ ← y ΓΡΑΨΕ μ1 μ2 ← Σ(μ1,γ) ΓΡΑΨΕ μ2 α,β x,y 5 > 10 Σ ← 10 5,10 10 Αρχικά αποδίδει τις τιμές 5,10 και 6 στις μεταβλητές α,β,γ. Κατόπιν η εντολή μ1 ← Σ(α,β) αποδίδει στη μεταβλητή μ1 , το αποτέλεσμα της συνάρτησης. Η συνάρτηση δέχεται ως είσοδο τις τιμές των α,β. ∆ηλ 5,10. Άρα η x θα πάρει την τιμή της πρώτης παραμέτρου δηλ. 5 ενώ η y θα πάρει την τιμή 10. Η συνάρτηση συγκρίνει τις τιμές των x,y . και αποδίδει στο όνομα της Συνάρτησης Σ ,τη μεγαλύτερη τιμή 10 Άρα το μ1 θα πάρει την τιμή 10, η οποία και θα εμφανιστεί.
  • 29.
    Τι θα εμφανίσειτο ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 5,10 και 6 ; ΠΡΟΓΡΑΜΜΑ Παραδειγμα_1 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :α,β,γ,μ1,μ2 ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΒΑΣΕ α,β,γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :x,y ΑΡΧΗ μ1 ← Σ( ) AN x > y ΤΟΤΕ Σ ← x ΑΛΛΙΩΣ ΤΕΛΟΣ_ΑΝ Σ ← y ΓΡΑΨΕ μ1 μ2 ← Σ( ) ΓΡΑΨΕ μ2 α,β x,y 10 > 6 Σ ← 10 10,6 10 μ1,γ 10 Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Στη συνέχεια η εντολή μ2 ← Σ(μ1,γ) ∆έχεται ως είσοδο τις τιμές 10 και 6. Η συνάρτηση Σ, επιστρέφει την μεγαλύτερη τιμή Άρα η μ2 θα πάρει την τιμή 10, η οποία και θα εμφανιστεί. Θα εμφανίζει λοιπόν ο αλγόριθμος δύο φορές την τιμή 10. 10.08
  • 30.
    Τι θα εμφανίσειτο ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 10, και -20 ; ΠΡΟΓΡΑΜΜΑ Παράδειγμα_2 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : x,y,ω,t ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΒΑΣΕ x,y ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :x,y,κ,λ ΑΡΧΗ ω← Σ( ) AN x≠ y ΤΟΤΕ κ ← x ΑΛΛΙΩΣ ΤΕΛΟΣ_ΑΝ κ ← y div 2 ΓΡΑΨΕ ω y ← 10 ΓΡΑΨΕ t*2 x,y x,y 10 ≠ -20 Σ ← 0 10,-20 0 t← Σ ( )x,y λ ← y λ ← κ+λ κ ← x mod 2 Σ ← κ + λ Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 10.09 Αρχικά αποδίδει τις τιμές 10 και -20 στις μεταβλητές χ,y. Κατόπιν η εντολή ω ← Σ(x,y) αποδίδει στη μεταβλητή ω , το αποτέλεσμα της συνάρτησης. Η συνάρτηση δέχεται ως είσοδο τις τιμές των x,y. ∆ηλ 10,-20. Άρα η x θα πάρει την τιμή της πρώτης παραμέτρου δηλ. 10 ενώ η y θα πάρει την τιμή -20 . Η συνάρτηση συγκρίνει τις τιμές των x,y και η σύγκριση είναι ΑΛΗΘΗΣ. Και οι εντολές της επιλογής, θα αποδώσουν τη τιμή 10 στο κ και -10 στο λ. Άρα το Σ γίνεται 0. Συνεπώς στο κύριο πρόγραμμα, στη μεταβλητή ω , θα εκχωρηθεί η τιμή 0, και θα εμφανιστεί η τιμή 0.
  • 31.
    Τι θα εμφανίσειτο ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 10, και -20 ; 10.09 ΠΡΟΓΡΑΜΜΑ Παράδειγμα_2 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : x,y,ω,t ΑΡΧΗ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΒΑΣΕ x,y ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Σ ( ) :ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ :x,y,κ,λ ΑΡΧΗ ω← Σ( ) AN x≠ y ΤΟΤΕ κ ← x ΑΛΛΙΩΣ ΤΕΛΟΣ_ΑΝ κ ← y div 2 ΓΡΑΨΕ ω y ← 10 ΓΡΑΨΕ t*2 x,y x,y 10 ≠ 10 Σ ← 5 10,10 0 t← Σ ( )x,y λ ← y λ ← κ+λ κ ← x mod 2 Σ ← κ + λ 10 Κεφάλαιο 10ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Στη συνέχεια η μεταβλητή y παίρνει την τιμή 10. Καλείται ξανά η συνάρτηση t ← Σ(x,y) με παραμέτρους 10 και 10 Αφού το y έχει πάρει προηγουμένως τη τιμή 10. Η συνάρτηση δέχεται ως είσοδο τις τιμές των x,y. ∆ηλ 10,10. Άρα η x θα πάρει την τιμή της πρώτης παραμέτρου δηλ. 10 ενώ η y θα πάρει την τιμή 10 . Η συνάρτηση συγκρίνει τις τιμές των x,y και η σύγκριση είναι ΨΕΥ∆ΗΣ. Θα εκτελεστούν οι εντολές στο ΑΛΛΙΩΣ, και θα αποδώσουν τη τιμή 5 στο κ και 0 στο λ. Άρα το Σ γίνεται 5. Συνεπώς στο κύριο πρόγραμμα, στη μεταβλητή t , θα εκχωρηθεί η τιμή 5, και θα εμφανιστεί η τιμή 5*2=10.