Τρίτη 9 Νοεμβρίου 2021

Αναθεώρηση 37, Έκδοση 10

 Σε αυτήν την αναθεώρηση έγινε αρκετή δουλειά.

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


Στο πρόγραμμα που ακολουθεί, υπάρχει ένα τμήμα Όλα στο οποίο έχουμε ορισμό δυο γενικών πινάκων, ενός τμήματος ΔεςΑυτό και την εντολή εκτέλεσης του τμήματος, το όνομα ΔεςΑυτό

Στο τμήμα ΔεςΑυτό έχουμε ένα τμήμα ΌχιΕδώ που δείχνει ότι σε αυτό ο γενικός πίνακας Β μπορεί να χρησιμοποιηθεί άμεσα. Στο ΔεςΑυτό μετά τον ορισμό της κατάστασης Β ο διερμηνευτής έχει φτιάξει τα Β() και Β$() για να γυρίζει αριθμούς και γράμματα βάσει  κλειδιού από την κατάσταση. Η Κατάσταση Β έχει τα 1 και 2 χωρίς τιμές, οπότε είναι κλειδιά και τιμές μαζί. Μετά καλούμε την ρουτίνα Α(). Εδώ δεν μπερδεύεται ο διερμηνευτής όπως θα γίνονταν παλιότερα, και θα έβγαζε ότι δεν υπάρχει τελεστής μετά τον πίνακα, αφού θα έβλεπε ότι το όνομα είναι όντως πίνακας. Μετά βλέπουμε μια τύπωσε με το Α(3). Εκεί ξέρει ότι είναι πίνακας, το σύστημα, γιατί τέτοια θέση δεν έχουν οι ρουτίνες! Ομοίως το Α(3)++ το ξεχωρίζει ότι είναι για πίνακα, όχι επειδή είδε το ++ αλλά επειδή δεν είδε αλλαγή γραμμής, ή άνω και κάτω τελεία ή σημειώσεις με // ή \ ή '.

Στη συνέχεια βάζουμε από ένα αντικείμενο στο πίνακα Α με δείκτη 2  και στη κατάσταση  Β με νέο κλειδί το 600 (τα κλειδιά είναι αλφαριθμητικά εσωτερικά, οπότε το Β("600") είναι ισοδύναμο με το Β(600). Δείχνουμε ότι μπορούμε να καλέσουμε το τμήμα Ένα εντός των αντικειμένων στο πίνακα και στη κατάσταση. Όταν ο διερμηνευτής συνατήσει τον ορισμό ρουτίνας τότε τερματίζει τη εκτέλεση του τρέχοντος  τμήματος.



Τμήμα Όλα {
    Γενική Α(10)=1, Β(3 έως -3)=100
    Τμήμα ΔεςΑυτό {
        Τμήμα ΌχιΕδώ {
            Τύπωσε Β(-3)=100
        }
        // Ο Β() γενικός έχει σκιαστεί από τη κατάσταση Β
        // αλλά όχι στο ΌχιΕδώ τμήμα!
        Κατάσταση Β=1,2,3:="οκ",4:=1234
        Α("όνομα")
        Τύπωσε Α(3)
        Α(3)++
        Τύπωσε Α(3), Β$(3)="οκ", Β(4)=1234
        Επιστροφή Β, 3:="ναι", 4:=5678
        Κλάση Αλφα {
            Τμήμα Ένα (α$) {
                Τύπωσε "Ένα ";α$
            }
        }
        Προσθήκη Β, 600:=Αλφα()
        Α(2)=Αλφα()
        Α(3)+=100
        Τύπωσε Α(3), Β$(3), Β(4)
        Α(2).Ένα "από πίνακα στο δείκτη 2"
        Β(600).Ένα "από κατάσταση με κλειδί 600"
        Κάλεσε ΌχιΕδώ
        Ρουτίνα Α(α$)
            Τύπωσε α$
        Τέλος Ρουτίνας
    }
    ΔεςΑυτό
}
Όλα


2) Ο  επιλογή μορφή δείκτης δεκαδικών λειτουργεί πιο σωστά (βάσει της τεκμηρίωσης). Οπότε αν έχουμε Ελληνικά στον υπολογιστή μπορούμε να δηλώσουμε Greek ή Ελληνικά στη φόρμα Ρυθμίσεις ή Settings. Έτσι βάσει των ρυθμίσεων θα έχουμε το επιθυμητό από την αρχή (τελεία ή κόμμα). Όταν γράφουμε κώδικα είναι πάντα τελεία. Αλλά στην εμφάνιση στη κονσόλα (στην έξοδο) ή σε εισαγωγή αριθμών, έχουμε το ανάλογο  σημείο, κόμμα ή τελεία, βάσει της τρέχουσας γλώσσας που έχουμε επιλέξει.  Μπορούμε να δώσουμε εντολή να παρακάμψουμε την αρική ρύθμιση, πχ το Τοπικό 1032 γυρνάει σε κόμμα τον δείκτη δεκαδικών, ενώ το Τοπικό 1033 γυρνάει το δείκτη σε τελεία. Από την κοσνόλα η εντολή Έλεγχος εμφανίζει την επιλογή +DEC με μια παρένθεση ότι έγινε By Pass. Με το Διακόπτες "-DEC" γυρνάμε την μορφή του δείκτη σε τελεία για οποιοδήποτε Τοπικό. Αυτή η επιλογή σώνεται και την επόμενη φορά εκκίνησης ή αν πατήσουμε το Break και επανεκινήσουμε τη Μ2000 θα ληφθεί υπόψιν.


3) Επέκταση δυνατοτήτων για φόρμες και στοιχεία ελέγχου (θα ακολουθήσει άλλη ανάρτηση για αυτό)

4)Βελτίωση του συστήματος με γεγονότα για εξωτερικά αντικείμενα σε σχέση με ορίσματα που δίνονται με αναφορά (θα ακολουθήσει άλλη ανάρτηση για αυτό)

ΓΚ




Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.