31
Επικοινωνία: spzygouris@gmail.com Σπύρος Ζυγούρης Καθηγητής Πληροφορικής Κεφάλαιο 10 ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

Kef10 a synartiseis

  • Upload
    mnikol

  • View
    156

  • Download
    0

Embed Size (px)

Citation preview

Επικοινωνία:[email protected]

Σπύρος ΖυγούρηςΚαθηγητής Πληροφορικής

Κεφάλαιο 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 TOTEmax ← β

ΤΕΛΟΣ_ΑΝΑΝ γ > max TOTE

max ← γΤΕΛΟΣ_ΑΝΜέγιστος ← max

1. Αναγνωρίζουμε τα δεδομένα εισόδου, τα οποία δέχεται ησυνάρτηση ως παραμέτρους

2. Αναγνωρίζουμε το ζητούμενο και τον τύπο του, ώστε ναδηλώσουμε τον τύπο της συνάρτησης.

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

βοηθητικές μεταβλητές ή σταθερές της συνάρτησης.

κώδικας

Η συνάρτηση λοιπόν είναι :

Για να κατασκευάσουμε μια συνάρτηση πρέπει να κάνουμε τα ακόλουθα βήματα:

Κεφάλαιο 10οΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

10.02

Να γραφεί συνάρτηση, η οποία θα δέχεται ως είσοδο ένα ακέραιο αριθμό και θα επιστρέφει στο πρόγραμμα την τιμή ΑΛΗΘΗΣ , αν ο αριθμός είναι άρτιος ή ΨΕΥ∆ΗΣ αν είναι περιττός.

ΣΥΝΑΡΤΗΣΗ Άρτιος (x) : ΛΟΓΙΚΗ

ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ :x

ΑΡΧΗ

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

ΑΝ x mod 2 = 0 TOTEα ← ΑΛΗΘΗΣ

ΑΛΛΙΩΣα ← ΨΕΥΔΗΣ

ΤΕΛΟΣ_ΑΝΆρτιος ← α

ΛΟΓΙΚΕΣ :α Βοηθητική μεταβλητή

Παρατήρηση:Εκχωρήσαμε το αποτέλεσμα στη μεταβλητή α και κατόπιν το αποτέλεσμα α στο όνομα της συνάρτησης.

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

Όνομα συνάρτησης

Η συνάρτηση λοιπόν είναι :

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

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

ΠΡΟΓΡΑΜΜΑ Έυρεση_ΜεγίστουΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ :α,β,γ,μΑΡΧΗ

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

ΕΜΦΑΝΙΣΕ ‘Δώσε τρεις αριθμούς’ΔΙΑΒΑΣΕ α,β,γ

μ ← Μέγιστος(α,β,γ)ΕΜΦΑΝΙΣΕ ‘Ο μέγιστος είναι :’,μ

ΣΥΝΑΡΤΗΣΗ Μέγιστος (α,β,γ) :ΠΡΑΓΜΑΤΙΚΗΜΕΤΑΒΛΗΤΕΣΠΡΑΓΜΑΤΙΚΕΣ :α,β,γ,max

ΑΡΧΗmax ← α

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

ΑΝ β > max TOTEmax ← β

ΤΕΛΟΣ_ΑΝΑΝ γ > 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 TOTEy ← x-6

ΑΛΛΙΩΣ_ΑΝ x<1 TOTEy ← 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.