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

Σχετικά έγγραφα
Τεχνολογία Λογισμικού

Έλεγχος Προγραμμάτων και Συστήματος

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

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

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

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

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

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

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

Σχεδίαση μαθησιακών δραστηριοτήτων λογιστικά φύλλα υπερμεσικά περιβάλλοντα προσομοιώσεις

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

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

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

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

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

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Εισαγωγή στην. Γιάννης Σμαραγδάκης

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΜΑΘΗΤΗ

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

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

Κωδικοποίηση και Έλεγχος Ορθότητας

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

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

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

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

Ανάπτυξη και Σχεδίαση Λογισμικού

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

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

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

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

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

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

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

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

Μεταγλωττιστές Βελτιστοποίηση

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

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

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

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Αρχή. Διάβασε Χ ΟΧΙ Χ < > 0 ΝΑΙ Α Α +1 Γ Β / Α ΝΑΙ ΟΧΙ. Εμφάνισε Γ. Τέλος

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

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

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

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

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

- Επιστημονικός Υπεύθυνος Ενεργείας: Θεόδωρος Γ. Εξαρχάκος Καθηγητής του Πανεπιστημίου Αθηνών Πρόεδρος του Παιδαγωγικού Ινστιτούτου «Αναμόρφωση / εκ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

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

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

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

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

Εισαγωγή στη Σχεδίαση Λογισμικού

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

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

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Λογισµικό (Software SW) Γλώσσες

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

6. Εισαγωγή στον προγραµµατισµό

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α A1. 2-Λάθος 3-Λάθος 4-Σωστό 5-Λάθος A2. integer. real. Boolean. char. string A3.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

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

Η γλώσσα προγραμματισμού C

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΔΡΔ: Διαγράμματα Ροής Δεδομένων

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

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

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

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

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Transcript:

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου

Κατευθυντήριες Γραμμές Προγραμματισμού 1. Δομές Ελέγχου 2. Αλγόριθμοι 3. Δομές δεδομένων 4. Χειρισμός σφαλμάτων/ εξαιρέσεων 2

Δομές ελέγχου Παράδειγμα benefit = minimum; if (age < 75) goto A; benefit = maximum; goto C; if (age < 65) goto B; if (age < 55) goto C; A: if (age < 65) goto B; benefit = benefit * 1.5 + bonus goto C; B: if (age < 55) goto C; benefit = benefit * 1.5; C: next statement Το ίδιο πολύ πιο απλά: If (age < 55) benefit = minimum; elseif (age < 65) benefit = minimum + bonus; elseif (age < 75) benefit = minimum * 1.5 + bonus; else benefit = maximum; 3

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

Δομές Δεδομένων Το πρόγραμμα πρέπει να διατηρείται απλό Χρήση δομών δεδομένων για απλοποίηση κώδικα Π.χ. Χρήση αναδρομής Ζώνη Βάση Ποσοστό 0 0 10 10.000 1.000 12 20.000 2.200 15 30.000 3.700 18 40.000 5.500 20 5

Χειρισμός σφαλμάτων Τύποι σφαλμάτων Αλγοριθμικό σφάλμα Συντακτικό σφάλμα Σφάλματα υπολογισμού και ακρίβειας Σφάλματα πίεσης ή υπερφόρτωσης Σφάλματα χωρητικότητας ή ορίων Σφάλματα χρονισμού/ συγχρονισμού Σφάλματα επίδοσης Σφάλματα ανάκτησης... Πρόβλεψη για χειρισμό σφαλμάτων/ εξαιρέσεων στο τέλος κάθε συστατικού 6

Γενικές Κατευθυντήριες Γραμμές Συμφωνία υλοποίησης με σχεδιασμό Τεκμηρίωση Ο κώδικας θα πρέπει να μπορεί να διαβάζεται εύκολα από πάνω προς τα κάτω Απομόνωση εισόδου και εξόδου (επίπεδο παρουσίασης) Συμπερίληψη ψευδοκώδικα Ναι στην αναθεώρηση και το ξαναγράψιμο, αλλά όχι στην πρόχειρη επιδιόρθωση (patching) Επαναχρησιμοποίηση 7

Επαναχρησιμοποίηση Εκτελεί το συστατικό τη λειτουργία; Παρέχει τα δεδομένα που χρειάζονται; Αν απαιτούνται ορισμένες τροποποιήσεις, αξίζει να γίνουν ή είναι καλύτερο να αναπτυχθεί το συστατικό από την αρχή; Είναι σωστά τεκμηριωμένο το συστατικό έτσι ώστε να μπορείτε να το κατανοήσετε χωρίς να χρειάζεται να επαληθεύσετε την υλοποίησή του γραμμή προς γραμμή; Υπάρχει πλήρης καταγραφή του ιστορικού ελέγχου και τροποποιήσεων του συστατικού, έτσι ώστε να είστε σίγουροι ότι δεν περιέχει σφάλματα; 8

Επαναχρησιμοποιούμενα Συστατικά Κατασκευάστε τα συστατικά με γενικό τρόπο, χρησιμοποιώντας παραμέτρους και προβλέποντας παρόμοιες καταστάσεις Απομονώστε τμήματα που έχουν μεγάλη πιθανότητα να αλλάξουν από αυτά που θα παραμείνουν χωρίς αλλαγές Κατασκευάστε γενική και καλά ορισμένη διασύνδεση/ διεπαφή για το συστατικό Χρησιμοποιήστε ξεκάθαρες συμβάσεις ονοματολογίας Τεκμηριώστε τις δομές δεδομένων και τους αλγόριθμους Διαχωρίστε τα τμήματα επικοινωνίας και χειρισμού λαθών και κατασκευάστε τα με τρόπο ώστε να τροποποιούνται εύκολα 9

Τεκμηρίωση Εσωτερική Τεκμηρίωση Εξωτερική Τεκμηρίωση ****************************************************************** * COMPONENT TO FIND INTERSECTION OF TWO LINES * COMPONENT NAME: FINDIT * PROGRAMMER: E. ELLIS * VERSION: 1.0 ( 2 FEB 2001) * * INPUT DESCRIPTION * OUTPUT DESCRIPTION * ΨΕΥΔΟΚΩΔΙΚΑΣ ****************************************************************** 10

Πλαίσιο Σχολίων Κεφαλίδας Πώς ονομάζετε το συστατικό Ποιος το έγγραψε Πώς ταιριάζει το συστατικό στο γενικό σχέδιο του συστήματος Πότε γράφηκε και αναθεωρήθηκε Για ποιο λόγο υπάρχει Πώς το συστατικό χρησιμοποιεί τις δομές δεδομένων, τους αλγόριθμους και τον έλεγχο Τρόπο κλήσης του συστατικού και αποτελέσματα εξόδου 11

Άλλα σχόλια στο πρόγραμμα Είναι άχρηστο το ακόλουθο: //αύξησε το i3 i3 = i3 + 1; Καλύτερα: //αύξησε το μετρητή για να διαβαστεί η επόμενη περίπτωση ή ακόμη καλύτερα: case_counter = case_counter +1; 12

Γράψτε: Λογικά ονόματα μεταβλητών και ετικέτες εντολών Weekwage = (hrrate * hours) + 0.5 * hrrate * (hours 40); Αντί: z = (a * b) + 0.5 * a * (b 40); 13

Μορφοποίηση για την αύξηση της κατανόησης if (xcoord < ycoord) result = -1; elseif (xcoord == ycoord) if (slope1 > slope2) result = 0; else result 1; elseif (slope1 >slope 2) result = 2; elseif (slope1 < slope2) result = 3; else result = 4; 14

Εξωτερική Τεκμηρίωση Περιγραφή του προβλήματος Περιγραφή των αλγορίθμων Περιγραφή των δεδομένων Συμπληρώνει και επικαιροποιεί το έντυπο σχεδίασης του συστήματος 15