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

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

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

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

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

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

ΕΠΛ 032 Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Γενική Περιγραφή

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

ΠαράδειγµαΠρογραµµατισµού

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Πληροφορική 2. Αλγόριθμοι

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

Θέματα Προγραμματισμού Η/Υ

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

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

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

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

Α Διαγώνισμα 1 ου Τριμήνου στο μάθημα της Πληροφορικής Γ Γυμνασίου Ονοματεπώνυμο:...

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Μαλούτα Θεανώ Σελίδα 1

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Προγραµµατισµός Η/Υ. Μέρος2

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

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

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

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

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

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

Πληροφορική ΙΙ Ενότητα 1

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

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

ΑΛΓΟΡΙΘΜΟΙ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Πληροφορική ΙΙ. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

Ψευδοκώδικας. November 7, 2011

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

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

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

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

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Transcript:

Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραμματισμό (Διάλεξη 2) Περιεχόμενα Εισαγωγικές Έννοιες - Ορισμοί Ο κύκλος ανάπτυξης προγράμματος Παραδείγματα 1

Πότε χρησιμοποιούμε υπολογιστή? Χρήση υπολογιστή αν: Έχουμε πολλά στοιχεία να επεξεργαστούμε. Παράγονται πολλά αποτελέσματα. Μέθοδοςεπίλυσηςεξαιρετικάπολύπλοκη για ένα άνθρωπο. Χρησιμοποιούμε την ίδια μέθοδο πολλές φορές. Να θυμάστε: Ο Η/Υ εκτελεί «πράξεις» γρηγορότερα από τον άνθρωπο. ΟΗ/Υ μπορείνα«θυμάται» περισσότερα πράγματα από τον άνθρωπο. Ο Η/Υ μπορεί να εκτελέσει με «ακρίβεια» μια λογική σειρά εντολών. Εισαγωγή - Ορισμοί Αλγόριθμος: ονομάζουμε μια ταξινομημένη ακολουθία μη διφορούμενων βημάτων που οδηγούν στη λύση ενός προβλήματος. Πρόγραμμα: ονομάζουμε την αναπαράσταση ενός η πολλών αλγορίθμων σε μορφή κατανοητή από τον υπολογιστή Προγραμματισμός: Η διαδικασία της ανάπτυξης ενός αλγορίθμου σε συνδυασμό με την συγγραφή του προγράμματος. Γλώσσα Προγραμματισμού: Το σύνολο των γραμματικών και συντακτικών κανόνων που μας επιτρέπει να δίνουμε εντολές στον Η/Υ μέσω ενός προγράμματος. Κύκλος Ανάπτυξης Προγράμματος: Ηδιαδικασίαπου ακολουθούμε για την ανάπτυξη ενός προγράμματος 2

Ο κύκλος ανάπτυξης προγράμματος Ο κύκλος ανάπτυξης προγράμματος αναλύεται σε έξι βασικά βήματα: 1. Περιγραφή του προβλήματος, καθορισμός απαιτήσεων, 2. Ανάλυση προβλήματος, προσδιορισμός της λύσης 3. Σχεδίαση τηςλύσηςτουπροβλήματος Ανάπτυξη αλγορίθμου Σχεδιασμός διαγράμματος ροής Δημιουργία ψευδοκώδικα 4. Κωδικοποίηση σε γλώσσα προγραμματισμού, 5. Έλεγχος, διόρθωση λαθών, 6. Συντήρηση προγράμματος, τεκμηρίωση. 1. Περιγραφή του προβλήματος & καθορισμός απαιτήσεων Ξεκάθαρη διατύπωση του προβλήματος. Απομονώνουμε και καταγράφουμε με απλά βήματα τις πραγματικές συνιστώσες ενός προβλήματος, τοποθετώντας τις σε λογική σειρά μεταξύ τους. Εξαλείφουμε άσχετες πληροφορίες Αποσαφηνίζουμε διφορούμενες πληροφορίες. Ζητούμε, εάν χρειάζεται, επιπλέον πληροφορίες απότοάτομο που διατυπώνει το πρόβλημα. Αποσαφηνίζουμε τους στόχους που επιδιώκουμε να υλοποιήσουμε με αναλυτικό τρόπο προκειμένου να καταγραφεί το πλαίσιο απαιτήσεων της όλης προσπάθειας. 3

Περιγραφή του προβλήματος & καθορισμός απαιτήσεων Πρόβλημα: To μάθημα ΕΠΛ001 προσφέρεται από το Τμήμα Πληροφορικής. Το μάθημα παρακολούθησαν το χειμερινό εξάμηνο του 2006, 30 άτομα. Ταξινομείστε τα άτομα αυτά ανάλογα με τη βαθμολογία της τελικής εξέτασης. Επιπλέον Πληροφορίες: Ποια δεδομένα θα δοθούν (ονόματα, βαθμοί, τηλέφωνο, ) και πώς (από file, από το χρήστη). Τα αποτελέσματα πως θα παρουσιάζονται? Θα τυπώνονται, θα φυλάσσονται σε file? Άσχετες Πληροφορίες: To μάθημα ΕΠΛ001 προσφέρεται από το Τμήμα Πληροφορικής. Το μάθημα παρακολούθησαν το χειμερινό εξάμηνο του 2006, 30 άτομα. Διφορούμενες Πληροφορίες: Ταξινομείστε (αύξουσα ή φθίνουσα σειρά)? 2. Ανάλυση του προβλήματος & προσδιορισμός της λύσης Ως μέρος της ανάλυσης απαντούμε στις πιο κάτω ερωτήσεις: ποια είναι τα δεδομένα εισόδου (inputs) ποια είναι τα εξαγώμενα/αποτελέσματα (outputs) ποια είναι η λύση (σχετικές αριθμητικές πράξεις) 4

2. Ανάλυση του προβλήματος & προσδιορισμός της λύσης Προσχέδιο της επίλυσης του προβλήματος. Ελέγχουμε αν η λύση καλύπτει τους στόχους που έχουν τεθεί και αν παράγει τα επιθυμητά δεδομένα εξόδου. Πιθανότητα ύπαρξης περισσότέρων λύσεων. Πρόβλημα: Δεδομένης της ακτίνας υπολογίστε και τυπώστε την περίμετρο του κύκλου. Λύση: P=2πR Πρόβλημα: Ταξινομείστε σε αύξουσα σειρά τους αριθμούς {3,6,1,4,9}. Λύσεις: Insertion sort, merge sort, Επιλέγουμε την βέλτιστη λύση ΠΡΟΣΟΧΗ: ΛΑΘΟΣ ΑΝΑΛΥΣΗ => ΛΑΘΟΣ ΛΥΣΗ 3. Σχεδίαση της λύσης του προβλήματος Αναπτύσσουμε τον αλγόριθμο επίλυσης του προβλήματος ακολουθία αυστηρά δομημένων βημάτων προκειμένου να επιλύσουμε το πρόβλημα. Για την περιγραφή της λύσης ενός προγράμματος χρησιμοποιούμε τον ψευδοκώδικα. ή/και το λογικό διάγραμμα 5

3. Σχεδίαση της λύσης του προβλήματος Σκιαγραφούμε ένα προσχέδιο της επίλυσης του προβλήματος. Διάσπαση (εκλέπτυνση) του κυρίως προβλήματος σε υποπροβλήματα (top-down approach, δομημένος, αρθρωτός προγραμματισμός). Αφαιρετικότητα. Μας ενδιαφέρει τι γίνεται και όχι το πώς γίνεται. Αρχίζοντας από τα χαμηλά επίπεδα αναπτύσσομε αλγόριθμο για κάθε υποσύστημα. 3. Σχεδίαση της λύσης του προβλήματος Ορισμός Αλγορίθμου Ένας αλγόριθμος είναι ένα πεπερασμένο σύνολο εκτελέσιμων και σαφών εντολών που κατευθύνει μία τερματίζουσα διαδικασία 6

Αλγόριθμοι Παραδείγματα αλγορίθμων Οδηγίες πλυντηρίου Οδηγίες για συναρμολόγηση επίπλου Στην Πληροφορική Ταξινόμηση Λίστας Αριθμών ΕύρεσηΜέσουΌρουΜιαςΛίσταςΑριθμών. Αφαιρετικότητα Πολύ σηµαντική έννοια στον Προγραµµατισµό και γενικά στην Επιστήµη της Πληροφορικής. Διακρίβωση του τι γίνεται χωρίς την γνώση του πως γίνεται Η διαδικασία προγραμματισμού αποτελείται απο σχεδιασμό λύσεων σε διάφορα επίπεδα αφαιρετικότητας Θυμηθείτε ότι και η ίδια η λειτουργία ενός Η/Υ στηρίζεται σε αυτή την έννοια. Επικοινωνία Εφαρμογή Λειτουργικό Σύστημα Προγραμματισμός Υλικό Πληροφορίες 7

Αλγόριθμοι & Αφαιρετικότητα Ένας αλγόριθμος εκφράζεται σε διάφορα επίπεδα αφαιρετικότητας. Αρχικά προδιαγράφεται τι είναι το δεδομένο και τί το επιδιωκόμενο αποτέλεσμα. Αυτό σταδιακά εκλεπτύνεται. Η σταδιακή διάσπαση (εκλέπτυνση) συνεχίζεται μέχρις ότου φτάσουμε σε ατομικά υπο-προβλήµατα, δηλαδή προβλήµατα που δεν είναι λογικό/δυνατό να διασπαστούν περαιτέρω. Στο χαμηλότερο επίπεδο ο αλγόριθµος διατυπώνει µε σαφήνεια την ακριβή διαδικασία παραγωγής της λύσης του προβλήματος 3. Σχεδίαση της λύσης του προβλήματος Διαγράμματα Ροής Σχεδιασμός διαγράμματος ροής Σχηματικός τρόπος αναπαράστασης της ροής των οδηγιών που συνθέτουν έναν αλγόριθμο. 8

3. Σχεδίαση της λύσης του προβλήματος Ψευδοκώδικας Πρόβλημα: Έχουμε μια λίστα με ονόματα. Θέλουμε να βρούμε τους φοιτητές του 1ου έτους STUDENTS.DAT Επίθετο Όνομα Ηλεκτρονικό Ταχυδρομείο Έτος Τηλέφωνο Davis Albert none 1 668-78-9226 Crane Amory none 2 689-48-8430 Schakowsky Anibal none 3 652-58-7355 Kirk Anne rep.kirk@volcano.com 4 623-87-0203 Weller Anthony none 1 780-52-0498 Costello Barbara none 1 599-98-7962 Biggert Barney none 1 058-86-1065 Hastert Baron speaker@volcano.com 1 075-45-4923 3. Σχεδίαση της λύσης του προβλήματος Ψευδοκώδικας Είναι ένα μίγμα αγγλικών και κοινών σε διάφορες γλώσσες προγραμματισμού όρων (εντολών), που χρησιμοποιούνται για να εκφράσουμε τη λύση. open STUDENT.DAT /* Open the file that contains the student list */ read student_name /* Read the first student name */ while not EOF do /* Begin the main loop */ read student_info /* Read the remaining student info */ if YEAR=1 then print student_name /* conditional structure */ read student_name /* Read the next student name */ end while close STUDENT.DAT /* Close the input file */ end /* End of program */ 9

4. Κωδικοποίηση Αξιοποιείται η διαδικασία του σχεδιασμού Πραγματοποιείται η συγγραφή του προγράμματος σε μια γλώσσα προγραμματισμού. Μέσω μεταγλωττιστή (compiler) ή μεταφραστή (interpreter) το πρόγραμμα μετατρέπεται σε γλώσσα μηχανής η οποία είναι αναγνωρίσιμη από τον υπολογιστή. Στοστάδιοαυτόγίνεταιοέλεγχοςσυντακτικών λαθών 5. Έλεγχος λαθών Έλεγχος λαθών και διόρθωση προγράμματος: Διορθώνονται πιθανά λογικά σφάλματα (σφάλματα που σχετίζονται με τον σχεδιασμό της λύσης). Λύσε με το χέρι το πρόβλημα με ένα σύνολο δεδομένων και σύγκρινε το με τις εξόδους του προγράμματος Σφάλματα σύνταξης Σφάλματα που σχετίζονται με το αν χρησιμοποιήσαμε σωστά τη γλώσσα προγραμματισμού στη διάρκεια της υλοποίησης Σφάλματα Run-time Σφάλματα κατά τη διάρκεια εκτέλεσης του προγράμματος 10

6. Συντήρηση προγράμματος Συντήρηση προγράμματος: Συγγραφή τεκμηρίωσης Το λογισμικό εγκαθίσταται και ξεκινά η λειτουργία του. Το περιβάλλον αλλάζει αλλάζει και το πρόγραμμα Οι χρήστες επιθυμούν (ή χρειάζονται) περισσότερα από το πρόγραμμα 7. Τεκμηρίωση Συνιστούν τεκμηρίωση τα παρακάτω: Συνοπτική περιγραφή των απαιτήσεων Περιγραφή εισόδων, εξόδων, περιορισμών και τύπων Ψευδοκώδικας ή διάγραμμα ροής του αλγορίθμου Ο ίδιος ο πηγαίος κώδικας (source code) Οδηγός για τη χρήση του προγράμματος 11

Αξιολόγηση Λύσεων Ορθότητα Λύσεων Αναλυτικές Μέθοδοι Αποδείξεις Εµπειρικές Μέθοδοι - Δοκιµές Τεκµηρίωση Λύσεων Σχόλια στο κώδικα Ευκολία κατανοήσεως Εκτίµηση Απόδοσης Ταχύτητα, ανάγκη σε µνήµη Αναλυτικές/Εµπειρικές Μέθοδοι Επεκτασιμότητα Παράδειγμα Προγραμματισμού Γράψετε ένα πρόγραμμα το οποίο να μετατρέπει μίλια σε χιλιόμετρα. 12

Βήμα 1. Κατανόηση Τι μας ζητά; Τι μίλια; αγγλικά μίλια, ναυτικά μίλια; Από πού παίρνουμε τις πληροφορίες; Από τον χρήστη, από αρχείο; Βήμα 2. Ανάλυση Δεδομένα (εισόδου): μίλια Δεδομένα (εξόδου): χιλιόμετρα Άλλα δεδομένα: σχέση 1mile:1.609Km Υπολογισμός: χιλιόμετρα = μίλια * 1.609 Παράδειγμα: Πόσα Km είναι 10 μίλια? 1.609*10 = >>>>>> 16.09 χιλιόμετρα 13

Βήμα 3. Σχεδιασμός Λύσης Αλγόριθμος 1η Εκλέπτυνση 1. Πάρε τα δεδομένα εισόδου 2. Κάνε τη μετατροπή 3. Παρουσίασε το αποτέλεσμα 1. Διάβασε τα Μίλια 2. Κάνε τον υπολογισμό: Χλμ.=Μίλια * 1.609 3. Δείξε το αποτέλεσμα στην οθόνη Βήμα 3. Σχεδιασμός Λύσης 2η Εκλέπτυνση 1. Διάβασε τα Μίλια και αποθήκευσε τα στη μεταβλητή miles 2. Κάνε τον υπολογισμό: Kms.=Miles * 1.609 3. Δείξε το αποτέλεσμα στην οθόνη Διάγραμμα Ροής start Kms_per_mile = 1.609 Read Distance miles KMS= Kms_per_mile * miles Print KMS end 14

Βήμα 4. Υλοποίηση 6. Σχόλια / Τεκμηρίωση 5. Έλεγχος C Language Elements in Miles-to-Kilometers Conversion Program 15