Δευτέρα, 1 Φεβρουαρίου 2021

Αναθεώρηση 20, έκδοση 10.

Έγιναν διορθώσεις στις Group.Count() και Member.Type$(), όταν χρησιμοποιείται το AYTO ή THIS. Είχα αλλάξει στον κώδικα της Μ2000 μια εσωτερική GetVar() με συνέπεια να μην ελέγχεται η AYTO ή THIS (δεν ήταν απαραίτητο), αλλά είχα μια ακόμα GetVar2() που έκανε τον έλεγχο, οπότε η διόρθωση ήταν να μπει η GetVar2() σε αυτές τις δυο εντολές. Αυτές οι συναρτήσεις χρησιμεύουν για να ελέγχουμε τα στοιχεία ομάδων (αντικειμένων χρήστη). Σπάνια θέλουμε κάτι τέτοιο και για το λόγο αυτό δεν είχε ελεγχθεί στις τελευταίες εκδόσεις 9 και 10 ένα πρόγραμμα από το 2015 που έχει αναρτηθεί στο blog εδώ. Όμως χθες κάποιος διάβασε την ανάρτηση του 2015 και συνήθως όταν γίνεται κάποια "σπάνια" σελίδα να διαβαστεί ελέγχω το πρόγραμμα και έτσι βρίσκω πιθανές παραλήψεις.

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

Παρασκευή, 8 Ιανουαρίου 2021

Νέο κεφαλαιο στο βιβλίο Μαθαίνω Προγραμματισμό

Το βιβλίο Μαθαίνω Προγραμματισμό συμπλήρωσε 9 κεφάλαια. 

Τα κεφάλαια που έχουν γραφτεί:

1. Το πρώτο μου πρόγραμμα!

2. Παιχνίδι: Μάντεψε έναν Αριθμό

3. Το κόσκινο του Ερατοσθένη

4. Το δένδρο του Πυθαγόρα

5. Παραγγελία Αυγών

6. Απόσταση Λιβενστέϊν

7. Ακολουθία Φιμπονάτσι με πολύ μεγάλους αριθμούς

8. Δυαδικός Αθροιστής

9. Ψηφιοποίηση Δεδομένων (Ελεύθερο Σχέδιο)

Το 9ο κεφάλαιο έχει 19 σελίδες (είναι το μεγαλύτερο). Έχει ένα πρόγραμμα με τρεις παραλλαγές (βάσει ολοκλήρωσης). Φτιάχνουμε με Ελεύθερο Σχέδιο σχήματα και τα καταχωρούμε και τα αναπαράγουμε. Φτιάχνουμε τα εργαλεία για το Ελεύθερο Σχέδιο.

Κατεβάστε το βιβλίο εδώ!


Πέμπτη, 7 Ιανουαρίου 2021

Αναθεώρηση 19, Έκδοση 10

 Βρήκα ένα Bug, μυστήριο! Ξεκίνησα σήμερα τον υπολογιστή και δουλεύοντας με τη Μ2000 βγήκε ένα πρόβλημα που κανονικά δεν έπρεπε να υπήρχε! Δηλαδή ο Timecount έδειχνε ότι είχαν περάσει 26 μέρες από την εκκίνηση. Λογικά όταν ξεκινάει ο υπολογιστής ο βασικός μετρητής του ξεκινάει από το μηδέν. Έτσι θα έπρεπε να είχε δείξει το πολύ μισή ώρα (σε χιλιοστά του δευτερολέπτου). Με την υψηλή τιμή η τιμή πήγαινε για καταχώρηση σε έναν Long (32bit) πράγμα που έβγαζε Overflow. To περιβάλλον της Μ2000 το έλεγε αλλά ήταν αδύνατο να συμβαίνει. Οπότε το εκτέλεσα μέσα από το περιβάλλον της VB6 και το διόρθωσα βάζοντας αντί για long τύπο Currency που δεν έχει ανάγκη (έχει μεγάλη ακρίβεια 21 ψηφίων όπου τα τέσσερα είναι δεκαδικά).

Πιθανόν το πρόβλημα να προέρχεται από αναβάθμιση των Windows. Αν και η τελευταία αναβάθμιση όπως θυμάμαι ήταν του Defender την προηγούμενη μέρα. Οπότε λογικά υπήρχε εδώ και 26 μέρες. Πιθανόν τότε έγινε και η αναβάθμιση των Windows 10. Έκανα κράτηση του υπολογιστή και επανεκκίνηση και διορθώθηκε και ο μετρητής Timecount. (αν δεν χρησιμοποιήσουμε το Profiler δεν μηδενίζει και δείχνει την διάρκεια που εκτελείται το λειτουργικό, δηλαδή από την εκκίνηση).