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

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

Προγραμματισμός Η/Υ. Ενότητα 7: Συναρτήσεις

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Διοικητική Λογιστική

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στους Αλγορίθμους

Διοικητική Λογιστική

Εισαγωγή στους Η/Υ. Ενότητα 2α: Χάρτης Karnaugh (Βοηθητικό υλικό)

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Μηχανολογικό Σχέδιο Ι

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Βάσεις Περιβαλλοντικών Δεδομένων

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός Η/Υ. Ενότητα 6: Πίνακες και Δείκτες

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Κβαντική Επεξεργασία Πληροφορίας

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

Τεχνικό Σχέδιο - CAD

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Πληροφορική ΙΙ Θεματική Ενότητα 12

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Εισαγωγή στους Η/Υ. Ενότητα 5α: Λειτουργικά Συστήματα ΙΙ (Παραδείγματα Διαδρομών)

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

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Διδακτική Πληροφορικής

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Τεχνολογία Πολιτισμικού Λογισμικού

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

Ιστορία της μετάφρασης

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Τεχνικό Σχέδιο - CAD

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Βέλτιστος Έλεγχος Συστημάτων

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Ψηφιακή Επεξεργασία Εικόνων

Βάσεις Περιβαλλοντικών Δεδομένων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Διδακτική Πληροφορικής

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Διαχείριση Πολιτισμικών Δεδομένων

Διδακτική Πληροφορικής

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Διοικητική Λογιστική

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διδακτική Πληροφορικής

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Ευφυής Προγραμματισμός

Εισαγωγή στους Υπολογιστές

Διδακτική της Πληροφορικής

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

Διδακτική Πληροφορικής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

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

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

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Οντοκεντρικός Προγραμματισμός

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

Transcript:

Προγραμματισμός Η/Υ Ενότητα 3: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Σκοποί ενότητας Κατανόηση της έννοιας της διεργασίας Κατανόηση της χρήσης και της σύνταξης των συναρτήσεων 2

Περιεχόμενα ενότητας Αφαιρετικότητα στις διαδικασίες (procedural abstraction) Αρθρωτός σχεδιασμός (modular design) Εισαγωγή στις Συναρτήσεις Η βασική βιβλιοθήκη της C 3

Μέρος 1 ο Αφαιρετικότητα στις διαδικασίες (procedural abstraction)

Αφαιρετικότητα στις διαδικασίες (procedural abstraction) Η έννοια της διαδικασίας

Η έννοια της διαδικασίας Βασικό δομικό στοιχείο της ανάπτυξης συστημάτων λογισμικού Όνομα διαδικασίας Είσοδοι και έξοδοι μιας διαδικασίας Σώμα μιας διαδικασίας Αφαιρετικότητα (abstraction) Διαχωρισμός ανάμεσα στο τι και το πώς Διάφορα επίπεδα (μεθοδολογίας, αλγορίθμου, προγράμματος, δεδομένων, εντολών) Τι κάναμε μέχρι τώρα; Υλοποίηση και εκτέλεση απλών προγραμμάτων Συνάρτηση printf της βασικής βιβλιοθήκης της C 6

Μέρος 2 ο Αρθρωτός σχεδιασμός (modular design)

Αρθρωτός σχεδιασμός (modular design)

Αρθρωτός Σχεδιασμός (modular design) Τμηματοποίηση ενός προγράμματος σε επιμέρους τμήματα (modules) συναρτήσεις της C Επιμέρους τμήματα (modules) Έχουν σχετικά μικρό μέγεθος Έχουν (όπου είναι εφικτό) μία είσοδο και μία έξοδο Αναπτύσσονται και ελέγχονται ως αυτόνομες μονάδες Εκτελούν ένα σαφώς καθορισμένο έργο Έχουν καλά προσδιορισμένες διεπαφές (interfaces) με το χρήστη Στο τέλος, όλα αυτά τα τμήματα (συναρτήσεις) πρέπει να «ενοποιηθούν» για να αποτελέσουν το πρόγραμμα Στη C, η συνάρτηση είναι η γλωσσική κατασκευή που αναπαριστά τη διεργασία (Υπορουτίνα (subroutine) στην Pascal) 9

Μέρος 3 ο Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Δήλωση, Κλήση και Ορισμός Συνάρτησης

Εισαγωγή στις συναρτήσεις Η συνάρτηση είναι μια αυτόνομη μονάδα κώδικα, η οποία είναι σχεδιασμένη να επιτελεί συγκεκριμένο έργο Οφέλη από τη χρήση συναρτήσεων Αποφυγή επαναλήψεων Αύξηση επαναχρησιμοποίησης Βελτίωση αναγνωσιμότητας κώδικα Καλύτερη συντήρηση Η συνάρτηση main περιέχεται οπωσδήποτε (από αυτήν αρχίζει η εκτέλεση του προγράμματος) 12

Γενική μορφή ενός προγράμματος στη C εντολές προεπεξεργαστή (#include, #define, ) δηλώσεις συναρτήσεων δηλώσεις μεταβλητών main() { δηλώσεις μεταβλητών προτάσεις } func1() { } func2() { } πρώτη συνάρτηση δεύτερη συνάρτηση πριν από τη χρήση της συνάρτησης διαφορά; 13

Δήλωση (ή πρωτότυπο) συνάρτησης Προσδιορίζει τον τρόπο αναφοράς σε αυτή (διεπαφή της συνάρτησης) Γενική μορφή Παραδείγματα int max(int a, int b); void draw_circle(double x, double y, double r); 14

Κλήση συνάρτησης Κλήση συνάρτησης που δεν επιστρέφει τιμή <όνομα_συνάρτησης>(όρισμα_1, όρισμα_2,, όρισμα_ν); Παράδειγμα draw_circle(a/2.0, 2.0*b, c/3.0); πραγματικά ορίσματα (actual arguments) μπορεί να είναι σταθερές, μεταβλητές ή εκφράσεις, αλλά του ίδιου τύπου με τα αντίστοιχα τυπικά ορίσματα (ο compiler χρησιμοποιεί τη δήλωση της draw_circle για έλεγχο τύπων σε κάθε κλήση της) 15

Κλήση συνάρτησης Κλήση συνάρτησης που επιστρέφει τιμή Παραδείγματα max_num = max(num_1, num_2); result = num_1 + max(num_2, num_3); printf( ο μεγαλύτερος αριθμός είναι ο %d\n, max(num_1, num_2)); 16

Ορισμός συνάρτησης Γενική μορφή τύπος_επιστρεφόμενης_τιμής όνομα_συνάρτησης (λίστα_παραμέτρων) { δηλώσεις τοπικών μεταβλητών προτάσεις } 17

Ορισμός συνάρτησης Παράδειγμα float area(float width, float length) τυπικά ορίσματα (formal arguments) { float result; result = width * length; return(result); } τοπική μεταβλητή (local variable) επιστροφή του ελέγχου (αλλά και της τιμής της result) στη συνάρτηση που κάλεσε την area 18

Μηχανισμός κλήσης συνάρτησης int max(int a, int b) { return((a>b)?a:b); } επεξήγηση έκφρασης result = max(max(15,13),17); 15 int max(int a, int b) { return((a>b)?a:b); } 19

Παραδείγματα συναρτήσεων Δεν παίρνει παραμέτρους int display() { printf( First C Program\n ); } return(0); Επιστρέφει την (int) τιμή 0 20

Παραδείγματα συναρτήσεων int compute_sum(int a, int b) { int sum; Παίρνει δύο παραμέτρους sum = a + b; } return sum; Επιστρέφει την (int) τιμή sum 21

Παραδείγματα συναρτήσεων #include <stdio.h> int compute_sum(int a, int b) { int sum; sum = a + b; return sum; } 22

Παραδείγματα συναρτήσεων void main() { int number_a, number_b; /* δεδομένα από χρήστη */ int sum; printf( Enter two numbers: ); scanf( %d%d,&number_a, &number_b); sum = compute_sum(number_a, number_b); } printf( The sum of %d and %d is %d\n, number_a, number_b, sum); 23

Μέρος 4 ο Η βασική βιβλιοθήκη της C

Η βασική βιβλιοθήκη της C

Η βασική βιβλιοθήκη της C Περιλαμβάνει συναρτήσεις για βασικές διεργασίες Εξοικείωση με τις συναρτήσεις αυτές Βασικές κατηγορίες Εισόδου / Εξόδου Μαθηματικές Διαχείρισης αλφαριθμητικών Ταξινόμησης και μετατροπής χαρακτήρων 26

Η βασική βιβλιοθήκη της C Άλλες κατηγορίες Μετατροπής δεδομένων Αναζήτησης και ταξινόμησης Διαχείρισης αρχείων Διαχείρισης μνήμης 27

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στο πλαίσιο του εκπαιδευτικού έργου των διδασκόντων. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 29

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Πολυτεχνική Σχολή, Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών, Νίκος Καρακαπιλίδης, Δημήτρης Σαραβάνος. Νίκος Καρακαπιλίδης, Δημήτρης Σαραβάνος. «Προγραμματισμός Η/Υ. Top Down Σχεδιασμός». Έκδοση: 1.0. Πάτρα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/mech1207/ 30

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 31

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 32

Σημείωμα Χρήσης Έργων Τρίτων Οποιοδήποτε έργο στην παρούσα ενότητα, έχει δημιουργηθεί από τους διδάσκοντες του μαθήματος ή/και την Τμηματική Ομάδα Εργασίας και παρέχεται με την ίδια άδεια CC BY-NC-SA 4.0 33