Προγραμματισμός Ι (ΗΥ120)

Σχετικά έγγραφα
Προγραµµατισµός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120)

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

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

Προγραμματισμός Χειμερινό Εξάμηνο 2014

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

Προγραμματισμός Χειμερινό Εξάμηνο 2017

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

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

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

Χειµερινό Εξάµηνο 2013

Βασικές Έννοιες. Προγραµµατισµός Ι 1


ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

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

Προγραμματισμός. Εαρινό Εξάμηνο 2011

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

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

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

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

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

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

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

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

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

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

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

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

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2006

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

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

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

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

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

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

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

Χρησιμοποιώντας συναρτήσεις

Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

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

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ edu.klimaka.gr ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Διαδικαστικά

Διδακτική της Πληροφορικής ΙΙ

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

ΠΡΟΓΡΑΜΜΑ Κύριο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ ΙΑΒΑΣΕ Α, Β, Γ ΚΑΛΕΣΕ ιαδ1(α, Β, Γ) ΓΡΑΨΕ Α, Β, Γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΘΕΜΑ Α. 1. Στην εντολή εκχώρησης Χ ΨΕΥΔΗΣ η μεταβλητή Χ είναι τύπου χαρακτήρες.

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

Πρόβλημα 37 / σελίδα 207

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

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

Ενδεικτικές λύσεις και στατιστικά

Διάλεξη 1η: Εισαγωγή

Προγραμματισμός Υπολογιστών με C++

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

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

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

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

Επικοινωνία:

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

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

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

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

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

Γ-ΓΥΜΝΑΣΙΟΥ (1) ΣΕΛ 1 / 6

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

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

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ Κεφάλαια 2, 7, 8

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

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

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

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

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

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

ΗΥ 134. Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 1. Εισαγωγή. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

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

Transcript:

Προγραμματισμός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή

Ποιος είμαι εγώ! 2 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA, 7/2004-7/2006 Μυτιλήνη, 10/2006-2/2007 Βόλος, 2/2007 -

H Υπεύθυνη των Εργαστηρίων Βάνα Ντουφεξή 3 U Πάτρα Urbana-Champaign (UIUC) Chicago C (Northwestern) Βόλος, 10/2007 -

Ποιοι είστε εσείς; 4 Υπόβαθρο; Έχετε δει υπολογιστή; Έχετε ανοίξει υπολογιστή; Έχετε «προγραμματίσει» υπολογιστή; Τι φαντάζεστε για το μάθημα; Τι περιμένετε να μάθετε; Τι απαιτήσεις φαντάζεστε ότι υπάρχουν;

Υπολογιστές, Υπολογιστές και Υπολογιστές 5

Χτίζοντας έναν Υπολογιστή 6 Transistor Λογικές Πύλες

Χτίζοντας έναν Υπολογιστή 7 Λογικά Κυκλώματα Ε Ολοκληρωμένα Κυκλώματα (π.χ. Επεξεργαστές)

Χτίζοντας έναν Υπολογιστή 8 Δομικές Μονάδες - Σύστημα

Μερικά Μυστικά των Υπολογιστών Οι υπολογιστές είναι ισχυρά εργαλεία Μπορούν να κάνουν πράγματα Που πριν λίγα χρόνια δεν μπορούσαμε καν να φανταστούμε Μας κάνουν τη ζωή εύκολη Μας κάνουν τη ζωή δύσκολη Οι υπολογιστές είναι χαζοί Πολύ χαζοί Δεν μπορούν να κάνουν τίποτα από μόνοι τους Χρειάζονται οδηγίες για το παραμικρό! Μιλάνε μόνο μια περίεργή γλώσσα: 0.. 1.. 0.. 0.. 1.. 9

Οδηγίες στους Υπολογιστές 10 o Γλώσσα Μηχανής o Η μητρική γλώσσα του υπολογιστή o Ού μπλέξεις o Συμβολική γλώσσα o Πολύ κοντά στη γλώσσα μηχανής o... Αλλά κάτι μπορείς να καταλάβεις o Και πάλι ού μπλέξεις Ε o Εκτός αν χρειαστεί ;-)

Οδηγίες στους Υπολογιστές 11 Γλώσσες υψηλού επιπέδου Τώρα μάλιστα! Κάτι γίνεται! Πιο κοντά στον άνθρωπο Ναι, αλλά ο υπολογιστής θα καταλάβει;

Περιεχόμενο Μαθήματος 12 Εισαγωγή στον προγραμματισμό. Το μοντέλο μνήμης και η έννοια της μεταβλητής. Βασικοί τύποι δεδομένων και τελεστές. Δομές ελέγχου, διακλαδώσεις, επαναλήψεις. Συναρτήσεις Εμβέλεια και διάρκεια ζωής μεταβλητών Κλήση συναρτήσεων Πέρασμα παραμέτρων Αναδρομή. Δείκτες. Πίνακες, σύνθετοι τύποι δεδομένων και δυναμικές δομές δεδομένων. Αρχεία δεδομένων. Εργαστήριο!

Πληροφορίες 13 Βασικά συγγράμματα: «C Προγραμματισμός», 3 η έκδοση, Deitel & Deitel, Εκδόσεις M. Γκιούρδας. «Η Γλώσσα Προγραμματισμού C», Kernigham-Ritchie, Εκδόσεις Κλειδάριθμος. Mπορείς να μάθεις ποδήλατο διαβάζοντας οδηγίες σε βιβλίο; Ο προγραμματισμός δε μαθαίνεται με διάβασμα Δουλειά στον υπολογιστή!!! Πειραματισμός, λάθη, εύρεση λαθών κ.ο.κ.

Απαιτήσεις - Αξιολόγηση Αξιολόγηση Α στο εργαστήριο (στον υπολογιστή) Προβιβάσιμος βαθμός: 5.0 1ετείς: Υποχρεωτικό εργαστήριο + 4 ομαδικές εργασίες (ομάδες ( 2 το πολύ ατόμων) Για να υπάρχει δικαίωμα εξέτασης: Έως 2 το πολύ απουσίες στο εργαστήριο. Μέσος όρος εργασιών >= 5.0 Παλαιότεροι: Παράδοση της τελευταίας εργασίας (ομάδες 2 ατόμων Για να υπάρχει δικαίωμα εξέτασης βαθμός εργασίας >= 5.0 Δεν υπάρχει 2η ευκαιρία το Σεπτέμβρη για το εργαστήριο 14

Ώρες Εργαστηρίου Θα ανατεθείτε σε κάποιο από τα Τμήματα: 15 Τμήμα 1: Δευτέρα 12:00-15:00 Τμήμα 2: Τρίτη 14:00-17:00 Τμήμα 3: Τρίτη 17:00-20:00 Τμήμα 4: Πέμπτη 12:00-15:00 Τμήμα 5: Πέμπτη 15:00-18:00 Αναπληρώσεις: Παρασκευή 16:00-19:00 Δείτε τη σελίδα του μαθήματος και τον πίνακα ανακοινώσεων μετά την 1/10. Ξεκινάμε από Τρίτη 6/10 Το Τμήμα 1 ειδικά για την 1 η εβδομάδα θα γίνει Παρασκευή ΟΜΩΣ: Εισαγωγή (υποχρεωτική) την επόμενη εβδομάδα

Οι καλοί λογαριασμοί... Οι ασκήσεις είναι ατομικές. Το εννοούμε... Έχουμε τρόπο να βρούμε τις εξυπνάδες 16 Για όποιον κάνει εξυπνάδες (παίρνει ή δίνει κώδικα), απλά 0... Και πιθανότατα ραντεβού του χρόνου... Δικαιολογίες δεν ήξερα, δεν κατάλαβα δεν πιάνουν...

Επικοινωνία Ιστοσελίδα μαθήματος: http://www.inf.uth.gr/courses/ce120 Λίστα ηλεκτρονικού ταχυδρομείου: http://inf-server.inf.uth.gr/mailman/listinfo/ce120 Forum προγραμματισμού: http://www.inf.uth.gr/courses/coding Επικοινωνία με τον διδάσκοντα: Κτήριο Μεταπτυχιακού, 2 ος όροφος Ώρες γραφείου: Δευτέρα 12:00-14:00, Τετάρτη 9:00-11:00 E-mail: cdantonop@gmail.com, cda@inf.uth.gr Επικοινωνία με την υπεύθυνη εργαστηρίων: Γραφείο Δ3/4 E-mail: doufexi@gmail.com, vdoufexi@inf.uth.gr 17

Μεθοδολογία Επίλυσης Προβλήματος Ανάλυση του προβλήματος Τι έχουμε; Τι ακριβώς θέλουμε να βρούμε; Πώς σπάει σε μικρότερα / απλούστερα προβλήματα; Χονδρικά ποια στρατηγική πρέπει να ακολουθήσουμε; Αλγόριθμος Ακριβής ακολουθία πεπερασμένων βημάτων που πρέπει να ακολουθηθούν για να λυθεί το πρόβλημα Απαιτήσεις Ορθότητα Καλή επίδοση «Οικονομία» πόρων Για το ίδιο πρόβλημα πιθανόν να υπάρχουν >1 κατάλληλοι αλγόριθμοι 18

Μεθοδολογία Επίλυσης Προβλήματος 19 Κωδικοποίηση «Μετάφραση» του αλγόριθμου σε γλώσσα που καταλαβαίνει ο υπολογιστής C στην περίπτωσή μας Δοκιμή και Αποσφαλμάτωση Ουδείς αλάνθαστος! Το πιο «σπαστικό» κομμάτι Και το πιο χρονοβόρο Και το πιο σημαντικό

Τι Είναι Πρόγραμμα και Γλώσσα Προγραμματισμού; 20 Πρόγραμμα: Αλγόριθμος γραμμένος σε μια γλώσσα προγραμματισμού Αυτή που «καταλαβαίνει» ο υπολογιστής Με λίγη βοήθεια Ο υπολογιστής ξέρει μόνο από 0 και 1 Γλώσσα προγραμματισμού Σαν τις κανονικές γλώσσες Μόνο πιο σαφής και τυπική Έχει λεξιλόγιο / σημασιολογία Έχει συντακτικό

Συντακτικό Το συντακτικό ορίζει το σύνολο των επιτρεπτών προτάσεων (ακολουθία συμβόλων). Επιτρεπτή πρόταση = συντακτικά ορθό πρόγραμμα Μπορεί να μεταφραστεί σε γλώσσα μηχανής και να εκτελεστεί. Ειδικές «γλώσσες» περιγραφής των κανόνων σύνταξης γλωσσών προγραμματισμού Extended Backus Naur Form (EBNF) E Συντακτικά διαγράμματα 21

Σύνταξη και Σημασία Σύνταξη: κανόνες για τον σχηματισμό προτάσεων. Σημασία: το νόημα που έχουν οι συντακτικά επιτρεπτές προτάσεις. Η σύνταξη μιας γλώσσας δεν μπορεί να ορίσει ταυτόχρονα και την σημασία της. Υπάρχουν όμως κανόνες! Υπάρχουν συντακτικά επιτρεπτές προτάσεις που δεν έχουν ορισμένη (μια μοναδική) σημασία; Στις ανθρώπινες γλώσσες: Ναι Μαζί μιλάμε και χώρια καταλαβαινόμαστε Σε γλώσσες προγραμματισμού: Κατά κανόνα όχι 22

Για παράδειγμα 23 Συντακτικά ορθές προτάσεις: -2+13 15/5-2 Όμως, σε τι τιμές αντιστοιχούν; 1-2+13 (-2)+(13) ή (2+13) 15/5-2 (15/5)-2 ή 15/(5-2)

Εκτέλεση Εντολών Οι εντολές ενός προγράμματος εκτελούνται από «αριστερά προς τα δεξιά» και «από πάνω προς τα κάτω» Όπως διαβάζουμε ένα κείμενο. Βαρετό 24 Μπορεί να γίνουν άλματα, είτε «προς τα εμπρός» είτε «προς τα πίσω» Κάποιες εντολές μπορεί να παρακαμφθούν ή/και να εκτελεστούν παραπάνω από μια φορά. Τα άλματα πραγματοποιούνται με ειδικές εντολές που ορίζει κάθε γλώσσα προγραμματισμού: Ελέγχου ροής εκτέλεσης προγράμματος Κλήσης υποπρογραμμάτων

Εκτέλεση Προγράμματος 25 επέλεξε την πρώτη εντολή μνήμη εκτέλεσε την εντολή διάβασμα γράψιμο μεταβλητές προγράμματος επέλεξε την «επόμενη» εντολή Το σημειωματάριο του προγράμματος

Έλεγχος Ροής Εκτέλεσης Ο προγραμματιστής μπορεί να επηρεάσει την ροή εκτέλεσης του προγράμματος μέσω εντολών ελέγχου. Εντολές ελέγχου: διαβάζουν την κατάσταση του προγράμματος και ανάλογα μεταφέρουν την εκτέλεση σε ένα διαφορετικό σημείο του κώδικα. Π.χ if <έκφραση> goto <n> Αν η <έκφραση> είναι αληθής τότε η εκτέλεση μεταφέρεται στην εντολή με αριθμό <n>. Μπορούμε εύκολα να φτιάξουμε προγράμματα με εντολές που εκτελούνται υπό συνθήκη ή/και επανειλημμένα. 26

Για Παράδειγμα P 1:s = 0 2:if (x==0) goto 6 3:s = s + y 4:x = x -1 5:if (1==1) goto 2 6:print s παράμετροι s = 0 πρόγραμμα ) P(x,y) εκτέλεση P(0,5) if (x==0) goto 6 print s εκτέλεση P(3,5) s = 0 if (x==0) goto 6 s = s + y x = x -1 if (1==1) goto 2 if (x==0) goto 6 s = s + y x = x -1 if (1==1) goto 2 if (x==0) goto 6 s = s + y x = x -1 if (1==1) goto 2 if (x==0) goto 6 print s 27

Υποπρογράμματα Ομάδα εντολών (και δεδομένων) που είναι συντακτικά ή/και εκτελεστικά ανεξάρτητη (αυτόνομη) από τον υπόλοιπο κώδικα. Ένα πρόγραμμα μπορεί να αποτελείται από (ή να χρησιμοποιεί) πολλά διαφορετικά υποπρογράμματα. Όταν καλείται ένα υποπρόγραμμα, η εκτέλεση μεταφέρεται στο υποπρόγραμμα Όταν τερματιστεί η εκτέλεση του, επιστρέφει μαγικά στο πρόγραμμα που πραγματοποίησε την κλήση. Να τα χρησιμοποιείτε please!!! 28

Εκτέλεση με Υποπρογράμματα 29 πρόγραμμα P1 code A call P2 code B πρόγραμμα P2 call P3 code C return πρόγραμμα P3 code D return εκτέλεση P1 code A call P2 call P3 code D return code C return code B