Συναρτήσεις και διαδικασίες

Σχετικά έγγραφα
Διαδικαστικός Προγραμματισμός

ιαδικαστικός Προγραμματισμός

Εισαγωγή στην γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

Δομημένος Προγραμματισμός

Η γλώσσα προγραμματισμού C

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Η γλώσσα προγραμματισμού C

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Η βασική συνάρτηση προγράμματος main()

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 4η Διάλεξη Πίνακες Συναρτήσεις

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Μεθόδων Επίλυσης Προβλημάτων

Ανάπτυξη και Σχεδίαση Λογισμικού

Ενδεικτική περιγραφή μαθήματος

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

Εισαγωγή στον Προγραμματισμό

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Προγραμματισμός Η/Υ (ΤΛ2007 )

Συναρτήσεις διαχείρισης αλφαριθμητικών

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

Προγραμματισμός Ι (HY120)

Προγραμματισμός Η/Υ (ΤΛ2007 )

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

11. Συναρτήσεις (Μέρος Ι)

Μεθόδων Επίλυσης Προβλημάτων

Προγραμματισμός ΙI (Θ)

Δομές ελέγχου ροής προγράμματος

Ηβασικήσυνάρτηση προγράμματος main()

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

Διάλεξη 5η: Εντολές Επανάληψης

Διαδικαστικός Προγραμματισμός

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραμματισμό

Τύποι Δεδομένων Είσοδος/Έξοδος

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

είκτες και Πίνακες (2)

Η γλώσσα προγραμματισμού C

Περιεχόμενα. Πρόλογος... 21

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Γλώσσες Προγραμματισμού

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

Προγραμματισμός Υπολογιστών

ιαδικαστικός Προγραμματισμός

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Προγραμματισμό για ΗΜΥ

Διαδικαστικός Προγραμματισμός

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

Διαδικαστικός Προγραμματισμός

Δομημένος Προγραμματισμός (ΤΛ1006)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Μεθόδων Επίλυσης Προβλημάτων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

12. Συναρτήσεις (Μέρος ΙI)

Προγραμματισμό για ΗΜΥ

Δομημένος Προγραμματισμός

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ιαδικαστικός Προγραμματισμός

Μεθόδων Επίλυσης Προβλημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Δομημένος Προγραμματισμός (ΤΛ1006)

Διαδικαστικός Προγραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

Διαδικασιακός Προγραμματισμός

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΕΠΛ232: Εργαστήριο 2

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002

Transcript:

Συναρτήσεις και διαδικασίες

Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί ένα όνομα. Η πράξη του συνόλου των εντολών που σχετίζονται με μια συνάρτηση ονομάζεται κλήση της συνάρτησης. Κατά την κλήση μιας συνάρτησης γράφουμε το όνομα της συνάρτησης ακολουθούμενο από παραστάσεις μέσα σε παρενθέσεις, που χωρίζονται από κόμμα, που ονομάζονται ορίσματα της συνάρτησης.

Διαδικασία κλήσης συνάρτησης Όταν κληθεί μια συνάρτηση Παίρνει τα δεδομένα που της παρέχονται ως ορίσματα Εκτελεί τις εντολές της Επιστρέφει (returns) στο σημείο από το οποίο κλήθηκε. Κατά την επιστροφή της μια συνάρτηση είναι δυνατόν να «στείλει» μια τιμή πίσω στη συνάρτηση που την κάλεσε. Αυτή η λειτουργία ονομάζεται επιστροφή τιμής. n = GetInteger();

Παράδειγμα κλήσης συνάρτησης Κλήση της συνάρτησης υπολογισμού της τετραγωνικής ρίζας της μαθηματικής βιβλιοθήκης math της C. #include <math.h> /* Συμπερίληψη του αρχείου επικεφαλίδας math.h*/... x = sqrt(2.0); distance = sqrt(x*x + y*y); Υπολογισμός του x 2 y 2

r = sqrt(2.0); 2.0 r sqrt Παράμετρος Επιστρεφόμενη τιμή Γενικά Παράμετρος... Παράμετρος συνάρτηση Επιστρεφόμενη τιμή

Δήλωση συναρτήσεων Στην πρότυπη (ANSI) C για να χρησιμοποιηθεί μια συνάρτηση σε ένα πρόγραμμα πρέπει πρώτα να έχει δηλωθεί Υπενθύμιση: Το ίδιο ισχύει και για τις μεταβλητές στη C. Η δήλωση μιας συνάρτησης ονομάζεται πρωτότυπο συνάρτησης. Σε αυτήν ορίζονται: Το όνομα της συνάρτησης Ο τύπος κάθε ορίσματος και, τις περισσότερες φορές, ένα όνομα για το όρισμα. Ο τύπος της τιμής που επιστρέφει η συνάρτηση

Μορφή Πρωτοτύπου Συνάρτησης Επιστρεφόμενος_τύπος όνομα_συνάρτησης ( τύπος_ορίσματος όνομα_ορίσματος προαιρ,...); Παράδειγμα: int sum (int x, int y); ή int sum(int, int); double square(double x);

Πρωτότυπα συνάρτησης Κάθε αρχείο επικεφαλίδας (header file) περιέχει τα πρωτότυπα των συναρτήσεων της αντίστοιχης βιβλιοθήκης. Ένα πρωτότυπο προδιαγράφει τη μορφή μιας συνάρτησης και δεν ορίζει τη λειτουργία της. Μια συνάρτηση που δεν έχει ορίσματα χρησιμοποιεί την ειδική λέξη void ως προδιαγραφή του ορίσματος. int GetInteger(void);

Συγγραφή μιας συνάρτησης Η συγγραφή μιας συνάρτησης απαιτεί: 1.Τον ορισμό του πρωτοτύπου της συνάρτησης στην αρχή, συνήθως, του προγράμματος. 2.Την υλοποίηση της συνάρτησης στην οποία ορίζονται τα βήματα που θα εκτελεστούν από την συνάρτηση. Για τον ορισμό του πρωτοτύπου πρέπει να αποφασίσουμε: Με τι δεδομένα θέλουμε να τροφοδοτήσουμε τη συνάρτηση Ποια τιμή θέλουμε να μας επιστρέψει η συνάρτηση

Παράδειγμα: Συνάρτηση μετατροπής θερμοκρασίας από βαθμούς Κελσίου σε Farenheit Η μετατροπή γίνεται σύμφωνα με τη σχέση F = 9/5 C +32 Δεδομένα εισόδου της συνάρτησης: Η θερμοκρασία σε βαθμούς Κελσίου. Τύπος: double Δεδομένα εξόδου της συνάρτησης: Η θερμοκρασία σε βαθμούς Farenheit. Τύπος: double

Ορισμός του πρωτοτύπου Το πρωτότυπο της συνάρτησης είναι το παρακάτω: double CelciusToFarenheit(double c); Η υλοποίηση μιας συνάρτησης ορίζεται ως εξής: Επικεφαλίδα_συνάρτησης (χωρίς ερωτηματικό) Σώμα συνάρτησης

Υλοποίηση συνάρτησης Στο παράδειγμα: double CelciusToFarenheit(double c) { double f; f = 9.0 /5.0 * c + 32.0; return f; Η εντολή return καθορίζει την τιμή που πρόκειται να επιστραφεί.

Εναλλακτική υλοποίηση double CelciusToFarenheit(double c) { return (9.0 /5.0 * c + 32.0);

Η οδηγία #define Ενότητα 3.6, σελ. 127 του βιβλίου. Η οδηγία (μηχανισμός) #define αντιστοιχίζει μια σταθερή τιμή σε ένα σύμβολο του προγράμματος, ώστε η τιμή αυτή να είναι εύκολο να αλλαχθεί στο σύνολο του προγράμματος #define UpperLimit 0 [Χωρίς ερωτηματικό στο τέλος!]

#include <stdio.h> #include genlib.h #include simpio.h double CelciusToFarenheit(double c); main() { double c = 100.0; while (TRUE) { printf( Celcius? ); c = GetReal(); if (c < 0.0) break; printf( Farenheit: %g\n, CelciusToFarenheit(c)); double CelciusToFarenheit(double cc) { return (9.0 /5.0 * cc + 32.0);

Συναρτήσεις με εσωτερικές δομές ελέγχου int abs(int n) { if (n<0) { return (-n); else { return (n);

Συναρτήσεις με εσωτερικές δομές ελέγχου int Factorial(int n) { int product, i; product = 1; for (i = 1 ; i <= n ; i++) { product *= i; return (product);

Συναρτήσεις που επιστρέφουν μη αριθμητικές τιμές string MonthName(int month) { switch (month) { case 1: return ( January ); /* No break needed */ case 2: return ( February ); case 3: return ( March );... case 11: return ( November ); case 12: return ( December ); default: return ( Illegal month );

Κατηγορηματικές συναρτήσεις Συναρτήσεις που επιστρέφουν τιμές τύπου bool (TRUE ή FALSE) Παράδειγμα: Συνάρτηση που ελέγχει αν ένας αριθμός είναι άρτιος ή περιττός #include genlib.h bool IsEven(int n) { return (n % 2 == 0);

Η κλήση Κλήση κατηγορηματικής συνάρτησης if (IsEven(3) == TRUE){... είναι ισοδύναμη με την if (IsEven(3)) {...

Κατηγορηματική συνάρτηση σύγκρισης αλφαριθμητικών Η συνάρτηση bool StringEqual(string s1, string s2); Επιστρέφει TRUE όταν τα αλφαριθμητικά s1 και s2 είναι ίσα. Παραδείγματα: StringEqual( abc, abc ) TRUE StringEqual( abc, cba ) FALSE StringEqual( abc, abcd ) FALSE

Κλήση συνάρτησης και μεταβίβαση παραμέτρων Έστω το πρωτότυπο int Factorial (int n); Η μεταβλητή n στο πρωτότυπο της Factorial χρησιμεύει ως δεσμευτικό θέσης για το πραγματικό όρισμα. Μια τέτοια μεταβλητή ονομάζεται τυπική παράμετρος.

Μεταβίβαση παραμέτρων και επιστροφή αποτελέσματος int k; double f; f = 3.5; k = Factorial(f + 1); Όταν καλείται μια συνάρτηση, εκτελούνται τα παρακάτω βήματα: 1. Οι παραστάσεις του ορίσματος (πραγματικές παράμετροι) αποτιμώνται, δηλαδή υπολογίζεται η τιμή που τους αντιστοιχεί. 2. Η τιμή κάθε ορίσματος (πραγματική παράμετρος) αντιγράφεται στη θέση των τυπικών παραμέτρων. Αν είναι αναγκαίο, γίνεται αυτόματη μετατροπή τύπων. 3. Οι εντολές που περιλαμβάνονται στο σώμα της συνάρτησης αποτιμώνται (εκτελούνται) μέχρι την εμφάνιση της εντολής return. 4. Η τιμή της return αποτιμάται και μετατρέπεται, αν χρειαστεί, στον τύπο αποτελέσματος που καθορίζεται στο πρωτότυπο της συνάρτησης 5. Το πρόγραμμα που κάλεσε τη συνάρτηση συνεχίζει την εκτέλεσή του με την κλήση της συνάρτησης να αντικαθίσταται από την επιστρεφόμενη τιμή της.

Τοπικές μεταβλητές double Exp (double r, int m); main() { double y; y = Exp(2.5, 2 ); double Exp(double r, int m) { /* Τοπική μεταβλητή, δεν έχει σχέση με την y της main */ double y = 1.0 ; int i; for (i = 0; i < m; i++) y *= r; return y;

Διαδικασίες Συναρτήσεις οι οποίες δεν επιστρέφουν κάποια τιμή αλλά έχουν κατά την εκτέλεσή τους κάποια επίδραση. Πολλές γλώσσες προγραμματισμού παρέχουν ξεχωριστούς μηχανισμούς για την υλοποίηση διαδικασιών και συναρτήσεων. Παράδειγμα διαδικασίας: Εκτύπωση μηνυμάτων στην οθόνη: void GiveInstructions(void); void GiveInstructions(void) { printf( Ayto to programma kanei enan ypologismo\n ); printf( gia to xrhsth );

Δείτε Ενότητες 5.1 έως 5.4 του βιβλίου