51
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 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

Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Embed Size (px)

DESCRIPTION

Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις,Μαθαίνω αλγορίθμους,http://videolearner.com/,Δωρεάν Διαδικτυακή Διδασκαλία,Κεφ 10 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Citation preview

Page 1: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 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

Page 2: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

Πως ορίζεται ο τμηματικός προγραμματισμός;Τμηματικός προγραμματισμός ονομάζεται• η τεχνική σχεδίασης και • ανάπτυξηςπρογραμμάτων ως ένα σύνολο από απλούστερα τμήματα κώδικα.∆ηλαδή στο τμηματικό προγραμματισμό τα προγράμματααποτελούνται από ένα σύνολο τμημάτωντα οποία επιλύουν τα επιμέρους υποπροβλήματα του αρχικού προβλήματος.

Πρόβλημα

Υποπρόβλημα1

Υποπρόβλημα2

ΥποπρόβλημαΝ

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

Εισαγωγή βαθμώνΥπολογισμός μέσου όρουΕμφάνιση αποτελέσματος

Καθένα από αυτά τα τμήματα μπορεί να υλοποιηθεί ως ένα υποπρόγραμμα.

Page 3: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Υπάρχει συγκεκριμένη μεθοδολογία για το χωρισμό ενός προγράμματος σε υποπρόγραμμα;Ο χωρισμός ενός προγράμματος σε υποπρογράμματα , προϋποθέτει την ανάλυση του αρχικού προβλήματος σε υποπροβλήματα τα οποία μπορούν να αντιμετωπισθούν

εύκολα και ανεξάρτητα

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

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

Page 4: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποιες ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα;Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες:1. Πρέπει να έχει μία είσοδο και μία έξοδο,

και να ενεργοποιείται με την είσοδο σε αυτό. Κατόπιν εκτελεί ορισμένες ενέργειες

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

υποπρόγραμμα

είσοδο έξοδο

Page 5: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποιες ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα;Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες:1. Πρέπει να έχει μία είσοδο και μία έξοδο,

και να ενεργοποιείται με την είσοδο σε αυτό. Κατόπιν εκτελεί ορισμένες ενέργειεςκαι απενεργοποιείται με την έξοδο από αυτό.

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

υποπρόγραμμα

είσοδο έξοδο

Page 6: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποιες ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα;Κάθε υποπρόγραμμα πρέπει να έχει τις εξής ιδιότητες:1. Πρέπει να έχει μία είσοδο και μία έξοδο,

και να ενεργοποιείται με την είσοδο σε αυτό. Κατόπιν εκτελεί ορισμένες ενέργειεςκαι απενεργοποιείται με την έξοδο από αυτό.

2. Πρέπει να είναι ανεξάρτητο από τα άλλα. ∆ηλ κάθε υποπρόγραμμα μπορεί

να σχεδιαστεί , να αναπτυχθεί και να συντηρηθεί

αυτόνομα χωρίς να επηρεαστούν από άλλα υποπρογράμματα.

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

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

υποπρόγραμμα

είσοδο έξοδο

Page 7: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποια τα πλεονεκτήματα του τμηματικού προγραμματισμού;Ο χωρισμός ενός σύνθετου προγράμματος σε υποπρογράμματα , έχει τα εξής πλεονεκτήματα:1. ∆ιευκολύνει την ανάπτυξη

του αλγορίθμου και του αντίστοιχου προγράμματος.

Η επίλυση προέρχεται από την επίλυση των απλών υποπροβλημάτων

και όχι απευθείας από την αντιμετώπιση του συνολικού προβλήματος.

2. ∆ιευκολύνειτην κατανόηση και

την διόρθωση του προγράμματος.

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

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

Page 8: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποια τα πλεονεκτήματα του τμηματικού προγραμματισμού;3. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος,

μειώνοντας συγχρόνως τα λάθη του.Το ίδιο το υποπρόγραμμα μπορεί να χρησιμοποιείται σε πολλά σημεία ενός προγράμματοςόπου χρειάζεται. Με αυτό τον τρόπο μειώνεται

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

ενώ ταυτόχρονα γίνεται πιο κατανοητό.

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

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

Page 9: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Πως ενεργοποιούνται τα υποπρογράμματα από κάποιο άλλο πρόγραμμα;

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

Τα υποπρογράμματα ενεργοποιούνται για να εκτελέσουν συγκεκριμένες λειτουργίες.

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

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

Page 10: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποιες κατηγορίες υποπρογραμμάτων υπάρχουν και ποιες οι διαφορές τους;

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

Το είδος κάθε υποπρογράμματος καθορίζεται από το είδος της λειτουργίας που επιτελεί.Υπάρχουν δύο κατηγορίες υποπρογραμμάτων:1. Οι διαδικασίες και 2. Οι συναρτήσεις.

Page 11: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποιες κατηγορίες υποπρογραμμάτων υπάρχουν και ποιες οι διαφορές τους;

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

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

μόνο μία τιμή με το όνομα της (όπως οι μαθηματικές συναρτήσεις ).

Οι διαδικασίες είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες

όπως ένα πρόγραμμα.∆ηλ να διαβάζει τιμές ,να επιστρέφει πολλές τιμές ως αποτελέσματα και να παράγει μηνύματα.

Τοποθετούνται μετά το τέλος του κυρίου προγράμματος

και καλούνται στα σημεία που χρειάζονται.

Page 12: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Ποιες κατηγορίες υποπρογραμμάτων υπάρχουν και ποιες οι διαφορές τους;

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

Χαρακτηριστικά ∆ιαδικασιώνΧαρακτηριστικά Συναρτήσεων

Για να ενεργοποιηθούν οι διαδικασίες χρησιμοποιείται η ειδική εντολή ΚΑΛΕΣΕ και το όνομα της διαδικασίας.

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

Μεταφέρουν τα αποτελέσματα τους στα άλλα υποπρογράμματα με τη χρήση παραμέτρων.

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

Εκτελούν οποιαδήποτε λειτουργία , πχ –Εισάγουν δεδομένα–Εκτελούν υπολογισμούς,–Μεταβάλουν τις τιμές των μεταβλητών,–Τυπώνουν τα αποτελέσματα κτλ

Υπολογίζουν μόνο μία τιμή, –Αριθμητική–Χαρακτήρα ,ή –Λογική

Και μόνο αυτήν επιστρέφουν στο υποπρόγραμμα που την κάλεσε.

Page 13: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Πως γίνεται ο ορισμός μιας συνάρτησης; Να δοθούν σχετικά παραδείγματα. ΣΥΝΑΡΤΗΣΗ Όνομα ( ):

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

Τμήμα δηλώσεων μεταβλητών συνάρτησης

…..

ΑΡΧΗΕντολέςΌνομα ← Έκφραση

λίστα παραμέτρων Τύπος συνάρτησης

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

Οι συναρτήσεις ορίζονται στο τέλος του προγράμματος.

Κάθε συνάρτηση έχει την ακόλουθη δομή:

Συμπεραίνουμε τα εξής:1. Το όνομα της συνάρτησης μπορεί να οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ.

2. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών , των οποίων οι τιμές μεταβιβάζονται στη συνάρτηση , κατά τη κλήση της από το πρόγραμμα. Ουσιαστικά πρόκειται για τα δεδομένα εισόδου της συνάρτησης.

3. Οι συναρτήσεις υπολογίζουν και επιστρέφουν μια τιμή και η οποία μπορεί να είναι π.χ. ΠΡΑΓΜΑΤΙΚΗ,

ΑΚΕΡΑΙΑ,ΧΑΡΑΚΤΗΡΑΣ,ΛΟΓΙΚΗ.

Ο τύπος της τιμής που επιστρέφει η συνάρτηση , δηλώνεται μετά τη λίστα των παραμέτρων.4. Πριν από τη λέξη ΑΡΧΗ

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

5. Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης. Αυτή η τιμή, είναι η επιστρεφόμενη τιμή.

Page 14: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

παράδειγμα

ΣΥΝΑΡΤΗΣΗ Άθροισμα(α,β):ΠΡΑΓΜΑΤΙΚΗΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ :α,β

ΑΡΧΗ

Άθροισμα ← α+β

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

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

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

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

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

Page 15: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

ΣΥΝΑΡΤΗΣΗ Εμβαδόν(R):ΠΡΑΓΜΑΤΙΚΗ

ΜΕΤΑΒΛΗΤΕΣΠΡΑΓΜΑΤΙΚΕΣ :R

ΑΡΧΗ

Εμβαδόν ← π*R^2

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

R

ΣΤΑΘΕΡΕΣπ=3.14

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

παράδειγμα

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

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

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

Page 16: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Πως γίνεται η κλήση (χρήση) μιας συνάρτησης από ένα πρόγραμμα;Κεφάλαιο 10ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

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

Χ ← Άθροισμα (α,β)

Χ ← Έμβαδόν (R)

Άθροισμα ← α+β

Εμβαδόν ← π*R^2

Στα προηγούμενα παραδείγματα οι συναρτήσεις μπορούν να κληθούν ως εξής:

Στη μεταβλητή Χ, την πρώτη φορά , εκχωρείται η τιμή του αθροίσματος των μεταβλητών α και β.

Στη μεταβλητή Χ, την δεύτερη φορά , εκχωρείται το εμβαδόν του κύκλου με ακτίνα R .

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

Page 17: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

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

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

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

ΜΕΤΑΒΛΗΤΕΣΠΡΑΓΜΑΤΙΚΕΣ :α, β, γ, max

ΑΡΧΗmax ← α

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

ΑΝ β > max TOTEmax ← β

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

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

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

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

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

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

κώδικας

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

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

Page 18: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

10.02

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

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

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

ΑΡΧΗ

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

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

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

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

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

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

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

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

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

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

Page 19: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

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

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

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

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

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

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

ΑΡΧΗmax ← α

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

ΑΝ β > max TOTEmax ← β

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

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

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

10.03

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

Το πρόγραμμα λοιπόν είναι :

Page 20: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

10.04

Να γραφεί συνάρτηση που θα δέχεται ως παράμετρο τη θέση ενός αθλητή ,ως ένα ακέραιο αριθμό. Αν η θέση ισούται με 1 ή 2 ή 3, θα επιστρέφει την τιμή “Πρώτος”, “∆εύτερος”,“Τρίτος”αντίστοιχα . Σε οποιαδήποτε άλλη περίπτωση , θα επιστρέφεται η τιμή εκτός πρώτης τριάδας.

ΣΥΝΑΡΤΗΣΗ Θέση (x) :ΧΑΡΑΚΤΗΡΑΣΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ :x

ΑΡΧΗ

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

ΑΝ x=1 TOTEΘ ← ‘Πρώτος’

ΑΛΛΙΩΣ_ΑΝ x= 2 TOTEΘ ← ‘Δεύτερος’

ΤΕΛΟΣ_ΑΝΘέση ← Θ

ΧΑΡΑΚΤΗΡΑΣ :Θ

ΑΛΛΙΩΣ_ΑΝ x= 3 TOTEΘ ← ‘Τρίτος’

ΑΛΛΙΩΣΘ ← ‘Εκτός πρώτης τριάδας’

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

Η μεταβλητή δεν έχει το ίδιο όνομα με τη συνάρτηση

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

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

Page 21: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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∆εν χρειάζεται

Page 22: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

ΣΥΝΑΡΤΗΣΗ Ελάχιστο (Π) :ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ :Π[100],i, min

ΑΡΧΗ

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

min ← Π[1]

Η μεταβλητή δεν έχει το ίδιοόνομα με τη συνάρτηση

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

ΑΝ Π[i]< min TOTE

min ← Π[i]

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣΕλάχιστο ← min

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

10.06

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

Οι βοηθητικές μεταβλητές της συνάρτησης θα είναι οι min και i.Η συνάρτηση λοιπόν είναι :

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

Page 23: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΝα γραφεί πρόγραμμα που θα διαβάζει δύο πίνακες 100 ακεραίων και θα βρίσκει και θα τυπώνει το ελάχιστο στοιχείο τους, με χρήση συνάρτησης ( του θέματος 10.06 ).

10.07

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

Οι βοηθητικές μεταβλητές της συνάρτησης θα είναι οι min και i.Το πρόγραμμα λοιπόν είναι :

Page 24: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 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.Το πρόγραμμα λοιπόν είναι :

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

Page 25: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 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

Page 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

Page 27: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Κεφάλαιο 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,η οποία και θα εμφανιστεί.

Page 28: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Τι θα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 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

Page 29: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Τι θα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 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.

Page 30: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Τι θα εμφανίσει το ακόλουθο πρόγραμμα αν δοθούν σαν είσοδος οι αριθμοί 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.

Page 31: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Πως γίνεται ο ορισμός μιας διαδικασίας; Να δοθούν σχετικά παραδείγματα.

ΔΙΑΔΙΚΑΣΙΑ Όνομα ( )

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

Τμήμα δηλώσεων μεταβλητών διαδικασίας

…..

ΑΡΧΗΕντολές

λίστα παραμέτρων

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

Οι διαδικασίεςμπορούν να εκτελέσουν

οποιαδήποτε λειτουργία και δεν επιστρέφουν μια τιμή

όπως οι συναρτήσεις.

Κάθε διαδικασία έχει την ακόλουθη δομή:

Συμπεραίνουμε τα εξής:

1. Το όνομα της διαδικασίας μπορεί να οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ. 2. Η λίστα παραμέτρων είναι μια λίστα μεταβλητών , των οποίων οι τιμές μεταβιβάζονται στη διαδικασία , κατά τη κλήση της από το πρόγραμμα αλλά και επιστρέφονται στο κύριο πρόγραμμα μετά την εκτέλεση των εντολών της διαδικασίας.Ουσιαστικά πρόκειται για μεταβλητές εισόδου (δεδομένα) και εξόδου (αποτελέσματα).

3. Στο σώμα της διαδικασίας μπορούν να υπάρχουν οποιεσδήποτε εντολές της ΓΛΩΣΣΑΣ.4. Πριν από τη λέξη ΑΡΧΗΠου καθορίζει την αρχή της διαδικασίας ,δηλώνονται οι τύποι των μεταβλητών εισόδου,καθώς και οι τυχόν βοηθητικές μεταβλητές ή σταθερές που χρησιμοποιεί η διαδικασία.

Page 32: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

παράδειγμα

Να γραφεί η διαδικασία , η οποία θα εμφανίζει τους ακεραίους αριθμούς από 1 ως 100.

ΔΙΑΔΙΚΑΣΙΑ Εμφάνιση_Αριθμών( )ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : i

ΑΡΧΗ

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

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100

ΓΡΑΨΕ i

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

Η διαδικασία δεν απαιτεί είσοδο , αφού οι αριθμοί που θα τυπωθούν είναι γνωστοί.Με τη βοήθεια μιας επανάληψης Για i από 1 μέχρι 100 , Θα εμφανιστούν οι αριθμοί.Η μεταβλητή i θα πρέπει να δηλωθεί στο τμήμα δηλώσεων της διαδικασίας , αφού είναι εσωτερική μεταβλητή.

Η διαδικασία λοιπόν είναι :

Page 33: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

παράδειγμα

ΔΙΑΔΙΚΑΣΙΑ Αντιμετάθεση( α,β )ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ : α, β , temp

ΑΡΧΗ

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

temp ← α

α ← β

β ← temp

α,β γνωστές και στοκύριο πρόγραμμα

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

Η διαδικασία θα δέχεται ως είσοδο δύο τυχαίους αριθμούς α και β.Με τη χρήση μιας βοηθητικής μεταβλητής temp θα αντιμεταθέτει τις τιμές των δύο μεταβλητών. Οι νέες τιμές α και β θα είναι γνωστές και στο κύριο πρόγραμμα.

Η διαδικασία λοιπόν είναι :

Page 34: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Πως γίνεται η κλήση (χρήση) μιας διαδικασίας σε ένα πρόγραμμα;

ΚΑΛΕΣΕ Όνομα Διαδικασίας ( )λίστα-παραμέτρων

ΚΑΛΕΣΕ Αντιμετάθεση ( )α,β

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

Η κλήση μιας διαδικασίας από ένα πρόγραμμα γίνεται με την εντολή ΚΑΛΕΣΕη οποία έχει την εξής σύνταξη:

Η εντολή ΚΑΛΕΣΕ ακολουθείται από το όνομα της διαδικασίας ,συνοδευόμενο από τη λίστα παραμέτρων,

μέσα σε παρενθέσεις

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

Page 35: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

10.10

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

ΔΙΑΔΙΚΑΣΙΑ Είσοδος_Δεδομενων ( x ) ΜΕΤΑΒΛΗΤΕΣΠΡΑΓΜΑΤΙΚΕΣ : x

ΑΡΧΗ

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

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣΓΡΑΨΕ ‘Δώσε έναν αριθμό’

ΔΙΑΒΑΣΕ x

ΜΕΧΡΙΣ_ΟΤΟΥ x > 0

Στο κύριο τμήμα της διαδικασίας θα υπάρχει μια δομή επανάληψης Αρχή_επανάληψης…Μέχρις_ότου, μέσα στην οποία θα διαβάζεται ένας αριθμός από το πληκτρολόγιο. Η διαδικασία της ανάγνωσης θα γίνεται επαναληπτικά μέχρι να δοθεί σαν είσοδος θετική τιμή.

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

Η διαδικασία λοιπόν είναι :

Page 36: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

10.11

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

ΔΙΑΔΙΚΑΣΙΑ Στοιχεία_Πίνακα (Π ) ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ :Π[100] , i

ΑΡΧΗ

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

ΓΙΑ i ΑΠΌ 1 ΜΕΧΡΙ 100ΑΝ i mod 2 =0 ΤΟΤΕ

ΓΡΑΨΕ Π[i]

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

Η διαδικασία είναι :

Θα περνά ως παράμετρος στη διαδικασία ο πίνακας. για να μπορεί να επιστραφεί στο πρόγραμμα.

Page 37: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

10.12

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

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

Το πρόγραμμα λοιπόν θα είναι:

Page 38: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

ΠΡΟΓΡΑΜΜΑ Μέσος_Όρος_ΠίνακαΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ :Π[50]ΑΡΧΗ

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

ΚΑΛΕΣΕ Εισαγωγή_Στοιχείων(Π)

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΓΡΑΨΕ ‘Ο μέσος όρος των στοιχείων είναι ’,

ΔΙΑΔΙΚΑΣΙΑ Εισαγωγή_Στοιχείων( Π )ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : Π[50] , i

ΓΙΑ

ΑΡΧΗ

i ΑΠΟ 1 ΜΕΧΡΙ 50

ΓΡΑΨΕ ‘Δώσε το στοιχείο ’i

ΔΙΑΒΑΣΕ Π[ i ]

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

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

ΣΥΝΑΡΤΗΣΗ Μέσος_Όρος

ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ : Π[50] , i, άθροισμα

ΑΡΧΗάθροισμα← 0

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50άθροισμα← άθροισμα + Π[ i ]

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

Μέσος_Όρος← άθροισμα/50

Μέσος_Όρος(Π)

Κλήση συνάρτησης

Κλήση Διαδικασίας

( Π ): ΠΡΑΓΜΑΤΙΚΟΣ

Το πρόγραμμα λοιπόν θα είναι:

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

10.12

Page 39: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

ΠΡΟΓΡΑΜΜΑ Μέσος_Όρος_ΠίνακαΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ :Π[50]ΑΡΧΗ

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

ΚΑΛΕΣΕ Εισαγωγή_Στοιχείων(Π)

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΓΡΑΨΕ ‘Ο μέσος όρος των στοιχείων είναι ’,

ΔΙΑΔΙΚΑΣΙΑ Εισαγωγή_Στοιχείων( Π )ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : Π[50] , i

ΓΙΑ

ΑΡΧΗ

i ΑΠΟ 1 ΜΕΧΡΙ 50

ΓΡΑΨΕ ‘Δώσε το στοιχείο ’,i

ΔΙΑΒΑΣΕ Π[ i ]

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

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

ΣΥΝΑΡΤΗΣΗ Μέσος_Όρος

ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ : Π[50] , i, άθροισμα

ΑΡΧΗάθροισμα← 0

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50άθροισμα← άθροισμα + Π[ i ]

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

Μέσος_Όρος← άθροισμα/50

Μέσος_Όρος(Π)

( Π ): ΠΡΑΓΜΑΤΙΚΟΣΑναλύουμε πάντα τοπρόγραμμα σε τμήματα:1. Είσοδος Δεδομένων2. Υπολογισμός,3. Εμφάνιση

Αποτελεσμάτων

1. Είσοδος Δεδομένων

3. Εμφάνιση

2 Υπολογισμός

Το πρόγραμμα λοιπόν θα είναι:

10.12

2 Υπολογισμός

Page 40: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

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

10.13

Οι ενέργειες που πρέπει να γίνουν για κάθε πίνακα είναι:1. Εισαγωγή στοιχείων2. Υπολογισμός Μεγίστου. Το πρώτο τμήμα μπορεί να υλοποιηθεί ως μια διαδικασίακαι το δεύτερο ως μια συνάρτηση.

Το πρόγραμμα λοιπόν θα είναι:

Page 41: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

ΠΡΟΓΡΑΜΜΑ Μέγιστο_ΣτοιχείοΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ :Α[100],Β[100]ΑΡΧΗΚΑΛΕΣΕ Εισαγωγή_Στοιχείων(Α)

ΓΡΑΨΕ ‘Το μέγιστο στοιχείο του πρώτου πίνακα είναι’, Μέγιστο(Α)

Κλήση συνάρτησης

Κλήση Διαδικασίας

ΚΑΛΕΣΕ Εισαγωγή_Στοιχείων(Β)ΓΡΑΨΕ ‘Το μέγιστο στοιχείο του δεύτερου πίνακα είναι’, Μέγιστο(Β)

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΔΙΑΔΙΚΑΣΙΑ Εισαγωγή_Στοιχείων( Π )

ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ : Π[100] , i

ΑΡΧΗΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100

ΓΡΑΨΕ ‘Δώσε το στοιχείο ’i

ΔΙΑΒΑΣΕ Π[ i ]ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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

ΣΥΝΑΡΤΗΣΗ Μέγιστο ( Π ): ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : Π[100] , i, maxΑΡΧΗmax← Π [1]

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

AN Π[i] > max ΤΟΤΕmax ← Π[i]

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

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

Το πρόγραμμα λοιπόν θα είναι:

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

10.13

Page 42: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

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

ΠΡΟΓΡΑΜΜΑ Πρόσθεση_Πινάκων

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

ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ: Α[100] , Β[100] , Γ[100] , i

ΑΡΧΗ

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100

ΔΙΑΒΑΣΕ Α[ i ]ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100ΔΙΑΒΑΣΕ Β[ i ]

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

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100

Γ[i]← Α[ i ]+Β[i]ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100

ΕΜΦΑΝΙΣΕ Γ[ i ]ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

10.14

ΠΡΟΓΡΑΜΜΑ Πρόσθεση_ΠινάκωνΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ :Α[100], Β[100], Γ[100]ΑΡΧΗΚΑΛΕΣΕ Εισαγωγή_Στοιχείων(Α)

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

ΚΑΛΕΣΕ Εισαγωγή_Στοιχείων(Β)ΚΑΛΕΣΕ Άθροισμα(Α,Β,Γ) ! Ο Γ είναι ο πίνακας αποτέλεσμαΚΑΛΕΣΕ Εμφάνιση_Στοιχείων(Γ)

ΔΙΑΔΙΚΑΣΙΑ Εισαγωγή_Στοιχείων( Π )ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ :Π[100]

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100ΓΡΑΨΕ ‘Δώσε το στοιχείο ’iΔΙΑΒΑΣΕ Π[ i ]

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣΔΙΑΔΙΚΑΣΙΑ Άθροισμα(Α,Β,Γ )ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ :Α[100] ,Β[100],Γ[100],i

ΑΡΧΗ

ΑΡΧΗΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100

Γ[ i ]←A[ i ] + B[ i ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣΕμφάνιση_Στοιχείων(Γ)ΔΙΑΔΙΚΑΣΙΑ

ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ :Π[100] , iΑΡΧΗΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100

ΓΡΑΨΕ Π[ i ]ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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

Page 43: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

10.14

α)Να γραφεί συνάρτηση που θα υπολογίζει το πλήθος της εμφάνισης της λέξης “Αλγόριθμος”. Η συνάρτηση θα δέχεται ως είσοδος ένα πίνακα 200 λέξεων.β)Να γραφεί διαδικασία που θα διαβάζει έναν πίνακα 200 θέσεων που περιέχει λέξεις.γ)Να γραφεί πρόγραμμα που με χρήση των υποπρογραμμάτων των προηγούμενων υποερωτημάτων θα εμφανίζει το πλήθος και το ποσοστό της εμφάνισης της λέξης “Αλγόριθμος” σε ένα πίνακα 200 θέσεων.

ΣΥΝΑΡΤΗΣΗ Συχνότητα (Π) :ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ : i,πλήθος

ΑΡΧΗ

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

πλήθος ← 0

Η μεταβλητή δεν έχει το ίδιοόνομα με τη συνάρτηση

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 200

ΑΝ Π[i]=‘ Αλγόριθμος’ TOTE

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

ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣΣυχνότητα ← πλήθος

ΧΑΡΑΚΤΗΡΕΣ :Π[200]α) Η συνάρτηση είναι:

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

Page 44: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

α)Να γραφεί συνάρτηση που θα υπολογίζει το πλήθος της εμφάνισης της λέξης “Αλγόριθμος”. Η συνάρτηση θα δέχεται ως είσοδος ένα πίνακα 200 λέξεων.β)Να γραφεί διαδικασία που θα διαβάζει έναν πίνακα 200 θέσεων που περιέχει λέξεις.γ)Να γραφεί πρόγραμμα που με χρήση των υποπρογραμμάτων των προηγούμενων υποερωτημάτων θα εμφανίζει το πλήθος και το ποσοστό της εμφάνισης της λέξης “Αλγόριθμος” σε ένα πίνακα 200 θέσεων.

10.14

ΔΙΑΔΙΚΑΣΙΑ Εισαγωγή_Στοιχείων (Π ) ΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ : i

ΑΡΧΗ

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

ΓΙΑ i ΑΠΌ 1 ΜΕΧΡΙ 200

ΔΙΑΒΑΣΕ Π[i]

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

ΧΑΡΑΚΤΗΡΕΣ :Π[200]

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

β) Η διαδικασία είναι:

Page 45: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

α)Να γραφεί συνάρτηση που θα υπολογίζει το πλήθος της εμφάνισης της λέξης “Αλγόριθμος”. Η συνάρτηση θα δέχεται ως είσοδος ένα πίνακα 200 λέξεων.β)Να γραφεί διαδικασία που θα διαβάζει έναν πίνακα 200 θέσεων που περιέχει λέξεις.γ)Να γραφεί πρόγραμμα που με χρήση των υποπρογραμμάτων των προηγούμενων υποερωτημάτων θα εμφανίζει το πλήθος και το ποσοστό της εμφάνισης της λέξης “Αλγόριθμος” σε ένα πίνακα 200 θέσεων.

ΠΡΟΓΡΑΜΜΑ ΥπολογισμόςΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ :σ

ΑΡΧΗ

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

ΠΡΑΓΜΑΤΙΚΕΣ :πΧΑΡΑΚΤΗΡΕΣ :Π[200]

σ ← Συχνότητα(Π)π ← σ*100/200

ΓΡΑΨΕ σ,π

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

γ) Το πρόγραμμα είναι:

10.14

Page 46: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

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

Βασίζεται στην ολίσθηση και περιλαμβάνει:• Πολλαπλασιασμό επί δύο και• Διαίρεση δια δύο.

1ο Βήμα:Κατασκευάζουμε έναν πίνακα με τρειςστήλες και γράφουμε στις δύο πρώτεςστήλες τον 1ο και 2ο αριθμό.

12 1024 5

2

2ο Βήμα:Διπλασιάζουμε τον 1ο αριθμόΥποδιπλασιάζουμε τον 2ο αριθμό

3ο Βήμα:Ελέγχουμε αν στη δεύτερη στήλη το αποτέλεσμα είναι 1. Αν είναι πάμε στο 4ο Βήμα.Αλλιώς επαναλαμβάνουμε το 2ο και 3ο βήμα. Επαναλαμβάνω το 2ο και 3ο βήμα.

48196

4ο Βήμα: Στην τρίτη στήληγράφουμε τον αντίστοιχο αριθμότης πρώτηςμε την προϋπόθεση ότι στη δεύτερη στήλη ο αριθμός είναι περιττός.

24

96

5ο Βήμα: Προσθέτουμε τα νούμερα της τρίτης στήλης .

120

Το αποτέλεσμα της πρόσθεσης , είναι το γινόμενο των δύο αριθμών

12 10

x

120

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

10.14

Page 47: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

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

ΣΥΝΑΡΤΗΣΗ Γινόμενο (Μ1,Μ2) :ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣΑΚΕΡΑΙΕΣ : Μ1,Μ2,άθροισμα

ΑΡΧΗ

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

άθροισμα ← 0

ΟΣΟΜ2 > 0 ΕΠΑΝΕΛΑΒΕ

ΑΝ Μ2 mod 2 =1 TOTE

άθροισμα ← άθροισμα+Μ1

ΤΕΛΟΣ_ΑΝ

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

γινόμενο ← άθροισμα

Η συνάρτηση είναι:

Μ1 ← (Μ1)*2

Μ2 ← (Μ2)div 2

Αλγόριθμος Πολλαπλασιασμός_Αλά_Ρώσικα

Τέλος Πολλαπλασιασμός_Αλά_Ρώσικα

α2 > 0

Εμφάνισε “Δώσε 2 αριθμούς”

Όσο επανέλαβε

πλήθος← 0

άθροισμα←άθροισμα + α1

α1←α1*2

Διάβασε α1,α2

Αν α2 mod 2=1 τότε

Εμφάνισε

Τέλος_αν

άθροισμα

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

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

10.14

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

Page 48: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Τι εμφανίζει το ακόλουθο τμήμα προγράμματος, το οποίο χρησιμοποιεί τη συνάρτηση ABC(x,y) ;

….. …… ….x ← 10

ΓΙΑ y ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 3

ΑΝ Χ+Υ>15 TOTEΖ ← ABC(X,Y)

ΑΛΛΙΩΣΖ ← Χ mod Y

ΤΕΛΟΣ_ΑΝΓΡΑΨΕ Χ+Υ,Υ-Ζ,ΖΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΣΥΝΑΡΤΗΣΗ ABC(X,Y): ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : X,Y,AΑΡΧΗ

ΑΝ Χ=<Y TOTEA ← 2*X-10

ΑΛΛΙΩΣA ← 2*X+1

ΤΕΛΟΣ_ΑΝABC ← A

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

Υ Χ Ζ ΕμφανίζεταιΠίνακας Προγράμματος

101 0 10 ,1 , 0

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

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

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

για το πρόγραμμα και ένα άλλο για το υποπρόγραμμα.

10.15

Page 49: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Τι εμφανίζει το ακόλουθο τμήμα προγράμματος, το οποίο χρησιμοποιεί τη συνάρτηση ABC(x,y) ;

….. …… ….x ← 10

ΓΙΑ y ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 3

ΑΝ Χ+Υ>15 TOTEΖ ← ABC(X,Y)

ΑΛΛΙΩΣΖ ← Χ mod Y

ΤΕΛΟΣ_ΑΝΓΡΑΨΕ Χ+Υ,Υ-Ζ,ΖΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΣΥΝΑΡΤΗΣΗ ABC(X,Y): ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : X,Y,AΑΡΧΗ

ΑΝ Χ=<Y TOTEA ← 2*X-10

ΑΛΛΙΩΣA ← 2*X+1

ΤΕΛΟΣ_ΑΝABC ← A

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

Υ Χ Ζ ΕμφανίζεταιΠίνακας Προγράμματος

101 0 10 ,1 , 04 2 12 ,2 , 2

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

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

για το πρόγραμμα και ένα άλλο για το υποπρόγραμμα.

10.15

Page 50: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Τι εμφανίζει το ακόλουθο τμήμα προγράμματος, το οποίο χρησιμοποιεί τη συνάρτηση ABC(x,y) ;

….. …… ….x ← 10

ΓΙΑ y ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 3

ΑΝ Χ+Υ>15 TOTEΖ ← ABC(X,Y)

ΑΛΛΙΩΣΖ ← Χ mod Y

ΤΕΛΟΣ_ΑΝΓΡΑΨΕ Χ+Υ,Υ-Ζ,ΖΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΣΥΝΑΡΤΗΣΗ ABC(X,Y): ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : X,Y,AΑΡΧΗ

ΑΝ Χ=<Y TOTEA ← 2*X-10

ΑΛΛΙΩΣA ← 2*X+1

ΤΕΛΟΣ_ΑΝABC ← A

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

Υ Χ Ζ ΕμφανίζεταιΠίνακας Προγράμματος

101 0 10 ,1 , 04 2 12 ,2 , 2

7

A ← 2*10+1

ABC ← 21

Z ← 21

21

X Y A ΑποτέλεσμαΠίνακας Συνάρτησης

710 21 21

31 ,-14 , 21

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

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

για το πρόγραμμα και ένα άλλο για το υποπρόγραμμα.

10.15

Page 51: Τμηματικός Προγραμματισμός- Διαδικασίες-Συναρτήσεις

Τι εμφανίζει το ακόλουθο τμήμα προγράμματος, το οποίο χρησιμοποιεί τη συνάρτηση ABC(x,y) ;

….. …… ….x ← 10

ΓΙΑ y ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 3

ΑΝ Χ+Υ>15 TOTEΖ ← ABC(X,Y)

ΑΛΛΙΩΣΖ ← Χ mod Y

ΤΕΛΟΣ_ΑΝΓΡΑΨΕ Χ+Υ,Υ-Ζ,ΖΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΣΥΝΑΡΤΗΣΗ ABC(X,Y): ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ : X,Y,AΑΡΧΗ

ΑΝ Χ=<Y TOTEA ← 2*X-10

ΑΛΛΙΩΣA ← 2*X+1

ΤΕΛΟΣ_ΑΝABC ← A

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

Υ Χ Ζ ΕμφανίζεταιΠίνακας Προγράμματος

101 0 10 ,1 , 04 2 12 ,2 , 2

7

A ← 2*10-10

ABC ← 10

Z ← 10

21

X Y A ΑποτέλεσμαΠίνακας Συνάρτησης

710 21 21

31 ,-14 , 2110

1010 10

20 , 0 , 10

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

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

για το πρόγραμμα και ένα άλλο για το υποπρόγραμμα.

10.15