Τρίτη 4 Απριλίου 2017

Αναθεώρηση 11 (Έκδοση 8.6)

Σε αυτήν την αναθεώρηση (ήταν 10 αλλά είδα ότι ξέχασα κάτι και το συμπλήρωσα), κοίταξα το χειρισμό των ομάδων όταν έχουν τιμή (σαν να είναι μεταβλητές), και έχουν και τελεστές, και επιπλέον μπαίνουν σε πίνακες και καταστάσεις.

Δείτε την Ένωσε Α$() στο Α() η οποία κάνει τον νέο πίνακα Α() να δείχνει ότι και ο Α$(). Μας ενδιαφέρει εδώ γιατί θέλουμε να διαβάζουμε τιμές που ως πίνακας αλφαριθμητικός δεν θα μας έδεινε ο εκτιμητής εκφράσεων. Αυτό συμβαίνει γιατί υπάρχουν οι εκφράσεις α$.χ όπου το α$ είναι δείκτης. Έτσι και το Α$(10).Χ θα λειτουργήσει ως δείκτης
Παράδειγμα με δείκτη σε ομάδα σε πίνακα
Ομάδα άλφα {
      α=100
}
Πίνακας α$(10)
Α$(0)=Ισχνη$(Άλφα)
Τύπωσε Α$(0) \\ μας δείχνει την ισχνή αναφορά
\\ η Εκφρ() επιλύει την ισχνή και μας γυρίζει το 100
Τύπωσε Εκφρ(Α$(0).α) \\ δίνει 100
Για Α$(0) { +=50}
Τύπωσε Εκφρ(Α$(0).α) \\ δίνει 150


Παρακάτω είναι ένα παράδειγμα που δείχνει μια ομάδα αλφα$ (με τιμή αλφαριθμητική), που έχει στην ουσία μια κ (τη χειριζόμαστε ως λογική, το κ~ κάνει αναστροφή λογική, το αληθές δηλαδή το κάνει ψευδές και το ανάποδο). Η τιμή της είναι ναι ή όχι ανάλογα το κ. Αλλάζουμε την τιμή με τον τελεστή ~.
Μετά μας ενδιαφέρει να βγάλουμε αντίγραφο σε πίνακα και σε κατάσταση. Η ομάδα$ έχει παράλληλα και το ομάδα (και τα δύο δείχνουν το ίδιο αντικείμενο), αλλά χρειάζεται για να το χειριστούμε όπως εδώ με τη χρήση του τελεστή ~.
Αν δεν χρησιμοποιούσα το Ομάδα$(αλφα$) και έβαζα σκέτο το αλφα$ τότε στο πίνακα και στη κατάσταση θα έβαζα το αλφαριθμητικό "ναι" ή "όχι" και όχι την Ομάδα. Αν η ομάδα δεν είχε το Αξία { } τότε θα μπορούσε να μπεί χωρίς το Ομάδα$(). Τα Ομάδα() και Ομάδα$() βγάζουν αντίγραφο της ομάδας (ότι κάνει δηλαδή και μια ομάδα που δεν έχουμε ορίσει κάποια Αξία όταν είναι σε δεξιά έκφραση - δίνει 0 και το αντίγραφό της ως αντικείμενο).

Οι καταστάσεις έχουν κλειδιά πάντα αλφαριθμητικά. Εδώ έχουμε δώσει το 1 αλλά εσωτερικά θα γίνει "1". Επίσης έχουν εξ ορισμού διπλή υπόσταση, σαν αριθμητικό και σαν αλφαριθμητικό (δεν κάνουμε ένωση εδώ). Οι καταστάσεις είναι πάντα με αναφορά. Δηλαδή αν κάνουμε αυτό Β1=Α1 τότε η Β1 δεν θα έχει αντίγραφο αλλά θα δείχνει την Α1. Μάλιστα αν είχαμε την Α2 επίσης ως Κατάσταση, τότε το Β1=Α2 θα άλλαζε τον δείκτη εσωτερικά( την αναφορά) και θα έδειχνε το Α2. Ομάδες που έχουν καταστάσεις, αντιγράφουν τον δείκτη μόνο, και έτσι μπορούν να μοιράζονται κοινά στοιχεία αν για παράδειγμα έχουν φτιαχτεί  από μια αρχική ομάδα.
Από την έκδοση 8.4 υπάρχουν μεταβλητές - δείκτες- για πίνακες. Π.χ. το Β=Α() γίνεται και το Β δείχνει το Α(). Το Κ()=Β κάνει αντιγραφή του πίνακα που δείχνει το Β στο Κ(). Μπορούμε να κάνουμε ένωση του δείκτη Β (που δείχνει σε πίνακα) με το Μ() (με παρενθέσεις) ώστε να έχουμε πρόσβαση στα στοιχεία του Β, για να τα αλλάξουμε, ή διαφορετικά χρησιμοποιούμε τη συνάρτηση πίνακας(Β,1,2,3) αν είχε τρεις διαστάσεις...




Ομάδα αλφα$ {
      κ=Αληθής
      αξία {
            Αν .κ Τότε {
            ="ναι"
            } Αλλιώς ="όχι"
      }
      Τελεστής "~" {
             ~
      }
}


Τύπωσε αλφα$
αλφα~
Τύπωσε αλφα$
Πίνακας Βάση 1, Α$(1)=Ομάδα$(αλφα$)
Ενωσε Α$() στο Α()
Τύπωσε Α$(1)
Α(1)~
Τύπωσε Α$(1)
Κατάσταση Α1=1:=Ομάδα$(αλφα$)
Τύπωσε Α1$(1)
Α1(1)~
Τύπωσε Α1$(1)






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

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

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