Μεθοδολογία. Aνάλυσης Προβλήµατος. Τι είναι αλγόριθµος? Σχεδιάσµος Αλγορίθµου

Σχετικά έγγραφα
ΠαράδειγµαΠρογραµµατισµού

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

ΕΠΛ Εισαγωγή στον Προγραµµατισµό: Λογισµικό. Το λογισµικό του συστήµατος: 1 Εισαγωγή ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Εισαγωγή. Ανάπτυξη Συστημάτων Λογισμικού. Οργάνωση μαθήματος. #1. Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Η/Υ. Ενότητα 1: Εισαγωγή στον Προγραμματισμό

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

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

Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Περιεχόμενα

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

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

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

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

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

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

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

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Chapter 6. Problem Solving and Algorithm Design. Στόχοι Ενότητας. Επίλυση προβληµάτων. Εισαγωγή. Nell Dale John Lewis

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

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Κεφάλαιο 10 ο Υποπρογράµµατα

ΑΕΠΠ ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 6.3 Φυσικές και Τεχνιτές Γλώσσες 6.4 Τεχνικές Σχεδίασης Προγραμμάτων

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

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

ηµιουργία νέου τύπου δεδοµένων από το χρήστη

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Αλγόριθμοι. Βασικές έννοιες ΤΕΛΟΣ

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Υπο-προγράμματα στη Fortran

ΑΕΠΠ Ερωτήσεις θεωρίας

Περιεχόµενα του µαθήµατος 1. στον προγραµµατισµό 2. Λογικά διαγράµµατα 3. Τα βασικά της FORTRAN 4. Μεταβλητές & παράµετροι 5. οµές επανάληψης 6. οµές

Υποπρογράµµατα Συναρτήσεις. Στόχοι Μαθήµατος. Οι µαθητές να µπορούν:

Κεφάλαιο 7ο: Συναρτήσεις και Υπορουτίνες

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

8 FORTRAN 77/90/95/2003

Επιµέλεια Θοδωρής Πιερράτος

Γ.1 Να γράψετε στο τετράδιό σας τους αριθµούς 1,2,3,4 από τη Στήλη Α και δίπλα το γράµµα α, β της Στήλης Β που δίνει το σωστό χαρακτηρισµό.

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Η βασική λειτουργία σε όλες αυτές τις συναρτήσεις είναι η εκτύπωση γραµµών.

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Τέτοιες λειτουργίες γίνονται διαμέσου του

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Αρχές Προγραμματισμού Υπολογιστών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) 2008

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

Συγγραφή Προγραμμάτων

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

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

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

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ

Α. Ερωτήσεις Ανάπτυξης

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

Διαφορές single-processor αρχιτεκτονικών και SoCs

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας)

Επανάληψη για τις Τελικές εξετάσεις

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΦΥΣ 145 Υπολογιστικές Μέθοδοι στη Φυσική. Πρόοδος 26 Μαρτίου 2007 Ομάδα 1 η

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3)

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/12/2012

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Θεωρία Προγραμματισμού

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Computing. Νοέμβριος Έκδοση 1.0

.EVAL push bx Xor bx,bh Add si,ax.loop dec cx. 1. Fortran. 2. Cobol. 3. Algol

οκιμασία και πλάνο δοκιμασίας

Transcript:

Προγραµµατισµός Προηγ. διαλεξη: γιατι γραφουµε προγραµµατα; Σηµερα: πως γραφουµε προγραµµατα; τι ειναι προγραµµατισµος µεθοδολογια αφαιρετικοτητα (abstraction) διαχωρισµος µεταξυ τι και πως(προγραµµα,δεδοµενα...) Παραδειγµα Τι είναι προγραµµατισµός Ο σχεδιασµός αλγορίθµων και η υλοποίηση τους σε γλώσσες προγραµµατισµού για την επίλυση προβληµάτων. epl-031 1 epl-031 2 Μεθοδολογία 1. Ορισµος προβληµατος 2. Αναλυσης προβληµατος 3. Σχεδιαση αλγοριθµου 4. Υλοποίηση αλγόριθµου σε προγραµµα 5. οκιµή & επαλήθευση του ολοκληρωµένου προγράµµατος (5.1 Aποσφαλµατωση 1-2-3-4) 6. Συντήρηση & ενηµέρωση του προγράµµατος Aνάλυσης Προβλήµατος Ακριβης αναγνωρισης: τι ειναι τα δεδοµενα (inputs) τι ειναι τα εξαγωµενα/αποτελεσµα (outputs) τι χρειαζεται να γινει epl-031 3 epl-031 4 Τι είναι αλγόριθµος? Σχεδιάσµος Αλγορίθµου ιατυπώση της διαδικασιας µετασχηµατισµού του δεδοµένου στο αποτέλεσµα Εκφράζεται σε ψευδογλώσσα (pseudocode) epl-031 5 Σταδιακη Εκλέπτυνση (Stepwise Refinement) Πανω προς Κατω (top-down design) Το πρόβληµα σταδιακά διασπάζεται σε ένα αριθµό απλούστερων υποπροβληµάτων Η σταδιακή διάσπαση (εκλέπτυνση) συνεχίζεται µέχρις ότου φτάσουµε σεατοµικά υποπροβλήµατα (υποπροβλήµατα που δεν είναι λογικό/δυνατό να διασπασθούν περαιτέρω) Επαληθευση/Αξιολογηση epl-031 6 1

ιάσπαση σε Υποπροβλήµατα ιασπαση ιευκολυνει... Π Π1 Π2 Π1,1 Π1,2 Π2,1 Π2,2 Π2,3 Π1,2,1 Π1,2,2 Π1,2,3 Aρθρωτός σχεδιασµός(modular design) Αφαιρετικότητα (abstraction) ιαχωρισµός ανάµεσα στο τι και το πως ιατύπωση διεπαφών (interface) Παράλληλη ανάπτυξη (parallel development) Επαναχρησιµοποίηση (reuse) Επαληθευση/Αξιολογηση epl-031 7 epl-031 8 ιεπαφές/ ιασυνδέσεις Απαιτειται ορισµος διεπαφης παραµετρους που παιρνει/επιστρεφει λειτουργικοτητα (τι κανει) Αφαιρετικοτητα ιακρίβωση του τι γίνεται χωρίς την γνώση του πως γίνεται Ηδιαδικασιαπρογραµµατισµου αποτελειται απο σχεδιασµολύσεωνσε διάφορα επίπεδα αφαιρετικότητας Προσοχη: το τι καποτε συµπεριλαµβανει περιορισµους (πηγη λαθων) epl-031 9 epl-031 10 Αφαιρετικότητα Μεθοδολογίας 1. Ορισµος προβληµατος 2. Αναλυσης προβληµατος 3. Σχεδιαση αλγοριθµου Ανεξαρτητα Γλωσσας 4. Υλοποίηση αλγόριθµου σε προγραµµα 5. οκιµή & επαλήθευση του ολοκληρωµένου προγράµµατος (αποσφαλµατωση 1-2-3-4) 6. Συντήρηση & ενηµέρωση του προγράµµατος Αφαιρετικοτητα Αλγοριθµου Τι ειναι ο αλγοριθµος οχι πως θα υλοποιηθει Αλγοριθµος... Java Fortran epl-031 11 epl-031 12 2

Επιπεδα Αφαιρετικοτητας Αφαιρετικοτητα Προγραµµατος: Τι κανει ενα προγραµα οχιπωςτοκανει(διαδικασίες /συναρτήσεις) Αφαιρετικοτητα εδοµενων: Τι ειναι τα δεδοµενα µιας δοµης/τυπου οχι πως ειναι οργανωµενα (δοµές/αφηρηµένοι τύποι) Αφαιρετικοτητα Εντολων: Τι κανει µια εντολη οχι πως το κανει epl-031 13 Παράδειγµα Γραψτε ενα προγραµµα που υπολογιζει το εµβαδο ενος ορθογωνιου. Το ορθογωνιο οριζεται µε δυοαριθµους: το µηκος και το πλατος (σε µετρα). Το εµβαδο υπολογιζεται ως µηκος x πλατος. Π.χ. εαν το µηκος ειναι 10 µετρα και το πλατος 5 µετρα τοτε το εµβαδο ειναι 50 τετραγωνικα µετρα. epl-031 14 Αναλυσης εδοµενα ειναι δυο πραγµατικοι αριθµοι (µηκος και πλατος) Αποτελεσµα ειναι ενας πραγµατικος αριθµος (το εµβαδο τoυ ορθογωνιου που οριζεται απο τα δεδοµενα) Αλγοριθµος ιαβασε τα δεδοµενα Υπολογισε το εµβαδο Εξαγωγη αποτελεσµατος epl-031 15 epl-031 16 Αλγοριθµος διαβασε_δεδοµενα(µηκος,πλατος) αθροισµα=υπολογισε_εµβαδο(µηκος,πλατος) εξαγωγη_αποτελεσµατος(µηκος,πλατος εµβαδο) διαβασε δεδοµενα Προβληµα υπολογισε εµβαδο εξαγωγη αποτελεσµατος ιάβασε εδοµένα Interface ιαβαζει και επιστρεφει δυο τιµες: µηκος και πλατος (µοναδα µετρησεως µετρο) Functionality ιαβασε µηκος πλατος (ελεγξε αν ειναι θετικα) epl-031 17 epl-031 18 3

Υπολόγισε Εµβαδο Interface Παιρνει δυο παραµετρους (µηκος και πλατος) Επιστρεφει εµβαδο Functionality υπολογιζει εµβαδο εµβαδο= µηκος x πλατος Εξαγωγή Αποτελέσµατος Interface: Παιρνει τρεις παραµετρους (µηκος, πλατος και εµβαδο) Functionality: εξαγει το αποτελεσµα epl-031 19 epl-031 20 Αλγόριθµος Περαιτέρω Εκλέπτυνση Εισαγωγης Προβληµα Εισαγ. Υπολογ. Εξαγωγ. get(µηκος) get(πλατος) διαβασε µηκος διαβασε πλατος µηκος πλατος εµβαδο Εµβαδο = µηκος x πλατος epl-031 21 epl-031 22 Υλοποίηση Επιτυχης υλοποιηση εξυπακουει γνωση γλωσσας προγραµµατισµου συνταξη σηµµασολογια program that computes the area of a rectangle (use of procedures) inputs: length, width in meters outputs: area in square meters PROGRAM RETANG OPEN (UNIT=1,STATUS='UNKNOWN',FILE='results.data') diabase dedomena/elegxos ALL INPUT(A, B) ypologismos ALL AL(AREA, A, B) ejagwgh ALL OUTPUT(AREA, A, B) STOP epl-031 23 epl-031 24 4

function that reads program input data SUBROUTINE INPUT(SIDEA, SIDEB) WRITE(*,*) Enter length in meters' READ(5,*) SIDEA WRITE(*,*) Enter width in meters' READ(5,*) SIDEB RETURN function that computes the area of a rectangle SUBROUTINE AL(AREA, A, B) pollaplasiazoume to mikos epi to platos AREA=A*B RETURN epl-031 25 epl-031 26 function that displays the output of the program SUBROUTINE OUTPUT(AREA, A, B) Υλοποίηση print the result on the screen WRITE(*,*) 'The area of rectangle with', A, m length and, B, m width is, area, sq. m.' RETURN Χρησιµοποιηση ονοµατων που βοηθουν στην ευκολη ερµηνεια του κωδικα Ευκολοδιαβαστος κωδικας Τεκµηρίωση: σχόλια στον κώδικα epl-031 27 epl-031 28 οκιµή/επαλήθευση Μεταγλωτισµος π.χ. >g77 foo.for -o foo παραγει: τον αντικειµενικο κωδικα (µπορει ορθο) εκτελεστε (τρεξτε) προγραµµα εµπειρικη επαληθευση(µεγεθος:1,0,λιγα αλλα) λαθη (συντακτικα) διορθωση κωδικα epl-031 29 Εκτέλεσης >foo Enter length in meters 17 Enter width in meters 2 The area of a rectangle with 17 m length and 2 m width is 34 sq.m epl-031 30 5

Εκβαση Εκτέλεσης Τρεχει ορθα πολυ ωραια - αλλα µε επαληθευση Επαληθευση: εµπειρικα, αναλυτικα Αξιολόγηση Λύσεων Ταχύτητα, ανάγκη σε µνήµη Αναλυτικές/Εµπειρικές Μέθοδοι Εκβαση Εκτέλεσης Τρεχει µα παραγει λαθος αποτελεσµατα ή τρεχει µερικως (crashes) αποσφαλµατωση (µπορει να σας βοηθησει να βελτιωσετε την λυση σας) epl-031 31 epl-031 32 Εποµενο Αντικειµενο Εισαγωγη στην FORTRAN epl-031 33 6