Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ •ΔΙΑΔΙΚΑΣΙΕΣ(Procedures) •ΣΥΝΑΡΤΗΣΕΙΣ(Functions)

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ •ΔΙΑΔΙΚΑΣΙΕΣ(Procedures) •ΣΥΝΑΡΤΗΣΕΙΣ(Functions)"— Μεταγράφημα παρουσίασης:

1

2 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ •ΔΙΑΔΙΚΑΣΙΕΣ(Procedures) •ΣΥΝΑΡΤΗΣΕΙΣ(Functions)

3 Στόχοι 1.Να γνωρίσουμε τι είναι τα Υποπρογράμματα. 2. Ποια τα πλεονεκτήματα. 3. Τι είναι οι διαδικασίες και οι συναρτήσεις. 4. Να εφαρμόσουμε τις διαδικασίες και τις συναρτήσεις στην Pascal.

4 Διαδικασίες - Procedures Τι είναι οι διαδικασίες; Είναι μικρά προγράμματα που ανήκουν στο κυρίως πρόγραμμα. Έτσι ονομάζονται και υποπρογράμματα. Η κλήση μιας διαδικασίας στο κύριο πρόγραμμα, γίνεται με ξεχωριστή εντολή που περιλαμβάνει το όνομα της διαδικασίας, ακολουθούμενο από τις παραμέτρους σε παρενθέσεις. Procedure Ονομα διαδικασίας(Παράμετροι)

5 Πλεονκτήματα χρήσης διαδικασιών 1.Πιο εύκολη αντιμετώπιση του προβλήματος. 2. Εύκολη τροποποίηση και βελτίωση του προγράμματος, γιατί κάθε διαδικασία είναι ξεχωριστή οντότητα. 3. Ο έλεγχος του κώδικα και εντοπισμός λαθών επιτυγχάνεται γρηγορότερα. 4. Βελτίωση της αναγνωσιμότητας του προγράμματος.

6 Αρθρωτός προγραμματισμός Η μέθοδος προγραμματισμού σύμφωνα με την οποία το πρόγραμμα χωρίζεται σε αυτοτελή τμήματα, καθένα από τα οποία μπορεί να δοκιμαστεί ανεξάρτητα ή να τροποποιηθεί χωρίς να επιφέρει αλλαγές στα υπόλοιπα ΥΠΟΡΟΥΤΙΝΑ όνομα_υπορουτίνας Εντολή 1 Εντολή 2 : ΤΕΛΟΣ ΥΠΟΡΟΥΤΙΝΑΣ ΣΥΝΑΡΤΗΣΗ όνομα_συνάρτησης(παράμετρος1,... ) Εντολή 1 Εντολή 2 : όνομα_συνάρτησης ← παράσταση ΤΕΛΟΣ ΣΥΝΑΡΤΗΣΗΣ Υπορουτίνα Τμήμα προγράμματος που εκτελεί συγκεκριμένη διαδικασία Συνάρτηση Τμήμα προγράμματος που εκτελεί συγκεκριμένη διαδικασία και παίρνει τιμές

7 ΠΡΟΓΡΑΜΜΑ Πλακόστρωση_Δωματίου ‘Δηλώσεις ΚΑΘΟΛΙΚΗ ΜΕΤΑΒΛΗΤΗ Εμβαδόν ‘Επεξεργασία στοιχείων δωματίου ΓΡΑΨΕ ”Δώσε διαστάσεις δωματίου” ΚΑΛΕΣΕ Εμβαδόν_Ορθογωνίου Εμβαδόν_Δωματίου ← Εμβαδόν ‘Επεξεργασία στοιχείων για το πλακίδιο ΓΡΑΨΕ ”Δώσε διαστάσεις για το πλακίδιο” ΚΑΛΕΣΕ Εμβαδόν_Ορθογωνίου Εμβαδόν_Πλακιδίου ← Εμβαδόν ‘Υπολογισμός Πλήθος_Πλακιδίων ← Εμβαδόν_Δωματίου/Εμβαδόν_Πλακιδίου ‘Εμφάνιση αποτελεσμάτων ΓΡΑΨΕ ”Χρειάζονται”, Πλήθος_Πλακιδίων, ”πλακίδια” ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ‘Περιοχή Υπορουτινών ΥΠΟΡΟΥΤΙΝΑ Εμβαδόν_Ορθογωνίου ‘Εισαγωγή δεδομένων ΔΙΑΒΑΣΕ Μήκος ΔΙΑΒΑΣΕ Πλάτος ‘Επεξεργασία δεδομένων Eμβαδόν ← Μήκος*Πλάτος ΤΕΛΟΣ ΥΠΟΡΟΥΤΙΝΑΣ

8 ΠΡΟΓΡΑΜΜΑ Πλακόστρωση_Δωματίου ‘Δηλώσεις ΚΑΘΟΛΙΚΗ ΜΕΤΑΒΛΗΤΗ Εμβαδόν ‘Επεξεργασία στοιχείων δωματίου ΓΡΑΨΕ ”Δώσε διαστάσεις δωματίου” ΚΑΛΕΣΕ Εμβαδόν_Ορθογωνίου Εμβαδόν_Δωματίου ← Εμβαδόν ‘Επεξεργασία στοιχείων για το πλακίδιο ΓΡΑΨΕ ”Δώσε διαστάσεις για το πλακίδιο” ΚΑΛΕΣΕ Εμβαδόν_Ορθογωνίου Εμβαδόν_Πλακιδίου ← Εμβαδόν ‘Υπολογισμός Πλήθος_Πλακιδίων ← Εμβαδόν_Δωματίου/Εμβαδόν_Πλακιδίου ‘Εμφάνιση αποτελεσμάτων ΓΡΑΨΕ ”Χρειάζονται”, Πλήθος_Πλακιδίων, ”πλακίδια” ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ‘Περιοχή Υπορουτινών ΥΠΟΡΟΥΤΙΝΑ Εμβαδόν_Ορθογωνίου ‘Εισαγωγή δεδομένων ΔΙΑΒΑΣΕ Μήκος ΔΙΑΒΑΣΕ Πλάτος ‘Επεξεργασία δεδομένων Eμβαδόν ← Μήκος*Πλάτος ΤΕΛΟΣ ΥΠΟΡΟΥΤΙΝΑΣ

9 ΠΡΟΓΡΑΜΜΑ Πλακόστρωση_Δωματίου ‘Δηλώσεις ΚΑΘΟΛΙΚΗ ΜΕΤΑΒΛΗΤΗ Εμβαδόν ‘Επεξεργασία στοιχείων δωματίου ΓΡΑΨΕ ”Δώσε διαστάσεις δωματίου” ΚΑΛΕΣΕ Εμβαδόν_Ορθογωνίου Εμβαδόν_Δωματίου ← Εμβαδόν ‘Επεξεργασία στοιχείων για το πλακίδιο ΓΡΑΨΕ ”Δώσε διαστάσεις για το πλακίδιο” ΚΑΛΕΣΕ Εμβαδόν_Ορθογωνίου Εμβαδόν_Πλακιδίου ← Εμβαδόν ‘Υπολογισμός Πλήθος_Πλακιδίων ← Εμβαδόν_Δωματίου/Εμβαδόν_Πλακιδίου ‘Εμφάνιση αποτελεσμάτων ΓΡΑΨΕ ”Χρειάζονται”, Πλήθος_Πλακιδίων, ”πλακίδια” ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ‘Περιοχή Υπορουτινών ΥΠΟΡΟΥΤΙΝΑ Εμβαδόν_Ορθογωνίου ‘Εισαγωγή δεδομένων ΔΙΑΒΑΣΕ Μήκος ΔΙΑΒΑΣΕ Πλάτος ‘Επεξεργασία δεδομένων Eμβαδόν ← Μήκος*Πλάτος ΤΕΛΟΣ ΥΠΟΡΟΥΤΙΝΑΣ

10 Ορισμός διαδικασίας Procedure όνομα διαδικασίας(παράμετροι); Const {μεταβλητές} Var {μεταβλητές} Begin … {Εντολές}.. End.

11 Συναρτήσεις - Functions Οι συναρτήσεις είναι και αυτές μικρά προγράμματα που ανήκουν σε κάποιο κύριο πρόγραμμα. Υπάρχουν έτοιμες συναρτήσεις, π.χ. Sqrt(x) που επιστρέφει την τετραγωνική ρίζα του Χ. Μπορούμε επίσης να δημιουργήσουμε τις δικές μας συναρτήσεις.

12 Διαφορές Συναρτήσεων και Διαδικασιών 1. Οι συναρτήσεις επιστρέφουν πίσω στο κύριο πρόγραμμα μόνο μια τιμή. Η τιμή αυτή επιστρέφεται μέσω του ονόματος της συνάρτησης. 2. Η κλήση της συνάρτησης στο κύριο πρόγραμμα γίνεται με τη χρήση του ονόματος της ακολουθούμενο από τις παραμέτρους. Αυτή η κλήση γίνεται με μια έκφραση, π.χ. Μαθηματική και όχι με μια ξεχωριστή εντολή, όπως συμβαίνει στις διαδικασίες.

13 Ορισμός Συνάρτησης Function όνομα_Συνάρτησης(παράμετροι):τύπος τιμήs; {o τύπος τιμής είναι π.χ. Real} Const {δήλωση σταθερών} Var {δήλωση μεταβλητών} Begin.. {εντολές}.. End.

14 Παράδειγμα-Διαδικασίας1) Να γράψετε ένα πρόβλημα το οποίο θα διαβάζει δυο αριθμούς, στη συνέχεια να υπολογίζει και τέλος να τυπώνει το άθροισμα τους. Το πρόβλημα θα χωριστεί σε τρεις διαδικασίες. 1. Διάβασε χ,Y. READ_XY 2. Υπολόγισε το άθροισμα CALC_SUM 3. Τύπωσε το αποτέλεσμα PRINT_RESULT

15 PROGRAM PARADEIGMA_DIADIKASIAS; Uses wincrt; Var x,y,sum:real; Procedure READ_XY(VAR x,y:REAL); Begin Write(‘x= ‘); Readln(x); Write(‘y= ‘); Readln(y); End; Procedure CALC_SUM(x,y:Real;Var sum:Real); Begin Sum:=x,y; End;

16 Procedure PRINT_RESULT(x,y,sum:Real); Begin Writeln(‘X= ‘,x:3:1); Writeln(‘Y= ‘,y:3:1); Writeln(‘Athrisma= ‘,sum:3:1); End; Begin{Vasiko programma} {Κλήση διαδικασίας READXY} READ_XY(x,y); {Κλήση διαδικασίας CALC_SUM} CALC_SUM(x,y,sum); {Κλήση διαδικασίας PRINT_RESULT} PRINT_RESULT(x,y,sum); End.

17 Παράδειγμα - Διαδικασίας2 Πρόβλημα: Να γραφεί ένα πρόγραμμα το οποίο να υπολογίζει τον μεγαλύτερο αριθμό από μια λίστα με τρεις αριθμούς. Το πρόγραμμα θα χρησιμοποιεί μια διαδικασία που θα δέχεται δυο αριθμούς και υα τους επιστρέφει πίσω στο πρόγραμμα, πρώτα το μεγαλύτερο και μετά το μικρότερο.

18 Program diadikasia2; Uses wincrt; Var X,y,z:real; Procedure maxmin(var x,y:real); Var temp:real; Begin IF X

19 Begin Write(‘Dose treis arithmous x,y,z..’); Readln(x,y,z); maxmin(x,y); maxmin(y,z); maxmin(x,y); Writeln(‘Oi treis arithmoi se seira einai…’,x:5:1,y:5:1,z:5:1); End.

20 Παράδειγμα Συναρτήσεις1 H Pascal δεν έχει ενσωματωμένη συνάρτηση για τον υπολογισμό της δύναμης. Π.χ. Χ n. Αυτό μπορεί να γίνει με τη χρήση της πιο κάτω ιδιότητας των λογαρίθμων. Αν Χ=α ν τότε χ=e (ln(ν ln(α)))

21 Program synartisi1; Uses wincrt; Var X,N:real; Function Power(X,N:real):real; Begin Power:=Exp(N*ln(X)); End; Begin Write(‘ Dose dyo arithmous…X, N:’); Readln(X,N); Writeln(‘X=‘,X:2:1,’N=‘,N:2:1); Writeln(x:2:1,’^’,N:2:1,’ = ‘,Power(X,N):2:1); End.

22 Παράδειγμα Συναρτήσεις2 Πρόβλημα: Ένας καθηγητής υπολογίζει τους βαθμούς του τριμήνου βάσει τριών διαγωνισμάτων. Η βαρύτητα του πρώτου διαγωνίσματος είναι 60% και των υπολοίπων δυο 20%. Το κάθε διαγώνισμα βαθμολογείται με μέγιστο βαθμό το 20. Να γράψετε πρόγραμμα που να διαβάζει τα αποτελέσματα των τριών διαγωνισμάτων και να υπολογίζει τον τελικό βαθμό του τριμήνου.

23 Program synartiseis2; Uses Wincrt; Const W1=0.6;W2=0.2;W3=0.2; Var test1,test2,test3:Real; Function FinalGrade(test1,test2,test3:real):Real; Begin FinalGrade:=W1*test1+W2*test2+W3*test3; End; Begin Writeln(‘Dose tous vathmous twn triwn diagonismatwn’); Writeln; Write(‘Vathmos 1ou diagonismatos…’);Readln(test1); Write(‘Vathmos 2ou diagonismatos…’);Readln(test2); Write(‘Vathmos 3ou diagonismatos…’);Readln(test3); Write(‘O telikos vathmos tou triminou einai ’,FinalGrade(test1,test2,test3):1:1); End.

24 Παράδειγμα(Διαδικασία και Συνάρτηση) Να γραφεί πρόγραμμα το οποίο να διαβάζει τις τιμές των συντελεστών α,β και γ, μιας δευτεροβάθμιας εξίσωσης. Το πρόγραμμα να υπολογίζει και να ελέγχει την διακρίνουσα αν είναι θετική ή όχι. Αν είναι θετική, Δ>=0 να υπολογίζει τις πραγματικές τιμές χ1 και χ2. Διαφορετικά, να τυπώνει το μήνυμα, “Μιγαδικές ρίζες”.

25 Program Diadikasia_Synartisi; Uses Wincrt; Var a,b,c,x1,x2:real; d:real; Function Determinant(a,b,c:real):real; Begin Deternimant:=b*b-4*a*c; End; Procedure roots(a,b,c,d:real:var x1,x2:Real); Begin X1:=(-b+sqrt(d))/(2*a); X2:=(-b-sqrt(d)))/(2*a); End;

26 Begin Writeln(‘ Rizes tis deuterovathmias eksisosis’); Write(‘Dose tous treis syntelestes tis eksisosis, a,b kai c: ’); Readln(a,b,c); If Deterninant(a,b,c)>=0 then Begin roots(a,b,c,Deterninant(a,b,c),x1,x2); Writeln(‘ Oi Rizes einai ’); Writeln(‘x1= ‘,x1:2:2); Writeln(‘x2= ‘,x2:2:2); End Else Writeln(‘ Oi Rizes einai Migadiges ’); End.


Κατέβασμα ppt "ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ •ΔΙΑΔΙΚΑΣΙΕΣ(Procedures) •ΣΥΝΑΡΤΗΣΕΙΣ(Functions)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google