Βασικές Αρχές Προγραμματισμού

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

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

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

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

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

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

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

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

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

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

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

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

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

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

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

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

Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

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

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

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

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

Ανάπτυξη εφαρμογών/ Βασικές γνώσεις/ πρώτο θέμα ΕΡΩΤΗΣΕΙΣ ΣΥΝΤΟΜΗΣ ΑΠΑΝΤΗΣΗΣ

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

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

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

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

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. ΚΕΦΑΛΑΙΟ 2 Βασικές Έννοιες Αλγορίθμων

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

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

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

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

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

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

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

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

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

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

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

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

Πρόβλημα 29 / σελίδα 28

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

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

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

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

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

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

ΚΕΦΑΛΑΙΟ 2 ΑΛΓΟΡΙΘΜΟΙ ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ ΘΕΩΡΙΑ

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα.

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

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

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

6. 1 Η έννοια του προγράμματος

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

Δομές Δεδομένων & Αλγόριθμοι

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1

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

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Κεφάλαιο 1 Ανάλυση προβλήματος

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

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

1 Ανάλυση Προβλήματος

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Transcript:

Βασικές Αρχές Προγραμματισμού Κεφάλαιο 1 Εισαγωγή

Προβλήματα Πρόβλημα: Μία κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της οποίας δεν είναι γνωστή, ούτε προφανής Π.χ. Το πρόβλημα του 2000 (millennium bug) αναφέρονταν στο ότι η πλειοψηφία του λογισμικού που αναπτύχθηκε στη διάρκεια του προηγούμενου αιώνα, χρησιμοποιούσε 2 ψηφία για την αναπαράσταση του έτους (1977 77) 2/24

Κατηγορίες Προβλημάτων Με βάση την δυνατότητα επίλυσης: Επιλύσιμα: Η λύσητουςείναιγνωστήήμπορείνααποδειχθείότιέχουν λύση Ανοικτά: Δεν υπάρχει διατυπωμένη λύση αλλά δεν έχει αποδειχθεί ότι δεν λύνονται Άλυτα: Έχει αποδειχθεί ότι δεν έχουν λύση Με βάση το ζητούμενο: Απόφασης: Το ζητούμενο του προβλήματος είναι η λήψη μιας απόφασης (π.χ. Αν ο αριθμός 11 είναι πρώτος ή όχι) Υπολογιστικά: Το ζητούμενο είναι το αποτέλεσμα μιας σειράς υπολογισμών (π.χ. Να βρεθεί η δόση για πενταετές δάνειο 40000 με επιτόκιο 4,82%) Βελτιστοποίησης: Τοζητούμενοείναιηεύρεσηενόςαποτελέσματος που ελαχιστοποιεί ή μεγιστοποιεί κάποια κριτήρια (π.χ. Το πρόβλημα του πλανόδιου πωλητή) 3/24

Προβλήματα και Η/Υ Λόγοι επίλυσης προβλημάτων μέσω Η/Υ Ταχύτητα εκτέλεσης πράξεων (π.χ. Ένας Η/Υ μεεπεξεργαστήστα3ghz μπορεί να εκτελεί 3,000,000,000 απλές πράξεις ανά δευτερόλεπτο) Μεγάλο πλήθος δεδομένων Πολυπλοκότητα υπολογισμών Επαναληπτικότητα διαδικασιών Πρωταρχικές λειτουργίες Η/Υ Πρόσθεση: βασική αριθμητική πράξη Σύγκριση: βασική λογική πράξη Μεταφορά δεδομένων 4/24

Αλγόριθμοι Αλγόριθμος: Πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που επιλύουν ένα πρόβλημα Χαρακτηριστικά Αλγορίθμων Είσοδος (Input): Δεδομένα που δίνονται στον αλγόριθμο Έξοδος (Output): Δεδομένα που ο αλγόριθμος παράγει ως αποτέλεσμα Καθοριστικότητα: Κάθε εντολή πρέπει να καθορίζεται με πλήρη σαφήνεια Αποτελεσματικότητα: Κάθε εντολή πρέπει να είναι απλή και να εκτελείται σε εύλογο χρονικό διάστημα Περατότητα: Ο αλγόριθμος πρέπει να τερματίζει μετά από πεπερασμένο αριθμό βημάτων 5/24

Αναπαράσταση Αλγορίθμων Ένας αλγόριθμος μπορεί να αναπαρασταθεί με διάφορους τρόπους Ελεύθερο κείμενο Ανεπεξέργαστος και αδόμητος τρόπος παρουσίασης Δεν εξασφαλίζει ούτε την καθοριστικότητα ούτε την αποτελεσματικότητα Διαγραμματικές Τεχνικές Γραφικός τρόπος παρουσίασης Ο πιο συνηθισμένος είναι με τα διαγράμματα ροής Φυσική γλώσσα κατά βήματα Π.χ. Ψευδοκώδικας Χρειάζεται προσοχή για να μην παραβιαστεί το κριτήριο της καθοριστικότητας Κωδικοποίηση Συγγραφή του αλγορίθμου σε μια γλώσσα προγραμματισμού 6/24

Πληροφορική Πληροφορική: Η επιστήμη που μελετά τους αλγορίθμους από τις ακόλουθες σκοπιές: Υλικού (Hardware): Η ταχύτητα εκτέλεσης ενός αλγορίθμου επηρεάζεται από τις διάφορες τεχνολογίες των τμημάτων του υλικού Γλωσσών Προγραμματισμού: Το είδος της γλώσσας προγραμματισμού που θα χρησιμοποιηθεί επηρεάζει την αποδοτικότητα του αλγορίθμου Θεωρητική: Έρευνα θεωρητικών θεμάτων όπως ή ύπαρξη ή όχι λύσης για ένα πρόβλημα Αναλυτική: Μελέτη του πλήθους των υπολογιστικών πόρων που απαιτούνται από έναν αλγόριθμο 7/24

Προγράμματα & Προγραμματισμός Η/Υ Πρόγραμμα Η/Υ (Computer Program): Μια οργανωμένη λίστα οδηγιών που όταν εκτελείται από έναν υπολογιστή, αυτός συμπεριφέρεται με έναν συγκεκριμένο προσχεδιασμένο τρόπο Προγραμματισμός Η/Υ (Computer Programming): Η διαδικασία της δημιουργίας ενός προγράμματος που επιλύει ένα συγκεκριμένο πρόβλημα. Ο Προγραμματισμός περιλαμβάνει δύο βήματα: Σχεδιασμός της λογικής που επιλύει το πρόβλημα Κωδικοποίησης της λογικής σε μια γλώσσα προγραμματισμού Γλώσσες Προγραμματισμού (Programming Languages): Τεχνητές γλώσσες κωδικοποίησης προγραμμάτων Η/Υ Μεγάλη σαφήνεια και ακρίβεια Γεφυρώνουν το χάσμα ανάμεσα στις γλώσσες Η/Υ και ανθρώπων 8/24

Τεχνικές Προγραμματισμού Οι Τεχνικές Προγραμματισμού (Programming Techniques or Paradigms) αποτελούν τρόπους αποδοτικής εκπόνησης της διαδικασίας προγραμματισμού Αναφέρονται στο πώς μια λογική που επιλύει ένα πρόβλημα θα πρέπει να μελετηθεί ώστε να γίνει πρόγραμμα Καθορίζουν τον τρόπο με τον οποίο ο προγραμματιστής αντιλαμβάνεται τα τμήματα του προγράμματος, τιςεξαρτήσειςτους και τον τρόπο εκτέλεσης τους. Συνήθως συνδέονται με κάποια γλώσσα προγραμματισμού, αν και υπάρχουν γλώσσες που υλοποιούν περισσότερες της μίας τεχνικές προγραμματισμού 9/24

Βασικές Τεχνικές Προγραμματισμού Μη δομημένος Προγραμματισμός (Unstructured programming) Ο κώδικας περιέχεται σε ένα συνεχόμενο μπλοκ εντολών. (π.χ. Basic) Διαδικαστικός ή Προστακτικός Προγραμματισμός (Procedural or Imperative programming) Ο κώδικας έχει τη μορφή μιας ακολουθίας βημάτων τα οποία πρέπει να εκτελεστούν για να περιέλθει το σύστημα στην επιθυμητή κατάσταση Στα βήματα περιλαμβάνονται κλήσεις σε διαδικασίες (π.χ. Pascal, C) Δομημένος ή Τμηματικός Προγραμματισμός (Structured or Modular programming) Υποσύνολο του διαδικαστικού προγραμματισμού Ακολουθείται μια top-down προσέγγιση διαχωρισμού της δομής σε τμήματα Ευκολότερη ανάπτυξη, κατανόηση και επέκταση κώδικα 10/24

Προηγμένες Τεχνικές Προγραμματισμού Συναρτησιακός Προγραμματισμός (Functional programming) Αντικειμενοστραφής Προγραμματισμός (object-oriented programming) Οπτικός Προγραμματισμός (Visual programming) Αυτόματος Προγραμματισμός (Automatic programming) Ταυτόχρονος Προγραμματισμός (Concurrent programming) Λογικός Προγραμματισμός (Logic programming) 11/24

Συναρτησιακός Προγραμματισμός Βασίζεται στην ιδέα ότι η επίλυση ενός προβλήματος μπορεί να θεωρηθεί ως η αποτίμηση μαθηματικών συναρτήσεων Δεν χρησιμοποιεί τη λογική των καταστάσεων που αλλάζουν με την εκτέλεση εντολών, όπως ο Προστακτικός προγραμματισμός Επικεντρώνεται σε αλυσίδες συναρτήσεων που η έξοδος της μίας χρησιμοποιείται ως είσοδος σε κάποιες άλλες Η έννοια της αναδρομής χρησιμοποιείται πολύ συχνά σε αυτό το προγραμματιστικό μοντέλο Οι γλώσσες αυστηρού συναρτησιακού προγραμματισμού χρησιμοποιούνται περισσότερο για ερευνητικούς σκοπούς Παραδείγματα γλωσσών που χρησιμοποιούνται από ευρύτερο κοινό: Lisp, R (στατιστική), K (οικονομική ανάλυση), κ.α. 12/24

Αντικειμενοστραφής Προγραμματισμός Χρησιμοποιεί την έννοια της αφαίρεσης (abstraction) για τη δημιουργία μοντέλων που βασίζονται στον πραγματικό κόσμο. Κύριες έννοιες κλάσεις/τάξεις (ιδιότητες & μέθοδοι) αντικείμενα. Χρησιμοποιεί διάφορες τεχνικές: Πέρασμα μηνυμάτων (Message passing) Κληρονομικότητα (Inheritance) Απόκρυψη (Encapsulation) Πολυμορφισμός (Polymorphism) Π.χ. C++, SmallTalk, Java, C# 13/24

Οπτικός Προγραμματισμός Δημιουργία προγράμματος σε γλώσσα οπτικού προγραμματισμού (Visual Programming Language ή VPL) και όχι σε απλό κείμενο Χρήση οπτικών εκφράσεων, γραφικών συμβόλων και τμημάτων κειμένου που τοποθετούνται στον χώρο και συνδέονται μεταξύ τους. Τα βασικά σύμβολα είναι τα κουτιά (boxes) και τα βέλη (arrows) Βήματα Εκτέλεσης: Δημιουργία προγράμματος σε μια VPL Έλεγχοι εγκυρότητας του προγράμματος Μεταγλώττιση του σε γλώσσα μηχανής ή άλλη γλώσσα προγραμματισμού Προσομοίωση της εκτέλεσης του προγράμματος 14/24

Αυτόματος Προγραμματισμός Ο Αυτόματος Προγραμματισμός βασίζεται στην παραγωγή του κώδικα από τον υπολογιστή και όχι από τον άνθρωπο Ο υπολογιστής δέχεται από τον άνθρωπο τις προδιαγραφές (specifications) του προγράμματος σε γλώσσες υψηλού επιπέδου ΟΑ. Π. είναι συνδυασμός Τεχνητής Νοημοσύνης με Μεταγλωττιστές Χρειάζονται τεχνικές ΤΝ για αναγνώριση προτύπων αναζήτηση για την εύρεση του συνδυασμού των προγραμματιστικών τμημάτων Χρειάζονται τεχνικές Μεταγλωττιστών για σχεδίαση του προγράμματος παραγωγή και βελτιστοποίηση του κώδικα 15/24

Ταυτόχρονος Προγραμματισμός Διακρίνεται σε Παράλληλο Προγραμματισμό Κατανεμημένο Προγραμματισμό Ασχολείται με τον σχεδιασμό, την υλοποίηση και την ρύθμιση προγραμμάτων που εκτελούνται σε πολλαπλούς Η/Υ -CPU Σκοπός του ταυτόχρονου προγραμματισμού είναι η παραλληλοποίηση των σειριακών προγραμμάτων. Υπάρχουν δύο προσεγγίσεις: Τα σημαντικότερα ζητήματα στον ταυτόχρονο προγραμματισμό είναι Η επικοινωνία μεταξύ των προγραμμάτων που εκτελούνται ταυτόχρονα Η εξισορόπηση του φόρτου εργασίας (load balancing) Ο διαμοιρασμός κοινόχρηστων πόρων 16/24

Λογικός Προγραμματισμός Ένα πρόγραμμα αποτελείται από τα τμήματα της Λογικής και του Ελέγχου Στις συμβατικές γλώσσες ο προγραμματιστής αναπτύσσει και τα δύο Στον Λογικό Προγραμματισμό ασχολείται μόνο με το τμήμα της Λογικής Τα Λογικά προγράμματα αποτελούνται από ένα σύνολο προτάσεων (clauses) που περιγράφουν την υπάρχουσα γνώση Π.χ. Προτάσεις Horn A B1,B2,..,Bn Ο χρήστης θέτει ερωτήσεις, τις οποίες το σύστημα προσπαθεί να απαντήσει με βάση την γνώση που περιέχει Μηχανισμός Ενοποίησης (unification): προσπαθεί να καταστήσει δύο όρους ταυτόσημους με τις ελάχιστες αναθέσεις τιμών σε μεταβλητές Π.χ. Prolog 17/24

Υλοποίηση Προγραμμάτων Βήματα υλοποίησης ενός προγράμματος: Συγγραφή πηγαίου κώδικα (source code) Δημιουργία αρχείου κειμένου (.c) που περιέχει τις εντολές του προγράμματος Δημιουργείται είτε σε οποιοδήποτε κειμενογράφο (π.χ. Wordpad, Textpad) ή στον συντάκτη (editor) ολοκληρωμένων περιβαλλόντων ανάπτυξης (IDE), όπως είναι το DEV C/C++ Μεταγλώττιση (compilation) πηγαίου κώδικα Διαδικασία μετάφρασης του πηγαίου κώδικα σε κώδικα αντικειμένου (.obj) Υλοποιείται από εξειδικευμένα προγράμματα (μεταγλωττιστές - compilers) Γίνεται έλεγχος για συντακτικά και γραμματικά λάθη στον πηγαίο κώδικα Σύνδεση τμημάτων (linking) Πραγματοποιείται από ειδικά προγράμματα (συνδέτες - linkers) Γίνεται η σύνδεση όλων των αρχείων κώδικα αντικειμένου και των εξωτερικών βιβλιοθηκών σε ένα ενιαίο εκτελέσιμο αρχείο Γίνεται έλεγχος για βιβλιοθήκες και τμήματα κώδικα που λείπουν Εκτέλεση (execution) για έλεγχο καλής λειτουργίας 18/24

Διάγραμμα Υλοποίησης Προγράμματος Αρχή Επεξεργασία πηγαίου κώδικα example.c Γραμματικά Συντακτικά Μεταγλώττιση πηγαίου κώδικα Βιβλιοθήκες Αρχεία Obj ναι Λάθη όχι Σύνδεση example.obj Σύνδεσης ναι Λάθη όχι example.exe Λογικά Εκτέλεση ναι Λάθη όχι Τέλος 19/24

Βασικές Έννοιες Προγραμματισμού Τα συστατικά που συνθέτουν ένα πρόγραμμα είναι τα ακόλουθα: Τύποι Δεδομένων Μεταβλητές Σταθερές Εντολές Αναγνωριστικά (identifiers): Τα ονόματα που χρησιμοποιεί η γλώσσα για να αναφέρεται στα επί μέρους στοιχεία της. (π.χ. Το όνομα μιας μεταβλητής ή ενός υποπρογράμματος) 20/24

Μεταβλητές myvar 12 0 56 129 Τα δεδομένα, οι ενδιάμεσες πράξεις και τα αποτελέσματα ενός προγράμματος αποθηκεύονται προσωρινά στην μνήμη RAM του Η/Υ Η διαχείριση της RAM είναι μέλημα της γλώσσας προγραμματισμού Για να χρησιμοποιηθεί ένα τμήμα (θέση) της RAM θα πρέπει να του δοθεί ένα όνομα, ώστε να μπορεί το πρόγραμμα να αναφέρεται σε αυτό Τα ονόματα των θέσεων μνήμης σε ένα πρόγραμμα ονομάζονται μεταβλητές (variables) Μεταβλητή είναι το όνομα μιας συγκεκριμένης θέσης μνήμης, που έχουμε δεσμεύσει. Το περιεχόμενο της συγκεκριμένης θέσης ονομάζεται τιμή της μεταβλητής. Υπάρχουν διάφορα είδη μεταβλητών σε αναλογία με τα διάφορα είδη τύπων δεδομένων (π.χ. Ακέραιες μεταβλητές) 21/24

Σταθερές Οι σταθερές είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά τη διάρκεια εκτέλεσης ενός προγράμματος Υπάρχουν αντίστοιχες σταθερές για κάθε τύπο δεδομένων Ακέραια σταθερά: 202 Πραγματική σταθερά: 3.14 Σταθερά Χαρακτήρα: z Οι σταθερές μπορούν είτε να χρησιμοποιούνται απ ευθείας μέσα στο πρόγραμμα (π.χ. Myvar m ) ή να τους αποδίδεται κάποιο όνομα στην αρχή του προγράμματος (π.χ. PI: 3.1415926) και στη συνέχεια να χρησιμοποιούνται μέσω του ονόματος τους (π.χ. Mysecondvar PI) 22/24

Εντολές Εντολή είναι μια φράση της γλώσσας προγραμματισμού που αναγκάζει τον υπολογιστή να εκτελέσει μια συγκεκριμένη λειτουργία Κάθε εντολή έχει μια αυστηρά καθορισμένη σύνταξη, που ορίζεται από την ίδια τη γλώσσα Οι εντολές επιτελούν διάφορες λειτουργίες Εκτέλεση πράξης Απόδοση τιμής Εμφάνιση μηνύματος στην οθόνη Εγγραφή στο δίσκο κ.α. Το πρόγραμμα αποτελείται από μια ακολουθία εντολών που εκτελούνται σειριακά εκτός και αν κάποια εντολή αλλάξει τη σειρά εκτέλεσης Τα προγράμματα μπορεί να είναι ενιαία ή να αποτελούνται από περισσότερα τμήματα (υποπρογράμματα) 23/24