ZX Spectrum, Μαθηματικά πέρα από το manual


Στον ΖΧ υπάρχουν έτοιμες συναρτήσεις, τις οποίες μπορείτε να τις βρείτε σ' οποιοδήποτε manual, δεν υπάρχουν όμως όλες οι ρίζες (εκτός της τετραγωνικής), σ' αυτό θα επιστρατεύσουμε την Αλγεβρα....  

Αν θέλω τη ν-οστή ρίζα του x, χρησιμοποιώ τον τελεστή ύψωσης σε δύναμη μ' εκθέτη το (1/ν), π.χ.:


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

1. ^
2. * /
3. + -

Στην περίπτωση που η παράστση έχει τελεστές πράξεων με ίδια προτεραιότητα, εκτελούνται από αριστερά προς τα δεξιά. Αν θέλουμε ν' αλάξουμε τη σειρά εκτέλεσης των πράξεων, κάνουμε χρήση παρενθέσεων.


Στον ΖΧ, καθορίζετε μια συνάρτηση με την τοποθέτηση της DEF δήλωσης κάπου στο πρόγραμμα. Παραδείγματος χάριν, ο καθορισμός μιας λειτουργίας FN της οποίας το αποτέλεσμα είναι το τετράγωνο ενός αριθμού...

DEF FN s(x)=x*x

Το s μετά από την DEF FN είναι το όνομα της function. Το x μέσα στις παρενθέσεις είναι ένα όνομα το οποίο αναφέρετε στο argument (ή παράμετρος) της function. Μπορείτε να χρησιμοποιήσετε ένα γράμμα γι' αυτό (ή, αν το argument είναι λέξη, ένα γράμμα με δίπλα το $).

Μετά το σύμβολο = ακολουθεί ο πραγματικός καθορισμός της function. Αυτό μπορεί να είναι οποιαδήποτε έκφραση και μπορεί επίσης να αναφερθεί το argument χρησιμοποιώντας το όνομα που έχετε δώσει (σε αυτό το παράδειγμα το x) σαν να ήταν μια συνηθισμένη μεταβλητή.

Όταν εισαγάγετε μια τέτοια γραμμή, μπορείτε να καλέσετε την function ακριβώς όπως τις ενσωματωμένες του ΖΧ functions, με τη δακτυλογράφηση του ονόματός της, FN s, ακολουθούμενο από το argument. Θυμηθείτε ότι όταν καθορίζετε μια λειτουργία οι ίδιοι, το argument πρέπει να εσωκλείεται εντός παρενθέσεων. Δοκιμάστε...

PRINT FN s(2)
PRINT FN s(3+4)
PRINT 1+ INT FN s ( LEN "chicken"/2+3)

Μόλις βάλετε την αντιστοιχία της DEF δήλωσης μέσα στο πρόγραμμα, μπορείτε να χρησιμοποιήσετε την δική σας functions στις εκφράσεις ελεύθερα.

ZX_Jim Greece

e-mail: dcotsos2015@gmail.com