Τετάρτη, 17 Φεβρουαρίου 2016

Εγχειρίδιο της Μ2000 - Τεύχος 8ο

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

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

4.4 Επικοινωνία αντικειμένων με αναφορές!

Καλούμε ένα τμήμα Αλφα1 και παρέχουμε δυο αντικείμενα με αναφορά. Το ένα αντικείμενο το καλούμε πέντε φορές δίνοντας αναφορά στο άλλο. Τελικά το πρώτο αντικείμενο έχει ένα αποτέλεσμα που εξαρτιέται και από τα δυο αντικείμενα. Αυτό συμβαίνει γιατί το πρώτο αντικείμενο πήρε την αναφορά από το δεύτερο και το κάλεσε δίνοντας αναφορά σε μια δική του μεταβλητή!

Ομάδα Αλφα {
      αποτέλεσμα
      κάτιάλλο=10
      Τμήμα ΠάρεΤιμές {
            Διάβασε &αλφα
            αλφα.πάρεπάλι &.αποτέλεσμα, .κάτιάλλο
      }    
}
Ομάδα ΜιαΆλλη {
      Δικόμου=3
      Τμήμα πάρεπάλι {
            Διάβασε &Κάτι, ΚάτιΑκόμα
            Κάτι+=ΚάτιΑκόμα*.ΔικόΜου
            Σημ 1 : Τύπωσε Κάτι \\ Μερικά αποτελέσματα
      }
}
Τμήμα Αλφα1 {
      Διάβασε &Βήτα, &Δέλτα

     Για Ι=1 έως 5 {
           Βήτα.ΠάρεΤιμές &Δέλτα
     }
}


Άλφα1 &Αλφα, &ΜιαΆλλη
Τύπωσε Άλφα.αποτέλεσμα \\ 150


Μπορεί να γραφτεί με το δεύτερο αντικείμενο εντός του Αλφα1

Ομάδα Αλφα {
      αποτέλεσμα
      κάτιάλλο=10
      Τμήμα ΠάρεΤιμές {
            Διάβασε &αλφα
            αλφα.πάρεπάλι &.αποτέλεσμα, .κάτιάλλο
      }    
}
Τμήμα Αλφα1 {
      Διάβασε &Βήτα
      Ομάδα ΜιαΆλλη {
            Δικόμου=3
            Τμήμα πάρεπάλι {
                  Διάβασε &Κάτι, ΚάτιΑκόμα
                  Κάτι+=ΚάτιΑκόμα*.ΔικόΜου
                  Σημ 1 : Τύπωσε Κάτι \\ Μερικά αποτελέσματα
            }
      }
     Για Ι=1 έως 5 {
           Βήτα.ΠάρεΤιμές &ΜιαΆλλη
     }
}


Άλφα1 &Αλφα
Τύπωσε Άλφα.αποτέλεσμα \\ 150



Όσο και αν προσπαθήσουμε δεν θα μπορούμε να βάλουμε μια αναφορά του ΜιαΆλλη στο Βήτα, ώστε στην επιστροφή από το Άλφα1 να υπάρχει μια αναφορά στο ανύπαρκτο πια ΜιαΆλλη (αφού θα διαγραφεί μόλις τερματίσει την εκτέλεσή του το Άλφα1)

Δείτε τώρα μια παραλλαγή του αρχικού εδώ, με χρήση ιδιότητας. Η ιδιότητα είναι μια ομάδα (μπορούμε να προσθέσουμε μέλη) που αφήνει στο γονικό μια ιδιωτική με το ίδιο όνομα και τους χαρακτήρες [, στην αρχή και ] στο τέλος . Στις ιδιότητες μπορούμε να ορίσουμε αν θα έχουν Αξία ή θα παίρνουν τιμές με τη Θέσε (διαφορετική από την εντολή Θέσε). Εδώ απλά αφήνουμε να έχει και τα δύο. Επίσης έγινε μια παραλλαγή, τα κάτιάλλο και δικόμου αλλάζουν κάθε φορά που καλούμε το ΠάρεΤιμές (αυτό δηλώνει ότι στα αντικείμενα μένει η αλλαγή κατάστασης όχι μόνο σε μια τιμή αλλά και σε άλλες)

Ομάδα Αλφα {
      Ιδιότητα αποτέλεσμα
      \\ η Άλφα θα έχει μια ιδιωτική [αποτέλεσμα]
      Ομάδα αποτέλεσμα {
            Τελεστής "+=" {
                  Ένωσε Γονικό [αποτέλεσμα] στο α
                  α+=αριθμός
            }
      }
      κάτιάλλο=10
      Τμήμα ΠάρεΤιμές (&αλφα) {
            αλφα.πάρεπάλι &.αποτέλεσμα, .κάτιάλλο : .κάτιάλλο++
      }    
}
Ομάδα ΜιαΆλλη {
      Δικόμου=3
      Τμήμα πάρεπάλι (&Κάτι, ΚάτιΑκόμα) {
            Κάτι+=ΚάτιΑκόμα*.ΔικόΜου : .Δικόμου++
      }
}
Τμήμα Αλφα1 (&Βήτα, &Δέλτα) {
     Για Ι=1 έως 5:Βήτα.ΠάρεΤιμές &Δέλτα:Επόμενο Ι
}

Άλφα1 &Αλφα, &ΜιαΆλλη
Για Άλφα, Μιαάλλη {
      Τύπωσε .αποτέλεσμα \\ 310
      \\ δυο τελείες στο Δικόμου δηλώνει το δεύτερο αντικείμενο, το Μιαάλλη
      Τύπωσε .κάτιάλλο, ..Δικόμου \\ 15, 8
}


Όταν η ιδιότητα επιστρέφει νούμερο τότε οι τελεστές σε παραστάσεις ισχύουν όπως αυτοί των αριθμών. Όμως το "+=" δεν ισχύει γιατί ο διερμηνευτής στην αριστερή έκφραση (Κάτι+= ) βρίσκει το αντικείμενο, και βλέπει το τελεστή οπότε αναζητεί την συνάρτηση "+=". Μπορούμε να φτιάξουμε τελεστές "+" και άλλους μόνο σε ομάδες που δεν  έχουν Αξία {} αλλά γυρνούν αντίγραφο του αντικειμένου τους.

Η ομάδα άλφα μπορεί να γραφτεί χωρίς ιδιότητα αποτέλεσμα αλλά απ'ευθείας με μια ομάδα αποτέλεσμα που κρατάει την τιμή στην ομάδα (και όχι στο γονικό όπως η ιδιότητα). Η διαφορά είναι ότι η γονική ομάδα άλφα δεν θα έχει πρόσβαση στην ιδιωτική τιμή, κάτι που είχε με την Ιδιότητα, και έτσι ακόμα και αν προς τα έξω η ιδιότητα δεν παρείχε Αξία ή δεν έδινε την Θέσε, εσωτερικά με την χρήση της ιδιωτικής μπορούσε να πάρει ή να αλλάξει τιμές χωρίς τον έλεγχο των Αξία{} και Θέσε {} (δουλεύουν ως συναρτήσεις εσωτερικά με Κάλεσε). Αν αφαιρέσουμε το Θέσε {} τότε η ομάδα αποτέλεσμα δεν θα υποστηρίζει το = για τον αριθμό αλλά για συγχώνευση από άλλη ομάδα (η εξ ορισμού συμπεριφορά, η οποία όμως στις ιδιότητες δεν ισχύει, βγαίνει λάθος).


     Ομάδα αποτέλεσμα {
      Ιδιωτικό:
            τιμήμου=0
      Δημόσιο:
            Τελεστής "+=" {
                  .τιμήμου+=αριθμός
            }
            Αξία {
                  =.τιμήμου
            }
            Θέσε {
                  Διάβασε .τιμήμου
            }
      }



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

4.5 Κλήση τμήματος από αντικείμενο με αναφορά στο ίδιο αντικείμενο!

Μια άλλη περίπτωση είναι όταν ένα αντικείμενο καλέσει ένα τμήμα άλλου αντικειμένου, ή ένα τμήμα γενικό (δεν μπορεί να καλεί τοπικά τμήματα ενός τμήματος που μπορεί να βρίσκεται το αντικείμενο διότι δεν το γνωρίζει, είναι εκτός εμβέλειας).

Τμήμα Γενικό Αλφα {
      Διάβασε
      Για Α {
            ++
            ++
            +=30
      }
}
Ομάδα Β {
      χ=10, ψ=30, ζ=100
      Τμήμα ΦτιάξεΜε {
            Αλφα &Αυτό
      }
}


Για Β {
      .ΦτιάξεΜε
      Τύπωσε .χ,,
}


Δείτε ότι το Αλφα έγινε γενικό με την λέξη Γενικό μετά το Τμήμα. Τμήματα, Συναρτήσεις και Κλάσεις γίνονται γενικά μετά τις λέξεις Τμήμα, Συνάρτηση, Κλάση

Αν θέλουμε και η Ομάδα να είναι γενική τότε πρέπει να δηλώσουμε Γενική Ομάδα

Κλάση Γενική Ζ {
      Χ=30, Υ
}
Γενική Ομάδα Α=Ζ()
Τμήμα ΔεςΜε {
      Τύπωσε Α.Χ
}
ΔεςΜε


4.6 Πολλαπλή Ανάθεση Πίνακα σε Ομάδα

Εδώ είναι η περίπτωση που ένας πίνακας σε μια ομάδα περνάει με αναφορά, και μια άλλη φορά αλλάζει πάλι αναφορά!

Ομάδα Αλφα {
      Πίνακας εσ() \\ δεν μεταφέρεται η αναφορά αν το Άλφα περαστεί σε αναφορά!
      Τμήμα Φόρτωσε_Πίνακα {
            \\ μόνο μια φορά!
            Ανέθεσε .εσ()
      }
      Συνάρτηση Κενός {
            =Διάσταση(.εσ())=0
      }
      Συνάρτηση α {
            =.εσ(αριθμός)
      }
      Τμήμα Νέα_Τιμή {
            Αν όχι .Κενός() Τότε {
                  Διάβασε που, τι
                  .εσ(που)=τι
            }
      }
      Τμήμα Δείξεμου {
            Αν διάσταση(.εσ())=1 τότε {
                  Για ι=0 έως διάσταση(.εσ(),1)-1
                        Τύπωσε .εσ(ι)
                  Επόμενο ι
            }
      }
}
Τμήμα ΔεςΜε {
      Διάβασε
      Τύπωσε κ.α(1) \\ δεν ισχύει το κ.εσ() λόγω ανάθεσης
      κ.Δείξεμου


}


Πίνακας Α(4)=10, Β(6)=30
Αλφα.Φόρτωσε_Πίνακα &Α()
Αλφα.Νέα_Τιμή 1, 1000
Τύπωσε Α(1) \\ 1000 γιατί είναι συνδεδεμένοι με τον εσωτερικό του Αλφα
ΔεςΜε &Αλφα
Αλφα.Φόρτωσε_Πίνακα &Β()
Αλφα.Νέα_Τιμή 1, 500
Τύπωσε Β(1) \\ 500 γιατί είναι συνδεδεμένοι με τον εσωτερικό του Αλφα
ΔεςΜε &Αλφα

Τύπωσε Β(1)
Βαλε Αλφα
Διάβασε Βήτα \\  δεν έχει αντιγραφεί η ανάθεση
Τύπωσε Βήτα.Κενός() \\-1


Δεν μπορούμε να αντιγράψουμε την αναφορά! Δηλαδή εδώ βλέπουμε ότι βάζουμε το Άλφα ως αντίγραφο στο σωρό και στην ανάγνωση (αντιγραφή του στο Βήτα) δεν θα πάρουμε την αναφορά αλλά θα έχουμε κενό πίνακα (πρέπει να γίνει ανάθεση).
Ενώ περνάμε το Άλφα με αναφορά του Α() στο εσ()  στη ΔεςΜε ουσιαστικά το εσ() υπάρχει μόνο για τις συναρτήσεις/τμήματα του Άλφα. Αν θέλουμε το εσ() να φαίνεται οπωσδήποτε στην ΔεςΜε τότε θα το περάσουμε ως ισχνή αναφορά και θα το κρατήσουμε έτσι (και εδώ αυξάνουμε τον .εσ() κατά 1 ):

Τμήμα ΔεςΜε {
      Διάβασε aa$
      Τύπωσε εκφρ(aa$.α(1) )
      aa$.Δείξεμου
      aa$.εσ(1)++
      Τύπωσε εκφρ(aa$.εσ(1))
}



4.7 Πέρασμα Συνάρτησης με Αναφορά

Μας ενδιαφέρει σε ένα αντικείμενο να δίνουμε εναλλακτικές συναρτήσεις για κάποιες δουλειές. Εδώ θέλουμε να πάρουμε ένα αποτέλεσμα και δίνουμε δυο μηδενισμούς και δυο επεξεργασίες, κάθε φορά με διαφορετική αναφορά σε συνάρτηση.

Συνάρτηση Α {
      Διάβασε Κ, Λ
      =Κ**2+3*Λ+5
}
Συνάρτηση Β {
      Διάβασε Κ, Λ
      =3*Κ**2+10*Λ-5
}
Κλάση Αλφα {
      Αποτέλεσμα
      Λ=3
      Τμήμα Όλο {
            Διάβασε &σ()
            Για Ι=0 έως 100 {
                  .Αποτέλεσμα+=σ(Ι, .Λ)
            }
      }
      Τμήμα Μηδένισε {
            Διάβασε .Λ
            .Αποτέλεσμα<=0
      }
}
Α=Αλφα()
Α.Μηδένισε 3
Α.Όλο &Α()
Τύπωσε Α.Αποτέλεσμα
Α.Μηδένισε 3
Α.Όλο &Β()
Τύπωσε Α.Αποτέλεσμα


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

4.8 Πέρασμα Συνάρτησης Αντικειμένου σε άλλο αντικείμενο με αναφορά

Εδώ διαφέρει η περίπτωση από την προηγούμενη γιατί περνάμε μεν την αναφορά της συνάρτησης, αλλά η συνάρτηση αυτή είναι ενός αντικειμένου και βλέπει τις μεταβλητές της, και τις ιδιωτικές, ακόμα και αν την περάσουμε με αναφορά!


Ομάδα Άλφα {
Ιδιωτικό:
      αθροισμα
Δημόσιο:
      Συνάρτηση ΚάνεΚάτι {
            .άθροισμα++
            Διάβασε Χ, Υ
            =Χ**2+10*Υ+5
      }
      Συνάρτηση άθροισμα {
            =.αθροισμα
      }
}


Ομάδα Βήτα {
      αποτέλεσμα
      Λ=3
      Τμήμα Όλο {
            Διάβασε &σ()
            Για ι=0 έως 99 {
                  .αποτέλεσμα+=σ(ι, .Λ)
            }
      }
}


Για κ=1 έως 5 {
      Βήτα.Λ=κ
      Βήτα.Όλο &Άλφα.ΚάνεΚάτι()
      Τύπωσε Βήτα.αποτέλεσμα
}
Τύπωσε Άλφα.άθροισμα()


4.9 Πέρασμα μέρους τμήματος σε άλλο τμήμα με αναφορά!

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

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


Α=10
Περιγραφή$="Το βασικό τμήμα"
Τμήμα ΚάτιΆλλο {
      Διάβασε
      Τύπωσε "οκ", Λ.Χ
}
Συνάρτηση Ψεύτικη {
      Διάβασε
      Α++
      Λ.Χ++
      Τύπωσε Περιγραφή$, Λ.Χ
      ΚάτιΆλλο &Λ
}
Τμήμα ΔεςΜε {
      Διάβασε &Α()
      Ομάδα Μ {
            Χ=10
      }
      Για ι=1 έως 10 {
            Κάλεσε Α(&Μ)
            Σημ 1 : Τύπωσε Μ.Χ \\ δες το αποτέλεσμα
      }
}
Τμήμα ΔεςΚαιΑυτό {
      Διάβασε &Α$()
      Τύπωσε Α$()
}
ΔεςΜε Οκν$(&Ψεύτικη())
Α$=Οκν$(Περιγραφή$+γραφή$(Α))
Περιγραφή$="Όλα Καλά"
ΔεςΚαιΑυτό Οκν$(Περιγραφή$)
\\ Η Α$ περιέχει την οκνηρή αποτίμηση του Περιγραφή$+γραφή$(Α)
ΔεςΚαιΑυτό Α$
Τύπωσε Α \\ 20


Ο άλλος τρόπος είναι με την χρήση πάλι της Οκν$() με πέρασμα παράστασης που τρέχει πάντα στο τμήμα που την φτιάξαμε.
Αυτό που δεν φαίνεται και στις δυο περιπτώσεις είναι ότι ο σωρός δεν αλλάζει, και είναι ο σωρός του τμήματος ΔεςΜε αν και μεταξύ τους τα τμήματα μοιράζονται τον ίδιο σωρό αν είναι στην ίδια γραμμή εκτέλεσης (ενώ οι συναρτήσεις ξεκινούν δική τους γραμμή εκτέλεσης).
Δείτε ότι η Α$ πήρε την παράσταση Περιγραφή$+γραφή$(Α) αλλά δεν έβγαλε αποτέλεσμα. Αυτό θα βγει όταν χρησιμοποιηθεί, σε κλήση συνάρτησης δηλαδή.
Μια άμεση χρησιμότητα της Οκν$() είναι να γεμίζουμε ένα πίνακα με έναν αριθμό στοιχείων.
Πάντα η Οκν$()  δίνει ανώνυμη συνάρτηση:

Β=10
Πίνακας Α()
Α()=Συνάρτηση(Οκν$(1,2,3,4,5,Β))
Τύπωσε Α(5) \\ 10


Ανώνυμη συνάρτηση φτιάχνουμε και με απλό τρόπο απλά δεν μπορεί να συνδεθεί με ένα τμήμα ή με ένα αντικείμενο!
Τύπωσε Συνάρτηση("{=Αριθμός**Αριθμός}",2,3)
Όμως με την χρήση της Οκν$ δεν χρειάζεται να βάλουμε κώδικα μέσα σε αλφαριθμητικό:
Τύπωσε Συνάρτηση$(οκν$(Κεφ$(γραμμα$+"/"+γράμμα$)) ,"Ένα", "Δύο")

(Σε επόμενο τεύχος θα δούμε τις διακλαδώσεις και τις επαναλήψεις, τον τρόπο να αλλάζουμε τη ροή του προγράμματος)

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

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