Παρασκευή, 3 Νοεμβρίου 2017

Αναθεωρήθηκε ο κώδικας FIFO & LIFO

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

Εδώ η κλάση Άλφα (μια συνάρτηση που γυρνάει ένα αντικείμενο Ομάδα),  δίνει αντικείμενο που δέχεται και παίρνει τιμές (με ένα όρισμα), έχει μια ιδιότητα Τελευταίος, (δείτε την .[Τελευταίος] η οποία είναι η ιδιωτική μεταβλητή και μπορεί να γραφτεί/διαβαστεί, ενώ ως ιδιότητα το Τελευταίος μπορεί μόνο να διαβαστεί). Επίσης υπάρχουν δυο τελεστές. Δείτε επίσης πως αντιγράφουμε ένα αντικείμενο με την Ομάδα() η οποία δέχεται μόνο "επώνυμο" αντικείμενο. Έτσι στο Μ=Ομάδα(Ν) θα φτιάξουμε το Μ όπως το Ν.

Κλάση Αλφα {
Ιδιωτικό:
      χ=10
Δημόσιο:
      \\ δεν μπορούμε να φτιάξουμε τελεστές + - / * ^ γιατί υπάρχει Αξία, δηλαδή γυρνάει τιμή
      \\ η οποία δουλεύει με τους κανονικούς τελεστές     
      \\ (σε άλλη περίπτωση που δεν έχουμε Αξία τότε μπορούμε)
      \\ μπορούμε να φτιάξουμε όμως τα ++ --  και άλλους που δουλεύουν στη αριστερή έκφραση!
      Τελεστής "++" {
            ++
      }
     Τελεστής "--" {
            --
      }
      Ιδιότητα Τελευταίος {Αξια}=1
      Αξία (α) {
            =α*
      .[Τελευταίος]<=α
      }
      Θέσε (α) {
       αν α=0 τότε Λάθος "Μη επιτρεπτή τιμή"
      =Αριθμός/α
      .[Τελευταίος]<=α
      }
}
Ν=Αλφα()
Ν(3)=100
Τύπωσε Ν(3),Ν(2),Ν(1) \\ 30 20 10
Μ=Ομάδα(Ν)
Τύπωσε Μ(3),Μ(2),Μ(1) \\ 30 20 10
Τύπωσε Μ.τελευταίος
Τύπωσε Μ(100)
Τύπωσε Μ.τελευταίος
Μ++
Τύπωσε Μ(1) \ 11
Μ--
Τύπωσε Μ(1) \ 10


Δείτε τώρα πως άλλαξε το πρόγραμμα, με την χρήση της Items (ομάδα - group- που γυρίζει τιμή ομάδα)
Συνδεδεμένες Λίστες FIFO και LIFO για αντικείμενα!