Δευτέρα 30 Νοεμβρίου 2015

Περί Αριθμητικών Μεταβλητών, Πράξεων, Τελεστών.

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

\\ Μάθημα Η αριθμητική μεταβλητή, Τελεστές και Συναρτήσεις
\\ θα δούμε την μεταβλητή που κρατάει έναν αριθμό
\\ θα δούμε διάφορες χρήσεις, υπό μορφή δοκιμών


\\ το ? είναι συντομογραφία της ΤΥΠΩΣΕ
\\ βάλτε Έξοδος όπου θέλετε να τερματίζει το τμήμα
\\ ώστε να το βλέπετε προοδευτικά..

\\ Απόδοση τιμής
Α=10
? Α ' 10
\\ Απόδοση ή αντικατάσταση τιμής;
\\ Αντικατάσταση θα το λέγαμε αν αυτός ήταν ο στόχος μας
\\ Αλλά ποια τιμή εδώ αντικαθιστούμε; Άρα εδώ λέμε Απόδοση..
\\ δηλαδή δίνουμε μια τιμή.


\\ Αύξηση κατά ένα
Α++
? Α ' 11

\\ Αύξηση κατά δέκα
Α+=10
? Α ' 21

\\ Απόδοση τιμής από την έκφραση Α+10
Α=Α+10
\\ Σε γλώσσες που δεν υπάρχει += λέμε αύξηση επειδή
\\ το καταλαβαίνουμε από την έκφραση
\\ Η Α στην έκφραση Α+10 αφήνει την τιμή της
\\ Πρώτα εκτελείται η έκφραση, και το αποτέλεσμα δίνεται στην Α
? Α '31

\\ Υπάρχει εντολή που καθαρίζει, βάζει αυτό που λέμε αρχική τιμή
\\ στους αριθμούς η αρχική τιμή είναι το μηδέν
Καθαρό Α
? Α '0

\\ Μπορούμε να δώσουμε τιμή απ' ευθείας με έκφραση
\\ το είδαμε με το Α+10, αλλά θα μπορούσε να ήταν κάτι άλλο
\\ μια πιο σύνθετη έκφραση με παρενθέσεις
Α=(5-3)*4/(8-4)
? Α '2

\\ Και το μηδέν είναι μια τιμή ή μια απλή έκφραση!
Α=0
? Α '0

\\ Υπάρχουν και συγκρίσεις που δίνουν τιμές
\\ Αν είναι αληθής τότε δίνουν -1 αλλιώς δίνουν 0
Α=5>3
\\ το 7-(2=5) δεν είναι καθαρή έκφραση σύγκρισης
\\ προσθέτει έναν αριθμό με έναν αριθμό από σύγκριση
\\ βγαίνει αριθμός αλλά δεν έχει νόημα εκτός και αν του δίνουμε εμείς!
? Α, 5<3, 5=3+2, 7-2=5, 7-(2=5) ' -1, 0, -1, -1, 7
Α=Αληθής \\ μοναδιαία σύγκριση - υπάρχουν δυο ποιότητες, -1 και 0
? Α, Ψευδής, Ψευδές, Αληθές
\\ πράξεις με μοναδιαίες συγκρίσεις
? Α και Ψευδές, Α και Αληθές, Α ή Ψευδές, Α ή Αληθές
? Α από Ψευδές ' A xor B  exclusive or αποκλειστικο ή.
\\ πράξεις με συγκρίσεις
Α=Αληθής από Αληθής ' αυτό είναι Ψευδές
\\ Αλλάξτε τις εκφράσεις  να δείτε τι γίνεται
\\ το όχι κάνει αντιστροφή μοναδιαίας σύγκρισης:
\\ το αληθές το κάνει ψευδές, και το ψευδές το κάνει αληθές
? 5>3 ή 2+1=3, 2*3+3=20/2-1 και όχι Α
\\ Υπάρχουν δεκαδικά και πρόσημο (εδώ το -)
\\ το --2=+2 είναι και το -----2=-2
Α=-12.455
? Α, --2=+2, -----2=-2 '-12.455  -1 -1
\\ Ακρίβεια συγκρίσεων σε δεκαδικά, χρήση του διπλού ==
Α=1/3
Τυπωσε Α=1-2/3, Α==1-2/3 ' το πρώτο δίνει Ψευδές, το δεύτερο Αληθές.
\\ Η ισότητα εφαρμόζεται σε αυτό που αποδίδεται από την έκφραση
? (1-2/3)-1/3=0, (1-2/3)=1/3 '' 0 και 0
\\ Όμως δεν μπορούν όλοι οι αριθμοί να αποδοθούν επακριβώς
\\ Έτσι εκεί που ξέρουμε ότι υπάρχουν διαιρέσεις χρησιμοποιούμε το διπλό ίσον
\\ το οποίο συγκρίνει τροποποιημένες τιμές με μια μέθοδο στρογγυλοποίησης.
? (1-2/3)-1/3==0, (1-2/3)==1/3 '' -1 και -1 (κόβει από το 13ο δεκαδικό)
? Στρογγ(1.4555555555555, 5) ' μπορώ να επιλέγω που θα στρογγυλοποιώ
\\ Μπορώ να δώσω τιμή με επιστημονική γραφή με e ή ε για την ύψωση σε δύναμη του δέκα.
Α=1.234523ε+6 ' 1.234523 x 10**6 = 1234523
? Α , 12345.23*10**2, 1.234523*10^6
\\ Μπορώ να δώσω δεκαεξαδική τιμή
Α=0xA ' το αριστερό Α είναι στα ελληνικά, το δεξί στα αγγλικά
? Α ' 10
Δεκαεξ Α, 15, 0x102-0x03, 1024 ' η Δεκαεξ είναι η ? με εξαγωγή σε δεκαεξαδικό
\\ Χρώματα
Α=#010000 ' χρώμα κατά Html
\\ εδώ δίνεται ως αρνητικός επειδή θετικά είναι τα 1 έως 15, τα βασικά χρώματα
\\ RGB τιμές κάθε τιμή 00 έως FF, άρα όλο από #000000 μαύρο εως #FFFFFF άσπρο
\\ στην πραγματικότητα το χρώμα αποθηκεύεται ως BGR
\\ το #0102AA είναι το 0xAA0201 ως απόλυτη αξία
? -Α ' δινει 1, με το - αφαιρούμε το εσωτερικό -
' Εδώ έχουμε ίδια τιμή σε όλα!
? -Χρώμα(0x01, 0x02, 0xAA), -#0102AA, 0xAA0201
e=2.71828182845905 ' πρέπει να την δηλώσουμε ενώ η πι υπάρχει.
? πι, Λογ(10), Λφ(e**2) ' 3.14..., 1, 2
? Συν(45), Ημ(60), Εφαπ(100)
? Τοξ.Εφ(10) ' επιστρέφει τη γωνία σε μοίρες
? Απολ(-34), Ακ(12.34554), Ακ(12.98) ' 34, 12, 12
Κάνε Ακερ(Χ)=ΑΚ(Χ+.5)
? Ακερ(12.34554), Ακερ(12.98) ' 12, 13
\\ δεν χρησιμοποιούμε τη στρογγυλοποίηση για να πάρουμε ακέραια τιμή
\\ μπορεί να δίνει κάποια φορά σωστό αποτέλεσμα
? Στρογγ(12.34554,0), Στρογγ(12.98,0)
\\ αλλά όχι πάντα:
? Στρογγ(1+1/2,0), Στρογγ(2+1/2,0) ' δίνει 2 και 2
? Ακερ(1+1/2,0), Ακερ(2+1/2,0) ' δίνει 2 και 3
? Ρίζα(2), 2**.5, 2**(1/2), 2^(1/2)
? Έγκυρο(Α/0) ' τυπώνει 0 δεν είναι έγκυρο, επειδή έχουμε διαίρεση με το μηδέν
? Εκφρ("Α+34"), Α+34 ' 33   33
? Τυχαίος(10), Τυχαίος(1,5)
? Μικρό.Σειράς(5,2,67,34)
? Μεγάλο.Σειράς(5,2,67,34)
\\ Αλλαγή τιμών δυο μεταβλητών μεταξύ τους
Β=5
Α=6
Άλλαξε Α, Β ' μοντέρνος τρόπος
? Α, Β
\\ παραδοσιακός τρόπος μέσω τρίτης μεταβλητής.
Γ=Β : Β=Α : Α=Γ
? Α, Β
\\ Στο Γ=Β έχουμε κανονικα αυτό Γ=(Β) όπου το Β είναι αποτέλεσμα έκφρασης
\\ Δηλαδή μετά το = ο διερμηνευτής ψάχνει για έκφραση, βρίσκει το Β
\\ παίρνει την τιμή του και ψάχνει για κάτι άλλο, δεν βρίσκει και το δίνει ως αποτέλεσμα
\\ αυτό πάει στο Γ, άρα από το Β στο Γ πάει με δυο αντιγραφές.
\\ Άρα για να αλλάξουμε τιμές με το παραδοσιακό τρόπο θα κάνουμε έξι αντιγραφές
\\ Στην Άλλαξε Α, Β κάνουμε δυο μόνο, πάει η τιμή του Α σε μια προσωρινή,
\\ του Β στο Α και η προσωρινή στο Β, δηλαδή σαν τον παραδοσιακό τρόπο, αν δεν κατανοούσαμε
\\ ότι δεξιά έχουμε εκφράσεις που τυχγάνουν να έχουν μόνο μια μεταβλητή.
\\ Και εδώ οι παρακάτω συναρτήσεις είναι μόνο για μεταβλητές και μάλιστα μόνο για δύο
? Μικρό(Α, Β), Μεγάλο(Α, Β)
\\ Συγκρίσεις μεταβλητών
\\ το <> σημαίνει διάφορο, όχι ίσο, ή μικρό ή μεγάλο
\\ δίνει εδώ: 0, -1, -1, -1, 0, -1
? Α=Β, Α>Β, Β<Α, Α>=Β, Α<=Β, Α<>Β
\\ Στις εκφράσεις οι συγκρίσεις γίνονται σε αποτελέσματα εκφράσεων.
\\ άρα γίνεται αυτό (Α)=(Β) όπου (Α) είναι το αποτέλεσμα της έκφρασης.
\\ Θέλουμε κάτι να γίνεται μόνο σε μεταβλητές (όπως στις Μικρό() και Μεγάλο())
\\ Η Σύγκρινε περιμένει μεταβλητές (ή στοιχεία πίνακων) και συγκρίνει απ' ευθείας τις τιμές τους
\\ Το αποτέλεσμα είναι -1 αν το Α είναι μεγαλύτερο,0 αν είναι ίσα ή 1 αν το Β είναι μεγαλύτερο
? Σύγκρινε(Α,Β)
Α=10.5
Β=3.3
\\ τις τιμές Α και Β τις μετατρέπουν οι ΔΙΑ και ΥΠΟΛΟΙΠΟ (ΥΠΟΛ) σε ακέραιες πρώτα
? Α Διά Β, Α Υπόλοιπο Β, Α Υπολ Β
? 10 δια 2.999 ' δίνει 5  .. 2*5=10
? 10 δια 3 ' δίνει 3
? 1/2+5/2+3 δια 2+10 υπολ 3 ' δίνει 5....0.5+2.5+1+1
? 10 υπολ 3*2+10 υπολ (3*2) ' δίνει 2+4=6
\\ Ο διερμηνευτής δεν χρειάζεται πολλές παρενθέσεις
? 10 υπολ 3*2>10 υπολ 9 ' δίνει -1 (αληθές)
? 10 υπολ 3*2>10 υπολ 9 και 5<3 ' δίνει ψευδές (αληθές και ψευδές δίνει ψευδές)
\\ Το παραπάνω είναι της μορφής:
? 2>1 και 5<3
\\ οι λογικοί τελεστές λειτουργούν με το 0 και το μη μηδέν.
\\ κάθε μη μηδέν είναι αληθές (όχι ειδικά το -1)
\\ δεν ισχύει αυτό για την Όχι (Δεν, Not)
\\ Η όχι κάνει -1*(0)-1=(-1) ή -1*(-1)-1=(0)  δηλαδή -1*(Χ)-1=Υ
\\ το και (And)
? 1 και 1 και' οκ
? 1 και 1 και 0
? 1 και 0 και 0
? 0 και 0 και 0
? 0 και 0 και 1
? 0 και 1 και 1
? 1 και 0 και 1
\\ το ή (Or)
? 1 ή 1 ή 1
? 1 ή 1 ή 0
? 1 ή 0 ή 0
? 0 ή 0 ή 0  ' μόνο εδώ δίνει 0
? 0 ή 0 ή 1
? 0 ή 1 ή 1
? 1 ή 0 ή 1
\\ το από (Xor)
? 1 από 1 από 1 ' οκ
? 1 από 1 από 0
? 1 από 0 από 0 ' οκ
? 0 από 0 από 0
? 0 από 0 από 1 ' οκ
? 0 από 1 από 1
? 1 από 0 από 1
\\ πώς είναι το Not Xor ή το Όχι Από;
\\ πρέπει το όχι να το έχουμε έξω από το Από
\\ όχι ( Α από Β )
\\ αλλιώς το οχι έχει εμβέλεια μέχρι το πρώτο συνθετικό της έκφρασης
\\ Εδώ είναι ο τύπος του Όχι Απο (Xnor) με τα (και, ή, όχι)
κάνε ΌχιΑπό(α, β)=(α και β) ή (όχι α και όχι β)
\\ Τώρα δημιουργούμε το πίνακα αληθείας
\\ θέλουμε ίδιο αποτέλεσμα και στις δυο εκφράσεις
Για ι=-1 έως 0 {
      Για κ=-1 εως 0 {
            ? ">>>>>>", ι,κ
            ? ΌχιΑπό(ι, κ)
            ? όχι (ι από κ)
      }
}



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

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

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