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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Επαναληπτικό Μάθημα ΑΕΠΠ
Advertisements

Βασικές έννοιες αλγορίθμων
Κεφάλαιο Τμηματικός προγραμματισμός
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
7.5.2 Αντικειμενοστραφής προγραμματισμός
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Χαρακτηριστικά συνθετικής κίνησης 1 Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα
H διαδικασία ανάπτυξης λογισμικού. Tι θα γνωρίσουμε •Τις φάσεις ανάπτυξης του λογισμικού. •Γιατί χρειάζεται να γίνει ανάλυση του προβλήματος. •Τι θα πρέπει.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ενότητα 1: Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Ανάλυση προβλημάτων και Αλγόριθμοι
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
ΜΑΘ-3122/106 Προγραμματισμός
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Σχεδίαση αλγορίθμων (2ο μέρος)
Παράδειγματα Συναρτησεις Πανω-Κατω Σχεδιασμος
Κεφ.1 Εισαγωγη στην εννοια του Αλγοριθμου και στον Προγραμματισμο
Πάνω προς Κάτω Σχεδιασμός και Συναρτήσεις
Συνδυαστικά Κυκλώματα
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Ενότητα Α.4. Δομημένος Προγραμματισμός
Ζαγκαρέτος Λεωνίδας ΑΕΜ: 607 Ραφαηλίδης Δημήτρης ΑΕΜ: 656
Κατανόηση (δεδομένα – ζητούμενα) Ανάλυση σε απλούστερα προβλήματα Επίλυση με οργανωμένα, απολύτως καθορισμένα, πεπερασμένα βήματα ΑΛΓΟΡΙΘΜΟΣ.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Η Δομή Επανάληψης οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες… Η παρουσίαση της εντολής Μέχρις_ότου είναι από την εισήγηση των κ. Σ. Δουκάκη.
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Δίνονται το ονοματεπώνυμο κάθε μαθητή μιας τάξης και η βαθμολογία του σε κάθε μάθημά του και θέλουμε να υπολογίσουμε το μέσο όρο της βαθμολογίας όλων των.
Κεφάλαιο 10 – Υποπρογράμματα
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Προγράμματα Συμβολικών Μαθηματικών.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Μπόλαρη Αγγελικη(1451) Επιβλέπων Βολογιαννίδης Σταύρος ΑΤΕΙ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ Σέρρες 2013.
Ένα Παιχνίδι Ρόλων στο Δημοτικό για τη Διδασκαλία των Διαδικασιών σε Logo Θωμάς Σκυλογιάννης Καθηγητής Πληροφορικής.
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
Επίλυση Προβλημάτων με Αναζήτηση
Τι μαθαίνει αυτός που μαθαίνει προγραμματισμό;
Από το πρόβλημα στην ανάπτυξη αλγορίθμου Σπάχος Κυριάκος ΠΕ 19 - Πληροφορικής.
ΑΠΑΡΑΙΤΗΤΕΣ ΙΚΑΝΟΤΗΤΕΣ ΓΙΑ ΤΗ ΜΑΘΗΣΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Η Γλώσσα Pascal Υποπρογράμματα
EPL231 – Data Structures and Algorithms
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη εκπαιδευτικής εφαρμογής.
ΚΕΦΑΛΑΙΟ 1 Ανάλυση προβλήματος.
ΦΑΣΕΙΣ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ – ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ
Στοιχεία Δομημένου Προγραμματισμού
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
ΑΛΓΟΡΙΘΜΟΣ.
ΑΝΑΛΥΣΗ ΚΡΙΣΙΜΟΥ ΣΥΜΒΑΝΤΟΣ
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Γ' ΤΑΞΗ ΣΥΝΤΑΚΤΙΚΑ ΚΑΙ ΛΟΓΙΚΑ ΛΑΘΗ
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Ιεραρχική σχεδίαση Καθορίζονται οι βασικές λειτουργίες σε ανώτερο επίπεδο και στη συνέχεια γίνεται διάσπαση σε όλο και μικρότερες λειτουργίες μέχρι το.
Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

31/1/2000epl /*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); }

31/1/2000epl /*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); }

31/1/2000epl /*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; }

31/1/2000epl /*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); }

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

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

31/1/2000epl Αποτέλεσμα Εκτέλεσης >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 >

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

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