ΠΛΗΡΟΦΟΡΙΚΗ I. 9 η ΔΙΑΛΕΞΗ Λογισμικό - Προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Transcript:

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ - ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗ I 9 η ΔΙΑΛΕΞΗ Λογισμικό - Προγραμματισμός ΧΑΣΑΝΗΣ ΒΑΣΙΛΕΙΟΣ

ΠΕΡΙΕΧΟΜΕΝΟ ΔΙΑΛΕΞΗΣ 1. Βασικά στοιχεία 2. Αλγόριθμοι και προγράμματα 3. Μοντέλα ανάπτυξης λογισμικού 4. Παραδοσιακά στοιχεία προγραμματισμού 5. Ανάπτυξη προγραμμάτων 6. Συνηθισμένες κατηγορίες εφαρμογών 7. Φάσεις ανάπτυξης συστημάτων 8. Άδειες χρήσης 9. Επιλογή λογισμικού 2

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ Το λογισμικό σε ένα σύστημα υπολογιστή, αποτελείται από όλα τα προγράμματα που υπάρχουν σε αυτόν και διακρίνεται σε δύο μεγάλες κατηγορίες: 1. Λογισμικό συστήματος Προγράμματα διαχείρισης και υποστήριξης 2. Λογισμικό εφαρμογών 3

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ 4

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΑ Αλγόριθμος είναι η ακριβής περιγραφή μιας αυστηρά καθορισμένης σειράς πεπερασμένων βημάτων για την επίλυση ενός προβλήματος. Η διατύπωση ενός αλγορίθμου μπορεί να γίνει με πολλούς τρόπους: Φυσική γλώσσα Τεχνητή γλώσσα με περιορισμένο λεξιλόγιο Διάφοροι συμβολισμοί Σχήματα και διαγράμματα 5

ΦΥΣΙΚΗ ΓΛΩΣΣΑ Ζητείται να βρεθεί ο μεγαλύτερος από τρεις δοσμένους αριθμούς: "Πάρε τους δύο πρώτους αριθμούς και σύγκρινέ τους. Στη συνέχεια σύγκρινε το μεγαλύτερο από αυτούς και τον τρίτο αριθμό. Ο μεγαλύτερος από τους δύο τελευταίους είναι ο μεγαλύτερος των τριών αριθμών." 6

ΤΕΧΝΗΤΗ ΓΛΩΣΣΑ Αλγόριθμος MAX Δεδομένα //x, y, z : αριθμοί, m : μεταβλητή// Αρχή Αν x>y τότε m=x αλλιώς m=y Αν z>m τότε m=z Τέλος Αποτελέσματα //m, ο μέγιστος των x, y, z // Τέλος MAX 7

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΟΥ Είσοδος Έξοδος Σαφείς οδηγίες Καλύπτει όλες τις δυνατές καταστάσεις Τερματισμός 8

ΠΡΟΓΡΑΜΜΑ Πρόγραμμα: Διατύπωση ενός αλγορίθμου σε γλώσσα προγραμματισμού. Μια σειρά βημάτων, οδηγιών ή εντολών προς τον υπολογιστή, κατανοητών από αυτόν, για τη λύση ενός προβλήματος. Οι εντολές αυτές εκτελούνται από τον υπολογιστή με χρονική και λογική σειρά προκειμένου να δώσουν τα προσδοκώμενα αποτελέσματα. Η διαδικασία σύνταξης των προγραμμάτων αποκαλείται προγραμματισμός. 9

ΠΡΟΓΡΑΜΜΑ Λόγω της τεράστιας πολυπλοκότητας των φυσικών γλωσσών είναι αδύνατη η διατύπωση ενός προβλήματος στον υπολογιστή μόνο με τη φυσική γλώσσα. Έτσι η εκπόνηση και δημιουργία των προγραμμάτων γίνεται με τη χρήση ειδικών συμβολισμών που ονομάζονται γλώσσες προγραμματισμού (programming languages). 10

ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ο προγραμματισμός ενός υπολογιστή μπορεί να γίνει σε πολλά επίπεδα χρησιμοποιώντας σε κάθε επίπεδο διαφορετικού τύπου γλώσσες. Γλώσσες μηχανής Συμβολικές γλώσσες Γλώσσες προγραμματισμού υψηλού επιπέδου 11

ΓΛΩΣΣΕΣ ΜΗΧΑΝΗΣ Στο χαμηλότερο επίπεδο βρίσκονται τα ίδια τα ηλεκτρονικά κυκλώματα του υπολογιστή. Έχουμε μόνο δύο καταστάσεις (0, 1) Στο επίπεδο αυτό, ο προγραμματισμός μπορεί να γίνει μόνο με τη χρήση των δυαδικών αριθμών. Για παράδειγμα, σε έναν υπολογιστή η ακολουθία: 100010100101010 μπορεί να αποτελεί μια εντολή πρόσθεσης δύο αριθμών. 12

ΓΛΩΣΣΕΣ ΜΗΧΑΝΗΣ Η "γλώσσα" αυτή των δυαδικών συμβόλων λέγεται γλώσσα μηχανής (machine language) ή κώδικας μηχανής (machine code) και είναι η μόνη γλώσσα που κατανοεί απ' ευθείας το υλικό του υπολογιστή. Είναι φανερό ότι η διατύπωση προβλημάτων στη γλώσσα αυτή είναι ξένη προς τον άνθρωπο και για το λόγο αυτό, ο προγραμματισμός στο επίπεδο μηχανής είναι εξαιρετικά επίπονος και ελάχιστα αποδοτικός. 13

ΠΡΟΓΡΑΜΜΑ ΣΕ ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ (ΔΕΚΑΕΞΑΔΙΚΗ ΜΟΡΦΗ) 14

ΣΥΜΒΟΛΙΚΕΣ ΓΛΩΣΣΕΣ Το επόμενο βήμα είναι οι συμβολικές γλώσσες ή συμβολογλώσσες (assembly languages). Μια συμβολική γλώσσα χρησιμοποιεί σύμβολα στη θέση των δυαδικών αριθμών. Τα σύμβολα αυτά είναι συνήθως συντμήσεις και αρκτικόλεξα αγγλικών λέξεων και μπορούν απομνημονευτούν, γι' αυτό και αποκαλούνται μνημονικές εντολές (mnemonics). 15

ΣΥΜΒΟΛΙΚΕΣ ΓΛΩΣΣΕΣ Η εντολή LDA σημαίνει φόρτωσε το συσσωρευτή (LoaD Accumulator) Η εντολή ADD σημαίνει πρόσθεσε Ένα πρόγραμμα σε συμβολική γλώσσα προκειμένου να κατανοηθεί και να εκτελεσθεί από τον υπολογιστή, πρέπει να μετατραπεί σε δυαδικά σύμβολα, σε γλώσσα μηχανής δηλαδή. 16

ΣΥΜΒΟΛΙΚΕΣ ΓΛΩΣΣΕΣ Το έργο αυτό αναλαμβάνει ο συμβολομεταφραστής (assembler), ο οποίος επίσης είναι ένα πρόγραμμα σε γλώσσα μηχανής. Η αντιστοιχία είναι τυπικά μία εντολή συμβολικής γλώσσας - προς μία εντολή γλώσσας μηχανής. Οι γλώσσες μηχανής και οι συμβολικές γλώσσες αναφέρονται ως γλώσσες χαμηλού επιπέδου και μπορούν να εκτελεστούν μόνο σε υπολογιστές με την ίδια ή συμβατή κεντρική μονάδα επεξεργασίας. 17

ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ Οι ανεπάρκειες των συμβολικών γλωσσών και η προσπάθεια για καλύτερη επικοινωνία ανθρώπου-μηχανής, οδήγησαν στα τέλη της δεκαετίας του '50 στην εμφάνιση των πρώτων γλωσσών προγραμματισμού υψηλού επιπέδου (high level languages). Στις γλώσσες αυτές που αποτελούν υποσύνολα της αγγλικής γλώσσας, η περιγραφή ενός προβλήματος γίνεται με τρόπο περισσότερο προσιτό στον άνθρωπο. 18

ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ Υπόλοιπο = Χρέωση - Πίστωση. Στη FORTRAN θα γραφεί η εντολή: YP0L0IP0 = XREWSH PISTWSH Στην COBOL SUBTRACT PISTWSH FROM XREWSH GIVING YPOLOIPO. 19

ΜΕΤΑΦΡΑΣΗ ΓΛΩΣΣΩΝ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ Ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου συντάσσεται με τη βοήθεια ειδικών προγραμμάτων που λέγονται συντάκτες (editors). Για να εκτελεσθεί από τον υπολογιστή ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου απαιτείται η μετάφραση του σε αντίστοιχο πρόγραμμα σε γλώσσα μηχανής. Η μετατροπή γίνεται με τη βοήθεια ενδιάμεσων μεταφραστικών προγραμμάτων. Μια μεγάλη κατηγορία μεταφραστικών προγραμμάτων είναι οι μεταγλωττιστές(compilers). 20

ΜΕΤΑΓΛΩΤΤΙΣΤΗΣ Δέχεται στην είσοδο ένα πρόγραμμα γραμμένο σε μια γλώσσα υψηλού επιπέδου και παράγει ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής. Το τελευταίο μπορεί στη συνέχεια να φορτωθεί στην κεντρική μνήμη και να εκτελεσθεί όσες φορές αυτό είναι επιθυμητό. Είναι δε τελείως ανεξάρτητο από το αρχικό πρόγραμμα. Η χρήση του μεταγλωττιστή έχει το μειονέκτημα ότι προτού χρησιμοποιηθεί ένα πρόγραμμα, πρέπει να περάσει από τη διαδικασία της μεταγλώττισης. 21

ΜΕΤΑΓΛΩΤΤΙΣΤΗΣ Κατά τη φάση αυτή, αν εντοπιστούν ορθογραφικά ή συντακτικά λάθη, αλλά και μετά κατά την εκτέλεση, αν προκόψουν σφάλματα, τότε το αρχικό πρόγραμμα πρέπει να διορθωθεί και να ξαναμεταγλωττισθεί. Ένα πρόγραμμα γραμμένο σε μια γλώσσα υψηλού επιπέδου αποκαλείται αρχικό ή πηγαίο (source). Το πρόγραμμα που παράγεται από το μεταγλωττιστή λέγεται πρόγραμμα ή κώδικας αντικειμένου (object) και αποθηκεύεται επίσης σε αρχείο (object file). 22

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Προγράμματα κώδικα μηχανής που εξυπηρετούν είσοδο - έξοδο, τα οποία επειδή πρακτικά χρησιμοποιούνται από όλα τα προγράμματα, γράφονται και μεταγλωττίζονται μία φορά και στη συνέχεια εισάγονται σε ειδικές δομές που λέγονται βιβλιοθήκες (libraries). Η διαδικασία μεταγλωττισμού όλων των αρχείων πηγαίου κώδικα μιας εφαρμογής, είναι γνωστή ως δόμηση (build). Γλώσσες οι οποίες παραδοσιακά χρησιμοποιούν μεταγλωττιστή, είναι η FORTRAN, η COBOL, η C, η Pascal, η C++ κ.α. 23

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Ο πηγαίος κώδικας Java, όταν μεταγλωττιστεί, παράγει τον λεγόμενο δυφιοουλαβοκώδικα (bytecode), ο οποίος διερμηνεύεται κατά το χρόνο εκτέλεσης από την Εικονική Μηχανή Java (JVM - Java Virtual Machine). Πολλές υλοποιήσεις Java, χρησιμοποιούν ένα είδος μεταγλωττιστή για τη μετατροπή του bytecode σε κώδικα μηχανής. 24

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 25

ΜΟΝΤΕΛΑ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ 26

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) Καθορίζει κανείς ακριβώς τι πρέπει να γίνει σε κάθε βήμα του αλγόριθμου. Καθορίζεται δηλαδή λεπτομερώς πώς θα επιλυθεί το πρόβλημα. Κάθε πρόγραμμα είναι μια διαδικασία ή σύνολο εργασιών που κωδικοποιούνται στη γλώσσα προγραμματισμού με προκαθορισμένο τρόπο και σειρά. Στην τυπική περίπτωση, το πρόγραμμα είναι έτσι δομημένο, ώστε ζητά δεδομένα, τα επεξεργάζεται και εμφανίζει τα αποτελέσματα. 27

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) 28

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) 29

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) 30

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) 31

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) FORTRAN (1957) (FORmulae TRANslator): Αποτελεί την πρώτη γλώσσα υψηλού επιπέδου που εμφανίστηκε. Είναι προσανατολισμένη σε επιστημονικές / τεχνικές εφαρμογές. Είναι η γλώσσα η οποία κατέστησε τον υπολογιστή προσιτό στον επιστημονικό και τεχνικό κόσμο. COBOL (1960) (Common Business Oriented Language) Αποτέλεσε στο παρελθόν την πλέον χρησιμοποιούμενη γλώσσα για εμπορικές εφαρμογές. Χαρακτηρίζεται από σύνταξη που προσεγγίζει πολύ την αγγλική γλώσσα και μια αξιόλογη προσπάθεια να επιτευχθεί ανεξαρτησία από το υλικό του υπολογιστή. 32

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) BASIC (1964) (Beginner's All-purpose Symbolic Instruction Code): Μία από τις πρώτες διαλογικές γλώσσες προορισμένη για γενικό προγραμματισμό. Χρησιμοποιήθηκε επίσης για την εισαγωγή αρχαρίων στον προγραμματισμό. Στη δεκαετία του 80 καθιερώθηκε ως η κυρίαρχη γλώσσα των μικροϋπολογιστών. Χρησιμοποιείται και σήμερα σε εκδόσεις προσαρμοσμένες στους σύγχρονους τρόπους προγραμματισμού (π.χ. Visual BASIC). 33

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) Pascal (1971): Γλώσσα σχεδιασμένη για τη διδασκαλία του δομημένου προγραμματισμού. Χαρακτηρίζεται από μεγάλο πλούτο τύπων δεδομένων, δομών ελέγχου και ιδιαίτερη κομψότητα στην περιγραφή αλγορίθμων. Γνώρισε μεγάλη επιτυχία στα πανεπιστήμια. 34

ΔΙΑΔΙΚΑΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (PROCEDURAL) C (1972): Η C αρχικά χρησιμοποιήθηκε για την υλοποίηση του λειτουργικού συστήματος UNIX. Συντέλεσε όσο καμιά άλλη γλώσσα στον εκτοπισμό της συμβολικής γλώσσας για τη δημιουργία λογισμικού συστήματος. Εξέλιξή της αποτελούν οι ευρέως διαδεδομένες αντικειμενοστραφείς γλώσσες C++, Objective C και C#. Σήμερα χρησιμοποιείται ευρέως για την ανάπτυξη λογισμικού συστήματος και λιγότερο για γενικό προγραμματισμό. 35

ΔΗΛΩΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ (DECLARATIVE) Ο προγραμματιστής περιγράφει κατά βάση το πρόβλημα που θα επιλυθεί αντί του λεπτομερούς αλγορίθμου που θα ακολουθηθεί. Για την ακρίβεια, ένα περιβάλλον προγραμματισμού του είδους αυτού, χρησιμοποιεί "προκατασκευασμένους" αλγορίθμους για την επίλυση προβλημάτων. Κατά συνέπεια ο προγραμματιστής αναπτύσσει μια ακριβή περιγραφή του προβλήματος και λιγότερο έναν αλγόριθμο για την επίλυσή του. 36

ΔΗΛΩΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ (DECLARATIVE) Χαρακτηριστικό παράδειγμα αυτού του τρόπου προσέγγισης αποτελεί η γλώσσα PROLOG (1970). Επίσης, στη φιλοσοφία της δηλωτικής προσέγγισης κινούνται υποσύνολα ευρέως διαδεδομένων γλωσσών, όπως οι εντολές SELECT της γλώσσας SQL (1970). 37

ΔΗΛΩΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ (DECLARATIVE) Prolog Declarations:?- likes(george,food).?- likes(george,wine).?- likes(natalie,wine).?- likes(natalie,george). Ερωτήματα - Απαντήσεις:?- likes(george,food). yes.?- likes(natalie,wine). yes.?- likes(natalie,food). no. 38

ΔΗΛΩΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ (DECLARATIVE) Παράδειγμα SQL: ΟΝΟΜΑ ΜΑΘΗΜΑ ΒΑΘΜΟΣ Γιάννης Μαθηματικά 7 Γιάννης Φυσική 6 Μαρία Χημεία 8 Μαρία Μαθηματικά 9 Δημήτρης Μαθηματικά 10 Ελένη Μαθηματικά 9 Θέλουμε να βρούμε τους μαθητές που πήραν βαθμό 9 στο μάθημα των μαθηματικών: SELECT ΟΝΟΜΑ FROM DEGREES WHERE ΜΑΘΗΜΑ='Μαθηματικά AND ΒΑΘΜΟΣ='9 ; Επιστρέφεται: Μαρία Ελένη 39

ΣΥΝΑΡΤΗΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (FUNCTIONAL) Ένα πρόγραμμα αντιμετωπίζεται ως μια οντότητα που δέχεται εισόδους και παράγει εξόδους, έχοντας μια δομή επιμέρους συνδεδεμένων μεταξύ τους προγραμμάτων (συναρτήσεων). Η έξοδος ενός προγράμματος αποτελεί την είσοδο για κάποιο άλλο κατά τρόπον ώστε, να επιτυγχάνεται η συνολική επιθυμητή συμπεριφορά. Κάθε οντότητα, δηλαδή, αντιμετωπίζεται ως "συνάρτηση", εξ' ου και η περιγραφή της προσέγγισης αυτής. 40

ΣΥΝΑΡΤΗΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (FUNCTIONAL) Χαρακτηριστικό παράδειγμα αυτής της προσέγγισης είναι η γλώσσα προγραμματισμού LISP (1958). Αποτελεί τη δεύτερη παλαιότερη γλώσσα στην ιστορία των υπολογιστών και το όνομά της το χρωστάει στα αρχικά της έκφρασης " LlSt Processing" ("επεξεργασία λιστών"). Δημιουργήθηκε ως τρόπος αναπαράστασης μαθηματικών εκφράσεων στον υπολογιστή. Γρήγορα υιοθετήθηκε από τους ερευνητές της Τεχνητής Νοημοσύνης (Artificial Intelligence / ΑΙ). 41

ΣΥΝΑΡΤΗΣΙΑΚΗ ΠΡΟΣΕΓΓΙΣΗ (FUNCTIONAL) Θέλουμε να υπολογίσουμε το γινόμενο δύο αριθμών, του 2 και του (4 + 6). Με τη βοήθεια της LISP αυτό γράφεται ως η συνάρτηση "πολλαπλασιασμός" με ορίσματα τους δύο αριθμούς: User> (* 2 (+ 4 6)) 42

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΣΕΓΓΙΣΗ (OBJECTED ORIENTED) Βασίζεται στη δημιουργία αντικειμένων δηλ. προγραμματιστικών δομών που περιλαμβάνουν δεδομένα και διαδικασίες που ενεργούν επί των δεδομένων. Στη γενική περίπτωση, αρχικά ορίζεται με ειδικές εντολές ο τύπος αντικειμένου που θα καλύπτει μια συγκεκριμένη ανάγκη του προγράμματος. Ο τύπος αυτός τυπικά συμπεριλαμβάνει ένα σύνολο δεδομένων που περιγράφουν τις παραμέτρους που ορίζουν την κατάσταση του αντικειμένου, και μία ή περισσότερες διαδικασίες που στην ορολογία του αντικειμενοστρεφούς προγραμματισμού είναι γνωστές ως μέθοδοι. 43

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΣΕΓΓΙΣΗ C++ (1985): (OBJECTED ORIENTED) Περιλαμβάνει όλα τα στοιχεία της κλασικής C με επιπλέον δομές για υλοποίηση και χειρισμό αντικειμένων. Java (1995): Αναπτύχθηκε από την Sun Microsystems. Μοιάζει συντακτικά με τη C++ αλλά η φιλοσοφία ανάπτυξής της, την καθιστά ιδιαίτερα ευέλικτη, με αποτέλεσμα την ευρεία διάδοσή της σήμερα, για ένα μεγάλο φάσμα εφαρμογών. 44

Μεταβλητές Σταθερές τιμές Εκφράσεις & τελεστές Εντολές Υποπρογράμματα Πέρασμα παραμέτρων Σχόλια ΠΑΡΑΔΟΣΙΑΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 45

ΜΕΤΑΒΛΗΤΕΣ (VARIABLES) Οι μεταβλητές είναι ονόματα μέσω των οποίων αναφέρεται κανείς σε τιμές οι οποίες αποθηκεύονται σε θέσεις κεντρικής μνήμης. Ο όρος μεταβλητές, αντανακλά ακριβώς το γεγονός ότι η τιμή που αντιστοιχεί στο όνομα της μεταβλητής μπορεί να μεταβληθεί κατά τη διάρκεια εκτέλεσης του προγράμματος. Οι μεταβλητές γενικά φέρουν δύο χαρακτηριστικά μεγάλης σημασίας: Τον τύπο (data type): ακέραιος, λογικός, κινητής υποδιαστολής Την εμβέλεια (scope): δημόσια ή τοπική 46

ΕΚΦΡΑΣΕΙΣ & ΤΕΛΕΣΤΕΣ Οι κάθε είδους παραστάσεις τιμών, μεταβλητές, σταθερές και οτιδήποτε μπορεί να υπολογιστεί σε μια τιμή και να αποτελέσει δεδομένο (τελεσταίος), μπορούν να συνδυαστούν μεταξύ τους με χρήση τελεστών (operators) για να δημιουργήσουν εκφράσεις (expressions). Οι τελεστές τυπικά είναι τα σύμβολα των τεσσάρων αριθμητικών πράξεων (+,-,*,/), ο τελεστής ύψωσης σε δύναμη (συνήθως ο χαρακτήρας ^) οι λογικοί τελεστές μέσω των οποίων γίνονται λογικές πράξεις όπως συγκρίσεις, σύζευξη, διάζευξη κ.λπ. 47

ΕΝΤΟΛΕΣ Μετά τις κάθε είδους δηλώσεις σε ένα πρόγραμμα, ακολουθεί η υλοποίηση του αλγορίθμου με εντολές της γλώσσας προγραμματισμού που χρησιμοποιείται. Οι εντολές μπορούν γενικά να διακριθούν σε εντολές εκχώρησης και εντολές ελέγχου. 48

ΕΝΤΟΛΕΣ ΕΚΧΩΡΗΣΗΣ (ASSIGNMENT STATEMENTS) Χρησιμοποιούνται για τον υπολογισμό μιας παράστασης και την εκχώρηση του αποτελέσματος σε μια μεταβλητή. Μια εντολή του είδους αυτού, συντακτικά, αρχίζει με μια μεταβλητή η οποία ακολουθείται από ένα σύμβολο που παριστά τον τελεστή εκχώρισης, στις περισσότερες γλώσσες το "=" ή το ": = "και τελειώνει με μια έκφραση η οποία υπολογιζόμενη αποδίδει την τιμή που θα εκχωρηθεί. Ζ = X * Υ; 49

ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ Οι εντολές ελέγχου είναι στην ουσία αγγλικές λέξεις ή συντμήσεις αγγλικών λέξεων όπως για παράδειγμα if, else, case, for, κ.λπ. Τα ονόματα αυτά είναι δεσμευμένα και δεν μπορούν να χρησιμοποιηθούν ως ονόματα μεταβλητών. Οι βασικές δομές ελέγχου που χρησιμοποιούνται σε όλες τις σύγχρονες γλώσσες υψηλού επιπέδου είναι οι ακόλουθες: Δομή Επιλογής Δομή Επανάληψης 50

ΔΟΜΗ ΕΠΙΛΟΓΗΣ Η ροή εκτέλεσης εντολών μπορεί να διακλαδωθεί σε διαφορετικά σημεία ανάλογα με το αποτέλεσμα λογικών εκφράσεων. Τυπικά έχει τη μορφή: 51

ΔΟΜΗ ΕΠΙΛΟΓΗΣ Το ακόλουθο παράδειγμα δείχνει ένα τμήμα προγράμματος σε γλώσσα C, στο οποίο συγκρίνονται δύο αριθμοί και εμφανίζει στην οθόνη το αποτέλεσμα της σύγκρισης. 52

ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Βρόχος loop: Πρόκειται για δομή που δίνει τη δυνατότητα για επαναληπτική εκτέλεση εντολών και έχει τη γενική μορφή: Γνωστές τέτοιες εντολές: while do while for 53

ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 54

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Ένα υποπρόγραμμα, αποτελεί ένα σύνολο εντολών που συνολικά εκτελούν ένα συγκεκριμένο έργο, ομαδοποιημένων κάτω από ένα κοινό όνομα. Το όνομα αυτό, χρησιμοποιείται στο κυρίως πρόγραμμα για την κλήση και εκτέλεση των εντολών του υποπρογράμματος. 55

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τα υποπρογράμματα, ανάλογα με τη γλώσσα προγραμματισμού, μπορεί να έχουν τη μορφή: Υπορουτινών (subroutines π.χ. στη FORTRAN) Διαδικασιών (procedures - π.χ. στην Pascal) Συναρτήσεων (functions π.χ. στη C, C++, FORTRAN) Στον αντικειμενοστρεφή προγραμματισμό χρησιμοποιείται ο όρος μέθοδος για να περιγράφει παραπλήσια έννοια. 56

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 57

ΑΝΑΠΤΥΞΗ ΠΡΟΓΡΑΜΜΑΤΩΝ Η ανάπτυξη των προγραμμάτων ακολουθεί μια σειρά από στάδια τα οποία γενικά έχουν ως ακολούθως: Σχεδίαση Κωδικοποίηση Έλεγχος και αποσφαλμάτωση Τεκμηρίωση και συντήρηση προγραμμάτων Αποθετήρια Πηγαίου Κώδικα UML 58

ΣΧΕΔΙΑΣΗ H ανάπτυξη λογισμικού, πρέπει να γίνεται με συστηματικό τρόπο ώστε να διευκολύνεται τόσο η ανάπτυξη, όσο και η συντήρησή του. Προς την κατεύθυνση αυτή, χρησιμοποιούνται διάφορα εργαλεία και προσεγγίσεις: Αρθρωτός προγραμματισμός Αντικειμενοστρεφής προσέγγιση Δομημένος προγραμματισμός Διαγράμματα ροής Ψευδοκώδικας 59

ΑΡΘΡΩΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ο αρθρωτός προγραμματισμός (modular programming), είναι μια μέθοδος ανάπτυξης προγραμμάτων, που βασίζεται στη διάσπαση του συνολικού προβλήματος που επιλύεται με το πρόγραμμα, σε επιμέρους μικρότερα και άρα ευκολότερα διαχειρίσιμα δομοστοιχεία (modules). Τα modules επιλέγονται και αναπτύσσονται κατά τρόπο ώστε να είναι όσο το δυνατόν πιο ανεξάρτητα και απομονωμένα μεταξύ τους. (+) Η αποσφαλμάτωση γίνεται ευκολότερη (+) Διευκολύνεται η συλλογική ανάπτυξη μιας εφαρμογής (+) Πολλά modules μπορούν να επαναχρησιμοποιηθούν και σε άλλα προγράμματα. 60

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΣΕΓΓΙΣΗ Αναπτύσσονται προγραμματιστικά αντικείμενα, κάθε ένα από τα οποία αντιστοιχεί σε υπό διαχείριση δεδομένα ή σε φυσικά αντικείμενα. Δίνει περισσότερο έμφαση στη δημιουργία ολοκληρωμένων αντικειμένων (κλάσεων) τα οποία περιέχουν όσα στοιχεία χρειάζονται για το χειρισμό τους. Τα δεδομένα τηρούνται εσωτερικά, κατά τρόπον ώστε να είναι ορατά μόνο στην κλάση που χρειάζονται και η προσπέλαση σε αυτά εξωτερικά γίνεται μόνο μέσω ειδικού τύπου υποπρογραμμάτων που λέγονται μέθοδοι (methods). 61

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με την προσέγγιση αυτή: Τυποποιούνται και απλοποιούνται οι ροές ελέγχου Κατά συνέπεια τα προγράμματα γίνονται πιο ευανάγνωστα και ευκολοσυντήρητα. Αποφεύγεται, αν όχι απαγορεύεται η χρήση εντολών τύπου goto Το συνολικό πρόγραμμα ανάγεται σε: Στοιχεία δομών ακολουθίας εντολών Δομών εντολών επιλογής του τύπου if... then... Else Εντολών βρόχου για επαναληπτική εκτέλεση εντολών 62

ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ 63

ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ Υπάρχουν τρεις τρόποι εκτέλεσης: Διαδοχική Επιλογή Επανάληψη 64

ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ Διαδοχική: Οι πράξεις εκτελούνται διαδοχικά χωρίς να επιστρέφουμε σε προηγούμενες πράξεις ΠΡΑΞΕΙΣ ΠΡΑΞΕΙΣ 65

ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ Επιλογή: Εξετάζεται μία λογική συνθήκη και επιλέγεται η αντίστοιχη κατεύθυνση (αληθής, ψευδής) ΝΑΙ ΣΥΝΘΗΚΗ ΟΧΙ 66

ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ Επανάληψη: Επαναλαμβάνεται μία ή περισσότερες πράξεις 67

ΨΕΥΔΟΚΩΔΙΚΑΣ Ο ψευδοκώδικας αποτελεί μια εναλλακτική έκφραση αλγορίθμων, ένα στάδιο πριν την καθεαυτού κωδικοποίηση σε κάποια γλώσσα προγραμματισμού. Χρησιμοποιεί λέξεις της φυσικής γλώσσας, οι οποίες έχουν επιλεγεί ώστε να πλησιάζουν αυτές των προγραμματιστικών δομών των περισσότερο διαδεδομένων γλωσσών υψηλού επιπέδου. 68

ΑΣΚΗΣΗ 1 ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ 69

ΑΣΚΗΣΗ 2 ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ 70

ΑΣΚΗΣΗ 3 ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ 71

ΑΔΕΙΕΣ ΧΡΗΣΗΣ Κατά κανόνα, όταν εγκαταστήσει κανείς λογισμικό σε έναν υπολογιστή, υπάρχει ένα βήμα στο οποίο ζητείται η συμφωνία του χρήστη με την άδεια χρήσης. Η συμφωνία αυτή μπορεί να είναι ιδιαίτερα μακροσκελής και συχνά περιλαμβάνει στοιχεία για την προστασία των κατασκευαστών του προϊόντος από δίωξη λόγω πιθανών σφαλμάτων του λογισμικού. Καθορίζει επίσης πόσα αντίγραφα έχει δικαίωμα να κάνει ο χρήστης. 72

ΑΔΕΙΕΣ ΧΡΗΣΗΣ Επίσης, στην τυπική περίπτωση κάθε εμπορικό προϊόν λογισμικού, συνοδεύεται από ένα είδος ταυτότητας που λέγεται κωδικός αναγνώρισης (Product ID). Ο κωδικός αυτός αναγνώρισης, για προϊόντα λογισμικού σε περιβάλλον Microsoft Windows, μπορεί να φανεί με την επιλογή Βοήθεια>Πληροφορίες για... (Help>About...). 73

ΑΔΕΙΕΣ ΧΡΗΣΗΣ Σχεδόν όλα τα εμπορικά λογισμικά συνοδεύονται από μια συγκεκριμένη άδεια χρήσης (license). Οι άδειες χρήσης συνήθως καθορίζουν τα ακόλουθα: Όρους εγκατάστασης και χρήσης του λογισμικού. Όρους εγκατάστασης και χρήσης σε δίκτυο. Όρους που διέπουν τα εφεδρικά αντίγραφα (backup). Συμφωνίες συντήρησης. 74

ΑΔΕΙΕΣ ΧΡΗΣΗΣ Επίσης οι περισσότερες άδειες χρήσης εμφανίζονται σε μια από τις ακόλουθες μορφές: Ενός χρήστη - μιας μηχανής. Ενός χρήστη πολλών μηχανών. Τοπική θέση. Προσωπική, μη κερδοσκοπική χρήση. Εταιρική χρήση. 75

ΕΛΕΥΘΕΡΟ ΛΟΓΙΣΜΙΚΟ (FREEWARE) Λογισμικό που ρητά ανήκει στην κατηγορία αυτή, μπορεί να κατέβει και να αντιγράφει ελεύθερα. Συχνά λογισμικό της κατηγορίας αυτής είναι πλήρως λειτουργικό. Παράδειγμα αποτελεί λογισμικό που έχει αναπτυχθεί - τουλάχιστον αρχικά - από οργανισμούς όπως πανεπιστήμια, όπου ο σκοπός δεν είναι το κέρδος. Έχει μεγάλη σημασία να μη συγχέεται το ελεύθερο λογισμικό (freeware) με το λογισμικό περιορισμένης χρήσης (shareware). 76

ΛΟΓΙΣΜΙΚΟ ΠΕΡΙΟΡΙΣΜΕΝΗΣ ΧΡΗΣΗΣ (SHAREWARE) Πρόκειται για λογισμικό το οποίο μπορεί να χρησιμοποιεί κανείς ελεύθερα για συγκεκριμένη χρονική περίοδο δοκιμής. Με τη λήξη της περιόδου αυτής, αρχίζουν διάφορα ενοχλητικά μηνύματα που προτρέπουν την καταχώρηση του προϊόντος, με άλλα λόγια την πληρωμή. Πιθανόν με τη λήξη της περιόδου αυτής, το προϊόν να μην λειτουργεί καθόλου. 77

ΛΟΓΙΣΜΙΚΟ ΑΝΟΙΚΤΟΥ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ Το λογισμικό ανοικτού πηγαίου κώδικα (Open Source) είναι το λογισμικό το οποίο κυκλοφορεί ελεύθερα ακόμα και σε επίπεδο πηγαίου κώδικα. Κατά συνέπεια μπορεί ο καθένας να χρησιμοποιεί, να διανέμει, να αντιγράψει και να το τροποποιεί ελεύθερα ανάλογα με τις ανάγκες του. Η ιδέα του λογισμικού ανοικτού κώδικα γνωρίζει τεράστια διάδοση σήμερα. 78