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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.EVAL push bx Xor bx,bh Add si,ax.loop dec cx. 1. Fortran. 2. Cobol. 3. Algol

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

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

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

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

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

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

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

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

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

κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Ι σ τ ο ρ ι κ ή Α ν α δ ρ ο µ ή π α ρ α τ ή ρ η σ η

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

A) Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-10 και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι

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

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

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 6 ο

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Εργαστήρι Πληροφορικής Αλγόριθµος 92 Σηµειώσεις Τεχνολογικής Κατεύθυνσης Γλώσσες µηχανής Αρχικά για να µπορέσει ο υπολογιστής να εκτελέσει µία οποιαδή

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

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη)

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

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

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

Κεφάλαιο 7 Προγραμματισμός υπολογιστή

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

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

ιαφάνειες παρουσίασης #1

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

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ Κεφάλαιο 1 ο Ανάλυση Προβλήµατος

Ένα περιοδικό για το ΑΕΠΠ Τεύχος Πανελλαδικών Ι

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

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

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

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

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

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

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

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

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

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

Transcript:

Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Γιώργος Γιαγλής

Το σηµερινό µάθηµα Ταξινόµηση γλωσσών προγραµµατισµού Γλώσσες Προγραµµατισµού Γλώσσες µηχανής (1η γενιά) Συµβολικές γλώσσες (2η γενιά) Γλώσσες υψηλού επιπέδου (3η γενιά) Γλώσσες πολύ υψηλού επιπέδου (4η γενιά) Μεταφραστές Γλωσσών Προγραµµατισµού Aλγόριθµοι Η έννοια του αλγόριθµου Παράσταση αλγόριθµων Παράσταση αλγόριθµων µε ψευδοκώδικα Παράσταση αλγόριθµων µε διαγράµµατα ροής Βασικές δοµές διαδικασιακού προγραµµατισµού: ακολουθία, επιλογή, επανάληψη

Ταξινόµηση γλωσσών ανάλογα µε το επίπεδο προγραµµατισµού Πολύ χαµηλού επιπέδου ή 1ης γενιάς είναι οι γλώσσες µηχανής Χαµηλού επιπέδου ή 2ης γενιάς είναι οι συµβολικές γλώσσες (assembly) Υψηλού επιπέδου ή 3ης γενιάς είναι οι FORTRAN, COBOL, BASIC, PASCAL, C, C++, JAVA, κλπ Πολύ υψηλού επιπέδου ή 4ης γενιάς είναι οι SQL, PROLOG, κλπ

Γλώσσα Μηχανής (1ης γενιάς) Γλώσσα πολύ χαµηλού επιπέδου, άµεσα εκτελέσιµη που αποτελείται από µία ακολουθία 0 και 1 (δυαδικών ψηφίων) Είναι διαφορετική για κάθε κατηγορία υπολογιστή Είναι δυσνόητη αφού απαιτεί βαθιά γνώση του υλικού του συγκεκριµένου υπολογιστή (low-level language) Χρησιµοποιήθηκε στους πρώτους υπολογιστές ενώ σήµερα παράγεται αυτόµατα από τις γλώσσες προγραµµατισµού υψηλού επιπέδου

Παράδειγµα Πρόγραµµα πρόσθεσης δυο αριθµών σε γλώσσα µηχανής (αριστερά) και συµβολική γλώσσα (στη µέση) Γλώσσα µηχανής Συµβολική γλώσσα Επεξήγηση 0010 0010 0110 0010 0110 0111 0010 1000 1010 1111 1111 0000 LOAD X ADD Y STORE Z STOP oοι εντολές κωδικοποιούνται σε οκτώ δυαδικά ψηφία (π.χ. η LOAD είναι 0010 0010) oοι διευθύνσεις µνήµης κωδικοποιούνται σε τέσσερα δυαδικά ψηφία (όπως στο παράδειγµα του Κεφαλαίου 5)

Συµβολική Γλώσσα (2ης γενιάς) Γλώσσα χαµηλού επιπέδου που αποτελείται από συντοµογραφίες εντολών στην αγγλική γλώσσα (π.χ. ADD, LDA, κλπ) Είναι διαφορετική για κάθε κατηγορία υπολογιστή Είναι λιγότερο δύσκολη στη χρήση αλλά εξακολουθεί να απαιτεί βαθιά γνώση του υλικού του υπολογιστή (medium-level language) Παράγει αυτόµατα γλώσσα µηχανής αφού διαθέτει συµβολοµεταφραστή (assembler)

Γλώσσα Υψηλού επιπέδου (3ης γενιάς) Αποτελούνται από κατανοητές εντολές συνήθως στην αγγλική γλώσσα (π.χ.print, INPUT κλπ) Είναι η ίδια για κάθε υπολογιστή που διαθέτει µεταγλωττιστή ή διερµηνευτή της συγκεκριµένης γλώσσας (FORTRAN, COBOL, BASIC, PASCAL, κλπ) Είναι εύκολη στη χρήση (high-level language) Αναπαράγουν αυτόµατα γλώσσα µηχανής (machine-language)

FORTRAN Ήταν η πρώτη γλώσσα υψηλού επιπέδου (1960) Χρησιµοποιήθηκε ευρύτατα για έρευνα και ανάπτυξη επιστηµονικών εφαρµογών Είναι αποδοτική για µαθηµατικούς υπολογισµούς αλλά υστερεί στη διαχείριση αρχείων Παράγει αυτόµατα γλώσσα µηχανής αφού διαθέτει µεταγλωττιστή (compiler) Σήµερα έχει σχεδόν εγκαταλειφθεί παρόλο που γνώρισε πολλές βελτιώσεις µέχρι και πρόσφατα

COBOL Αναπτύχθηκε το 1960 για να καλύψει τις αδυναµίες της FORTRAN Χρησιµοποιήθηκε ευρύτατα για ανάπτυξη εµπορικών - λογιστικών - τραπεζικών εφαρµογών Είναι αποδοτική στη διαχείριση αρχείων αλλά υστερεί στους υπολογισµούς Παράγει αυτόµατα γλώσσα µηχανής αφού διαθέτει µεταγλωττιστή σε σχεδόν όλες τις κατηγορίες υπολογιστών Χρησιµοποιείται ακόµα και σήµερα κυρίως σε µεγάλους Η/Υ (mainframes) αλλά έχει σχεδόν ξεπερασθεί παρόλο που γνώρισε πολλές βελτιώσεις

ALGOL Αναπτύχθηκε το 1960 ως αλγοριθµική γλώσσα γενικής χρήσης Είχε στόχο να ενσωµατώσει τις αρετές της FORTRAN και της COBOL σε µία γλώσσα αλλά απέτυχε πρακτικά (εµπορικά) Καθιέρωσε το δοµηµένο προγραµµατισµό Επηρέασε αρκετές µεταγενέστερες γλώσσες (π.χ. PASCAL) Αποτελεί θεµέλιο λίθο των αλγοριθµικών ή διαδικασιακών (procedural) γλωσσών

BASIC Μία πετυχηµένη αλγοριθµική γλώσσα για σύντοµα προγράµµατα σε µικροϋπολογιστές (PC) Χρησιµοποιήθηκε ευρύτατα για ανάπτυξη εφαρµογών γενικής χρήσης Είναι ιδανική για αρχάριους Παράγει αυτόµατα γλώσσα µηχανής αφού διαθέτει διερµηνευτή (interpreter) Σήµερα χρησιµοποιούνται ευρέως αρκετοί κλώνοι της όπως η Visual Basic

PASCAL Αναπτύχθηκε το 1970 µε βάση την ALGOL Χρησιµοποιήθηκε αρκετά για ανάπτυξη εφαρµογών γενικής χρήσης Είναι πολύ καλή για εκπαίδευση (εισαγωγή στον προγραµµατισµό) αφού αποτελεί πρότυπο εύχρηστης αλγοριθµικής γλώσσας Παράγει αυτόµατα γλώσσα µηχανής αφού διαθέτει µεταγλωττιστή (compiler) Αποτέλεσε βάση για ανάπτυξη άλλων δοµηµένων γλωσσών ADA, DELPHI, κλπ όπως οι

C & C++ Η C είναι µία πολύ ισχυρή αλγοριθµική γλώσσα υψηλού επιπέδου που ενσωµατώνει όµως κι αρετές γλωσσών χαµηλού επιπέδου (assembly) Χρησιµοποιείται ευρύτατα για προγραµµατισµό συστηµάτων και ανάπτυξη επιστηµονικών εφαρµογών Σήµερα η C συνεχίζει να εξαπλώνεται και ιδιαίτερα η αντικειµενοστραφής εξέλιξή της, η C++, έχει πολλές εφαρµογές

JAVA Είναι µία νέα αντικειµενοστραφής γλώσσα υψηλού επιπέδου Χρησιµοποιείται ευρύτατα για ανάπτυξη εφαρµογών στο διαδίκτυο (internet) Είναι αποδοτική σε κατανεµηµένα περιβάλλοντα Σήµερα εξαπλώνεται µε ιδιαίτερα ταχείς ρυθµούς

Γλώσσα Πολύ υψηλού επιπέδου (4ης γενιάς) Απευθύνονται όχι µόνο σε προγραµµατιστές αλλά και σε απλούς χρήστες Μία εντολή γλώσσας 4ης γενιάς θα αντιστοιχούσε σε πολλές εντολές γλώσσας 3ης γενιάς Χρησιµοποιούνται για ειδικές εφαρµογές ή ως γλώσσες ερωτήσεων σε βάσεις δεδοµένων (π.χ. SQL) Πολλές γλώσσες τεχνητής νοηµοσύνης (π.χ. PROLOG) θεωρούνται γλώσσες 4ης γενιάς

Ταξινόµηση γλωσσών ανάλογα µε το τρόπο προγραµµατισµού Αλγοριθµικές ή διαδικασιακές (procedural) όπως FORTRAN, COBOL, ALGOL, PASCAL, BASIC κλπ Μη διαδικαστικές (non procedural) ή λογικές όπως η PROLOG Αντικειµενοστραφείς (object oriented) όπως SMALLTALK, C++, JAVA, κλπ Οπτικές (visual) όπως VISUAL BASIC, VISUAL C, VISUAL C++, κλπ Συναρτησιακές (functional) όπως η LISP Ερωταπαντήσεων (query languages) όπως η SQL

Ταξινόµηση γλωσσών ανάλογα µε τη χρήση Γενικής χρήσης όπως PASCAL, BASIC κλπ Επιστηµονικής κατεύθυνσης (science oriented languages) π.χ. FORTRAN Εµπορικής κατεύθυνσης (business-oriented language) π.χ. COBOL Προγραµµατισµού συστηµάτων (system programming languages) όπως η C Τεχνητής νοηµοσύνης όπως LISP, PROLOG κλπ Ειδικών (εξειδικευµένων) χρήσεων (π.χ. γραφικά, ροµποτική, εκπαίδευση, βάσεις δεδοµένων, κλπ)

Μεταφραστές Γλωσσών Προγραµµατισµού Οι µεταφραστές (translators) µεταφράζουν ένα πρόγραµµα που έχει γραφτεί σε κάποια γλώσσα προγραµµατισµού σε αντίστοιχο πρόγραµµα σε γλώσσα µηχανής ιακρίνονται σε: Μεταγλωττιστές (compiler) Σύνταξη προγράµµατος πηγαίο πρόγραµµα Μεταγλώττιση αντικείµενο πρόγραµµα Σύνδεση (φόρτωση) εκτελέσιµο πρόγραµµα Εκτέλεση ιερµηνευτές (interpreter) Σύνταξη προγράµµατος πηγαίο πρόγραµµα ιερµήνευση Εκτέλεση

Βασικές έννοιες Προγραµµατισµού Ένα πρόγραµµα είναι ένα σύνολο από οδηγίες που µπορούν να εκτελεστούν σε προγραµµατιστικά περιβάλλοντα. Σε περίπτωση διαδικασιακού προγραµµατισµού (procedural programming) οποιοδήποτε πρόγραµµα µπορεί να γραφτεί µε συνδυασµό τριών βασικών δοµών: της ακολουθίας, της επιλογής και της επανάληψης. Ακολουθία: Κάθε αλγόριθµος είναι µια ακολουθία εντολών, οι οποίες εκτελούνται σειριακά. Επιλογή: Μια εντολή µπορεί να ελέγξει κατά πόσο ισχύει µια συνθήκη και να επιλέξει την εκτέλεση ενός τµήµατος προγράµµατος αν η συνθήκη είναι αληθής ή ενός άλλου τµήµατος προγράµµατος αν η συνθήκη είναι ψευδής. Επανάληψη: Η εκτέλεση ενός τµήµατος προγράµµατος µπορεί να επαναλαµβάνεται για όσο διάστηµα ισχύει µια συνθήκη.

Αλγόριθµοι Αλγόριθµος (algorithm) είναι µια σειρά από πεπερασµένα βήµατα που καθορίζουν ένα τρόπο επίλυσης ενός προβλήµατος Η αναπαράσταση ενός αλγόριθµου σε γλώσσα κατανοητή από τον υπολογιστή ονοµάζεται πρόγραµµα (program) Η αναπαράσταση ενός αλγορίθµου µπορεί να γίνει: 1. Σε αυστηρά δοµηµένη φυσική γλώσσα (ψευδοκώδικας) 2. Σε αυστηρά ορισµένο διάγραµµα ( ιάγραµµα Ροής)

Πρόγραµµα 1.1 Λύση 1 Αλγόριθµος 1 Πρόγραµµα 1.2 Πρόγραµµα 1... Λύση 2 Αλγόριθµος 2 Πρόγραµµα 2.1 Πρόγραµµα 2.2 Πρόβληµα............ Πρόγραµµα v.1 Λύση ν Αλγόριθµος ν Πρόγραµµα v.2... Πρόγραµµα ν...

Παράδειγµα Πρόβληµα: Να ταξινοµηθούν σε αύξουσα σειρά τρεις ακέραιοι αριθµοί, έστω αρ1-αρ2-αρ3 Λύση 1: να συγκρίνουµε συνεχώς τους αριθµούς ανά δυο και να τους αντιµεταθέτουµε αν δεν είναι σε αύξουσα σειρά µέχρι να τελειώσουµε. Λύση 2: να βρίσκουµε κάθε φορά το µικρότερο αριθµό και να τον βάζουµε πρώτο στη σειρά των αριθµών που δεν έχουµε ακόµα δει µέχρι να τελειώσουµε.

Παράδειγµα Αλγόριθµος για τη Λύση 1. Σύγκρινε τον αρ1 µε τον αρ2 και αν δεν είναι σε αύξουσα σειρά αντιµετάθεσε τους. Έπειτα, σύγκρινε τον αρ2 µε τον αρ3 και αν δεν είναι σε αύξουσα σειρά αντιµετάθεσε τους. Τέλος, σύγκρινε τον αρ1 µε τον αρ2 και αν δεν είναι σε αύξουσα σειρά αντιµετάθεσε τους. Αλγόριθµος για τη Λύση 2. Βρες το µικρότερο από τους {αρ1, αρ2, αρ3} και βάλε τον στη θέση του αρ1, αλλάζοντας του θέση µε αυτόν. Έπειτα, βρες το µικρότερο από τους {αρ2, αρ3} και βάλε τον στη θέση του αρ2, αλλάζοντας του θέση µε αυτόν.

Χαρακτηριστικά αλγόριθµων Ένας αλγόριθµος πρέπει να έχει πεπερασµένο αριθµό βηµάτων, πρέπει δηλαδή να έχει ορισµένη αρχή και τέλος. Είναι απαραίτητο η εκτέλεση του αλγορίθµου κάποια στιγµή να τερµατίζεται. Ένας αλγόριθµος αντιστοιχεί σε µια πιθανή λύση ενός προβλήµατος. Η ορθότητα του αλγόριθµου εξαρτάται από το πόσο είναι αυτός σε θέση να βρίσκει τη λύση σε κάθε περίπτωση Η πολυπλοκότητα του κάθε αλγόριθµου ορίζει το βαθµό απλότητας της λύσης που αυτός υλοποιεί.

Παράσταση αλγόριθµων: ψευδοκώδικας Ο ψευδοκώδικας (pseudocode) επιτρέπει την περιγραφή των αλγορίθµων σε φυσική γλώσσα χωρίς την χρήση συντακτικού γλώσσας προγραµµατισµού. O ψευδοκώδικας: εν µπορεί να εκτελεστεί ή και να µεταγλωττιστεί εν απαιτεί γνώση κάποιας γλώσσας προγραµµατισµού

Εντολή ΙΑΒΑΣΕ () ΤΥΠΩΣΕ () ΕΑΝ συνθήκη ΤΟΤΕ εντολές1 ΑΛΛΙΩΣ εντολές2 ΕΑΝ-ΤΕΛΟΣ ΟΣΟ συνθήκη εντολές ΟΣΟ-ΤΕΛΟΣ ΕΠΑΝΕΛΑΒΕ εντολές ΜΕΧΡΙ συνθήκη ΓΙΑ µετρητής:=τιµή1 ΕΩΣ τιµή2 ΕΠΑΝΕΛΑΒΕ εντολές ΓΙΑ-ΤΕΛΟΣ Σηµασία Εντολή ανάγνωσης τιµών που θα δώσει ο χρήστης (τα ονόµατα των µεταβλητών στις οποίες θα καταχωρηθούν οι τιµές αυτές περιλαµβάνονται µέσα σε παρένθεση, διαχωρισµένα µε κόµµατα) Εντολή εµφάνισης τιµών στην οθόνη (τα που θα τυπωθούν περιλαµβάνονται µέσα σε παρένθεση, διαχωρισµένα µε κόµµατα, και ανάµεσα σε αν πρόκειται για κυριολεκτικά λεκτικά) Εντολή επιλογής. Αν ισχύει η συνθήκη, τότε εκτελούνται οι εντολές1. Αν δεν ισχύει η συνθήκη, τότε εκτελούνται οι εντολές2 (οι οποίες είναι προαιρετικές). Εντολή επανάληψης. Ελέγχεται η συνθήκη και, αν ισχύει, τότε εκτελούνται οι εντολές. Στη συνέχεια ελέγχεται η συνθήκη και πάλι και, αν ισχύει, τότε εκτελούνται οι εντολές ξανά. Η διαδικασία αυτή επαναλαµβάνεται συνεχώς µέχρι να µην ισχύει πια η συνθήκη, οπότε η εντολή τερµατίζεται (αν η συνθήκη δεν ισχύει από την αρχή, οι εντολές δεν εκτελούνται καµία φορά). Εντολή επανάληψης. Εκτελούνται οι εντολές και στη συνέχεια ελέγχεται η συνθήκη. Αν δεν ισχύει, τότε οι εντολές εκτελούνται ξανά και στη συνέχεια ελέγχεται η συνθήκη και πάλι. Η διαδικασία αυτή επαναλαµβάνεται συνεχώς µέχρι να ισχύει η συνθήκη, οπότε η εντολή τερµατίζεται (οι εντολές εκτελούνται τουλάχιστον καµία φορά, έστω και αν η συνθήκη ισχύει από την αρχή). Εντολή επανάληψης. Ο µετρητής παίρνει αρχικά την τιµή1. Ελέγχεται αν η τιµή αυτή είναι µικρότερη ή ίση µε την τιµή2 και, αν είναι, εκτελούνται οι εντολές. Στη συνέχεια, ο µετρητής αυξάνεται κατά 1 και ελέγχεται πάλι αν η τιµή του είναι µικρότερη ή ίση µε την τιµή2 και, αν είναι, εκτελούνται οι εντολές. Η διαδικασία αυτή επαναλαµβάνεται µέχρι η τιµή του µετρητή να γίνει µεγαλύτερη από την τιµή2, οπότε η εντολή τερµατίζεται. := Εντολή εκχώρησης. Συµβολίζει την απόδοση τιµής σε µια µεταβλητή, π.χ. a:=1 ; Συµβολίζει το τέλος µιας εντολής ΑΡΧΗ - ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Ε ΟΜΕΝΑ µετ1, µετ2,... : τύπος Συµβολίζουν την αρχή και το τέλος ενός τµήµατος κώδικα. Είναι πάντα σε ζεύγη (κάθε ΤΕΛΟΣ αντιστοιχίζεται στην κοντινότερη του ΑΡΧΗ, η οποία δεν έχει ακόµα αντιστοιχιστεί) Αποτελεί την επικεφαλίδα ενός προγράµµατος και ακολουθείται από το όνοµα του προγράµµατος αυτού Συµβολίζουν την αρχή του τµήµατος ενός προγράµµατος στο οποίο ορίζονται τα δεδοµένα που χρησιµοποιεί το πρόγραµµα αυτό. Στο τµήµα δεδοµένων ορίζονται ονόµατα µεταβλητών και οι τύποι τους. Ορίζει λίστες από ονόµατα µεταβλητών που χωρίζονται µεταξύ τους µε κόµµατα. Στο τέλος της λίστας και µετά το σύµβολο : ορίζεται ο τύπος των µεταβλητών αυτών. Οι συνηθέστεροι τύποι είναι ΑΚΕΡΑΙΟΣ (INTEGER), ΠΡΑΓΜΑΤΙΚΟΣ

Ψευδοκώδικας για τον αλγόριθµο 1 Ψευδοκώδικας για τον αλγόριθµο 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ΑΛΓΟΡΙΘΜΟΣ Taksinomisi; Ε ΟΜΕΝΑ ar1,ar2,ar3,temp : INTEGER; ΑΡΧΗ ΤΥΠΩΣΕ( ώσε 3 ακέραιους: ); ΙΑΒΑΣΕ(ar1, ar2, ar3); ΕΑΝ ar1>ar2 ΤΟΤΕ temp:=ar2; ar2:=ar1; ar1:=temp; ΕΑΝ-ΤΕΛΟΣ; ΕΑΝ ar2>ar3 ΤΟΤΕ temp:=ar2; ar2:=ar3; ar3:=temp; ΕΑΝ-ΤΕΛΟΣ; ΕΑΝ ar1>ar2 ΤΟΤΕ temp:=ar2; ar2:=ar1; ar1:=temp; ΕΑΝ-ΤΕΛΟΣ; ΤΥΠΩΣΕ( Σε αύξουσα σειρά: ); ΤΥΠΩΣΕ(ar1,ar2, ar3); ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Taksinomisi2; Ε ΟΜΕΝΑ ar1,ar2,ar3,min,temp : INTEGER; ΑΡΧΗ ΤΥΠΩΣΕ( ώσε 3 ακέραιους: ); ΙΑΒΑΣΕ(ar1, ar2, ar3); ΕΑΝ ar1<ar2 ΤΟΤΕ EAN ar1<ar3 TOTE min:=ar1 ΑΛΛΙΩΣ min:=ar3; ΕΑΝ-ΤΕΛΟΣ ΑΛΛΙΩΣ ΕΑΝ ar2<ar3 TOTE min:=ar2 ΑΛΛΙΩΣ min:=ar3; ΕΑΝ-ΤΕΛΟΣ ΕΑΝ-ΤΕΛΟΣ; EAN min=ar2 TOTE temp:=ar2; ar2:=ar1; ar1:=temp; ΑΛΛΙΩΣ ΕΑΝ min=ar3 ΤΟΤΕ temp:=ar3; ar3:=ar1; ar1:=temp; ΕΑΝ-ΤΕΛΟΣ; ΕΑΝ ar1<ar2 ΤΟΤΕ temp:=ar2; ar2:=ar1; ar1:=temp; ΕΑΝ-ΤΕΛΟΣ; ΤΥΠΩΣΕ( Σε αύξουσα σειρά: ); ΤΥΠΩΣΕ(ar1,ar2, ar3); ΤΕΛΟΣ

Παράσταση αλγόριθµων: ιαγράµµατα Ροής Το διάγραµµα ροής επιτρέπει την περιγραφή των αλγόριθµων σχηµατικά. Εντολή Απόφαση Αρχή & Τερµατισµός Είσοδος ( εδοµένα) Έξοδος (Εκτύπωση) Ροή Βασικοί συµβολισµοί διαγραµµάτων ροής

Παράδειγµα ΑΡΧΗ Υλοποίηση του αλγόριθµου για την ταξινόµηση τριών ακεραίων σε διάγραµµα ροής ΩΣΕ 3 ΑΚΕΡΑΙΟΥΣ ar1 > ar2? ar1, ar2, ar3 ar1 > ar2? ΝΑΙ temp:=ar2; ar2:=ar1; ar1:=temp ΟΧΙ ΟΧΙ ΝΑΙ temp:=ar2; ar2:=ar1; ar1:=temp ΣΕ ΑΥΞΟΥΣΑ ΣΕΙΡΑ: ar1, ar2, ar3 ΟΧΙ ar2 > ar3? ΝΑΙ temp:=ar2; ar2:=ar3; ar3:=temp ΤΕΛΟΣ

Παράσταση αλγόριθµων: Πρόγραµµα program Taksinomisi; void main (void) var { ar1, ar2, ar3, temp : integer; int ar1, ar2, ar3, temp; begin printf( ώσε τρεις ακέραιους: ); write( ώσε τρεις ακέραιους: ); readln(ar1, ar2, ar3); scanf( %d%d%d, &ar1, &ar2, &ar3); if ar1>ar2 then if (ar1>ar2) begin { temp=ar2; temp:=ar2; ar2=ar1; ar2:=ar1; ar1=temp; ar1:=temp; } end; if ar2>ar3 then if (ar2>ar3) begin { temp=ar2; temp:=ar2; ar2=ar3; ar2:=ar3; ar3=temp; ar3:=temp; } end; if (ar1>ar2) if ar1>ar2 then { temp=ar2; begin temp:=ar2; ar2=ar1; ar2:=ar1; ar1=temp; ar1:=temp; } end; printf( Σε αύξουσα σειρά: ); write( Σε αύξουσα σειρά: ); printf( %d %d %d\n,ar1,ar2,ar3); writeln(ar1,ar2, ar3); } end.

Ακολουθία-Επιλογή-Επανάληψη ΑΚΟΛΟΥΘΙΑ ΕΠΙΛΟΓΗ ΕΠΑΝΑΛΗΨΗ εντολή 1; εντολή 2; εντολή 3; ΕΑΝ συνθήκη ΤΟΤΕ εντολές; ΑΛΛΙΩΣ εντολές; ΟΣΟ συνθήκη εντολές ΟΣΟ-ΤΕΛΟΣ εντολή 1 ΝΑΙ συνθήκη ΟΧΙ συνθήκη ΝΑΙ εντολές εντολή 2 εντολές εντολές ΟΧΙ... εντολή 3... Υλοποίηση ακολουθίας, επιλογής και επανάληψης µε ψευδοκώδικα (πάνω) και διάγραµµα ροής (κάτω)

Ασκηση: Έστω ότι µας ζητείται να υπολογίσουµε το άθροισµα όλων των άρτιων (ζυγών) αριθµών από το 1 έως το 1.000.000, δηλαδή το άθροισµα 2+4+6+...+999.998+1.000.000.

Μια λύση ΑΛΓΟΡΙΘΜΟΣ Athroisma_Zygwn; Ε ΟΜΕΝΑ athroisma,orisma: INTEGER; ΑΡΧΗ athroisma:=0; orisma:=1; ΟΣΟ orisma<=1000000 ΕΑΝ orisma mod 2 = 0 athroisma:=athroisma+orisma; ΤΕΛΟΣ-ΕΑΝ; orisma:=orisma+1; ΟΣΟ-ΤΕΛΟΣ; ΤΥΠΩΣΕ( Το άθροισµα είναι:, athroisma); ΤΕΛΟΣ

Άλλη λύση ΑΛΓΟΡΙΘΜΟΣ Athroisma_Zygwn2; Ε ΟΜΕΝΑ athroisma,orisma:integer; ΑΡΧΗ athroisma:=0; orisma:=2; ΟΣΟ orisma<=1000000 athroisma:=athroisma+orisma; orisma:=orisma+2; ΟΣΟ-ΤΕΛΟΣ; ΤΥΠΩΣΕ( Το άθροισµα είναι:, athroisma); ΤΕΛΟΣ

Άλλη λύση ΑΛΓΟΡΙΘΜΟΣ Athroisma_Zygwn4; Ε ΟΜΕΝΑ athroisma,orisma:integer; ΑΡΧΗ athroisma:=0; ΓΙΑ orisma:=2 ΕΩΣ 1000000 ΜΕ ΒΗΜΑ 2 ΕΠΑΝΕΛΑΒΕ athroisma:=athroisma+orisma; ΓΙΑ-ΤΕΛΟΣ; ΤΥΠΩΣΕ( Το άθροισµα είναι:, athroisma); ΤΕΛΟΣ