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

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

31/1/2000epl-0321 Προγραμματισμός •Γιατι γραφουμε προγραμματα (προηγ. διαλεξη) •Πως γραφουμε προγραμματα –τι ειναι προγραμματισμος –μεθοδολογια –αφαιρετικοτητα.

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


Παρουσίαση με θέμα: "31/1/2000epl-0321 Προγραμματισμός •Γιατι γραφουμε προγραμματα (προηγ. διαλεξη) •Πως γραφουμε προγραμματα –τι ειναι προγραμματισμος –μεθοδολογια –αφαιρετικοτητα."— Μεταγράφημα παρουσίασης:

1 31/1/2000epl-0321 Προγραμματισμός •Γιατι γραφουμε προγραμματα (προηγ. διαλεξη) •Πως γραφουμε προγραμματα –τι ειναι προγραμματισμος –μεθοδολογια –αφαιρετικοτητα (abstraction) •διαχωρισμος μεταξυ τι και πως(προγραμμα,δεδομενα...) •Παραδειγματα

2 31/1/2000epl-0322 Τι είναι προγραμματισμός •Ο σχεδιασμός αλγορίθμων και η υλοποίηση τους σε γλώσσες προγραμματισμού για την επίλυση προβλημάτων.

3 31/1/2000epl-0323 Μεθοδολογία 1. Ορισμος προβληματος 2. Αναλυσης προβληματος 3. Σχεδιαση αλγοριθμου 4. Υλοποίηση αλγόριθμου σε προγραμμα 5. Δοκιμή  επαλήθευση του ολοκληρωμένου προγράμματος (5.1 Aποσφαλματωση 1-2-3-4) 6. Συντήρηση  ενημέρωση του προγράμματος

4 31/1/2000epl-0324 Aνάλυσης Προβλήματος •Ακριβης αναγνωρισης: –τι ειναι τα δεδομενα (inputs) –τι ειναι τα εξαγωμενα/αποτελεσμα (outputs) –τι χρειαζεται να γινει

5 31/1/2000epl-0325 Τι είναι αλγόριθμος? •Διατυπώση της διαδικασιας μετασχηματισμού του δεδομένου στο αποτέλεσμα •Εκφράζεται σε ψευδογλώσσα (pseudocode)

6 31/1/2000epl-0326 Σχεδιάσμος Αλγορίθμου •Σταδιακη Εκλέπτυνση (Stepwise Refinement) Πανω προς Κατω (top-down design) –Το πρόβλημα σταδιακά διασπάζεται σε ένα αριθμό απλούστερων υποπροβλημάτων –Η σταδιακή διάσπαση (εκλέπτυνση) συνεχίζεται μέχρις ότου φτάσουμε σε ατομικά υποπροβλήματα (υποπροβλήματα που δεν είναι λογικό/δυνατό να διασπασθούν περαιτέρω) –Επαληθευση/Αξιολογηση

7 31/1/2000epl-0327 Διάσπαση σε Υποπροβλήματα Π Π1 Π2 Π1,1 Π1,2 Π2,1Π2,2 Π2,3 Π1,2,1Π1,2,2 Π1,2,3

8 31/1/2000epl-0328 Διασπαση Διευκολυνει... •Aρθρωτός σχεδιασμός(modular design) •Αφαιρετικότητα (abstraction) –Διαχωρισμός ανάμεσα στο τι και το πως •Διατύπωση διεπαφών (interface) •Παράλληλη ανάπτυξη ( parallel development ) •Επαναχρησιμοποίηση (reuse) •Επαληθευση/Αξιολογηση

9 31/1/2000epl-0329 Διεπαφές/Διασυνδέσεις •Tι απαιτειται –παραμετρους που παιρνει/επιστρεφει –λειτουργικοτητα (τι κανει) –καθολικες μεταβλητες που επηρεαζονται (side- effects)

10 31/1/2000epl-03210 Αφαιρετικοτητα •Διακρίβωση του τι γίνεται χωρίς την γνώση του πως γίνεται •Η διαδικασια προγραμματισμου αποτελειται απο σχεδιασμο λύσεων σε διάφορα επίπεδα αφαιρετικότητας •Προσοχη: το τι καποτε συμπεριλαμβανει περιορισμους (πηγη λαθων)

11 31/1/2000epl-03211 Αφαιρετικότητα Μεθοδολογίας 1. Ορισμος προβληματος 2. Αναλυσης προβληματος 3. Σχεδιαση αλγοριθμου 4. Υλοποίηση αλγόριθμου σε προγραμμα 5. Δοκιμή  επαλήθευση του ολοκληρωμένου προγράμματος (αποσφαλματωση 1-2-3-4) 6. Συντήρηση  ενημέρωση του προγράμματος Ανεξαρτητα Γλωσσας

12 31/1/2000epl-03212 Αφαιρετικοτητα Αλγοριθμου •Τι ειναι ο αλγοριθμος οχι πως θα υλοποιηθει... Αλγοριθμος JavaCFortran

13 31/1/2000epl-03213 Επιπεδα Αφαιρετικοτητας •Αφαιρετικοτητα Προγραμματος: Τι κανει ενα προγραμα οχι πως το κανει (διαδικασίες /συναρτήσεις) •Αφαιρετικοτητα Δεδομενων: Τι ειναι τα δεδομενα μιας δομης/τυπου οχι πως ειναι οργανωμενα (δομές/αφηρημένοι τύποι) •Αφαιρετικοτητα Εντολων: Τι κανει μια εντολη οχι πως το κανει

14 31/1/2000epl-03214 Τύποι Δεδομένων •Απλοι Τυποι: αριθμοι, χαρακτηρες •Συνθετοι Τυποι: πινακες, δομες, λιστες •Αφηρημενοι τυποι (abstract data types) –Αδιαφάνεια ως προς την υλοποίηση τους –Διεπαφή διαμέσου συναρτήσεων πρόσβασης •Συγκεκριμενοι: διαφανεια και αμεση προσβαση

15 31/1/2000epl-03215 Παράδειγμα •Γραψτε ενα προγραμμα που υπολογιζει το εμβαδο ενος ορθογωνιου. Το ορθογωνιο οριζεται με δυο αριθμους: το μηκος και το πλατος (σε μετρα). Το εμβαδο υπολογιζεται ως μηκος x πλατος. Π.χ. εαν το μηκος ειναι 10 μετρα και το πλατος 5 μετρα τοτε το εμβαδο ειναι 50 τετραγωνικα μετρα.

16 31/1/2000epl-03216 Αναλυσης •Δεδομενα ειναι δυο πραγματικοι αριθμοι (μηκος και πλατος) •Αποτελεσμα ειναι ενας πραγματικος αριθμος ( το εμβαδο τoυ ορθογωνιου που οριζεται απο τα δεδομενα )

17 31/1/2000epl-03217 Αλγοριθμος •Διαβασε τα δεδομενα •Υπολογισε το εμβαδο •Εξαγωγη αποτελεσματος

18 31/1/2000epl-03218 Διάβασε Δεδομένα •Διασυνδεση (Interface) –Διαβαζει δυο τιμες: μηκος και πλατος (μοναδα μετρησεως μετρο) •Λειτουργικοτητα (Functionality) –Διαβασε •μηκος •πλατος –ελεγξε αν ειναι θετικα

19 31/1/2000epl-03219 Υπολόγισε Εμβαδο •Interface –Παιρνει δυο παραμετρους (μηκος και πλατος) –Επιστρεφει εμβαδο •Functionality – υπολογιζει εμβαδο εμβαδο= μηκος x πλατος

20 31/1/2000epl-03220 Εξαγωγή Αποτελέσματος •Interface: –Παιρνει τρεις παραμετρους (μηκος, πλατος και εμβαδο) •Functionality: –εξαγει το εμβαδο για το καθορισμενο μηκος και πλατος

21 31/1/2000epl-03221 Αλγόριθμος Εισαγ. Υπολογ. Εξαγωγ. Προβλημα Εμβαδο = μηκος x πλατος Ελεγχος πλατος μηκος εμβαδοπλατος μηκος

22 31/1/2000epl-03222 Αλγοριθμος διαβασε_δεδομενα(μηκος,πλατος) υπολογισε_εμβαδο(μηκος,πλατος) εξαγωγη_αποτελεσματος(μηκος,πλατος εμβαδο)

23 31/1/2000epl-03223 Περαιτέρω Εκλέπτυνση Εισαγωγης get(μηκος) /*διαβασε μηκος*/ get(πλατος) /*διαβασε πλατος*/ /*ελεγχος μηκος*/ if (μηκος<=0) print(“λαθος μηκος”) exit /*ελεγχος πλατος*/ if (πλατος<=0)print(“λαθος πλατος”) exit

24 31/1/2000epl-03224 Υλοποίηση •Επιτυχης υλοποιηση εξυπακουει γνωση γλωσσας προγραμματισμου –συνταξη –σημασιολογια

25 31/1/2000epl-03225 /*program that computes the area of a rectangle (use of procedures) inputs: length, width in meters outputs: area in square meters*/ #include void get_data_check(float *length, float *width ) float compute_area(float length, float width ) void display_area(float length, float width, float area) void main() {/*orismos metavlitwn*/ float length, width; /*input variables*/ float area; /*holds area*/ /* diabase dedomena/elegxos*/ get_data_check(&length, &width ); /* ypologismos*/ area = compute_area(length, width ); /* ejagwgh*/ display_area(length, width, area); }

26 31/1/2000epl-03226 /*function that reads program input data*/ void get_data_check(float *length, float *width ){ printf(“Enter length in meters: ”); scanf(“%f”,length); printf(“Enter width in meters”); scanf(“%f”,width); if (*length<=0) { printf(“error: length should be positive\n”); exit(0); } if (*width<=0) { printf(“error: width should be positive\n”); exit(0); }

27 31/1/2000epl-03227 /*function that computes the area of a rectanlge*/ float compute_area(float length, float width ){ float area; /*holds area*/ area = length * width; /*compute area*/ return area; }

28 31/1/2000epl-03228 /*function that displays the output of the program*/ void display_area(float length, float width, float area) { printf(“The area of a rectangle with %f m length and %f m width is %f sq. m.\n”, length, width, area); }

29 31/1/2000epl-03229 Υλοποίηση •Χρησιμοποιηση ονοματων που βοηθουν στην ευκολη ερμηνεια του κωδικα •Ευκολοδιαβαστος κωδικας •Τεκμηρίωση: σχόλια στον κώδικα

30 31/1/2000epl-03230 Δοκιμή/Επαλήθευση •Μεταγλωτισμος π.χ. >cc foo.c -o foo αποτελεσμα: –τον αντικειμενικο κωδικα (μπορει ορθο) •εκτελεστε (τρεξτε) προγραμμα •εμπειρικη επαληθευση –λαθη (συντακτικα) •διορθωση κωδικα

31 31/1/2000epl-03231 Αποτέλεσμα Εκτέλεσης >foo Enter length in meters 17 Enter width in meters 2 The area of a rectange with 17 m length and 2 m width is 34 sq.m >foo Enter length in meters -0.5 Enter width in meters 12 error: length should be positive >

32 31/1/2000epl-03232 Εκβαση Εκτέλεσης •Τρεχει “ορθα” –πολυ ωραια - αλλα με επαληθευση –Επαληθευση: εμπειρικα, αναλυτικα •Τρεχει μα παραγει λαθος αποτελεσματα ή τρεχει μερικως (crashes) –αποσφαλματωση (μπορει να σας βοηθησει να βελτιωσετε την λυση σας)

33 31/1/2000epl-03233 Αξιολόγηση Λύσεων •Ταχύτητα, ανάγκη σε μνήμη •Αναλυτικές/Εμπειρικές Μέθοδοι


Κατέβασμα ppt "31/1/2000epl-0321 Προγραμματισμός •Γιατι γραφουμε προγραμματα (προηγ. διαλεξη) •Πως γραφουμε προγραμματα –τι ειναι προγραμματισμος –μεθοδολογια –αφαιρετικοτητα."

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


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