Υποπρογράµµατα «Είδα στον ύπνο µου ότι η ζωή είναι χαρά. Ξύπνησα και είδα ότι είναι χρέος. Αγωνίστηκα και είδα ότι τo χρέος είναι χαρά.» Ραµπριτανάθ Ταγκόρ Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι Μαθήµατος Οι µαθητές να µπορούν: να ονοµάζουν τα είδη υποπρογραµµάτων. να ορίζουν (δηλώνουν) µια συνάρτηση. να ενεργοποιούν µια συνάρτηση µέσα απότοκύριοπρόγραµµα.
Υποπρόγραµµα oullas 3 Για την επίλυση ενός πολύπλοκου προβλήµατος, συνήθως, γίνεται χωρισµός του σε µικρότερα και απλούστερα προβλήµατα και στη συνέχεια η επίλυση αυτών των απλούστερων προβληµάτων. Η µέθοδος αυτή ονοµάζεται «από-πάνω-προς-τα-κάτω» ή «από-το-γενικό-στο-ειδικό» (top down). Η Pasal παρέχει µηχανισµούς υλοποίησης αυτής της µεθόδου, επιτρέποντας στον προγραµµατιστή να αναπτύξει για κάθε υποπρόβληµα ένα χωριστό υποπρόγραµµα. Η εποπτεία αυτών των υποπρογραµµάτων γίνεται από το κυρίως πρόγραµµα (main program). Υποπρόγραµµα είναι ένα σύνολο εντολών που µπορεί να χρησιµοποιηθεί (κληθεί) σε διάφορα σηµεία ενός προγράµµατος, παρόλο που γράφεται (δηλώνεται) µια µόνο φορά. είναι µικρά τµήµατα προγραµµάτων τα οποία πραγµατοποιούν µια συγκεκριµένη εργασία. oullas 4 Τύποι Υποπρογραµµάτων Η Pasal υποστηρίζει δύο τύπους υποπρογραµµάτων: τις (funtions). τις ιαδικασίες (proedures). Ορισµός Υποπρογραµµάτων: Ορίζονται στο τελευταίο τµήµα των δηλώσεων του προγράµµατος. Program Struture; Const Type Var Funtion Proedure Begin {Κυρίως Πρόγραµµα} End.
oullas 5 Βασικές (standard) ήενσωµατωµένες. όπως SQR, SQRT, COS, ROUND,. οριζόµενες από το προγραµµατιστή. Και στις δύο περιπτώσεις οι συναρτήσεις δέχονται ένα αριθµό δεδοµένων, εκτελούν µια λειτουργία ή ακολουθία λειτουργιών και επιστρέφουν ένα µόνο αποτέλεσµα. SQR(4) 16. MAX(4, 8) 8. οµή Συντακτικό Συνάρτησης: Επικεφαλίδα της Συνάρτησης Τµήµα ηλώσεων; Begin Τµήµα Προτάσεων ήσώµα της Συνάρτησης End; τωνσυναρτήσεων funtion meg(x,y:real):real; if x>y then meg:= x meg:=y Η επικεφαλίδα µιας Συνάρτησης αποτελείτε από τη λέξη κλειδί funtion, ένα όνοµα, µια λίστα παραµέτρων και τύπο δεδοµένων του αποτελέσµατος. FUNCTION Όνοµα Συνάρτησης(Λίστα Παραµέτρων): Τύπος εδοµένων; Το όνοµα χαρακτηρίζει τη συνάρτηση που χρησιµοποιείται για την αναφορά της από το υπόλοιπο πρόγραµµα. Η λίστα παραµέτρων είναι µια λίστα µεταβλητών που χρησιµοποιείται για ανταλλαγή πληροφοριών µεταξύ της συνάρτησης και του προγράµµατος και είναι προαιρετική. funtion exam(x, y:integer; z: real; :har):boolean; funtion test(x: real; var :har; m: integer):har; oullas 6
οµή oullas 7 τωνσυναρτήσεων ( συνέχεια) Η συνάρτηση έχει δοµή προγράµµατος Pasal και µπορεί να περιέχει οποιαδήποτε πρότασηαποδεκτήαπότηνpasal. Η συνάρτηση πρέπει να περιλαµβάνει τουλάχιστον µια πρόταση που να αναθέτει µια τιµή στο όνοµα της συνάρτησης, αλλιώς η κλήση της συνάρτησης προκαλεί λάθος. Σε κάθε κλήση και εκτέλεση της συνάρτησης, η τελευταία τιµή που ανατίθεται στο όνοµα της συνάρτησης είναι και το αποτέλεσµα της. Κλήση Συνάρτησης Ηκλήση µιας συνάρτησης επιστρέφει µια τιµή στο σηµείο όπου καλείται. Μια συνάρτηση καλείται αναφέροντας απλά το όνοµα της και µια λίστα πραγµατικών παραµέτρων µέσα σε µια έκφραση όπως ακριβώς γίνεται και µε τις βασικές συναρτήσεις της Pasal. Η σειρά και ο τύπος δεδοµένων των πραγµατικών παραµέτρων στην κλήση της συνάρτησης, πρέπει να συµφωνεί µε τησειρά και τον τύπο των τυπικών παραµέτρων της. oullas 8
Παράδειγµα program finalgrade; uses winrt; var exam1, exam2, fgrade: real; funtion maximum(num1, num2: real): boolean; if num1>= num2 then maximum:=true Τυπικές Παράµετροι maximum:=false Πραγµατικές Παράµετροι readln(exam1,exam2); if maximum(exam1,exam2) then fgrade:= exam1*0.70 + exam2*0.30 fgrade:= exam2*0.70 + exam1*0.30; writeln(fgrade:6:2) end. oullas 9 oullas 10 Βιβλιογραφία / Πηγές Σταυρινίδης Ε., Σωτικόπουλος Κ. (1998). Ηλεκτρονικοί Υπολογιστές -Pasal. Λευκωσία - Υπηρεσία Ανάπτυξης Προγραµµάτων. ρ. Βλαχάβας Ι. (1991). Η γλώσσα Προγραµµατισµού Pasal. Θεσσαλονίκη - Αριστοτέλειο Πανεπιστήµιο. ρ. Καβακλή Β. (2002-2003) Εισαγωγή στους αλγόριθµους και στον προγραµµατισµό - Υποπρογράµµατα. www.aegean.gr/ulturalte/avali/algorithms_spring_2003/leture_notes.htm