Τετάρτη, 28 Οκτωβρίου 2015

Αναθεώρηση 72

Αναθεώρηση 72.
(μια μικρή διόρθωση στην 71, για να βγαίνουν σε Ελληνικά το Περιβάλλον Μ2000...είχε χαλάσει με την αλλαγή των ρουτινών εκτύπωσης. Τώρα είναι ΟΚ)

Έφτιαξα την ROUND() για στρογγυλοποίηση, (ή ΣΤΡΟΓΓ() στα ελληνικά). Επιπλέον έφτιαξα και την ΓΙΑ ΕΠΟΜΕΝΟ να λειτουργεί με χρήση στρογγυλοποίησης. Π.χ. για το διάστημα από 1. έως 1.3 ανά 0.1 πρέπει να δώσει τρεις επαναλήψεις και όχι δύο. Παρακάτω επεξηγώ και πώς δουλεύει η ΓΙΑ σε σχέση με τα όρια και το τι αφήνει στο τέλος. Επιπλέον έφτιξα στην εντολή CLEAR ή Καθαρό, όπου χωρίς παραμέτρους σβήνει όλες τις μεταβλητές και πίνακες, να μην μπορεί να σβήσει αν δεν βρίσκεται σε τμήμα που έχει ευθεία σχέση με την αρχή (τον επεξεργαστή γραμμής, από εκεί που καλούμε τα τμήματα). Υπάρχει περίπτωση ο κώδικας να τρέχει σε νήμα, οπότε δεν επιτρέπεται αυτή η εντολή και υπάρχει περίπτωση να είναι σε συνάρτηση όπου εδώ απλώς την περνάει χωρίς να την χρησιμοποιήσει (Δεν βγάζει λάθος). Παρακάτω μπορείτε να αντιγράψετε τον κώδικα σε ένα τμήμα και να το τρέξετε.

      \\ το πρόσημο στο βήμα ανα παίζει ρόλο μόνο αν αρχή και τέλος είναι ίδια
      \\ ώστε να ξέρει τι τιμή θα αφήσει στην μεταβλητή στο πέρας της για
      \\ όταν η για χρησιμοποιεί πραγματικό τότε κάνει στρογγυλοποίηση
      \\ στα όρια και σε κάθε επανάληψη στην νεα τιμή της μεταβλητής.
    
      \\ Αν αλλάξουμε την τιμή της μεταβλητής εντός της για δεν θα υπάρξει
      \\ πρόβλημα και η τιμή που δίνουμε δεν θα χρησιμοποιηθεί για τον υπολογισμό
      \\ της επόμενης τιμής. Αυτό γίνεται γιατί η πραγματική μεταβλητή ελέγχου είναι κρυφή.
    
      \\ Μπορούμε να έχουμε δυο ή περισσότερα φωλιασμένα για με την ίδια μεταβλητή
      \\ χωρίς πρόβλημα
    
      \\ Η Για {} είναι πιο γρήγορη από την Για Επόμενο
    
      \\ Μπορούμε να χρησιμοποιήσουμε ακέραια μεταβλητή με το %
      Καθαρο Α \\ είναι εδώ το ίδιο με Α=0 αλλά μπορούμε να βάλουμε λίστα ονομάτων και μάλιστα νέων
      Για Ι% = 1 Εως 20 {Α+=Ι%**2}\\ ** ή ^ για εκθέτη
      Τύπωσε Α, Ι% \\ το Ι% είναι 21


      \\ Μπορούμε να αναβαθμίσουμε έναν πραγματικό σε τύπου LONG
      Β=100
      Τύπωσε Τύπος$(Β)
      Μακρυς Β, Γ
      Τύπωσε Τύπος$(Β), Τύπος$(Γ)
      Για Β=1 Εως 20 Ανα 1.9 {}
      Τύπωσε Β \\τυπώνει 21, γιατί το βήμα ΑΝΑ έγινε 1 (αποκόπτονται τα δεκαδικά)
      \\ Και εδώ έχουμε την Γ που είναι 32bit ακέραιος
      \\ Επειδή εσωτερικά όλες οι μεταβλητές είναι τύπου Variant δεν κερδίζουμε σε ταχύτητα με τη χρήση "μικρής" χωρητικότητας
      \\ όπως ο Μακρύς. Ο κανονικός ακέραιος (με το %) παίρνει πολύ περισσότερα ψηφία.
      Β=0
      Για Γ = 1 Εως 10 Ανά 0.5 {Β++ }
      Τύπωσε Γ, Β \\ τυπώνει 1,1 γιατί θα εκτελέσει τουλάχιστον μια φορά το μπλοκ και θα δει μετά το μηδέν
    
      \\ Δεν μπορούμε να χρησιμοποιήσουμε στοιχείο πίνακα για μεταβλητή ελέγχου.
      \\ Υπάρχει μια ειδική ΓΙΑ όπου διαβάζει από τα στοιχεία πίνακα αντικείμενα και ελέγχει ιδιότητες και μεθόδους.
      \\ έτσι η ΓΙΑ Α(10) {.Χ=10 : .ΚανεΚατι 12, "Αλφα" } κάνει αυτό Α(10).Χ=10 : Α(10).ΚανεΚατι 12, "Αλφα"
    
      \\ η επόμενη εντολή σβήνει όλες τις μεταβλητές (ακόμη και αυτές που προϋπήρχαν)
      Καθαρο

     Α = 0
     Για Ι = .1 Εως .1 Ανα - .1
     Α++
     Επομενο Ι
     Τυπωσε Α, Ι \\ ΔΙΝΕΙ 1 ΚΑΙ 0

     Α=0
     Για Ι = .1 Εως .1 Ανα .1
     Α++
     Επομενο Ι
     Τυπωσε Α, Ι \\ ΔΙΝΕΙ 1 ΚΑΙ 0.2

     Α=0
     Για Ι = .3 Εως .1 Ανα .1
     Α++
     Επομενο Ι
     Τυπωσε Α, Ι \\ ΔΙΝΕΙ 3 ΚΑΙ 0

     Α=0
     Για Ι = .3 Εως .1 Ανα - .1
     Α++
     Επομενο Ι
     Τυπωσε Α, Ι \\ ΔΙΝΕΙ 3 ΚΑΙ 0
     Α=0
     Για Ι = .1 Εως .3 Ανα .1
     Α++
     Επομενο Ι
     Τυπωσε Α, Ι \\ ΔΙΝΕΙ 3 ΚΑΙ 0.4
     Α=0
     Για Ι = .1 Εως .3 Ανα - .1
     Α++
     Επομενο Ι
     Τυπωσε Α, Ι \\ ΔΙΝΕΙ 3 ΚΑΙ 0.4
     \\ φωλιασμένα για με ίδια μεταβλητή
     Α=0
     Για ι = 1 Εως 5 {
           Για ι = 1 Εως 30 {
                 Α++
           }
     }
     ? Α \\ τυπώνει 150

     Α=0
     Για ι = 1 Εως 5
           Για ι = 1 Εως 30
                Αν ι = 11 Τοτε Εξοδος Για
                Α++
           Επομενο ι
     Επομενο ι
     Τυπωσε Α
\\ τυπώνει 50 γιατί κάναμε έξοδο στο 11
ο χρωματισμός έγινε με την αναθεώρηση 95 και τα διαστήματα είναι ΟΚ.

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

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