Τετάρτη 7 Μαΐου 2014

Κλάσεις - Αντικείμενα

Στην έκδοση 10 της Μ2000 τα ανιικείμενα τύπου Ομάδα έχουν ολοκληρωθεί και μπορούν να έχουν τύπους, να υπάρχουν ως μεταβλητές (Επώνυμα αντικείμενα) συνδεδεμένες με το τμήμα ή τη συνάρτηση που δημιουργούνται γι όσο το τμήμα ή η συνάρτηση δεν τερματίζει,  να υπάρχουν σε πίνακες και άλλα αντικείμενα καταχώρησης (οπότε και διαγράφονται αν αλλάξουμε τιμή - άλλη ομάδα, ή αν σβήσουμε τον καταχωρητή), να υπάρχουν μέσω δεικτών. Οι δείκτες σε ομάδες μπορούν ή να δείχνουν ένα επωνυμο αντικείμενο (στην ουσία εσωτερικά είναι ισχνή αναφορά στο αντικείμενο) ή να δείχνουν αντικείμενο όπου η ζωή του αντικειμένου χάνεται όταν χαθεί και ο τελευταίος δείκτης. Μπορούμε να έχουμε συνάρτηση Διαγραφή που καλείται όταν το αντικείμενο πρέπει να διαγραφεί. Επίσης μπορούμε να έχουμε ομάδες εντός ομάδων, ιδιότητες, τελεστές, και να ορίσουμε πως μια ομάδα επιστρέφει τιμή (και όχι αντίγραφο του εαυτού της) και πώς δέχεται τιμή (και όχι την διαδικασία συγχώνευσης που εξορισμού έχουν οι ομάδες). Η διαδικασία συγχώνευσης Α+Β δίνει μια νέα ομάδα με αλλαγμένες τιμές στις ιδιότητες που έχει η Α και η Β με τιμές της Β και επιπλέον δίνει ότι δεν είναι κοινό στις Α και Β. Έτσι το Α=Α+Β δίνει ένα Α με ότι έχει το Β και ότι δεν έχει το Β αλλά υπάρχει στο Α. Οι ιδιότητες ορίζονται ως ομάδες που επιστρέφουν ή παίρνουν τιμές ή κάνουν και τα δύο. Μπορούμε να έχουμε πεδία (μεταβλητές, πίνακες, άλλα αντικείμενα) ιδιωτικά ή δημόσια. Μια Κλάση είναι ο ορισμός μιας ομάδας ως μια συνάρτηση που επιστρέφει μια ομάδα. Μπορούμε να ορίσουμε κλάσεις να γίνονται από άλλες κλάσεις. Τα ονόματα των κλάσεων που δημιουργούν μια ομάδα είναι τύποι της ομάδας. Μια Ομάδα μπορεί να περαστεί σε κλήση με τιμή (αντίγραφο) ή με αναφορά ή με δείκτη  σε ομάδα ή με αναφορά ενός δείκτη σε ομάδα. Δημιουργούμε ομάδες από κλάσεις ή από άλλες ομάδες. Αν Α είναι μια επώνυμη ομάδα (δημιουργήθηκε σαν τοπική μεταβλητή σε τμήμα ή συνάρτηση) τότε αν Β είναι ένα νέο όνομα τότε το Β=Α δημιουργεί το Β ως αντίγραφο το Α. Αν δώσουμε αργότερα πάλι το Β=Α τότε το Β θα πάρει τις τιμές του Α. Μπορούμε να αλλάξουμε τον τελεστή "=" ως πως  το λειτουργεί στην εκχώρηση. Αν Α είναι μια ομάδα τότε το Κ->Α δημιουργεί έναν δείκτη στο Α (ισχή αναφορά). Μπορούμε να αλλάξουμε το Κ να δείχνει άλλη ομάδα (ακόμα και άλλο τύπο), είτε είναι επώνυμη είτε πτητική (πτητικό είναι το αντικείμενο που δεν σχετίζεται με κάποιο τμήμα ή κάποια συνάρτηση, αλλά βρίσκεται σε καταχωρητές όπως πίανκες, λίστες, ουρές σωρούς τιμών, ή απλά δημιουργήθηκαν άμεσα εκτός καταχωρητή. Αν το Αλφα() είναι συνάρτηση που επιστρέφει πτητική ομάδα (δηλαδή υπάρχει το Κλάση Αλφα { }) τότε το Μ->Αλφα() φτιάχνει άμεσα ένα αντικείμενο Άλφα και δίνει ένα δείκτη στο Μ. Το M->Τίποτα ελευθερώνει το Μ και αν δεν υπάρχει άλλος δείκτης στο αντικείμενο τότε διαγράφει το αντικείμενο. Αν Χ είναι ιδιότητα του Αλφα τότε το Μ=>Χ είναι η τιμή της ιδιότητας X (αν επιστρέφει τιμή). Αν το Α είναι νέο όνομα τότε το Α=Αλφα() φτιάχνει το επώνυμο αντικείμενο Α και η Α.Χ είναι η ιδιότητα Χ του Α. Έτσι αναγνωρίζουμε στο κώδικα πότε μια μεταβλητή είναι δείκτης σε αντικείμενο (Μ=>Χ)  και πότε είναι το αντικείμενο (Α.Χ).


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

Συνεχίζω τη συγγραφή της 7ης έκδοσης της Μ2000. Διορθώνω τα λάθη της παλιάς και την εμπλουτίζω.
Σήμερα έβαλα το απλό πράγμα, να μπορεί κανείς στον μεταφραστή γραμμής (στη κονσόλα κατά μία έννοια του περιβάλλοντος της Μ2000) να επιλέγει με τα άνω και κάτω βελάκια προηγούμενες εντολές. Συνάμα συμμάζεψα μέρος του κώδικα! Και συνεχίζω ακάθεκτος!
Στην 7η έκδοση θα βάλω και κλάσεις. Μια ιδέα περί κλάσεων είναι και η παρακάτω που έχει γραφτεί με κώδικα που τρέχει ήδη στην έκτη έκδοση!

Έγιναν αλλαγές για να τρέχει στην έκδοση 8.6 αναθεώρηση 6 για να γυρίσει η συμβατότητα ως είχε
Το γράφουμε σε ένα τμήμα έστω Α

Τμημα ΕΝΑΕΠΙΠΕΔΟ {
                Τμημα ΕΝΑΕΠΙΠΕΔΟΚΑΤΩ {
                      ' Όταν τρέχει ένα τμήμα το περιβάλλον της Μ2000 αντιγράφει το κείμενό του σε ένα και μόνο αλφαριθμητικό!
                      ' Σε αυτό αφαιρούνται οι εντολές που έτρεξαν. Σε περίπτωση επανάληψης το κομάτι έχει κρατηθεί για το σκοπό αυτό
                      ' Μπορούμε όμως να δώσουμε με την  Ενθεση άμεσα κώδικα για τρέξιμο
                      ' Θα φτιάξω μια κλάση με μια μεταβλητή που θα βλέπουν όλες
                      ' καθώς και ένα πρότυπο με το οποίο θα κατασκευάζω νέες παρουσίες
                      ' Θα χρησιμοποιώ τα @@ εντός του πρότυπου για να περνάω το όνομα
                      ' της νέας παρουσίας
                      ' φτιάχνω μια σφαιρική (τοπικά) μεταβλητή που μπορούν να την διαβάζουν και όλα τα τμήματα που θα τρέξουν εδώ!
                      'Στην 8.1 ήθελε αυτό: Γενική ΔΙΚΟΜΟΥ.ΓΕΝΙΚΟ = 1000
                      ΔΙΚΟΜΟΥ@ΓΕΝΙΚΟ = 1000
                      ΤΕΛΕΥΤΑΙΑ@ΚΛΑΣΗ$ = "" ' θα δημιουργούμε μια συνδεδεμένη λίστα και αυτή η μεταβλητή θα δείχνει τη κορυφή της λίστας
                      ' ακολουθεί μια μεταβλητή που παίρνει κείμενο, το οποίο όμως θα γίνει ο κατασκευαστής της κλάσης μας!
                      ΓΕΝΙΚΟ@ΠΡΩΤΟ$ = {
' το @ στο όνομα της μεταβλητής την κάνει σφαιρική μεταβλητή (κάτι ως FRIEND σε άλλες γλώσσες)
' και θα διαβάζεται όσο υπάρχει το τμήμα που την έφτιαξε
' και δεν θα φτιάξουμε τοπική μεταβλητή με το ίδιο όνομα (αν ξεχάσουμε να βάλουμε το @ στο όνομα όταν είναι αριστερά στο =)
' αλλιώς θα γίνει σκίαση...θα βρίσκει την τοπική και όχι την σφαιρική
ΒΑΛΕ ΤΜΗΜΑ$ ' βάζουμε στο σωρό το όνομα του τμήματος που θα κάτσει η παρουσία, του γονικού τμήματος
ΤΜΗΜΑ @@ ' εδώ έχουμε το όνομα της παρουσίας...θα το κάνουμε όνομα του τμήματος (με αλλαγή του @@ με το όνομα)
ΔΙΑΒΑΣΕ ΓΟΝΙΟΣ$ ' κρατάμε το όνομα του τμήματος στον ΓΟΝΙΟΣ$ η οποία είναι ιδιότητα του @@
ΕΠΟΜΕΝΗΚΛΑΣΗ$=ΤΕΛΕΥΤΑΙΑ.ΚΛΑΣΗ$ ' στην ιδιότητα ΕΠΟΜΕΝΗΚΛΑΣΗ$ βάζουμε την μέχρι τώρα κορυφή
ΤΕΛΕΥΤΑΙΑ@ΚΛΑΣΗ$="@@" 'και εδώ αλλάζουμε κορυφή, έτσι μόλις συνδέσαμε τη παρουσία @@
a=1 ' ακολουθούν τρεις ιδιότητες
b=2
n$="no man"
' ακολουθεί ένας πίνακας (από την έκδοση 6.1 έχουμε και αλλαγή διαστάσεων και μεγέθους με χρήση πάλι της DIM με το ίδιο όνομα
' ή ακόμα καλύτερα με πέρασμα αναφοράς σε συνάρτηση και εκεί αλλαγή μεγέθους ...π.χ. να πάρει ένα ακόμα στοιχείο!
ΠΙΝΑΚΑΣ a(10)
ΣΥΝΑΡΤΗΣΗ personal {
' Αυτή είναι η "προσωπική" συνάρτηση καλούμε συναρτήσεις με personal() χωρίς παράμετρο
' Στην Μ2000 τα ορίσματα των συναρτήσεων δεν είναι προκαθορισμένα! Μπορούμε να καλέσουμε
' τη συνάρτηση με ότι ορίσματα θέλουμε. Αρκεί να έχουμε κανονίσει ένα τρόπο να τα διαβάζουμε.
' και παραπάνω να βάλουμε δεν πειράζει!
' Για κάθε παρουσία θα υπάρξει μια νέα συνάρτηση.
' η c είναι τοπική στη συνάρτηση, ΔΙΚΟΜΟΥ@ΓΕΝΙΚΟ είναι σφαιρική, την βλέπουν όλες οι παρουσίες
' @@.a και @@.bb είναι ιδιότητες της κλάσης και πρέπει να γίνει αναφορά με το όνομα της παρουσίας
' εδώ δεν το γνωρίζουμε επειδή είναι το πρότυπο.
c=12
ΔΙΚΟΜΟΥ.ΓΕΝΙΚΟ++ \\έβγαλα το @ γιατί δίνει λάθος στην 8
\\ ΔΙΚΟΜΟΥ@ΓΕΝΙΚΟ++ ' από την έκδοση 6.3 έχω βάλει τα ++ -- += -= /= και *= για μεταβλητές (όχι για στοιχεία πινάκων)
'ΔΙΚΟΜΟΥ@ΓΕΝΙΚΟ=ΔΙΚΟΜΟΥ@ΓΕΝΙΚΟ+1
' η συνάρτηση δεν έχει "return" για επιστροφή τιμής αλλά = και η επιστροφή γίνεται στην αγκύλη τέλους.
=(@@.a+@@.b)*ΔΙΚΟΜΟΥ.ΓΕΝΙΚΟ+c ' στο δεξί μέρος η σφαιρική μεταβλητή μπορεί να γραφεί και με τελεία στη θέση του @
}
ΤΜΗΜΑ ΓΟΝΙΟΣ$ 'στο τέλος του πρότυπου επαναφέρουμε το όνομα του τμήματος σε αυτό του γονικού.
'πάνω σε αυτήν την δυνατότητα στήριξα όλο αυτό!
}
                      ' τώρα θα δώσουμε συναρτήσεις που θα έχουν να κάνουν με οποιαδήποτε παρουσία της κλάσης. Για να κάνουμε δοκιμές!
                      ' θα πρέπει να δίνουμε το όνομα σε αλφαριθμητικό και είναι λογικό αφού θα θέλουμε να έχουμε μια λίστα με ονόματα παρουσιών
          
                      Τμημα ΕΜΕΝΑ.ΘΕΣΕ {
                            Διαβασε ΟΝΟΜΑΠΑΡΟΥΣΙΑΣ$ : Τμημα ΟΝΟΜΑΠΑΡΟΥΣΙΑΣ$
                                  ' διαβάζουμε το όνομα παρουσίας και το κάνουμε όνομα τμήματος (namespace)
                            Διαβασε a, b, n$ ' διαβάζουμε απ΄ευθείας από το σωρό και τοποθετούμε τιμές στις ιδιότητες a, b, n$
                                                          'υποθέτουμε ότι θα στέλνουμε τιμές για αυτές τις ιδιότητες.
                            Τμημα ΓΟΝΙΟΣ$ ' επαναφέρουμε το όνομα του τμήματος με το όνομα του γονικού (να γιατί το κρατήσαμε)
                      }
                      Τμημα ΕΜΕΝΑ.ΤΥΠΩΣΕ {
                            Διαβασε ΟΝΟΜΑΠΑΡΟΥΣΙΑΣ$ : Τμημα ΟΝΟΜΑΠΑΡΟΥΣΙΑΣ$
                            Print a, b, n$ ' εδώ τυπώνουμε τις ιδιότητες (στις κλάσεις οι μεταβλητές που ανήκουν σε παρουσίες και έχουμε εξωτερική
                                                          ' πρόσβαση λέγονται ιδιότητες
                            Module ΓΟΝΙΟΣ$
                      }
                      ' Άρα μέχρι εδώ έχουμε φτιάξει πρότυπο, σφαιρικές μεταβλητές, μια για παράδειγμα και μια για λειτουργία λίστας
                      ' Και έχουμε φτιάξει μια συνάρτηση (μέθοδο της κλάσης) για την κάθε παρουσία ξεχωριστά και
                      ' δυο τμήματα, το ένα βάζει τιμές, το άλλο τυπώνει, για όλες τις παρουσίες της κλάσης.
          
                      ' Από εδώ ξεκινούν τα μαγικά!
                      ' Φτιάχνουμε ένα αλφαριθμητικό το οποίο θα μπει με μια ΕΝΘΕΣΗ (ένθεση κώδικα) τέσσερις φορές, μία για κάθε παρουσία
                      ' Το αλφαριθμητικό αυτό περιέχει μια εντολή ΕΝΘΕΣΗ που βάζει το αποτέλεσμα μιας Αλλαγη$( η οποία αλλάζει τα @@ με το ΝΑΗΚΛΑΣΗΜΟΥ$
                      ' στο πρότυπο ΓΕΝΙΚΟ@ΠΡΩΤΟ$
                      ' Έτσι μέσα στο Για {} θα έρθει και θα τρέξει τέσσερις φορές το πρότυπο με το σωστό όνομα παρουσίας,
                        ' Και θα αφήσει μεταβλητές Και συναρτήσεις.
                      ' θα μπορούσα να δώσω απευθείας το Ενθεση Αλλαγη$("@@",ΟΝΟΜΑΠΑΡΟΥΣΙΑΣ$,ΓΕΝΙΚΟ@ΠΡΩΤΟ$ ) αλλά ήθελα να φανεί το όνομα της κλάσης!
                      
                      ΝΑΗΚΛΑΣΗΜΟΥ$ = {Ενθεση Αλλαγη$("@@", ΟΝΟΜΑΠΑΡΟΥΣΙΑΣ$, ΓΕΝΙΚΟ@ΠΡΩΤΟ$ )}
                      Βαλε "ena", "allo", "ekeino", "kaiafto"
                      Για i = 1 Εως 4 {
                            Διαβασε ΟΝΟΜΑΠΑΡΟΥΣΙΑΣ$
                            Ενθεση ΝΑΗΚΛΑΣΗΜΟΥ$ 'καλούμε τον κατασκευαστή της κλάσης, βάζοντας κώδικα (στο αλφαριθμητικό που "τρέχει")!
                      }
                      ' τα μαγικά δεν σταματούν εδώ. Καθώς φτιάχνονταν τα παραπάνω...φτιάχνονταν και η συνδεδεμένη λίστα
                      ' Η οποία χρειάζεται για να αλλάξει την σειρά ή να διαγράψει κανείς κάποια παρουσία από τη σειρά!
                      ' Ας γεμίσουμε τις παρουσίες με στοιχεία (φαίνεται πως μπορούν να περάσουν και με Σειρα ή με Εισαγωγη από αρχείο!
                      ' Αυτός είναι ο Serialize τρόπος, ή σειριακός χειρισμός. Ο άλλος είναι να γίνεται ανά ιδιότητα το διάβασμα και το γράψιμο.
                      ΕΜΕΝΑ.ΘΕΣΕ "ena", 1, 2, "aaaaaaaa" 'οι τιμές πάνε στα αντικείμενα τα οποία περνάμε με όνομα
                      ΕΜΕΝΑ.ΘΕΣΕ "allo", 4, 5, "bbbbbbb" ' Η 6η έκδοση δεν γνωρίζει από κλάσεις!
                      ΕΜΕΝΑ.ΘΕΣΕ "ekeino", 7, 8, "ccccccccc"
                      ΕΜΕΝΑ.ΘΕΣΕ "kaiafto", 100, 120, "ok"
                      ' θα τυπώσω μόνο για το "ενα"
                      ΕΜΕΝΑ.ΤΥΠΩΣΕ "ena"
                      Τυπωσε "Τώρα όλα μαζί"
                      ' τώρα θα σβήσω το σωρό γιατί η Σειρα βάζει από το τέλος
                      Αδειασε ' αν και δεν περίμενα τίποτα εκεί, η καλή συνήθεια δεν βλάπτει!
                      Σειρα "ena", "allo", "ekeino", "kaiafto"
                      Για i = 1 Εως 4 {ΕΜΕΝΑ.ΤΥΠΩΣΕ }' δεν δίνω παράμετρο άμεσα στο Τμήμα, έχω δώσει στο σωρό.
                      ' χωρίς ΑΔΕΙΑΣΜΑ με την flush ή Αδειασε
                      Βαλε "kaiafto", "ekeino", "allo", "ena" ' με την ανάποδη σειρά ΤΕΛΕΥΤΑΙΟ ΜΠΑΙΝΕΙ ΠΡΩΤΟ ΒΓΑΙΝΕΙ (LIFO)
                      Για i = 1 Εως 4 {ΕΜΕΝΑ.ΤΥΠΩΣΕ }' πάλι ξανά
          
                      ' Ανά ιδιότητα χειρισμός:
                      ena.a( 4 ) = 1000 ' γράφουμε στον πίνακα του ena
                      Τυπωσε "ena.a(4)=" ; ena.a( 4 ) ' τυπώνουμε από τον πίνακα
                      ' θα καλέσουμε την συνάρτηση της ena τρεις φορές.
                      Για i = 1 Εως 3 {
                            Τυπωσε "ena.ΠΡΟΣΩΠΙΚΗ()=" ; ena.personal( ) ' η οποία χρησιμοποιεί ιδιότητες, σφαιρική μεταβλητή και τοπικές μεταβλητές.
                      }
                      ' Αλλάζω με σειριακό χειρισμό
                      ΕΜΕΝΑ.ΘΕΣΕ "allo", 1000, 2000, "George"
                      Τυπωσε "allo.n$=" ; allo.n$ ' ενώ διαβάζω με χειρισμό ανά ιδιότητα
                      Τυπωσε "allo.ΠΡΟΣΩΠΙΚΗ()=" ; allo.personal( ) ' εδώ καλώ την μέθοδο
                      kaiafto.a( 6 ) = 4
                      ' Πάμε στο τελευταίο μέρος των μαγικών όπου θα δούμε όλες τις παρουσίες
                      ' με γνώση μόνο ενός αντικειμένου, αυτού που είναι στην κορυφή στην ΤΕΛΕΥΤΑΙΑ@ΚΛΑΣΗ$
          
                      ' Θα ξαναφτιάξουμε ένα κώδικα σε αλφαριθμητικό, επειδή θέλουμε να τον καλέσουμε χωρίς να είναι σε τμήμα.
                      ' Γιατί όλες οι παρουσίες μας ανήκουν σε αυτό το τμήμα και κάθε Ενθεση βάζει κώδικα γι΄αυτό το τμήμα!
                      ' Επιπλέον θέλουμε να προσθέσουμε συνάμα και μια νέα ιδιότητα την check
                      ' η οποία θα έχει ρόλο σε αυτό τον κώδικα. θα καλέσουμε τον ίδιο κώδικα δυο φορές.
                      ' Την πρώτη φορά θα φτιάξει την ιδιότητα και θα τυπώσει όλα τις παρουσίες
                      ' Μετά θα αλλάξουμε μόνο την ιδιότητα σε μια συγκεκριμένη παρουσία.
                      ' Θα ξανά τρέξουμε τον ίδιο κώδικα και τώρα η ιδιότητα θα αλλάξει το τρόπο εμφάνισης αποτελεσμάτων!
                      ' Θα εξαιρέσει την παρουσία εκείνη για την οποία αλλάξαμε την ιδιότητα check.
          
                      ΣυνδεδεμενηΛιστα$ = {
' έχουμε βάλει στο σωρό την κορυφή της λίστας
Επαναλαβε {
Τμημα Γραμμα$ 'καθορίζουμε το όνομα του τμήματος (η letter$ ή Γραμμα$ σηκώνει το αλφαριθμητικό από τον σωρό)
' δείτε πως η αλλαγή έγινε μέσα το repeat για να γλιτώσουμε μια εντολή!
' Κοιτάμε με την valid() ή ΕΓΚΥΡΟ() αν υπάρχει η check, αν όχι τότε την φτιάχνουμε και βάζουμε τιμή
' αυτή θα φτιαχτεί για τον χώρο ονόματος module$ (μπορούμε να το διαβάσουμε σε αυτήν την μεταβλητή)
' ο οποίος είναι αυτό που περάσαμε παραπάνω στην module
Αν Οχι Εγκυρο(check) Τοτε check=Αληθης
Αν check Τοτε { ' τώρα θα υπάρχει η check
Τυπωσε "Αντικείμενο:";Τμημα$ ,, ' τυπώνουμε όνομα
Τυπωσε ">>>>>>>>>>>>>>>>";n$,, ' και ένα στοιχείο, για γούστο!
}
Βαλε ΕΠΟΜΕΝΗΚΛΑΣΗ$ ' Είχαμε κρατήσει όμως την επόμενη παρουσία και την βάζουμε στο σωρό (για να διαβαστεί από την Γραμμα$)
} Μεχρι ΕΠΟΜΕΝΗΚΛΑΣΗ$="" ' συνεχίζουμε μέχρι το τέλος όπου δεν υπάρχει επόμενη παρουσία.
Διαβασε ΑΔΕΙΟ$ ' πετάμε το "", ' μπορούμε να αδειάσουμε το σωρό FLUSH ΑΔΕΙΑΣΕ
Τυπωσε "Όνομα Τμήματος:";Τμημα$ ' εδώ έχει γυρίσει το όνομα στο σωστό χωρίς να δώσουμε εντολή!
' αυτό συμβαίνει γιατί με το πέρας της repeat το όνομα επανήλθε

}
                      Βαλε ΤΕΛΕΥΤΑΙΑ.ΚΛΑΣΗ$ ' Αυτό είναι το "ena"
                      Ενθεση ΣυνδεδεμενηΛιστα$ ' μπαίνει ο κώδικας και εκτελείται
                                              'υπενθυμίζω δεν μπαίνει σε αυτό το αρχείο αλλά στη "θέση" όπου έχει αντιγραφεί το αρχείο και μεταφράζεται
                                              ' η ένθεση γίνεται στο χώρο της μετάφρασης όχι σε αυτόν της αποθήκευσης!
                                              ' τώρα αλλάζουμε με ανά ιδιότητα χειρισμό την νέα ιδιότητα check
                      ekeino@check = Ψευδης
                      ' και ξανά τρέχουμε την "ανάγνωση συνδεδεμένης λίστας με περιορισμούς"
                      Βαλε ΤΕΛΕΥΤΑΙΑ.ΚΛΑΣΗ$
                      Ενθεση ΣυνδεδεμενηΛιστα$
                      ' και βλέπουμε πως το ekeino λείπει.
                      ' εδώ μπορούμε να δώσουμε μια Λιστα (list) και να μας δείξει ο μεταφραστής όλες τις μεταβλητές και τις ιδιότητες που έχουν "παρουσία"
                      ' μπορούμε να δώσουμε και την Τμηματα και να δούμε όλες τις μεθόδους που έχουν "παρουσία"
                      \ ΤΜΗΜΑΤΑ
                      ' εδώ η εσωτερική μεταβλητή μας δείχνει σε ποιό όνομα τμήματος βρισκόμαστε!
                      Τυπωσε "Όνομα Τμήματος:" ; Τμημα$
          
                      ' δεν μπορούμε να διαγράψουμε ένα αντικείμενο αλλά όλα θα διαγραφούν με το πέρας της παρουσίας αυτού του τμήματος!
                      ' ακριβώς τώρα
                      }
          ΕΝΑΕΠΙΠΕΔΟΚΑΤΩ ' εδώ καλούμε το τμήμα...(κλήση τμήματος μέσα σε τμήμα)
          }
          ΕΝΑΕΠΙΠΕΔΟ

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

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

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