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

Αναθεώρηση 60 (έκδοση 8)

Δυο διορθώσεις σήμερα.
Η πρώτη είναι στην εντολή Άνοιξε (Open) για αρχείο, η σήμανση Ευρία έγινε Ευρεία (ορθογραφικό λάθος, αλλά τώρα λειτουργεί και το ένα και το άλλο, για λόγους συμβατότητας). Η σήμανση αυτή δηλώνει ότι το αρχείο είναι Unicode Little Endian  ή UTF16 (δυο byte το κάθε γράμμα).

τμήμα από το πρόγραμμα χρήστες 
     Ανοιξε  .όνομα_αρχείου$ για ευρεια εισαγωγή ως κ
           Γραμμή Εισαγωγής #κ, κάτι$
           Γραμμή Εισαγωγής #κ, κάτι2$
     Κλείσε #κ


Η δεύτερη ήταν δύσκολη στο να βρεθεί! Αλλά όλα βρίσκονται κάποια στιγμή!

global x=12345
a=0 : b=1
gosub fibonacci(10)
print x

sub fibonacci(X)
if X>1 then gosub fibonacci(X-1)
Print a, x : swap a, b :b+=a
x++
end sub

Λογικά στο παραπάνω κανείς δεν βάζει τη x ως global (δεν χρειάζεται αυτή η γραμμή) και δεν χρειάζεται και η print x. Όμως στην αναθεώρηση 59 το x βγαίνει 11...γιατί φαίνεται γενική και δεν ορίζει ο μεταφραστής τοπική (ενώ θα έπρεπε). Διορθώθηκε και τώρα δίνει το παραπάνω 12345 όπως θα έπρεπε (δηλαδή η σφαιρική x μένει ως έχει). Οι a και b είναι τοπικές στο τμήμα αλλά στις υπορουτίνες φαίνονται ως στατικές.
Το πρόγραμμα τυπώνει (όταν ο μεταφραστής φτάσει στην sub κάνει έξοδο)
    0       1
    1       2
    1       3
    2       4
    3       5
    5       6
    8       7
   13      8
   21      9
   34    10


Στα ελληνικά:

γενική χ=12345
α=0 : β=1
διαμέσου Ακολουθία_Φιμπονάτσι(10)
Τύπωσε χ

\\ προσοχή εδώ η εντολή Ρουτινα δεν θέλει τόνο
\\ για να βρει την Ακολουθία_Φιμπονάτσι() πρέπει να υπάρχει το
\\ αναγνωριστικό Ρουτινα πριν. Η αναζήτηση γίνεται από το τέλος
Ρουτινα Ακολουθία_Φιμπονάτσι(χ)      
if χ>1 τότε διαμέσου Ακολουθία_Φιμπονάτσι(χ-1)
Τύπωσε α, χ : άλλαξε α, β :β+=α
\\ Έξοδος Ρουτίνας    \\ ξεσκεπάστε αυτή την εντολή να δείτε το αποτέλεσμα
χ++
Τέλος Ρουτίνας   

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

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

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