Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

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

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

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

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

Συναρτήσεις. Εισαγωγή

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

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

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

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

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

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

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

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

9. Εντολές επανάληψηςκαι η εντολή

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

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

Εισαγωγή στην Πληροφορική

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

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

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εισαγωγή στις Συναρτήσεις

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. Δείκτες (Διάλεξη 14)

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Επικοινωνία:

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στον Προγραμματισμό (με. τη C)

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Εισαγωγή στην πληροφορική

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Αναδρομή Ανάλυση Αλγορίθμων

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 4

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

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

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

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

Διάλεξη 6: Δείκτες και Πίνακες

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

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

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

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

Transcript:

Προγραμματισμός Η/Y Διάλεξη 6 η : Συναρτήσεις

Η C είναι συναρτησιακή γλώσσα προγραμματισμού Ως τώρα όλα τα προγράμματα που είδαμε ήταν γραμμένα μέσα στην main Τι θα κάνουμε όμως αν Το πρόγραμμα είναι τεράστιο (π.χ. 100000 γραμμές); Υπάρχουν κομμάτια κώδικα τα οποία θέλουμε να εκτελέσουμε πολλές φορές; Θα χωρίσουμε το πρόγραμμα σε κομμάτια Φιλοσοφία του διαίρει και βασίλευε T κάθε κομμάτι σε ένα επιμέρους υποπρόβλημα Τι θα κερδίσουμε;

Τι θα κερδίσουμε Τα υποπροβλήματα είναι μικρότερα και συνεπώς πιο εύκολα στη διαχείριση Δημιουργούμε μια συνάρτηση για κάθε υποπρόβλημα Ο κώδικας είναι πιο ευανάγνωστος και ευκολότερος στη συντήρηση Μπορούμε να χρησιμοποιήσουμε συναρτήσεις που έχουμε γράψει στο παρελθόν για την επίλυση νέων προβλημάτων Αποφεύγουμε την επανάληψη κώδικα στο ίδιο πρόγραμμα Επιτυγχάνεται αφαίρεση. Δηλ. απόκρυψη μη απαραίτητων λεπτομερειών από τον προγραμματιστή Σκεφτείτε ομάδες προγραμματιστών που υλοποιούν ένα μεγάλο σύστημα

Συναρτήσεις Βασίζει την ανάπτυξη σύνθετων συστημάτων στην τμηματοποίηση των σύνθετων διεργασιών σε επιμέρους απλούστερες διεργασίες Τμηματοποίηση ενός προγράμματος σε συναρτήσεις (functins) Κάθε συνάρτηση πρέπει να είναι Σχετικά μικρή Αν είναι δυνατό να έχει μία είσοδο και μία έξοδο Να είναι αυτόνομη Να εκτελεί σαφώς ορισμένο έργο Να έχει καλά προσδιορισμένη επαφή Κάθε πρόγραμμα C αποτελείται από τη συνάρτηση main και (προαιρετικά) από ένα αριθμό άλλων συναρτήσεων

Δηλαδή τι θα μπορούσα να φτιάξω ως συνάρτηση Παράδειγμα: Υπολογίστε την αξία του ΦΠΑ στην τιμή ενός προϊόντος. Π.χ Αν ένα πουκάμισο κοστίζει (τελική τιμή) 80 και το ΦΠΑ είναι 23%, πόσο πληρώνουμε για ΦΠΑ Αν αυτό το χρειαζόμαστε π.χ. 50 φορές στο πρόγραμμά μας, δεν το γράφουμε 50 φορές Δημιουργούμε μία συνάρτηση! Η συνάρτηση, όπως και στα μαθηματικά, έχει είσοδο (μεταβλητές) και έξοδο (αποτέλεσμα)

Υπολογισμός φόρου Είσοδος Τελική τιμή προϊόντος Ποσοστό ΦΠΑ Έξοδος Φόρος Στη C return_type functin_name (parameter list) { //Κώδικας συνάρτησης }

Παράδειγμα flat calc_vat (flat price, flat vat) { flat price_n_vat,vat; price_n_vat = price / (1.0 + vat); vat = price - price_n_vat; return vat; } Κατόπιν οπουδήποτε στο πρόγραμμά μας μπορούμε να γράψουμε: printf ( T FPA einai: %.2f, calc_vat(80.0, 0.23) );

Συναρτήσεις Η βιβλιοθήκη της C παρέχει πολλές έτοιμες συναρτήσεις. Στο εργαστήριο έχουμε δει: printf() συνάρτηση εκτύπωσης scanf() συνάρτηση εισόδου rand () - Παραγωγή τυχαίων αριθμών Αν για κάτι που θέλουμε να κάνει το πρόγραμμα μας, βοηθάει μια έτοιμη συνάρτηση τότε την χρησιμοποιούμε Δεν ξαναγράφουμε τον κώδικα από την αρχή Χρησιμοποιήστε τις συναρτήσεις της βιβλιοθήκης όσο περισσότερο μπορείτε

Παραδείγματα συναρτήσεων int max(int a, int b); int max(int, int); vid draw_circle(duble x, duble y, duble r); vid print_menu (); Τα ονόματα των μεταβλητών δεν είναι υποχρεωτικά, μόνο ο τύπος τους vid: δεν επιστρέφεται καμία τιμή Οι δηλώσεις των printf και scanf βρίσκονται στο αρχείο stdi.h Η συνάρτηση δηλώνεται στην αρχή του κώδικα (πρότυπο) και στη συνέχεια έχουμε τον κώδικά της

Ένα ακόμη παράδειγμα

Κλήση συνάρτησης Έστω η συνάρτηση int max (int a, int b) η οποία επιστρέφει τον μεγαλύτερο από δύο αριθμούς Τι τιμή θα έχει η μεταβλητή result μετά την εκτέλεση της παρακάτω γραμμής; Με ποιον αριθμό θα συγκριθεί ο αριθμός 17; result = max ( max (18,21), 17);

Επιστροφή από συνάρτηση - return Με τη δεσμευμένη λέξη return τερματίζει μια συνάρτηση Αν υπάρχει κώδικας παρακάτω, δεν θα εκτελεστεί

Ροή προγράμματος 1. Πρώτα εκτελούνται το printf και το scanf της main 2. Μετά έχουμε κλήση συνάρτησης. Στέλνονται στην συνάρτηση οι τιμές των num1, num2, num3 3. Οι τρεις τιμές αντιγράφονται στις παραμέτρους της max a, b, c 4. Εκτελούνται οι εντολές της max και η συνάρτηση επιστρέφει έχοντας υπολογίσει το temp 5. Ανατίθεται στην μεταβλητή megaliters η τιμή που επέστρεψε η max και εκτελείται το printf

Ποια η ροή του κώδικα εδώ; int main(vid){ int num1, num2, num3, megaliters; printf( dwse treis arithmus \n); scanf( %d %d %d,&num1,&num2,&num3); megaliters = max(num1,num2,num3); return 0; } int max(int a, int b, int c) { int temp = a; if (temp < b) temp = b; if (temp < c) temp = c; print_max(temp); return temp; } vid print_max(int num) { printf( max is %d,num); }

Κανόνες ευανάγνωστου κώδικα Οργανώστε τον κώδικά σας σύμφωνα με τα παρακάτω Εντολές προεπεξεργαστή (#include, #define) Πρωτότυπα συναρτήσεων Δηλώσεις γενικών μεταβλητών Συνάρτηση main Ορισμοί λοιπών συναρτήσεων Μεταξύ των παραπάνω ομάδων αφήνετε 1-2 κενές γραμμές Χρησιμοποιείτε κάθετη στοίχιση για να δηλώσετε την εμφώλευση Χρησιμοποιείτε αντιπροσωπευτικά ονόματα μεταβλητών Όλες οι μεταβλητές να δηλώνονται στο ίδιο σημείο