Τρίτη 22 Σεπτεμβρίου 2015

Προγραμματισμός 0002

Δελτίο 0002
Τίτλος Μαθηματικές Συναρτήσεις ( έκδοση 8 αναθεώρηση 48)

Διαβάζοντας την ΓΛΩΣΣΑ του σχολείου (μια ψευδογλώσσα για να κάνουν οι μαθητές ασκήσεις), διαπίστωσα ότι είχαν την συναρτηση EXP(). αυτή είναι η γνωστή συνάρτηση f(x)=e^X  όπου το σύμβολο ^ δηλώνει την ύψωση σε δύναμη.

Στην Μ2000 δεν έχω ορίσει αυτή την συνάρτηση. Μπορεί όμως κάποιος να την ορίσει. Υπάρχει ο φυσικός LN και ο δεκαδικός λογάριθμος LOG.

def exp(x)= 2.71828182845905^x
Print ln(exp(1.24412))  \\ 1.24412
Print ln(2.71828182845905)  \\ 1
Στα ελληνικά οι εντολές είναι:
Κάνε εκθ(χ)= 2.71828182845905^χ
Τύπωσε Λφ(εκθ(1.24412))
Τύπωσε Λφ(2.71828182845905)

Αν μας ενδιαφέρει να γνωρίζουν την συνάρτηση και άλλα τμήματα μέσα στο τμήμα μας τότε θα την κάνουμε γενική (αλλά με την κανονική μορφή, όχι με την ειδική όπως με την εντολή Κάνε)

Συνάρτηση γενική εκθ {=2.71828182845905^αριθμός}
τμήμα άλφα {
      Τύπωσε Λφ(εκθ(1.24412))
      Τύπωσε Λφ(2.71828182845905)
}
άλφα
Το οποίο είναι ίδιο με αυτό:
Συνάρτηση γενική εκθ {
      Διάβασε Χ 
      =2.71828182845905^Χ
}
τμήμα άλφα {
      Διάβασε α, β
      Τύπωσε Λφ(εκθ(α))
      Τύπωσε Λφ(β)
}
άλφα 1.24412, 2.71828182845905

Εδώ δείχνουμε πώς περνάμε τιμές σε τμήματα και συναρτήσεις. Τις στέλνουμε στο σωρό από όπου τις διαβάζουμε. Δείτε παραπάνω την μεταβλητή μόνο ανάγνωσης αριθμός. Αυτή διαβάζει απ΄ευθείας τον σωρό χωρίς να περάσει την τιμή σε μεταβλητή. Στο πρώτο παράδειγμα η Κάνε δήλωνε την εκθ με παράμετρο Χ. Θα μπορούσε κανείς να την καλέσει με περισσότερες παραμέτρους και να τις λάβει με τον αριθμό. Αν δώσουμε περισσότερες παραμέτρους, και δεν τις χρησιμοποιήσουμε στην συνάρτηση τότε στην επιστροφή θα χαθούν.

Στις βασικές αριθμητικές συναρτήσεις είναι η ΑΠΟΛ() που γυρίζει την απόλυτη τιμή  (πάντα το θετικό νούμερο), και η ΑΚ() που γυρίζει την ακέραια τιμή. Μια ακόμα είναι η συνάρτηση πρόσημο, που γυρίζει -1 αν είναι αρνητικός ο αριθμός, ή 0 αν είναι μηδέν, ή 1 αν είναι θετικός μη μηδενικός.
Ένας εύκολος τρόπος είναι να φτιαχτεί η SGN() με την χρήση της Compare() μια ειδική συνάρτηση που συγκρίνει μεταβλητές (δεν δέχεται εκφράσεις, κάνει απ΄ευθείας σύγκριση με την μνήμη που σώνουν τις τιμές τους οι μεταβλητές). Το ? μπορεί να χρησιμοποιηθεί ως Print. Με function global κάνουμε την συνάρτηση γενική!

function sgn {
      clear Y : read X
      =compare(X,Y)
}
? sgn(-4), sgn(0), sgn(5)  \\ -1 0 1

Και Ελληνικά
Συνάρτηση Πρόσημο {
      Καθαρό ψ : Διάβασε χ
      =Σύγκρινε(χ,ψ)
}
Τύπωσε Πρόσημο(-4), Πρόσημο(0), Πρόσημο(5)

Μια νέα συνάρτηση που μόλις πρόσθεσα (έκδοση 8, αναθ. 48) είναι η ATN() ή ΤΟΞ.ΕΦ() που δίνει αποτέλεσμα σε μοίρες. Οι κλασικές ΣΥΝ(), ΗΜ() σε μοίρες.  (COS(), SIN() στην αγγλική)

Μπορούμε στην οθόνη να σχεδιάζουμε με χρήση συντεταγμένων καρτεσιανών και πολικών. Μπορούμε να δίνουμε απόλυτες τιμές ή σχετικές για τις καρτεσιανές συντεταγμένες. Οι πολικές συντεταγμένες είναι γωνία και απόσταση, όπου η γωνία είναι απόλυτη σε σχέση με την οθόνη, και η απόσταση θα είναι σχετική μετάθεση, βάσει της γωνίας. Μπορούμε να χρησιμοποιήσουμε το Pi ή Πι και να επιλέγουμε γωνίες σε ακτίνια με διαίρεση, π.χ. Pi/2 είναι η κατακόρυφη "πορεία" προς τα άνω, ενώ -Pi/2 ή Pi*1.5 είναι η "πορεία" προς τα κάτω.
Ο καμβάς μας έχει χ.σημεία και υ.σημεία σε twips, όπου Πλάτος.Σημείου και Ύψος.Σημείου είναι ο αριθμός twips για κάθε ξεχωριστό εικονοστοιχείο (pixel). Δεν μας ενδιαφέρει εδώ να γράφουμε ανά εικονοστοιχείο, αυτό το καθορίζει το σύστημα ανάλογα. Μας ενδιαφέρει το μέγεθος του καμβά αν θέλουμε να εμφανίσουμε κάτι σε συγκεκριμένο μέγεθος. Διαφορετικά μπορούμε να δουλεύουμε σκεπτόμενοι ότι ο χώρος ανεξάρτητα πόσο μεγάλος είναι όταν θα το διαιρέσουμε θα έχουμε πάντα τα μέρη που θέλουμε.

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

Ο δρομέας χαρακτήρων είναι διαφορετικός. Το σύστημα κρατάει λογαριασμό για όλα τα επίπεδα (πίσω επίπεδο ή περιθώριο, το επίπεδο της οθόνης και υπάρχουν άλλα 32 επίπεδα, καθώς και η σελίδα του εκτυπωτή).

Οθόνη, 0  \\ σβήνει την οθόνη με το τρέχον χρώμα φόντου και απενεργοποιεί τον διαχωρισμό της.
Θέση Χ.Σημεία/2, Υ.Σημεία/2
Τύπωσε @(0,2), Θέση.Χ, Θέση.Υ  \\ τυπώνει στην 3 γραμμή τα νούμερα.
Κύκλος  μικρό.σειράς(θέση.χ, θέση.υ)*2/3


Εδώ βλέπουμε τη συνάρτηση μικρό.σειράς() η οποία παίρνει όσες παραμέτρους θέλουμε και δίνει το μικρότερο. Υπάρχει και το μεγάλο.σειράς(). Υπάρχουν και οι εκδόσεις για τα αλφαριθμητικά με το $ στο τέλος, μικρό.σειράς$(), μεγάλο.σειράς$()
Για γρήγορα αποτελέσματα υπάρχει το μικρό() και μεγάλο() που δέχεται μόνο δύο αριθμητικές μεταβλητές, όχι αριθμητικές εκφράσεις. π.χ. Α=10, Β=5 : Τύπωσε Μικρό(Α,Β) \\τυπώνει 5

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

1) Καρτεσιανές Συντεταγμένες
ΧΑΡΑΞΕ σχετικη_θεση_χ, σχετικη_θεση_ψ, χρωμα
2) Πολικές Συντεταγμένες
ΧΑΡΑΞΕ ΓΩΝΙΑ  απολυτη_γωνια_χ, αποσταση,  χρωμα
      απόλυτη γωνία σημαίνει ότι το 0 θα δίνει πάντα κατεύθυνση δεξιά
      οι γωνίες είναι σε ακτίνια (2*πι είναι πάλι το 0, κατεύθυνση δεξιά)
      Το χρώμα και στις δυο περιπτώσεις μπορεί να είναι:
       α) Σταθερά χρώματα των WINDOWS από 0 έως 15
       β) RGB (RED, GREEN, BLUE) με πρόσημο -
       μπορεί κανείς να χρησιμοποιήσει την συνάρτηση ΧΡΩΜΑ( κόκκινο,  πράσινο, μπλε)
       τα βασικά χρώματα δέχονται τιμές 0 .. 255. Η συνάρτηση αυτή μπορεί να χρησιμοποιηθεί οπουδήποτε έχουμε να δώσουμε τιμή χρώματος και δίνει ένα αρνητικό νούμερο. Η έκτη έκδοση περνάει και τιμές δεκαεξαδικές..π.χ. -oxffffff είναι το άσπρο (το - χρειάζεται γιατί τα θετικά νούμερα τα βλέπει ο διερμηνευτής ως χρώματα των Windows)
      γ) 0Χ80000001 (δεκαξαδικός αριθμός) δίνει χρώμα του συστήματος των Windows (για προχωρημένους)
3)  Χαραξε εως 3000,4000
      Χαραξε εως 3000,4000, 4
      Χαράζει γραμμή από τη θέση του δρομέα γαφικών  έως τις απόλυτες συντεταγμένες 3000, 4000 που θα γίνουν η νέα θέση του δρομέα.
   
ΠΑΡΑΔΕΙΓΜΑ
      ΘΕΣΗ 3000,3000
      ΧΑΡΑΞΕ 2000,0
      ΧΑΡΑΞΕ 0,2000,15
      ΧΑΡΑΞΕ -2000,0
      ΧΑΡΑΞΕ 0,-2000,14
      ΧΑΡΑΞΕ ΓΩΝΙΑ ΠΙ/4,2000,5
   
ΘΕΣΗ μετακινεί σε απόλυτη θέση τον δρομέα γραφικών
ΒΗΜΑ μετακινεί σε σχετική θέση τον δρομέα γραφικών (έχει και ΒΗΜΑ ΓΩΝΙΑ όπου η γωνία είναι απόλυτη και παρέχουμε και την απόσταση)

Θα προσθέσω μόνο ότι το χρώμα μπορεί να δοθεί και με όπως στην Html με # και έξι δεξαεξαδικά ψηφία. Δοκιμάστε από εδώ http://encycolorpedia.com/fdf5e8  το χρώμα #fdf5e8 που είναι το Paper White. Και για πένα http://encycolorpedia.com/002147 το Oxford Blue.
Οθόνη #fdf5e8 : Πένα #002147

Δείτε πώς γράφουμε επιγραφές με γωνία και ό,τι μέγεθος θέλουμε στο δρομέα γραφικών

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





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

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

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