144
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ Α θήνα 2014 Β΄ Λυκείου ΤΌΜΌΣ 3ος ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΙΝΣΤΙΤΟΥΤΟ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΚΔΟΣΕΩΝ «ΔΙΟΦΑΝΤΟΣ»

Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Αθήνα 2014

Β΄ ΛυκείουΤΌΜΌΣ 3ος

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

ΙΝΣΤΙΤΟΥΤΟ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΚΔΟΣΕΩΝ «ΔΙΟΦΑΝΤΟΣ»

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

ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ

ΙΝΣΤΙΤΟΥΤΟ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΚΔΟΣΕΩΝ

«ΔΙΟΦΑΝΤΟΣ»

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

ΙΝΣΤΙΤΟΥΤΟ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΚΔΟΣΕΩΝ «ΔΙΟΦΑΝΤΟΣ»

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

ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ

ΙΝΣΤΙΤΟΥΤΟ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΚΔΟΣΕΩΝ

«ΔΙΟΦΑΝΤΟΣ»

Page 2: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ΙΝΣΤΙΤΌΥΤΌ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΌΛΙΤΙΚΗΣΠρόεδρος: Σωτήριος Γκλαβάς

ΓΡΑΦΕΙΌ ΕΡΕΥΝΑΣ ΣΧΕΔΙΑΣΜΌΥ ΚΑΙ ΕΦΑΡΜΌΓΩΝ Β΄Προϊστάμενος: Παύλος Φ. Μάραντος

ΣΥΓΓΡΑΦΕΙΣ:Δρ. Σπυρίδων Δουκάκης, Πληρο-φορικός, Μαθηματικός, PIERCE-Αμερικανικό Κολλέγιο ΕλλάδοςΧρήστος Δουληγέρης, Καθηγητής Τμήματος Πληροφορικής Πανεπι-στημίου ΠειραιώςΔρ. Θεόδωρος Καρβουνίδης, Εκ-παιδευτικός ΠΕ19Χρήστος Κοίλιας, Καθηγητής Τμή-ματος Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Αθήνας

Page 3: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Δρ. Αθανάσιος Πέρδος, Πληρο-φορικός, Φυσικός, Ελληνογαλλική Σχολή Καλαμαρί

ΣΥΝΤΌΝΙΣΤΗΣ: Χρήστος Κοίλιας

ΣΥΛΛΌΓΗ - ΕΠΕΞΕΡΓΑΣΙΑ ΥΛΙΚΌΥ:Δημήτριος Κοτσιφάκος, Εκπαιδευ-τικός, ΠΕ 1708

ΚΡΙΤΕΣ-ΑΞΙΌΛΌΓΗΤΕΣ:Παναγιώτης Βαρζάκας, Μέλος ΔΕΠ (συντονιστής)Σοφία Τζελέπη, Σχολική Σύμβουλος, ΠΕ19Πέτρος Ματζάκος, Εκπαιδευτικός, ΠΕ19

ΦΙΛΌΛΌΓΙΚΗ ΕΠΙΜΕΛΕΙΑ:Μαρία Κοίλια

Page 4: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ΕΞΩΦΥΛΛΌ: Γιώργος Σκούφος

ΣΕΛΙΔΌΠΌΙΗΣΗ: Γιώργος Σκούφος

ΑΝΑΔΌΧΌΣ: ΕΚΔΟΣΕΙΣ ΝΕΩΝ ΤΕ-ΧΝΟΛΟΓΙΩΝ

Στουρνάρη 49Α, 106 82, Αθήνα, Τηλ. 210-38.45.594 Fax: 210-38.08.009Ε-mail: [email protected]: www.newtech-pub.com

Page 5: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

«ΔΗΜΙΌΥΡΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΌΥ ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ ΜΑΘΗΜΑ-ΤΑ ΤΌΥ ΓΕΝΙΚΌΥ ΛΥΚΕΙΌΥ» της Πράξης «ΝΕΌ ΣΧΌΛΕΙΌ (ΣΧΌΛΕΙΌ 21oυ αιώνα) - ΝΕΌ ΠΡΌΓΡΑΜΜΑ ΣΠΌΥΔΩΝ» ΜΕ ΚΩΔ. ΌΠΣ 295450, των Αξόνων Προτεραιότητας 1, 2 και 3 - ΌΡΙΖΌΝΤΙΑ ΠΡΑΞΗ του ΕΠΙΧΕΙΡΗΣΙΑΚΌΥ ΠΡΌΓΡΑΜΜΑ-ΤΌΣ «ΕΚΠΑΙΔΕΥΣΗ ΚΑΙ ΔΙΑ ΒΙΌΥ ΜΑΘΗΣΗ», που συγχρηματοδοτεί-ται από την Ευρωπαϊκή Ένωση - Ευρωπαϊκό Κοινωνικό Ταμείο και από Εθνικούς Πόρους (ΕΣΠΑ 2007 - 2013).

Page 6: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

ΜΕ ΜΕΙΩΜΕΝΗ ΟΡΑΣΗΙΤΥΕ - ΔΙΟΦΑΝΤΟΣ

μέγεθος 28΄΄

Η αξιολόγηση, η κρίσητων προσαρμογών καιη επιστημονική επιμέλειατου προσαρμοσμένου βιβλίου πραγματοποιείται από τη Μονάδα Ειδικής Aγωγής του Ινστιτούτου Εκπαιδευτικής Πολιτικής.

Η προσαρμογή του βιβλίουγια μαθητές με μειωμένη όραση από το ΙΤΥΕ – ΔΙΟΦΑΝΤΟΣπραγματοποιείται με βάση τις προδιαγραφές που έχουναναπτυχθεί από ειδικούςεμπειρογνώμονες για το ΙΕΠ.

Page 7: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Στόχοι του κεφαλαίου αυτού είναι να μπορούν οι μαθητές:

✓ να δημιουργούν ευκρινές γνωσια-κό και οργανωμένο νοητικό σχή-μα που να περιλαμβάνει τα είδη και τεχνικές προγραμματισμού, με βάση την πρότερη εμπειρία τους.

✓ να συνδυάζουν αλγοριθμικές δο-μές και δεδομένα/δομές δεδομέ-νων για να δημιουργούν κώδικα/πρόγραμμα.

✓ να διαπιστώνουν ότι οι σημερι-νές εφαρμογές είναι αρκετά

Προγραμματισμός

5 / 55

Page 8: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

πολύπλοκες και η δημιουργία τους ακολουθεί συγκεκριμένα μοντέλα ανάπτυξης εφαρμογών λογισμικού που εξελίσσονται σε συγκεκριμένες φάσεις.

Προερωτήσεις

• Η δημιουργία του αλγορίθμου αρκεί για να επιλύσεις ένα πρόβλημα στον υπολογιστή;

• Γνωρίζεις κάποιες γλώσσες προγραμματισμού;

• Έχεις ακολουθήσει κάποια μεθοδολογία ή τεχνική για να επιλύσεις ένα πρόβλημα;

• Ποια νομίζεις ότι είναι η δουλειά του προγραμματιστή υπολογιστών;

6 / 55

Page 9: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα»2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού

Για να αναπαρασταθούν οι αλγόριθ-μοι σε μορφή κατανοητή από τον υπολογιστή αναπτύσσονται προ-γράμματα.

2.3.1

Πρόγραμμα είναι το σύνολο των εντολών που χρειάζεται να δο-θούν στον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος.

7 / 55

Page 10: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Η εργασία σύνταξης των προγραμ-μάτων σε κάποια γλώσσα προ-γραμματισμού ονομάζεται προ-γραμματισμός και τα άτομα που γράφουν και συντάσσουν ένα πρό-γραμμα ονομάζονται προγραμ-ματιστές. Βασικό στοιχείο του προγράμματος, εκτός από τον αλ-γόριθμο που υλοποιεί, είναι τα δε-δομένα και οι δομές δεδομένων που επεξεργάζεται.

Οι γλώσσες προγραμματισμού ανα-πτύχθηκαν με σκοπό την επικοι-νωνία του ανθρώπου (προγραμμα-τιστή) με τη μηχανή (υπολογιστή). Ο υπολογιστής κάνει στοιχειώδεις ενέργειες σε ακολουθίες των δύο ψηφίων 0 και 1 (δυαδικά ψηφία, bits), αλλά αυτές τις ενέργειες τις

8 / 55

Page 11: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

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

9 / 55 - 56

Page 12: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Εντολές σε γλώσσα μηχανής που καταχωρούν το άθροισμα των τιμών δύο θέσεων μνήμης σε μία άλλη.000000100101101000001010010111100000011011011110

Η περιγραφή των παραπάνω εντολών είναι η εξής:

• Μετάφερε στον καταχωρη-τή το περιεχόμενο της θέ-σης μνήμης με διεύθυνση 01011010.

• Πρόσθεσε στο περιεχόμενο του καταχωρητή το περιεχό-μενο της θέσης μνήμης με δι-εύθυνση 01011110.

10 / 55

Page 13: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Στη συνέχεια αναπτύχθηκαν οι συμ-βολικές γλώσσες οι οποίες κάνουν χρήση εντολών που αποτελούνται από συμβολικά ονόματα τα οποία αντιστοιχούν σε εντολές της γλώσ-σας μηχανής. Το έργο της μετάφρα-σης των εντολών σε γλώσσα μη-χανής το αναλαμβάνει ένα ειδικό πρόγραμμα, ο συμβολομεταφρα-στής (assembler).

Οι συμβολικές γλώσσες ήταν σαφώς μια εξέλιξη αλλά παραμένουν στενά συνδεδεμένες με την αρχιτεκτονική

• Μετάφερε και αποθήκευσε το περιεχόμενο του καταχωρη-τή στη θέση μνήμης με διεύ-θυνση 11011110.

11 / 55 - 56

Page 14: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Εντολές σε συμβολική γλώσ-σα που καταχωρούν το άθροι-σμα των τιμών δύο θέσεων μνήμης σε μία άλλη.LDA B

ADD C

STA A

12 / 56

Page 15: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Η περιγραφή των παραπάνω εντο-λών είναι η εξής:

• Μετάφερε στον καταχωρητή το περιεχόμενο της θέσης μνήμης με όνομα Β.

• Πρόσθεσε στο περιεχόμενο του καταχωρητή το περιεχόμενο της θέσης μνήμης με όνομα C.

• Μετάφερε και αποθήκευσε το πε-ριεχόμενο του καταχωρητή στη θέση μνήμης με όνομα Α.

13 / 56

Page 16: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

υψηλού επιπέδου:

• είναι φυσικότερος και πιο ανθρώ-πινος ο τρόπος έκφρασης των προβλημάτων.

• υπάρχει δυνατότητα μεταφοράς, «μεταφερσιμότητα» δηλαδή, εκτέ-λεσης των προγραμμάτων σε οποιοδήποτε υπολογιστή.

• είναι εύκολη η εκμάθηση, η διόρ-θωση των λαθών και η συντήρη-ση των προγραμμάτων.

Έτσι αναπτύχθηκαν γλώσσες όπως οι ακόλουθες:

• FORTRAN (FORrmula TRANslation, Μετάφραση Τύ-πων). Το 1957 η ΙΒΜ ανέπτυξε

14 / 56

Page 17: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

την πρώτη γλώσσα υψηλού επι-πέδου. Αναπτύχθηκε ως γλώσσα κατάλληλη για την επίλυση μαθη-ματικών και επιστημονικών προ-βλημάτων.

• COBOL (COmmon Business Oriented Language, Κοινή Γλώσ-σα Προσανατολισμένη στις Επι-χειρήσεις). Κατάλληλη για ανά-πτυξη εμπορικών και γενικά διαχειριστικών εφαρμογών. Χρη-σιμοποιείται από επιχειρήσεις και από τη δημόσια διοίκηση.

• LISP (LISt Processor, Επεξερ-γαστής Λίστας). Συναρτησιακή γλώσσα η οποία προσανατολίζε-ται σε χειρισμό λιστών από σύμ-βολα. Χρησιμοποιείται στο χώρο της τεχνητής νοημοσύνης, σε

15 / 56

Page 18: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

έμπειρα συστήματα, παιχνίδια, επεξεργασία φυσικών γλωσσών.

• PROLOG (PROgramming in LOGic, Λογικός Προγραμματι-σμός). H γλώσσα PROLOG χρη-σιμοποιεί μεθόδους λογικής για να αναπαραστήσει τη γνώση και να επιλύσει προβλήματα. Χρησι-μοποιείται όπως και η LISP στο χώρο της τεχνητής νοημοσύνης, σε έμπειρα συστήματα, παιχνί-δια, επεξεργασία φυσικών γλωσ-σών.

• BASIC (Beginner’s All Purpose Symbolic Instruction Code, Συμ-βολικός Κώδικας Εντολών Γε-νικής Χρήσης για Αρχάριους). Γλώσσα που αναπτύχθηκε για την εκπαίδευση αρχαρίων στον

16 / 56 - 57

Page 19: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

• PASCAL. Είναι μια γλώσσα γε-νικής χρήσης. Διέπεται από τις αρχές του δομημένου προγραμ-ματισμού. Γνώρισε τεράστια εξά-πλωση, και επηρέασε την ανά-πτυξη άλλων γλωσσών όπως η ADA.

• C και η μετεξέλιξη της C++. Γλώσσα η οποία δημιουργήθηκε

17 / 57

Page 20: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

στα τα εργαστήρια BELL και χρη-σιμοποιήθηκε για την ανάπτυ-ξη του λειτουργικού συστήματος UNIX. Είναι γλώσσα με ισχυ-ρά χαρακτηριστικά. Η C++ είναι γλώσσα αντικειμενοστρεφούς προγραμματισμού.

• JAVA. Γλώσσα αντικειμενοστρε-φής που αναπτύχθηκε από τη SUN με σκοπό την ανάπτυξη εφαρμογών για το διαδίκτυο.

Εντολή στη γλώσσα BASIC που κα-ταχωρεί το άθροισμα των τιμών δύο μεταβλητών Β και C στη μεταβλητή Α.Α = Β + C

18 / 56 - 57

Page 21: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Η εμφάνιση των γραφικών περιβαλ-λόντων εργασίας δημιούργησε την

Εικόνα 2.25Ντένις Ρίτσι (Dennis Ritchie). O δη-μιουργός της γλώσσας προγραμμα-τισμού C και o βασικός συντελεστής στην ανάπτυξη του λειτουργικού συ-στήματος UNIX.

«Το UNIX είναι βασικά ένα απλό λει-τουργικό σύστημα, πρέπει όμως να είσαι ιδιοφυία για να καταλάβεις την απλότητά του».

19 / 57

Page 22: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ανάγκη για προγράμματα που να εκμεταλλεύονται τον γραφικό τρό-πο επικοινωνίας χρήστη – υπολογι-στή. Έτσι γλώσσες όπως η BASIC, η C++, η PASCAL που είναι μεν κει-μενικές, εξελίχθηκαν (Visual Basic, Visual C++, Delphi) ώστε να διαθέ-τουν και οπτικό περιβάλλον προ-γραμματισμού.

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

20 / 57

Page 23: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Αναπτύχθηκαν όμως και γλώσσες όπως η SCRATCH – BYOB και η Google AppInvertor που είναι απο-κλειστικά οπτικές γλώσσες προ-γραμματισμού (Visual Programming Languageς, VPL). Οι συγκεκριμένες δίνουν τη δυνατότητα στον προ-γραμματιστή να δημιουργήσει προ-γράμματα μέσα από το γραφικό χειρισμό προγραμματιστικών στοι-χείων (αντί κειμένου).

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

21 / 57

Page 24: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Η χρήση των υπολογιστών σχεδόν σε όλες τις εκφάνσεις της ανθρώπι-νης δραστηριότητας δημιούργησε την ανάγκη για γλώσσες κατάλλη-λες στην επίλυση συγκεκριμένων προβλημάτων. Έτσι αναπτύχθη-καν γλώσσες όπως η LOGO ή η GameMaker για εκπαιδευτικούς σκοπούς, η LabView που χρησιμο-ποιείται από τους επιστήμονες και τους μηχανικούς στο σχεδιασμό, τον έλεγχο και τη δοκιμή καταναλω-τικών προϊόντων κ.ά..

Εικόνα 2.26 Λογότυπο της γλώσσας Google AppInvertor.

22 / 57

Page 25: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

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

23 / 57 - 58

Page 26: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

επιλύει μόνος του μικρά προβλήμα-τα εφαρμογών. Αυτή η αυξανόμενη τάση απόκρυψης της αρχιτεκτονι-κής του υλικού και της τεχνικής του προγραμματισμού οδήγησε στις γλώσσες τέταρτης γενιάς. Η SQL (Structured Query Language, Δομη-μένη Γλώσσα Ερωτοαποκρίσεων) είναι μία γλώσσα τέταρτης γενιάς η οποία χρησιμοποιείται για την ανά-κτηση και τη διαχείριση δεδομένων καθώς και την παραγωγή πληροφο-ριών σε σχεσιακές βάσεις δεδομέ-νων.

SELECT ENAME, JOB, SALFROM EMPLOYESWHERE DEPTNO = 20AND SAL > 1000;

24 / 58

Page 27: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Με την ερώτηση αυτή σε SQL εκτε-λείται αναζήτηση στη βάση δεδο-μένων EMPLOYES και επιστρέφει το όνομα, τη θέση και τον μισθό των υπαλλήλων της διεύθυνσης 20 που κερδίζουν πάνω από 1000 ευρώ.

25 / 58

Page 28: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Οι δυνατότητες και οι μεθοδολογί-ες ανάπτυξης προγραμμάτων που παρέχει μία γλώσσα προγραμμα-τισμού, καθορίζονται από το προ-γραμματιστικό υπόδειγμα που ακο-λουθεί. Υπάρχουν όμως γλώσσες που έχουν σχεδιαστεί να υποστη-ρίζουν περισσότερα από ένα υπο-δείγματα.

Τα κυριότερα προγραμματιστικά υποδείγματα είναι:

Ως «Προγραμματιστικό Υπόδειγ-μα» εννοείται ένα πρότυπο ανά-πτυξης προγραμμάτων, δηλαδή μία καθορισμένη μεθοδολογία με βάση την οποία αναπτύσσονται η δομή και τα στοιχεία του προγράμματος.

26 / 58

Page 29: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

• Ο προστακτικός προγραμματι-σμός όπου τα προγράμματα ανα-πτύσσονται με απλές εντολές σε προστακτική (Διάβασε, Εμφάνι-σε, Επανάλαβε) που ζητούν από τον υπολογιστή να εκτελέσει συγκεκριμένες ενέργειες και να ακολουθήσει βήματα με μία λογι-κή σειρά για να επιλύσει το πρό-βλημα που έχει δοθεί. Γλώσσες, όπως η FORTRAN, η BASIC, η PASCAL, η C, ακολουθούν αυτό το υπόδειγμα.

• Ο δηλωτικός προγραμματισμός όπου, σε αντίθεση με τον προ-στακτικό προγραμματισμό, το πρόβλημα επιλύεται δηλώνοντας απλώς τις επιθυμητές ιδιότητες του αποτελέσματος. Το πρόγραμ-μα περιέχει λογικές εκφράσεις,

27 / 58

Page 30: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ενώ κατά την εκτέλεσή του γίνε-ται έλεγχος για το ποιες ακριβώς ικανοποιούνται. Παραδείγματα γλωσσών που τον ακολουθούν είναι η PROLOG και η SQL.

• Ο συναρτησιακός προγραμμα-τισμός επιλύει το πρόβλημα με τη χρήση μαθηματικών συναρτή-σεων. Οι συναρτήσεις παράγουν αποτελέσματα με βάση τα δεδο-μένα εισόδου τους. Παράδειγμα συναρτησιακής γλώσσας είναι η LISP.

• Ο αντικειμενοστρεφής προγραμ-ματισμός βασίζεται στην έννοια του αντικειμένου. Τα αντικείμενα δημιουργούνται από τις κλάσεις. Μία κλάση ορίζει τα χαρακτηρι-στικά και τη συμπεριφορά ενός

28 / 58 - 59

Page 31: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

τύπου αντικειμένου, λειτουργεί δηλαδή ως πρότυπο. Ένα αντι-κείμενο είναι μία δομή δεδομέ-νων η οποία περιέχει τόσο τα δεδομένα (χαρακτηριστικά που την περιγράφουν) όσο και τις δι-αδικασίες (μεθόδους) που επε-νεργούν σε αυτά. Τα αντικείμενα μπορούν να αλληλεπιδρούν με-ταξύ τους. Αντικειμενοστραφείς γλώσσες είναι η C++ και η JAVA.

• Ο λογικός προγραμματισμός όπου τα προγράμματα είναι γραμμένα ως ένα σύνολο από προτάσεις σε μορφή λογικών εκ-φράσεων. Το συγκεκριμένο υπό-δειγμα βασίζεται στα γεγονότα, στους κανόνες και στις ερωτή-σεις και ακολουθείται κυρίως στο πεδίο της Τεχνητής Νοημοσύνης.

29 / 59

Page 32: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα γλώσσας που τον ακολουθεί είναι η PROLOG.

• Ο παράλληλος προγραμματι-σμός στον οποίο τα προγράμμα-τα εκμεταλλεύονται την ύπαρξη υπολογιστών που διαθέτουν πε-ρισσότερους από έναν επεξερ-γαστές. Έτσι επιτυγχάνεται η αύ-ξηση των υπολογιστικών επιδό-σεων και η μείωση του χρόνου εκτέλεσης της εφαρμογής. Θα πρέπει όμως το πρόβλημα προς επίλυση να διαιρεθεί σε τμήματα που μπορούν να επιλυθούν πα-ράλληλα. Μία γλώσσα που υπο-στηρίζει τον παράλληλο προ-γραμματισμό είναι η Occam.

30 / 59

Page 33: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ
Page 34: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ΠροστακτικόςΠρογραμματισμός

ΔηλωτικόςΠρογραμματισμός

ΛογικόςΠρογραμματισμός

ΣυναρτησιακόςΠρογραμματισμός

FORTRAN, BASIC,PASCAL, C

PROLOG, SQL

LISP C++, JAVA

PROLOG

OSCAM

είναι οείναι ο

ΠαράλληλοςΠρογραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΥΠΟΔΕΙΓΜΑ

είναι ο είναι ο

είναι οείναι ο

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

1 1

1 1 1

1

ακολουθείται από1

32 / 59

Εικόνα 2.29 Προγραμματιστικά Υποδείγματα.

Page 35: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ΠροστακτικόςΠρογραμματισμός

ΔηλωτικόςΠρογραμματισμός

ΛογικόςΠρογραμματισμός

ΣυναρτησιακόςΠρογραμματισμός

FORTRAN, BASIC,PASCAL, C

PROLOG, SQL

LISP C++, JAVA

PROLOG

OSCAM

είναι οείναι ο

ΠαράλληλοςΠρογραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΥΠΟΔΕΙΓΜΑ

είναι ο είναι ο

είναι οείναι ο

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

1 1

1 1 1

1

ακολουθείται από1

33 / 59

Page 36: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Εικόνα 2.27Η Άντα Λάβλεϊς (Ada Lovelace), κόρη του Λόρδου Βύρωνα, έγραψε το πρώ-το πρόγραμμα υπολογιστή κατά τον 19ο αιώνα για την Αναλυτική Μηχα-νή του Τσαρλς Μπάμπατζ (Charles Babbage), πολύ πριν από την εμφά-νιση ηλεκτρονικών υπολογιστών. Η γλώσσα προγραμματισμού ADA έχει ονομαστεί έτσι προς τιμήν της.

34 / 58

Page 37: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Εικόνα 2.28Γκρέις Χόπερ (Grace Hopper). Αμερικανίδα καθηγήτρια μαθηματι-κών και αξιωματικός του αμερικανι-κού ναυτικού, η οποία ηγήθηκε της ομάδας που ανέπτυξε την πρώτη προηγμένη γλώσσα προγραμματι-σμού με προορισμό τον επιχειρημα-τικό κόσμο, την Common Business Oriented Language (COBOL)

35 / 59

Page 38: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Εικόνα 2.30Νίκλαους Βιρθ (Niklaus Wirth)Δημιουργός της γλώσσας PASCAL, η οποία ονομάστηκε έτσι προς τιμήν του Γάλλου επιστήμονα Μπλεζ Πα-σκάλ (Blaise Pascal).

36 / 59

Page 39: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

2.3.1.3 Δομημένος Προγραμμα-τισμόςΜία μεθοδολογία ανάλυσης, σχεδία-σης και συγγραφής προγραμμάτων που αναπτύχθηκε και διαδόθηκε ευ-ρύτατα στον χώρο της πληροφορι-κής είναι ο δομημένος προγραμμα-τισμός (structured programming) ο οποίος χρησιμοποιεί

• την ιεραρχική σχεδίαση για την ανάπτυξη του αλγορίθμου που επιλύει το πρόβλημα.

• τον τμηματικό προγραμματισμό για τη σχεδίαση του προγράμ-ματος και για τη δημιουργία των ενοτήτων του.

• τρεις βασικές συνιστώσες για τη συγγραφή των επιμέρους

37 / 59 - 60

Page 40: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ενοτήτων που καθιστούν άσκοπη τη χρήση της εντολής GOTO (Πή-γαινε).

Η ιεραρχική σχεδίαση ή ανάλυση «από πάνω προς τα κάτω» χρησι-μοποιεί τη στρατηγική της συνεχούς διαίρεσης του προβλήματος σε υπο-προβλήματα. Αυτά είναι πιο εύκο-λο να επιλυθούν οδηγώντας τελικά στην επίλυση του αρχικού προβλή-ματος.

Ο δομημένος προγραμματι-σμός προτάθηκε ως έννοια το 1966 από την ανάγκη να περι-οριστεί η χρήση των εντολών GOTO (Πήγαινε).

38 / 60

Page 41: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ο τμηματικός προγραμματισμός υλοποιεί την ιεραρχική σχεδίαση όπου κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα που ονομάζεται υποπρόγραμμα. Τα υποπρογράμ-ματα πρέπει να χαρακτηρίζονται από όσο το δυνατόν μεγαλύτερο βαθμό ανεξαρτησίας και από υψη-λό βαθμό συνεκτικότητας, δηλαδή να υλοποιούν μια μόνο συγκεκρι-μένη διαδικασία ή λειτουργία. Το πρόγραμμα τελικά είναι η σύνθεση όλων των υποπρογραμμάτων.

Υποπρόγραμμα είναι το τμή-μα προγράμματος που επι-τελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα.

39 / 60

Page 42: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Τέλος, όλες οι ενότητες του προ-γράμματος μπορούν να αναπτυ-χθούν μόνο με τρεις βασικές συνι-στώσες: τη δομή ακολουθίας, τη δομή επιλογής και τη δομή επανά-ληψης ή συνδυασμό τους. Οι τρεις αυτές συνιστώσες ομαδοποιούν τις εντολές και καθορίζουν τη σειρά εκτέλεσης τους. Οι εντολές λοιπόν του προγράμματος οργανώνονται σε μία δομή.

Σε αντίθεση, η χρήση της εντολής GOTO έχει ως αποτέλεσμα την αλ-λαγή της ροής του προγράμματος, δηλαδή της διακλάδωσης σε μία άλλη εντολή του προγράμματος εκτός από την επόμενη. Έτσι αυξά-νεται η δυσκολία στην αρχική σχεδία-ση της λύσης, στην παρακολούθηση

40 / 60

Page 43: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

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

Οι γλώσσες στις οποίες αναπτύσ-σονται προγράμματα με τη μεθοδο-λογία του δομημένου προγραμμα-τισμού ακολουθούν κατά βάση το υπόδειγμα του προστακτικού προ-γραμματισμού.

41 / 60

Page 44: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Στον δομημένο προγραμμα-τισμό γίνεται χρήση υποπρο-γραμμάτων όπως οι διαδικασίες και οι συναρτήσεις.

Τα υποπρογράμματα που ανα-πτύσσονται μπορούν να αποτε-λέσουν σύνθετες εντολές προς τον υπολογιστή.

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

42 / 60

Page 45: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

από αυτές που συμπεριλαμβά-νονται στο συγκεκριμένο υπο-πρόγραμμα.

Παράδειγμα 2.32. Να γραφεί πρό-γραμμα το οποίο θα διαβάζει αριθ-μούς και θα υπολογίζει το μέσο όρο τους. Η διαδικασία εισαγωγής αριθμών θα σταματά αν διαβαστεί ο αριθμός 0, χωρίς να συνυπολογί-ζεται. Αν ο πρώτος αριθμός που θα διαβαστεί είναι το μηδέν, θα εκτυ-πώνει το μήνυμα «Δεν δόθηκε άλλο στοιχείο εκτός του μηδενός». Το πρόγραμμα να υλοποιηθεί:

1. στο προγραμματιστικό περιβάλ-λον Διερμηνευτής Ψευδογλώσ-σας (ViALGOL).

43 / 60 - 61

Page 46: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

Αλγόριθμος Αριθμοίπλ ← 0Σ ← 0 Εμφάνισε "Πληκτρολογήστε έναν αριθμό"Διάβασε αΌσο α ≠ 0 επανάλαβε Σ ← Σ + α πλ ← πλ + 1 Εμφάνισε "Πληκτρολογήστε έναν αριθμό" Διάβασε αΤέλος_επανάληψης

1234

56789

1011

2. στη γλώσσα προγραμματισμού PASCAL.

44 / 61

Page 47: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Αν πλ ≠ 0 τότε ΜΌ ← Σ / πλ Εμφάνισε “Ό μέσος όρος είναι:”, ΜΌαλλιώς Εμφάνισε “Δε δόθηκε άλλο στοιχείο εκτός του μηδενός”Τέλος_αν Τέλος Αριθμοί

121314

1516

1718

Το προγραμματιστικό περιβάλ-λον Διερμηνευτής Ψευδογλώσ-σας (ViALGOL) υποστηρίζει τις εντολές της ψευδογλώσσας

45 / 61

Page 48: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

που ορίστηκε στο προηγούμενο κεφάλαιο και ακολουθεί τις αρ-χές του δομημένου προγραμμα-τισμού.

Στο πρόγραμμα αυτό θα εισα-χθεί άγνωστο πλήθος αριθμών προς επεξεργασία. Αυτό θα επιτευχθεί με την εντολή Όσο. Επίσης είναι απαραίτητο να ελεγχθεί αν δόθηκε ένα τουλά-χιστον στοιχείο διαφορετικό από το μηδέν ή όχι. Για το συ-γκεκριμένο έλεγχο θα χρησιμο-ποιηθεί η εντολή σύνθετης επι-λογής.

46 / 61

Page 49: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ
Page 50: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Free Pascal IDE1 2 3 4 5

Program arithmoi;VARpl: INTEGER;a, s, mo: REAL;beginpl := 0; s := 0;writeln<’Πληκτρολογήστε έναν αριθμό’>;readln<a>;while a<> 0 do begin s:= s + a; pl := pl + 1; writeln<’Πληκτρολογήστε έναν αριθμό’>; readln<a>; end;

48 / 61

Page 51: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

6 7 8 9 10

Program arithmoi;VARpl: INTEGER;a, s, mo: REAL;beginpl := 0; s := 0;writeln<’Πληκτρολογήστε έναν αριθμό’>;readln<a>;while a<> 0 do begin s:= s + a; pl := pl + 1; writeln<’Πληκτρολογήστε έναν αριθμό’>; readln<a>; end;

49 / 61

Page 52: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Free Pascal IDE1 2 3 4 5

if pl <> 0 then begin mo := s / pl; writeln<’Ο μέσος όρος είναι:’ , mo>; endelse writeln<’Δε δόθηκε άλλο στοιχείο εκτός του μηδενός’>;end_.

1 File, 2 Edit, 3 Search, 4 Run, 5 Compile, 6 Debug7 Tools, 8 Options, 9 Window, 10 Help

50 / 61

Page 53: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

6 7 8 9 10

if pl <> 0 then begin mo := s / pl; writeln<’Ο μέσος όρος είναι:’ , mo>; endelse writeln<’Δε δόθηκε άλλο στοιχείο εκτός του μηδενός’>;end_

1 File, 2 Edit, 3 Search, 4 Run, 5 Compile, 6 Debug7 Tools, 8 Options, 9 Window, 10 Help

51 / 61

Page 54: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Το προγραμματιστικό περι-βάλλον στο οποίο υλοποιήθη-κε το πρόγραμμα στη γλώσσα PASCAL μπορεί να βρεθεί στη διεύθυνση http://www.freepascal.org/.

Η εντολή Όσο υλοποιείται με την εντολή While και η σύν-θετη εντολή επιλογής με την εντολή If…else

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

52 / 61

Page 55: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Σχεδίαση και συγγραφή κώδικαΟι περισσότερες γλώσσες προ-γραμματισμού υποστηρίζονται από προγραμματιστικά περιβάλ-λοντα τα οποία παρέχουν εργαλεία που διευκολύνουν την εργασία του προγραμματιστή. Για τη σύνταξη του πηγαίου προγράμματος χρη-σιμοποιείται ένα ειδικό πρόγραμ-μα το οποίο ονομάζεται συντάκτης (editor). Στη συνέχεια το πηγαίο πρόγραμμα πρέπει να μεταφραστεί σε μορφή αναγνωρίσιμη και εκτελέ-σιμη από τον υπολογιστή δηλαδή σε εντολές γλώσσας μηχανής. Το έργο της μετάφρασης το αναλαμ-βάνουν δύο προγράμματα ο μετα-γλωττιστής ή ο διερμηνευτής.

2.3.2

53 / 62

Page 56: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Το πρόγραμμα που γράφεται σε κάποια γλώσσα προγραμματι-σμού ονομάζεται πηγαίο πρό-γραμμα (source program).

Οι μεταγλωττιστές (compilers) δέχονται στην είσοδο ένα πρό-γραμμα γραμμένο σε γλώσσα υψηλού επιπέδου και παρά-γουν ένα ισοδύναμο πρόγραμ-μα σε γλώσσα μηχανής. Το πρόγραμμα που παράγεται ονομάζεται αντικείμενο (object) πρόγραμμα. Το αντικείμενο πρόγραμμα δεν είναι σε θέση να εκτελεστεί. Χρειάζεται να συν-δεθεί με άλλα τμήματα προγράμ-ματος τα οποία είτε τα γράφει ο προγραμματιστής, είτε βρίσκο-νται στις βιβλιοθήκες (libraries)

54 / 62

Page 57: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

της γλώσσας. Το πρόγραμμα που επιτρέπει αυτή τη σύν-δεση ονομάζεται συνδέτης – φορτωτής (linker - loader). Το αποτέλεσμα είναι η παραγωγή του εκτελέσιμου (executable) προγράμματος (Εικόνα 2.31). Το τελευταίο μπορεί να εκτε-λείται οποτεδήποτε από τον υπολογιστή και είναι τελείως ανεξάρτητο από το πηγαίο πρόγραμμα.

Οι διερμηνευτές (interpreters) διαβάζουν μία προς μία τις εντολές του πηγαίου προγράμ-ματος και για καθεμία εκτελούν αμέσως μια ισοδύναμη ακο-λουθία εντολών μηχανής.

55 / 62

Page 58: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

56 / 62

Page 59: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ΠηγαίοΠρόγραμμα

ΑντικείμενοΠρόγραμμα

Μεταγλωττιστής ΕκτελέσιμοΠρόγραμμα

Συνδέτης

Εικόνα 2.31. Μεταγλώττιση και Σύν-δεση Προγράμματος.

Πέρα όμως από τα συντακτικά λάθη υπάρχουν και τα λογικά που δεν εί-ναι δυνατό να ανιχνευθούν από τα μεταφραστικά προγράμματα. Τα πε-ρισσότερα όμως προγραμματιστικά περιβάλλοντα παρέχουν εργαλεία εκσφαλμάτωσης που βοηθούν τον

57 / 62

Page 60: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

προγραμματιστή να εκτελέσει το πρόγραμμα εντολή προς εντολή μέ-χρι συγκεκριμένο σημείο ή να πα-ρακολουθεί τις τιμές των μεταβλη-τών έτσι ώστε να εντοπίσει τα λάθη στην υλοποίηση του αλγορίθμου.

Παράδειγμα 2.33. Με σκοπό να αναπτυχθεί πρόγραμμα το οποίο θα αντιμεταθέτει το περιεχόμενο δύο μεταβλητών γράφτηκαν οι ακόλου-θες εντολές στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδο-γλώσσας (ViALGOL).

58 / 62

Page 61: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

Αλγόριθμος αντιμετάθεσηΕμφάνισε “Πληκτρολογήστε την τιμή της πρώτης μεταβλητής”Διάβασε αΕμφάνισε “Πληκτρολογήστε την τιμή της δεύτερης μεταβλητής”Διάβαεσ βtemp ← αα ← ββ ← tempΕμφάνισε “Η τιμή της πρώτης μεταβλητής είναι: , α

12

34

56789

59 / 63

Page 62: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

Εμφάνισε “Η τιμή της δεύτερης μεταβλητής είναι: ”, βΤέλος αντιμετάθεση

10

11

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

60 / 63

Page 63: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Τι θα συμβεί κατά τη μετάφραση του προγράμματος;

Απάντηση

Υπάρχουν δύο συντακτικά λάθη στις εντολές που έχουν γραφεί. Το πρώτο βρίσκεται στην πέμπτη γραμμή του προγράμματος και οφείλεται σε αναγραμματισμό της εντολής Διάβασε και το δεύτερο στην ένατη γραμμή και οφείλεται στην παράλειψη των διπλών εισα-γωγικών στο τέλος της αλφαριθ-μητικής έκφρασης. Το προγραμμα-τιστικό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) χρησι-μοποιεί διερμηνευτή για τη μετά-φραση του πηγαίου προγράμματος. Έτσι αρχικά θα εντοπιστεί το πρώτο

61 / 63

Page 64: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

συντακτικό λάθος με ένα μήνυμα της μορφής:

Συντακτικό Λάθος - Περίμενα την εντολή εκχώρησηςΒρήκα: β

Ο διερμηνευτής αναγνωρίζει τη λέξη Διάβαεσ ως το όνομα κάποιας μετα-βλητής και περιμένει στη συνέχεια να δει το αριστερό βέλος της εντο-λής εκχώρησης, κάτι το οποίο όμως δεν συμβαίνει. Επίσης εντοπίζει μόνο το πρώτο συντακτικό λάθος. Εφόσον αυτό διορθωθεί, ο διερμη-νευτής βρίσκει το επόμενο λάθος και εμφανίζει ένα μήνυμα της μορφής:

Συντακτικό Λάθος - Περίμενα το χαρακτήρα. ’’

62 / 63

Page 65: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα 2.34. Με σκοπό να αναπτυχθεί πρόγραμμα το οποίο θα αντιμεταθέτει το περιεχόμενο δύο μεταβλητών γράφτηκαν οι ακόλου-θες εντολές στο προγραμματιστικό περιβάλλον FreePascal.

Το ερώτημα αν οι μηχανές μπορούν να σκέφτονται έχει την ίδια σημασία με το ερώτη-μα αν τα υποβρύχια μπορούν να κολυμπούν.

Έντσγκερ Ντάικστρα (Edsger Dijkstra), Επιστήμονας Πληρο-φορικής

63 / 63

Page 66: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Η γλώσσα PASCAL είναι μία από τις γλώσσες για τη συγ-γραφή κώδικα στον Πανελλή-νιο Διαγωνισμό Πληροφορικής. http://www.pdp.gr

Free Pascal IDE1 2 3 4 5

Program antimetathesi;VARa, b: INTEGER;

begin

writeln<’Πληκτρολογήστε την τιμή της πρώτης μεταβλητής’>;readln<a>;writeln<’Πληκτρολογήστε την τιμή της δεύτερης μεταβλητής’>;readln<b>;

64 / 64

Page 67: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Στη γλώσσα προγραμματισμού PASCAL απαιτείται η δήλωση του τύπου των μεταβλητών που χρησιμοποιούνται από το πρό-γραμμα.

Program antimetathesi;VARa, b: INTEGER;

begin

writeln<’Πληκτρολογήστε την τιμή της πρώτης μεταβλητής’>;readln<a>;writeln<’Πληκτρολογήστε την τιμή της δεύτερης μεταβλητής’>;readln<b>;

6 7 8 9 10

65 / 64

Page 68: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Free Pascal IDE1 2 3 4 5

c := a;a = b;b := c;

writeln<’Η τιμή της πρώτης μεταβλητής είναι: ’, a:5>;writeln<’Η τιμή της δεύτερης μεταβλητής είναι: ’, b:5>;

end.

1 File, 2 Edit, 3 Search, 4 Run, 5 Compile, 6 Debug7 Tools, 8 Options, 9 Window, 10 Help

66 / 64

Page 69: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

6 7 8 9 10

c := a;a = b;b := c;

writeln<’Η τιμή της πρώτης μεταβλητής είναι: ’, a:5>;writeln<’Η τιμή της δεύτερης μεταβλητής είναι: ’, b:5>;

end.

1 File, 2 Edit, 3 Search, 4 Run, 5 Compile, 6 Debug7 Tools, 8 Options, 9 Window, 10 Help

Τι θα συμβεί κατά τη μετάφραση του προγράμματος;

Απάντηση

67 / 64

Page 70: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

antimetathesi.pas<12,3> Error: Identifier not found “c”

antimetathesi.pas <13,6> Error: Illegal expression

antimetathesi.pas<14,7> Error: Identifier not found “c”

antimetathesi.pas<20> Fatal: There were 3 errors compiling module,

antimetathesi.pas<0> Fatal: Compilation aborted

Εντοπίζονται όλα τα συντακτικά λάθη που υπάρχουν. Τα δύο οφεί-λονται σε παράλειψη δήλωσης της μεταβλητής c και το άλλο οφείλεται σε λανθασμένη σύνταξη της εντο-λής εκχώρησης της τιμής της μετα-βλητής b στη μεταβλητή a.

68 / 64

Το μεταφραστικό πρόγραμμα στο συγκεκριμένο προγραμματιστικό περιβάλλον είναι μεταγλωττιστής. Έτσι θα εμφανιστεί το εξής μήνυμα.

Page 71: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

antimetathesi.pas<12,3> Error: Identifier not found “c”

antimetathesi.pas <13,6> Error: Illegal expression

antimetathesi.pas<14,7> Error: Identifier not found “c”

antimetathesi.pas<20> Fatal: There were 3 errors compiling module,

antimetathesi.pas<0> Fatal: Compilation aborted

Η διαδικασία μετάφρασης λοιπόν ενός προγράμματος σε προγραμ-ματιστικά περιβάλλοντα που δι-αθέτουν είτε διερμηνευτή είτε με-ταγλωττιστή φαίνεται στην εικόνα 2.32.

69 / 64

Page 72: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ΠηγαίοΠρόγραμμα

Εντολή1

Εντολή2

...Εντολή

n

Ανάλυση-ΈλεγχοςΑνίχνευση-

Εκτέλεση Εντολής 1

Ανάλυση-ΈλεγχοςΑνίχνευση-

Εκτέλεση Εντολής 2

Ανάλυση-ΈλεγχοςΑνίχνευση-

Εκτέλεση Εντολής n

Εκτέλεσηολόκληρου τουπρογράμματος

ΜεταγλώττισηΦόρτωση

Σύνδεση όλωντων εντολών

Διερμηνευτής

Μεταγλωττιστής

Εικόνα 2.32. Διαδικασία Μετάφρασης και Εκτέλεσης ενός προγράμματος.

70 / 64

Page 73: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ΠηγαίοΠρόγραμμα

Εντολή1

Εντολή2

...Εντολή

n

Ανάλυση-ΈλεγχοςΑνίχνευση-

Εκτέλεση Εντολής 1

Ανάλυση-ΈλεγχοςΑνίχνευση-

Εκτέλεση Εντολής 2

Ανάλυση-ΈλεγχοςΑνίχνευση-

Εκτέλεση Εντολής n

Εκτέλεσηολόκληρου τουπρογράμματος

ΜεταγλώττισηΦόρτωση

Σύνδεση όλωντων εντολών

Διερμηνευτής

Μεταγλωττιστής

Εικόνα 2.32. Διαδικασία Μετάφρασης και Εκτέλεσης ενός προγράμματος.

71 / 64

Page 74: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα 2.35. Nα αναπτυχθεί πρόγραμμα το οποίο θα αντιμεταθέ-τει το περιεχόμενο δύο μεταβλητών στο προγραμματιστικό περιβάλλον SCRATCH.

ρώτησε πληκτρολογήστε την τιμή της δεύτερης μεταβλητής

όρισε το α σε απάντηση

Όταν στο γίνει κλικ

ρώτησε πληκτρολογήστε την τιμή της πρώτης μεταβλητής

όρισε το β σε απάντηση

όρισε το temp σε α

72 / 65

Page 75: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ρώτησε πληκτρολογήστε την τιμή της δεύτερης μεταβλητής

και περίμενε

και περίμενε

όρισε το β σε απάντηση

όρισε το temp σε α

73 / 65

Page 76: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

πες ένωσε το Η τιμή της δεύτερης μεταβλητής είναι:

πες ένωσε το Η τιμή της πρώτης μεταβλητής είναι:

74 / 65

όρισε το α σε β

όρισε το

β

σε temp

Page 77: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

με το α για 5 δευτερόλεπτα

με το β για 5 δευτερόλεπτα

75 / 65

όρισε το α σε β

όρισε το

β

σε temp

Page 78: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

76 / 65

Παράδειγμα 2.36. Εύρεση μέγιστου κοινού διαιρέτη δύο θετικών ακέραι-ων αριθμών με τον επαναληπτικό αλγόριθμο του Ευκλείδη σε γλώσσα SCRATCH.

Όταν στο γίνει κλικρώτησε πληκτρολογήστε τον πρώτο αριθμό και περίμενε

όρισε το x σε απάντηση

επανάλαβε ώσπου

ρώτησε πληκτρολογήστε τον πρώτο αριθμό και περίμενε

όρισε το x σε απάντηση

x > 0

ρώτησε πληκτρολογήστε τον δεύτερο αριθμό και περίμενε

Page 79: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

77 / 65

Όταν στο γίνει κλικρώτησε πληκτρολογήστε τον πρώτο αριθμό και περίμενε

όρισε το x σε απάντηση

επανάλαβε ώσπου

ρώτησε πληκτρολογήστε τον πρώτο αριθμό και περίμενε

όρισε το x σε απάντηση

ρώτησε πληκτρολογήστε τον δεύτερο αριθμό και περίμενε

Page 80: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

78 / 65

πες ένωσε το Ο μέγιστος κοινός διαιρέτης είναι: με το x

όρισε το ζ σε ψ

επανάλαβε ώσπου

όρισε το ζ σε

όρισε το x σε Ψ

όρισε το Ψ σε ζ

ζ = 0

x mod ψ

όρισε το ψ σε απάντηση

ψ > 0επανάλαβε ώσπου

ρώτησε πληκτρολογήστε τον δεύτερο αριθμό και περίμενε

όρισε το ψ σε απάντηση

Page 81: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

79 / 65

πες ένωσε το Ο μέγιστος κοινός διαιρέτης είναι: με το x

όρισε το ζ σε ψ

επανάλαβε ώσπου

όρισε το ζ σε

επανάλαβε ώσπου

ρώτησε πληκτρολογήστε τον δεύτερο αριθμό και περίμενε

όρισε το ψ σε απάντηση

Page 82: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Η γλώσσα οπτικού προγραμ ματισμού SCRATCH έχει δημιουρ γηθεί στο MIT. http://scratch.mit.edu

Στη γλώσσα SCRATCH ο προγραμ-ματισμός γίνεται με χρήση εντολών που μοιάζουν με κομμάτια ενός παζλ (Πλακίδια – blocks). Κάθε εντολή έχει το δικό της χαρακτηριστικό σχή-μα και μπορεί να συνδυαστεί με άλ-λες μόνο με συγκεκριμένο τρόπο που αποκλείει τα συντακτικά λάθη.

Οι εντολές όταν συνδυάζονται δη-μιουργούν σενάρια ενεργειών που πρέπει να εκτελεστούν από αντικεί-μενα που λέγονται μορφές (sprites). Η πιο χαρακτηριστική μορφή είναι η γάτα.

80 / 65

Page 83: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Η εντολή Όσο της ψευδογλώσσας και η εντολή While της PASCAL δεν υπάρχει στη γλώσσα SCRATCH. Υπάρχει όμως η εντολή επανάλαβε ώσπου στην οποία οι εντολές εκτε-λούνται όσο η συνθήκη είναι ψευ-δής.

Το πρόγραμμα αρχικά εξασφαλίζει ότι οι τιμές που πληκτρολογούνται είναι θετικές.

Εικόνα 2.33. Η μορφή της γάτας.

81 / 65

Page 84: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα 2.37. Να γραφεί πρό-γραμμα για την εύρεση του μέγι-στου κοινού διαιρέτη δύο θετικών ακε ραίων αριθμών με τον αναδρο-μικό αλγόριθμο του Ευκλείδη στη γλώσσα LOGO. Ο κώδικας να ανα-πτυχθεί ως διαδικασία στο περιβάλ-λον MicroWorlds Pro.

για μκδ :χ :ψΑνΔιαφορετικά :ψ = 0[

κάνε ''ζ :χανακοίνωση (φρ[ο μέγιστος κοινός διαιρέτης είναι] :ζ)

][

κάνε ''χ υπόλοιπο :χ :ψμκδ :ψ :χ

82 / 66

Page 85: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Αρκετές φορές οι αλγόριθμοι χρειάζεται να τροποποιηθούν ώστε να μπορούν να εκτελε-στούν από κάποια γλώσσα προγραμματισμού.

Για να εκτελεστεί το διπλανό πρόγραμμα και να ανακοινώ-σει το μέγιστο κοινό διαιρέτη των αριθμών 27 και 6, αρκεί να πληκτρολογήσει ο χρήστης στo κέντρο εντολών του περιβάλλο-ντος την εντολή:

μκδ 27 6

]τέλος

83 / 66

Page 86: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Οι μεταβλητές χ και ψ ονομάζονται παράμετροι.

Η σύνθετη επιλογή υλοποιείται με την εντολή

ΑνΔιαφορετικά.

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

84 / 66

Page 87: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

γλώσσα προγραμματισμού. Αρκε-τές φορές ο προγραμματιστής μπο-ρεί να γράψει ή να χρησιμοποιήσει βιβλιοθήκες (libraries). Οι βιβλιο-θήκες μιας γλώσσας προγραμματι-σμού είναι μία συλλογή από έτοιμα υποπρογράμματα που μπορούν να χρησιμοποιούνται κατά τη συγγρα-φή νέων προγραμμάτων. Μία βιβλι-οθήκη μπορεί να χρησιμοποιηθεί τόσο από τον δημιουργό της όσο και από άλλους προγραμματιστές. Αποτελεί επίσης πρακτική πολλών προγραμματιστών να βελτιώνουν υπάρχουσες βιβλιοθήκες, ώστε να επεκτείνουν τις δυνατότητες των προγραμμάτων τους.

85 / 66

Page 88: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα 2.38. Να γραφεί πρό-γραμμα που θα δέχεται δύο θετι-κούς ακέραιους αριθμούς και θα εμφανίζει το μέγιστο κοινό διαιρέτη και το ελάχιστο κοινό πολλαπλάσιο τους. Η υλοποίηση να γίνει στο πε-ριβάλλον MicroWorlds Pro.

για μκδ :χ :ψΑνΔιαφορετικά :ψ = 0[

κάνε ''ζ :χ][

κάνε ''χ υπόλοιπο :χ :ψμκδ :ψ :χ

]τέλοςγια εκπο :χ :ψμκδ :χ :ψ

86 / 66 - 67

Page 89: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

κάνε “εκ :χ * :ψ / :ζτέλος

για υπολογισμός :χ :ψεκπο :χ :ψανακοίνωση (φρ[ο μέγιστος κοινός διαιρέτης είναι] :ζ)ανακοίνωση (φρ[το ελάχιστο κοινό πολλαπλάσιο είναι] :εκ)τέλος

87 / 67

Page 90: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Το πρόγραμμα στη γλώσσα LOGO περιλαμβάνει τρεις διαδικασίες: μία για τον υπολογισμό του μέγιστου κοινού διαιρέτη η οποία επαναχρη-σιμοποιείται, μία για τον υπολογι-σμό του ελάχιστου κοινού πολλα-πλάσιου που καλεί τη διαδικασία του μέγιστου κοινού διαιρέτη και μία που καλεί τη διαδικασία υπολογισμού του ελάχιστου κοινού πολλαπλάσιου και εμφανίζει τα αποτελέσματα.

Οι τιμές των μεταβλητών στη LOGO είναι διαθέσιμες σε όλες τις διαδικα-σίες. Οι μεταβλητές αυτές ονομάζο-νται καθολικές. Σε άλλες γλώσσες

Αν χ, ψ είναι δύο θετικοί ακέ-ραιοι τότε ΜΚΔ(χ,ψ)*ΕΚΠ(χ,ψ) = = χ*ψ

88 / 66 - 67

Page 91: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

προγραμματισμού υπάρχουν και οι τοπικές μεταβλητές, οι οποίες μπο-ρούν να προσπελαστούν μόνο στο πρόγραμμα ή το υποπρόγραμμα το οποίο δηλώνονται.

89 / 67

Page 92: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

90 / 67

Παράδειγμα 2.39. Να γραφεί πρό-γραμμα σε γλώσσα SCRATCH το οποίο θα αναζητά αν υπάρχει ένα όνομα σε μία λίστα και θα εμφανί-ζει κατάλληλο μήνυμα σχετικά με την εύρεσή του.

όρισε το index σε 0

όρισε το i σε 1

όρισε το found σε 0

Όταν στο γίνει κλικρώτησε Πληκτρολογήστε το όνομα που αναζητάτε και περίμενε

όρισε το key σε απάντηση

Page 93: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

91 / 67

Όταν στο γίνει κλικρώτησε Πληκτρολογήστε το όνομα που αναζητάτε και περίμενε

όρισε το key σε απάντηση

Page 94: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

εάν τότε found = 1

όρισε το index σε i

όρισε το found σε 1

εάν το στοιχείο i της λίστας

αλλιώς

άλλαξε το i κατά 1

92 / 67

επανάλαβε ώσπου found = 1

Page 95: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

το στοιχείο i της λίστας names = τότε key

93 / 67

found = 1 το μήκος τηςλίστας

ή i >names

Page 96: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

94 / 67

πες το όνομα δεν υπάρχει

αλλιώς

πες ένωσε το το όνομα λίστα στη θέση υπάρχει στη

Page 97: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

95 / 67

πες ένωσε το το όνομα λίστα στη θέση υπάρχει στη

με το index

Page 98: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ο τρόπος επικοινωνίας μεταξύ των ενοτήτων ή υποπρογραμ-μάτων (διαδικασιών ή συναρ-τήσεων) και των προγραμμά-των διαφέρει από γλώσσα σε γλώσσα προγραμματισμού. Κατά βάση αυτή η επικοινωνία επιτυγχάνεται με τη χρήση των παραμέτρων, δηλαδή μεταβλη-τών που επιτρέπουν το πέρα-σμα της τιμής τους από ένα τμήμα προγράμματος σε ένα άλλο.

Η δομή δεδομένων, που είναι αποθηκευμένα τα ονόματα στο παράδειγμα 2.39, είναι μία λί-στα με το όνομα names.

96 / 67

Page 99: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ο αλγόριθμος που κωδικοποιείται είναι αυτός της σειριακής αναζήτη-σης κατάλληλα τροποποιημένος.

Παράδειγμα 2.40. Σε ένα ραδιοφω-νικό σταθμό το κόστος ενός διαφη-μιστικού μηνύματος σε σχέση με τα δευτερόλεπτα μετάδοσης, υπολο-γίζεται κλιμακωτά σύμφωνα με τον παρακάτω πίνακα.

97 / 67

Page 100: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Χρον

ική

Διά

ρκει

α δι

αφήμ

ισης

(δευ

τερό

λεπ

τα)

Κόσ

τος

(€ /

δευτ

ερόλ

επτο

έχρι

15

90Μ

έχρι

30

75Π

άνω

απ

ό 30

50

98 / 67

Page 101: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

A. Να αναπτύξετε πρόγραμμα στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο i. να διαβάζει το πλήθος των δι-

αφορετικών μηνυμάτων που πρόκειται να μεταδώσει ο σταθμός την επόμενη εβδο-μάδα

ii. να διαβάζει τη χρονική διάρ-κεια κάθε μηνύματος και να υπολογίζει καλώντας κατάλ-ληλο υποπρόγραμμα το κό-στος του

iii. να εμφανίζει με κατάλληλο μήνυμα τα συνολικά έσοδα του σταθμού καθώς και το ποσοστό (%) των μηνυμάτων με χρονική διάρκεια άνω των 30 δευτερολέπτων.

99 / 68

Page 102: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Β. Να γράψετε τον αλγόριθμο για τον υπολογισμό του κόστους του κάθε μηνύματος.

Ο κώδικας του προγράμματος είναι:

Kώδικας Είσοδος

Αλγόριθμος ΡαδιόφωνοΣ ← 0π30 ← 0Εμφάνισε “Πληκτρολογήστε το πλήθος των μηνυμάτων”Διάβασε nΓια i από 1 μέχρι n Εμφάνισε “Πληκτρολογή- στε τη διάρκεια του”, i, “ου μηνύματος” Διάβασε χδ Κάλεσε Κόστος(χδ, κμ)

1234

567

89

100 / 68

Page 103: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

Σ ← Σ + κμ Αν χδ > 30 τότε π30 ← π30 + 1 Τέλος_αν Τέλος_επανάληψης Εμφάνισε “Τα συνολικά έσοδα του σταθμού είναι”, Σποσοστό ← π30 / n * 100Εμφάνισε “Το ποσοστό είναι”, ποσοστό, “%”Τέλος Ραδιόφωνο

101112131415

1617

18

101 / 68

Page 104: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ο κώδικας του υποπρογράμματος είναι:

Kώδικας Είσοδος

Αλγόριθμος ΚόστοςΔεδομένα //δ//Αν δ ≤ 15 τότε κ ← δ * 90αλλιώς_αν δ ≤ 30 τότε κ ← 15 * 90 + (δ - 15) * * 75αλλιώς κ ← 15 * 90 + 15 * 75 + + (δ - 30) * 50Τέλος_αν Αποτελέσματα //κ//Τέλος Κόστος

202122232425

2627

282930

102 / 68

Page 105: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Κατά την κλήση του αλγορίθμου Κόστος, η μεταβλητή χδ μεταβι-βάζει την τιμή της στη μεταβλη-τή δ και όταν ολοκληρώνεται η εκτέλεση του αλγορίθμου η με-ταβλητή κ μεταβιβάζει την τιμή της στη μεταβλητή κμ.

103 / 68

Page 106: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα 2.41. Να γραφεί πρό-γραμμα στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδο-γλώσσας (ViALGOL) το οποίο να δέχεται έναν πίνακα που περιέχει τα ονόματα των μαθητών ενός τμή-ματος και έναν παράλληλο πίνακα με το βαθμό απολυτηρίου τους. Το πρόγραμμα να ταξινομεί τον πίνα-κα με τα ονόματα σε φθίνουσα σει-ρά με βάση τους βαθμούς. Τέλος να εμφανίζει το όνομα του κάθε μαθητή και δίπλα τον βαθμό του.

Kώδικας Είσοδος

Αλγόριθμος ΒαθμοίΔεδομένα //Ν, ΌΝ, Β//Για i από 1 μέχρι Ν j ← i

1234

104 / 69

Page 107: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

max ← B[j] Για k από i + 1 μέχρι Ν Αν B[k]> max τότε j ← κ max ← B[j] Τέλος_αν Τέλος_επανάληψης temp ← Β[i] Β[i] ← Β[j] Β[j] ← temp tempX ← OΝ[i] OΝ[i] ← ΌΝ[j] ΌΝ[j] ← tempΧΤέλος_επανάληψηςΓια i από 1 μέχρι Ν Εμφάνισε OΝ[i], Β[i]Τέλος_επανάληψηςΤέλος Βαθμοί

56789

10111213141516171819202122

105 / 69

Page 108: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Με την εντολή Δεδομένα //Ν, ΟΝ, Β// γνωστοποιούνται το μέγεθος και οι τιμές των πινάκων στο πρόγραμμα.

Στο πρόγραμμα του παραδείγ-ματος 2.41 εφαρμόζεται ο αλγό-ριθμος της ταξινόμησης με επι-λογή. Έχει τροποποιηθεί όμως σε σχέση με τον αλγόριθμο που παρουσιάστηκε στο προηγού-μενο κεφάλαιο, ώστε να βρίσκει κάθε φορά το μέγιστο στοιχείο.

106 / 69

Page 109: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα 2.42. Να αναπτυχθεί πρόγραμμα στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδο-γλώσσας (ViALGOL) το οποίο να διαβάζει τους βαθμούς των μαθη-τών ενός τμήματος και να εμφανί-ζει με κατάλληλα μηνύματα το μέσο όρο των βαθμών καθώς και πόσοι από αυτούς είναι μεγαλύτεροι από το μέσο όρο. Να γίνεται έλεγχος ότι οι βαθμοί που εισάγονται είναι ακέ-ραιες τιμές μεταξύ του 0 και του 20. Μετά την εισαγωγή κάθε βαθμού το πρόγραμμα να ερωτά τον χρήστη αν θέλει να συνεχίσει την καταχώ-ρηση εμφανίζοντας το μήνυμα «Θα συνεχίσετε; Πληκτρολογήστε Ν ή Ο» και ανάλογα με την απάντησή του (αποδεκτές τιμές μόνο τα γράμ-ματα του ελληνικού αλφαβήτου «Ν»,

107 / 69

Page 110: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

«ν», «Ο» και «ο» ), να συνεχίζει την καταχώριση ή να εμφανίζει τα απο-τελέσματα της επεξεργασίας.

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

Γενικά η χρήση πινάκων είναι απαραίτητη αν τα δεδομένα που εισάγονται σε ένα πρό-γραμμα πρέπει να διατηρού-νται στη μνήμη μέχρι το τέλος της εκτέλεσης.

108 / 69 - 70

Page 111: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

Αλγόριθμος Βαθμοίi ← 0Σ ← 0Επανάλαβε i ← i+1 Εμφάνισε “Πληκτρολογή- στε τον”, i, ”ο βαθμό” Επανάλαβε Διάβασε Β[i] Αν Β[i] < 0 ή Β[i] > 20 ή Α_Μ(Β[i]) ≠ Β[i] τότε Εμφάνισε “Λάθος βαθμός.”

123456

789

10

109 / 70

Page 112: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

11

1213

141516

1718

Εμφάνισε “Πληκτρολο- γήστε ξανά τον”, i, ”ο βαθ- μό” Τέλος_αν Μέχρις_ότου Β[i] ≥ 0 και Β[i] ≤ 20 και Α_Μ(Β[i]) = Β[i] Σ ← Σ + Β[i] Επανάλαβε Εμφάνισε “Θέλετε να συνεχίσετε; Ναι(Ν ή ν) – Όχι(Ό ή ο)” Διάβασε απ Μέχρις_ότου απ = ”N” ή απ = ”ν” ή απ =”Ό” ή απ = ”ο”

110 / 70

Page 113: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Kώδικας Είσοδος

Μέχρις_ότου απ = ”Ό” ήαπ = ”ο”Ν ← iMO ← Σ/Νπλ ← 0Για i από 1 μέχρι Ν Αν Β[i] > ΜΌ τότε πλ ← πλ + 1 Τέλος_ανΤέλος_επανάληψηςΕμφάνισε “Ό μέσος όρος είναι: ”, ΜΌΕμφάνισε “Υπάρχουν”, πλ, “βαθμοί πάνω από το μέσο όρο”Τέλος Βαθμοί

19

202122232425262728

29

30

111 / 70

Page 114: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Κύκλος ζωής εφαρμογής λογισμικούΈνα πρόγραμμα αρχίζει την ζωή του από την στιγμή που θα καθορι-στούν οι απαιτήσεις του, οι προδι-αγραφές του και παύει να ζει όταν εξαντληθούν όλα τα περιθώρια συ-ντήρησής του (προσθήκες, αλλα-γές, βελτιώσεις). Ο Κύκλος Ζωής ενός προγράμματος περιλαμβάνει διάφορες φάσεις οι οποίες αλλη-λεπιδρούν μεταξύ τους. Οι φάσεις απεικονίζονται στο διάγραμμα της εικόνας 2.34.

2.3.3

112 / 70

Page 115: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ανάλυση

Σχεδίαση

Υλοποίηση

Λειτουργία καιΣυντήρηση

Ανάλυση

Σχεδίαση

Υλοποίηση

Λειτουργία καιΣυντήρηση

Εικόνα 2.34. Κύκλος Ζωής Προγράμ-ματος.

Στη φάση Ανάλυσης που ακολου-θεί τον προσδιορισμό του προβλή-ματος από τον πελάτη, καταγρά-φονται αναλυτικά τα δεδομένα και τα ζητούμενα του προβλήματος και ζητούνται οι απαραίτητες διευκρι-νήσεις από τον πελάτη, σε όσα ση-μεία οι προδιαγραφές παρουσιά-ζουν ασάφεια.

113 / 71

Page 116: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Στη φάση της Σχεδίασης καθορίζε-ται η δομή του προγράμματος, οι ενότητες (υποπρογράμματα) από τις οποίες θα αποτελείται το πρό-γραμμα και αναζητούνται έτοιμες ενότητες (modules) από παλιότε-ρα προγράμματα που μπορούν να χρησιμοποιηθούν και σ’ αυτό το πρόγραμμα. Ακόμη επιλέγονται οι αλγόριθμοι και οι δομές δεδομένων που θα χρησιμοποιηθούν σε κάθε ενότητα.

Στην επόμενη φάση της Υλοποίη-σης του προγράμματος επιλέγεται η κατάλληλη γλώσσα προγραμμα-τισμού για το συγκεκριμένο πρό-γραμμα όπου συντάσσεται το πη-γαίο πρόγραμμα και μεταφράζεται από έναν μεταγλωττιστή, ώστε αυτό

114 / 71

Page 117: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

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

115 / 71

Page 118: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

έλεγχο του αλγορίθμου και μπορεί, για παράδειγμα, να αφορούν την επικοινωνία των ενοτήτων. Για την υλοποίηση των αλλαγών μπορεί να επαναληφθεί η εκτέλεση της φάσης της ανάλυσης και σχεδίασης και άρα όλων των υπολοίπων φάσεων. Έτσι πραγματοποιείται συνολικός έλεγ-χος του προγράμματος που έχει ως συνέπεια και την καταγραφή σχετι-κών σχολίων για την τεκμηρίωση.

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

116 / 71

Page 119: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Όταν οι αλλαγές είναι σημαντικές, δηλαδή έχουν προστεθεί νέες λει-τουργίες, εντολές, προγράμματα, ο αριθμός έκδοσης αυξάνει κατά ακέραιο αριθμό (GeoGebra 3.0, GeoGebra 4.0), ενώ, όταν οι αλλα-γές είναι μικρότερες, αυξάνεται κατά δέκατα ή εκατοστά (GeoGebra 4.1, GeoGebra 4.2).http://www.geogebra.org

Oι εκδόσεις beta μιας εφαρμογής λογισμικού που αναπτύσσει μια εταιρεία δίνονται για έλεγχο συ-νήθως στους πελάτες της. Οι beta testers παίρνουν την τελική έκδοση δωρεάν ή με σημαντική έκπτωση.

117 / 71

Page 120: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Παράδειγμα 2.43. Ανάπτυξη μιας εφαρμογής αριθμομηχανής για κι-νητά τηλέφωνα με λειτουργικό Android.

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

118 / 72

Page 121: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

κάθε ενότητα. Στη φάση της υλοποί-ησης θα πρέπει να επιλεγεί αρχικά η γλώσσα προγραμματισμού στην οποία θα συνταχθεί το πρόγραμ-μα. Μία γλώσσα οπτικού προγραμ-ματισμού κατάλληλη για ανάπτυ-ξη εφαρμογών για Android είναι η Google AppInventor. Αφού συντα-χθούν όλες οι ενότητες, θα γίνει έλεγχος για τη σωστή τους επικοι-νωνία. Η αριθμομηχανή είναι έτοιμη για να δοθεί στον τελικό χρήστη. Σε περίπτωση που στη φάση της Λει-τουργίας και της Συντήρησης κά-ποιος χρήστης ζητήσει την επέκτα-ση των δυνατοτήτων της αριθμο-μηχανής, όπως να προστεθεί στα-τιστική επεξεργασία δεδομένων, τότε θα πρέπει ο προγραμματιστής πιθανότατα να επαναλάβει όλες τις

119 / 72

Page 122: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

φάσεις ώστε να καλύψει τις νέες απαιτήσεις.

Ωστόσο μια εφαρμογή λογισμικού με σύνθετες λειτουργίες υλοποιεί-ται κατά βάση από μία ομάδα

Εικόνα 2.35. Λογότυπο του Λειτουργικού Συστήματος Android.

Στην ιστοσελίδαhttp://www.code.org υπάρχουν αρκετές δραστηριότητες κατάλληλες για την εκμάθηση οπτι-κού προγραμματισμού από μαθητές.

120 / 72

Page 123: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

Ο συντονιστής του έργου ανάπτυ-ξης μιας εφαρμογής λογισμικού

121 / 72

Page 124: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Οι εφαρμογές που αναπτύσσο-νται από εταιρείες λογισμικού εί-ναι συνήθως Κλειστού Κώδικα (proprietary – closed source). Δεν υπάρχει η δυνατότητα για τον χρή-στη να δει τον κώδικα ή να επιφέρει κάποια αλλαγή σε αυτόν. Οι βελτιώ-σεις στα κλειστά λογισμικά γίνονται μέσω αναβαθμίσεων που παρέχο-νται κατά καιρούς από τις εταιρείες κατασκευής τους, κυρίως μέσω δια-δικτύου. Επίσης υπάρχει συνήθως κόστος απόκτησης και απαγόρευση της αναδιανομής της εφαρμογής.

(project manager) δημιουργεί και ενημερώνει το πλάνο εργασίας, στελεχώνει το έργο, και παρακολου-θεί και ελέγχει την πρόοδό του.

122 / 72

Page 125: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Αντίθετα στις εφαρμογές Ελεύ-θερου Λογισμικού / Λογισμικού Ανοικτού Κώδικα (ΕΛ / ΛΑΚ free / open source) ο κώδικας είναι δια-θέσιμος, συνεπώς ο καθένας μπο-ρεί ελεύθερα να χρησιμοποιεί, να μελετά τον τρόπο λειτουργίας, να αντιγράφει, να διανέμει και να τρο-ποποιεί την εφαρμογή προσθέτο-ντας δικές του βελτιώσεις ή νέες λειτουργίες. Με βάση αυτήν τη φιλο-σοφία δημιουργούνται ομάδες προ-γραμματιστών που μοιράζονται τις αλλαγές που κάνουν στον κώδικα με σκοπό τη βελτίωσή του. Έτσι δη-μιουργείται ένα παγκόσμιο ανοικτό δίκτυο προγραμματιστών, οι οποίοι συνεργάζονται κυκλοφορώντας νέες εκδόσεις λογισμικού και συμβάλλο-ντας καθημερινά στη δημιουργία

123 / 72 - 73

Page 126: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

νέων κοινών αγαθών. Το Διαδίκτυο αποτελεί το βασικό μέσο συνεργασί-ας των προγραμματιστών αλλά και του τρόπου πρόσβασης στο διαθέσι-μο Ελεύθερο Λογισμικό.

Πληροφορίες σχετικά με το Λογισμι-κό Ανοικτού Κώδικα μπορούν να βρεθούν στις διευθύνσεις:http://www.ellak.gr/

http://www.fsf.org/

http://opensource.org/

Εικόνα 2.36. Λίνους Τόρβαλντς (Linus Torvalds)

124 / 72 - 73

Page 127: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Δημιουργός και συντονιστής της ομάδας εργασίας του λειτουργικού συστήματος ανοιχτού κώδικα Linuxhttp://www.linux.org/

Ανακεφαλαίωση

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

125 / 73

Page 128: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

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

126 / 73

Page 129: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Εικόνα 2.37. Σέυμουρ Παπέρτ (Seymour Papert) Επινόησε τη γλώσσα προγραμμα-τισμού LOGO ως ένα τεχνολογι-κό εργαλείο που θα βελτιώνει τους τρόπους με τους οποίους τα παιδιά σκέπτονται και επιλύουν προβλή-ματα.

127 / 73

Page 130: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Εικόνα 2.38. Ρίτσαρντ Φάινμαν (Richard Feynman) Βραβείο Νό-μπελ Φυσικής.

«Η επιστήμη υπολογιστών δεν είναι τόσο παλιά όσο η φυσική, υστερεί χρονικά μερικούς αιώνες. Ωστόσο, αυτό δεν σημαίνει ότι υπάρχουν λι-γότερα στο πιάτο του επιστήμονα των υπολογιστών απ’ ότι σε αυτό του φυσικού: μπορεί να είναι νεό-τερη αλλά είχε μια πολύ πιο έντονη γέννηση!»

128 / 74

Page 131: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Λέξεις κλειδιάΠρόγραμμα, Γλώσσες Προ-γραμματισμού, Προγραμματι-στικό Υπόδειγμα, Δομημένος Προγραμματισμός, Συντάκτης, Μετάφραση Προγράμματος, Μεταγλωττιστής, Διερμηνευ-τής, Αντικείμενο Πρόγραμμα, Συνδέτης, Εκτελέσιμο Πρό-γραμμα, Συντακτικά Λάθη, Δια-δικασίες, Συναρτήσεις, Βιβλιο-θήκες, Κύκλος Ζωής, Ανοικτό Λογισμικό

129 / 74

Page 132: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ερωτήσεις - Θέματα προς συ-ζήτηση - Δραστηριότητες

Τι είναι πρόγραμμα;

Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέ-δου σε σχέση με τις γλώσσες προηγούμενης γενιάς;

Ποια η διαφορά των γλωσσών του οπτικού προγραμματισμού με αυτές που διαθέτουν οπτικό περιβάλλον προγραμματισμού;

Τι εννοούμε με τη φράση «Προ-γραμματιστικό Υπόδειγμα»;

Τι είναι ο δομημένος προγραμ-ματισμός και ποια είναι τα τρία κύρια χαρακτηριστικά του;

1.

2.

3.

4.

5.

130 / 73

Page 133: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ποια είναι τα πλεονεκτήματα του Δομημένου Προγραμματι-σμού;

Σε τι χρησιμεύουν τα μεταφρα-στικά προγράμματα;

Ποιες οι διαφορές του μετα-γλωττιστή και του διερμηνευτή στην εύρεση των συντακτικών λαθών;

Τι εργαλεία πρέπει να περιέχει ένα προγραμματιστικό περι-βάλλον;

Πώς επιτυγχάνεται η επανα-χρησιμοποίηση κώδικα και ποια τα πλεονεκτήματά της;

6.

7.

8.

9.

10.

131 / 73

Page 134: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ποιες είναι φάσεις του Κύκλου Ζωής ενός προγράμματος;

Ποιες δυνατότητες έχει ο χρή-στης με τα Λογισμικά Ανοικτού Κώδικα; Να χαρακτηρίσετε με Σωστό ή Λάθος τις παρακάτω προτάσεις:Α. Οι εντολές στις συμβολι-

κές γλώσσες αποτελούνται από ακολουθίες 0 και 1.

B. Η μεταφερσιμότητα είναι χαρακτηριστικό των γλωσ-σών υψηλού επιπέδου.

Γ. Η SQL αποκρύπτει τις τε-χνικές του προγραμματι-σμού.

Δ. Η γλώσσα LOGO αναπτύ-χθηκε για εκπαιδευτικού σκοπούς.

11.

12.

13.

132 / 73 - 74

Page 135: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Ε. Μία εφαρμογή λογισμικού με σύνθετες λειτουργίες υλο-ποιείται κατά βάση από μία ομάδα προγραμματιστών.

Να επιλέξετε για κάθε μία από τις παρακάτω φράσεις το γράμ-μα που οδηγεί σε σωστή πρό-ταση:Α. Οι εντολές ενός προγράμμα-

τος γράφονται σε ένα πρό-γραμμα που ονομάζεται:i. Συντάκτηςii. Μεταγλωττιστής iii. Διερμηνευτήςiv. Συνδέτης

Β. Ο μεταγλωττιστής επιση-μαίνει:i. όλα τα λάθη του προ- γράμματος

14.

133 / 74

Page 136: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

ii. μόνο τα λογικά λάθη του προγράμματος

iii. μόνο τα συντακτικά λάθη του προγράμμα-τος

iv. μόνο τα λάθη που οφεί-λονται σε αναγραμματι-σμούς εντολών

Γ. Σε μία εφαρμογή ανοικτού κώδικα:i. δεν είναι δυνατόν να

προσπελάσει ο χρή-στης τον κώδικα

ii. πρέπει ο χρήστης να περιμένει τις αναβαθ-μίσεις από την εταιρεία κατασκευής της.

iii. ο χρήστης δεν μπορεί να προσθέσει λειτουρ-γίες.

134 / 74

Page 137: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

iv. ο χρήστης μπορεί να δει τον κώδικα και να προσθέσει λειτουργίες.

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

Να πραγματοποιήσετε συζή-τηση στην τάξη σχετικά με το επάγγελμα του προγραμματι-στή. Αναζητήστε πληροφορί-ες στη διεύθυνση http://www.eoppep.gr

15.

16.

135 / 74

Page 138: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Να αναπτύξετε πρόγραμμα στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο Α. να δέχεται τα ονόματα 20

εταιρειών καθώς και τα έσοδα τους για το προη-γούμενο έτος.

B. να εκτυπώνει το μέσο όρο των εσόδων.

Γ. να εκτυπώνει το όνομα της εταιρείας με τα μεγαλύτερα έσοδα.

Δ. να διαβάζει το όνομα μιας εταιρείας και να εμφανίζει τα έσοδα της. Αν η εταιρεία δεν υπάρχει να εμφανίζει κατάλληλο μήνυμα.

17.

136 / 74

Page 139: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Να αναπτύξετε κατάλληλα υπο-προγράμματα για τα ερωτήμα-τα Β και Γ της δραστηριότητας 17 και να γράψετε τον αντίστοι-χο κώδικα του προγράμματος. Τα υποπρογράμματα θα πρέπει να επιστρέφουν το μέσο όρο και το όνομα της εταιρείας αντί-στοιχα.

18.

137 / 74

Page 140: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ
Page 141: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Κεφάλαιο 2.3. Προγραμματισμός .........................52.3.1. Αναφορά σε γλώσσες προ- γραμματισμού και «Προγραμ- ματιστικά Υποδείγματα» ......7 2.3.1.1.ΠρόγραμμακαιΓλώσ- σεςΠρογραμματισμού ..........7 2.3.1.2.Προγραμματιστικά Υποδείγματα ........................25 2.3.1.3.ΔομημένοςΠρογραμ- ματισμός ..............................372.3.2. Σχεδίαση και συγγραφή κώδικα .................................532.3.3. Κύκλος ζωής εφαρμογής λογισμικού .........................112

Περιεχόμενα

Page 142: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ
Page 143: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ
Page 144: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ84.205.248.2/Books/Eidikh-Agwgh-PI/books/b_likeiou/l_b_arial-28b/l_… · ΥΛΙΚΌΥ ΓΙΑ ΤΑ ΝΕΑ

Βάσει του ν. 3966/2011 τα διδακτικά βιβλία του Δημοτικού, του Γυμνασίου, του Λυκείου, των ΕΠΑ.Λ. και των ΕΠΑ.Σ. τυπώνονται από το ΙΤΥΕ - ΔΙΟΦΑΝΤΟΣ και διανέμονται δωρεάν στα Δημόσια Σχολεία. Τα βιβλία μπορεί να διατίθενται προς πώληση, όταν φέρουν στη δεξιά κάτω γωνία του εμπροσθόφυλλου ένδειξη «ΔIΑΤΙΘΕΤΑΙ ΜΕ ΤΙΜΗ ΠΩΛΗΣΗΣ». Κάθε αντίτυπο που διατίθεται προς πώληση και δεν φέρει την παραπάνω ένδειξη θεωρείται κλεψίτυπο και ο παραβάτης διώκεται σύμφωνα με τις διατάξεις του άρθρου 7 του νόμου 1129 της 15/21 Μαρτίου 1946 (ΦΕΚ 1946,108, Α').

Απαγορεύεται η αναπαραγωγή οποιου-δήποτε τμήματος αυτού του βιβλί-ου, που καλύπτεται από δικαιώματα (copyright), ή η χρήση του σε οποια-δήποτε μορφή, χωρίς τη γραπτή άδεια του Υπουργείου Παιδείας, Έρευνας και Θρησκευμάτων / IΤΥΕ - ΔΙΟΦΑΝΤΟΣ.