ΓΛΩΣΣΑ
Τα σχόλια και τα κενά αγνοούνται κατά την εκτέλεση, εκτός αν τα κενά βρίσκονται μέσα σε σταθερές χαρακτήρων. (Καλό είναι να γράφετε κάθε εντολή σε διαφορετική γραμμή).Αν η συνθήκη είναι ΑΛΗΘΗΣ, τότε εκτελείται η εντολή. Τις μεταβλητές που θα χρησιμοποιήσουμε μέσα σε ένα πρόγραμμα ή υποπρόγραμμα τις ορίζουμε στην αρχή του.
Για παράδειγμα, με : δηλώνουμε τον πραγματικό πίνακα Β με στοιχεία Β. Οι δείκτες χωρίζονται με κόμματα και κάθε δείκτης είναι ακέραια έκφραση. Μια συνθήκη, (που ισχύει ή δεν ισχύει, που είναι ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ), καθορίζει αν επιτρέπεται οι εντολές του βρόχου να εκτελεστούν ακόμα μια φορά. Αν η συνθήκη εξετάζεται ως προς την ισχύ της πριν την πρώτη εκτέλεση των εντολών του βρόχου, οι εντολές στον σχηματισμό αυτό μπορούν να εκτελεστούν από μηδέν φορές (αν η συνθήκη είναι ΨΕΥΔΗΣ) μέχρι άπειρες φορές (αν η συνθήκη είναι πάντα ΑΛΗΘΗΣ).
Γράφουμε πρώτα τις εντολές του πρώτου βήματος και από κάτω συνεχίζουμε γράφοντας τις εντολές του δεύτερου βήματος. Όταν πρέπει μια ομάδα εντολών να εκτελεστεί επαναληπτικά, έχουμε τον σχηματισμό του βρόχου (loop) ή επανάληψης. Η μορφή της εντολής ΓΡΑΨΕ είναι ΔΙΑΒΑΣΕ λίστα εκφράσεων Παραδείγματα χρήσης: Μετά την εκτέλεση μιας ΓΡΑΨΕ η γραφίδα μετακινείται αυτόματα στην αρχή της επόμενης γραμμής, οπότε η εντολή ΓΡΑΨΕ χωρίς καθόλου παραμέτρους αφήνει μια κενή γραμμή (χρήσιμο για διαχωρισμό στοιχείων). .
Εγγραφές με σχόλια μπορούν να βρίσκονται οπουδήποτε στο πρόγραμμα πριν από την εντολή Η εντολή εκχώρησης τιμής έχει σύμβολο το και γράφεται έτσι: και σημαίνει κάνε τις πράξεις στην έκφραση στο δεξιό μέρος και βάλε την προκύπτουσα τιμή στην μεταβλητή που βρίσκεται στο αριστερό μέρος. Στην ΓΛΩΣΣΑ υπάρχουν τα κύρια προγράμματα και δυο είδη υποπρογραμμάτων, οι διαδικασίες και οι συναρτήσεις. Το τέλος της δομής σημειώνεται με την εντολή ΤΕΛΟΣ_ΑΝ. Υπάρχει μια φράση (που γράφεται μετά την ΑΝ συνθήκη ΤΟΤΕ και πριν από την ΑΛΛΙΩΣ), που μπορεί να δώσει στην δομή επιλογής περισσότερες διακλαδώσεις: Μπορούμε εναλλακτικά να χρησιμοποιήσουμε τις εντολές ΕΠΙΛΕΞΕ – ΠΕΡΙΠΤΩΣΗ – ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ – ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ, (που είναι φτιαγμένες ακριβώς για περιπτώσεις πολλαπλής επιλογής) : Τις σταθερές (constant) που θα χρησιμοποιήσουμε μέσα σε ένα πρόγραμμα ή υποπρόγραμμα τις ορίζουμε στην αρχή του με την εντολή ΣΤΑΘΕΡΕΣ. Η σταθερή δεν μπορεί να αλλάξει τιμή σε κάποια φάση του προγράμματος. Μπορούμε επίσης να χρησιμοποιήσουμε στο πρόγραμμα μια σταθερή τιμή, με τύπο ΑΚΕΡΑΙΟ, ΠΡΑΓΜΑΤΙΚΟ, κλπ. Παραδείγματα σωστών ακέραιων σταθερών: Παραδείγματα λαθεμένων ακέραιων σταθερών: Παραδείγματα σωστών πραγματικών σταθερών: Παραδείγματα λαθεμένων πραγματικών σταθερών: Λογικές σταθερές υπάρχουν μόνο δύο, και είναι οι ΑΛΗΘΗΣ και ΨΕΥΔΗΣ.
Οι πίνακες ορίζονται με τις δηλωτικές εντολές τύπου, όπου μετά το όνομα της μεταβλητής ακολουθούν σε αγκύλες τα όρια των δεικτών. Η μεταβλητή μπορεί να αλλάξει τιμή σε κάποια φάση του προγράμματος.
Όσες εντολές τύπου δεν χρειάζονται στο πρόγραμμα μπορούν να παραλειφθούν. Η δόμηση ενός προγράμματος πρέπει να είναι όσο το δυνατό απλούστερη. Γενικά τις ονομάζουμε πίνακες (table, array), αλλά αν έχουν μόνο μια διάσταση, τις λέμε και διανύσματα (vector).
Κάθε πρόγραμμα μπορεί να φτιαχτεί με χρήση τριών μόνο απλών σχηματισμών, της ακολουθίας, του βρόχου και της επιλογής. Αν χρειάζονται δυο βήματα για να λυθεί ένα πρόβλημα, και πρέπει να εκτελεστούν πρώτα το ένα και μετά το άλλο, λέμε ότι έχουμε τον σχηματισμό της ακολουθίας (sequence) των βημάτων. Μικρότερος δείκτης υπονοείται ότι είναι το 1. Γενικά έκφραση (expression) είναι Η πράξη σε μια έκφραση χαρακτηρίζεται από έναν τελεστή, το σύμβολο της πράξης που θα γίνει.
Για παράδειγμα: Η μεταβλητή που ορίζεται με κάποιο συμβολικό όνομα μπορεί να αποκτήσει μια τιμή. Όταν η τιμή_βήματος είναι ίση με 1, μπορούμε να παραλείπουμε την φράση: ΜΕ_ΒΗΜΑ 1, (γιατί όταν παραλείπεται η φράση, υπονοείται ότι το βήμα είναι 1). Αν η συνθήκη εξετάζεται ως προς την ισχύ της μετά την πρώτη εκτέλεση των εντολών του βρόχου, οι εντολές του βρόχου εκτελούνται τουλάχιστον μια φορά.
Η απλή αναφορά του ονόματός της δίνει τον έλεγχο σε ένα υποπρόγραμμα - συνάρτηση, που αρχίζει με την εντολή ενδιάμεσα η μεταβλητή όνομα_συνάρτησης παίρνει οπωσδήποτε τιμή και η συνάρτηση τελειώνει με την εντολή η οποία επιστρέφει μια τιμή (δες παρακάτω για τον τύπο της συνάρτησης, (Ακέραια, Πραγματική, Λογική, κλπ), και της τιμής της) στην έκφραση που την χρησιμοποίησε. Το πέρασμα παραμέτρων σε υποπρογράμματα της ΓΛΩΣΣΑΣ δεν γίνεται με αναφορά (by reference) ούτε με τιμή (by value) αλλά με αντιγραφή (copy in - copy out). Μέσα σε ένα πρόγραμμα (ή υποπρόγραμμα) δηλώνουμε πρώτα ποιες σταθερές και ποιες μεταβλητές θα χρησιμοποιήσουμε, καθώς και τον τύπο καθεμιάς μεταβλητής. Η μορφή της εντολής ΔΙΑΒΑΣΕ είναι ΔΙΑΒΑΣΕ λίστα μεταβλητών Παραδείγματα χρήσης: Με την εντολή αυτή εξηγούμε στον υπολογιστή ότι πρέπει να γράψει μερικές εγγραφές με στοιχεία που του καθορίζουμε, με τρόπο που του καθορίζουμε.
Για να σχηματίσουμε τον βρόχο αυτό, μπορούμε να χρησιμοποιήσουμε τις εντολές ή με τις εντολές όπου παρατηρούμε πώς ένας βρόχος μπορεί να περιέχει έναν άλλο βρόχο, (και τους λέμε ένθετους ή εμφωλιασμένους (nested) βρόχους). Για να φτιαχτεί μια σύνθετη λογική έκφραση, χρησιμοποιούμε δυο λογικές εκφράσεις και ανάμεσά τους τοποθετούμε έναν λογικό τελεστή από τους ΚΑΙ, Η, ή μια λογική έκφραση και μπροστά της τον τελεστή ΟΧΙ. Για παράδειγμα, αν r, s, t, u, v, w είναι λογικές μεταβλητές: Στην ΓΛΩΣΣΑ είναι ορισμένες οι παρακάτω συναρτήσεις: Με την εντολή αυτή καθοδηγούμε τον υπολογιστή να διαβάσει στοιχεία που πρόκειται να επεξεργαστεί.
Υπάρχει μια συνθήκη Α που, αν είναι ΑΛΗΘΗΣ εκτελούνται οι εντολές που ακολουθούν το ΤΟΤΕ, ενώ αν είναι ΨΕΥΔΗΣ εκτελούνται οι εντολές που ακολουθούν το ΑΛΛΙΩΣ. Αν μια εγγραφή αποτελείται από κενά ή έχει πρώτον χαρακτήρα !, η εγγραφή θεωρείται ότι περιέχει σχόλια.
Οι λογικές σταθερές μπορούν να χρησιμοποιηθούν στις λογικές εκφράσεις της ΓΛΩΣΣΑΣ. Σειρά χαρακτήρων είναι μια αλληλουχία χαρακτήρων που περικλείονται από αποστρόφους ( , ASCII δεκαεξαδικός 27). Το πρόγραμμα, η διαδικασία και η συνάρτηση έχουν οπωσδήποτε όνομα. Η εκτέλεση ξεκινάει από το κύριο πρόγραμμα, που αρχίζει με την εντολή και όταν χρειάζεται να καλέσει μια διαδικασία, χρησιμοποιεί την εντολή και τελειώνει με την εντολή Μια διαδικασία της ΓΛΩΣΣΑΣ αρχίζει με την εντολή και τελειώνει με την εντολή η οποία δίνει τον έλεγχο της εκτέλεσης πίσω, στο πρόγραμμα που κάλεσε την διαδικασία. Στις εκφράσεις μπορεί να περιλαμβάνεται κάποια συνάρτηση της ΓΛΩΣΣΑΣ.
Ο διαχωρισμός γίνεται με την εντολή Στην δηλωτική εντολή που καθορίζει τον τύπο των μεταβλητών ενός προγράμματος (ή υποπρογράμματος), μπορούμε ταυτόχρονα να δηλώσουμε ότι μια μεταβλητή θα έχει δείκτες. Παρακάτω δείχνουμε τους τελεστές, (από την μεγαλύτερη προτεραιότητα εκτέλεσης 1, που εκτελούνται πρώτοι, μέχρι την μικρότερη προτεραιότητα 8), και την σημασία τους. Έτσι λέγονται οι εκφράσεις που φτιάχνονται με ακέραιες μεταβλητές ή σταθερές και έναν από τους τελεστές ^, *, +, –, DIV, MOD.
(Το βιβλίο υπόκειται περιοδικά σε διαδικασία διόρθωσης και αναθεώρησης, οπότε είναι πιθανό να προκύψουν ανακρίβειες στο άρθρο αυτό). Τα προγράμματα που γράφουν οι μαθητές της τεχνολογικής κατεύθυνσης της Γ’ Λυκείου, όταν εφαρμόζουν αλγόριθμους, και τα θέματα των πανελλαδικών εξετάσεων στο σχετικό μάθημα, γράφονται στην ΓΛΩΣΣΑ. Η γλώσσα προγραμματισμού ΓΛΩΣΣΑ σχεδιάστηκε για εκπαιδευτικούς λόγους, οπότε διαθέτει μόνο τις εντελώς απαραίτητες εντολές για να εξασκηθούν οι μαθητές στον προγραμματισμό ηλεκτρονικών υπολογιστών. Οι εντολές μπορεί να έχουν ισχύ κατά την φάση της μετάφρασης του προγράμματος, και λέγονται δηλωτικές, ή μπορεί να έχουν ισχύ κατά την φάση της εκτέλεσης του προγράμματος, και λέγονται εκτελέσιμες. Ο γενικός κανόνας είναι ότι οι δηλωτικές μπαίνουν στην αρχή του προγράμματος (ή διαδικασίας ή συνάρτησης), ακολουθούν οι εκτελέσιμες και τελευταία είναι η εντολή ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ (ή ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ή ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ). Ακολουθεί πίνακας με τις εντολές της ΓΛΩΣΣΑΣ και παρακάτω περιγράφεται η σημασία μερικών από αυτές. Για το γράψιμο των εντολών χρησιμοποιούνται οι παρακάτω χαρακτήρες: Σημειώνουμε ότι μπορούμε να χρησιμοποιήσουμε οποιονδήποτε (σχεδόν) χαρακτήρα του κώδικα που αναγνωρίζει ο υπολογιστής μας μέσα σε σχόλια (γραμμές που έχουν πρώτον χαρακτήρα το !), μέσα σε σταθερές και μεταβλητές που περιέχουν σειρές χαρακτήρων. Η ΓΛΩΣΣΑ έχει ελεύθερο τρόπο γραφής του προγράμματος, δηλαδή δεν υποχρεώνει ένα τμήμα της εντολής να περιέχεται σε συγκεκριμένο τμήμα της εγγραφής. Για να σχηματίσουμε τον βρόχο αυτό μπορούμε να χρησιμοποιήσουμε τις εντολές Ο σχηματισμός της επιλογής (selection) δίνει στον προγραμματιστή την ευχέρεια να εξηγήσει στον υπολογιστή τι αποφάσεις να πάρει, δηλαδή ο υπολογιστής καθοδηγείται στο να επιλέξει μια ομάδα από εκτελέσιμες εντολές αντί άλλης ομάδας. Απλή επιλογή γίνεται με τον σχηματισμό που έχει μια συνθήκη και μια εντολή.
Για να εμφανίζεται ο χαρακτήρας απόστροφος μέσα σε σειρά χαρακτήρων που περικλείεται από αποστρόφους, τον γράφουμε δυο φορές. Παραδείγματα σειρών χαρακτήρων: Μια μεταβλητή (variable) ορίζεται με την χρήση ενός συμβολικού ονόματος, που ο πρώτος του χαρακτήρας πρέπει να είναι γράμμα και οι υπόλοιποι γράμματα, ψηφία ή υπογράμμιση (underscore) _ . Στην δευτεροβάθμια εκπαίδευση της Ελλάδας διδάσκεται ως γλώσσα προγραμματισμού η ΓΛΩΣΣΑ, που περιγράφεται στο βιβλίο Ανάπτυξη εφαρμογών σε Προγραμματιστικό Περιβάλλον .
Μια μεταβλητή μπορεί να είναι κάποιου τύπου, (όπως και μια σταθερή), Ακέραια, Πραγματική, Χαρακτήρων ή Λογική. Στην ΓΛΩΣΣΑ υπάρχει η δυνατότητα να οριστούν μεταβλητές με δείκτες, που το κάθε στοιχείο τους μπορεί να εντοπιστεί στην μνήμη (και να χρησιμοποιηθεί) με χρήση δεικτών. Το αποτέλεσμα μιας ακέραιας έκφρασης είναι ακέραιος αριθμός. Για να φτιαχτεί μια συγκριτική έκφραση, χρησιμοποιούνται δυο αριθμητικές εκφράσεις ίδιου τύπου και ανάμεσά τους τοποθετείται ένας συγκριτικός τελεστής από τους <, <=, =, >=, >, <> . Για παράδειγμα, αν A, B, C, D, E, F, G είναι αριθμητικές μεταβλητές: Η συγκριτική έκφραση έχει λογική τιμή, είναι δηλαδή ΑΛΗΘΗΣ (αλήθεια) ή ΨΕΥΔΗΣ (ψέμα). Λογική έκφραση είναι αυτή που έχει λογική τιμή, που μπορούμε δηλαδή να αποφανθούμε άμεσα αν είναι ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ.
Οι δηλωτικές εντολές γράφονται πρώτες και ακολουθούν οι εκτελέσιμες. Αν η συνθήκη είναι ΨΕΥΔΗΣ, τότε εκτελείται η επόμενη (μετά το ΤΕΛΟΣ_ΑΝ) εντολή. Λίγο πιο περίπλοκη είναι η δομή που μπορεί να έχει δύο ομάδες εντολών.
